Orocos是一个开源的机器人控制程序开发软件,由比利时鲁汶大学的Herman Bruyninckx及其博士生PeterSoetens开发,编程语言为C++。Orocos的介绍文档偏软件开发,非程序员不容易读懂。
Orocos的地位与ROS有些类似,但定位于控制,其位于实时操作系统之上,提供的基本功能包括:生成实时控制程序的工具链(编译器),组件模板、机器人常用基本函数。Orocos替用户解决了模块功能和接口定义、模块间实时通信这些基本功能,借助这些软件模块,用户可以更快速的开发部署自己的应用软件。Orocos既关注上层应用层,也关注底层控制层。与ROS相比,Orocos在设计之初就考虑了实时性。在PeterSoetens的博士论文里,对于实时性的讨论占了很大篇幅。Orocos直接使用了底层操作系统(例如Xenomai)的任务调度模块,Orocos必须安装在实时操作系统上才能保证实时性。
Beremiz
Beremiz是一个免费、开源的软PLC控制系统,由法国人EdouardTisserant开发,主要开发语言是Python。出于对传统PLC壁垒森严的不满,Tisserant倡导了开源项目Beremiz,他也是CANfestival的作者。
Beremiz项目始于2005年,雏形只是一个编辑器,随后其它功能逐渐加入从而形成了一个完整的软PLC开发环境,其功能特点如下:
1 支持多任务,多任务可配置不同的优先级,任务运行方式可以是周期式或中断触发式
2 支持ST、梯形图等五种标准PLC编程语言
3 提供IEC 61131-3标准规定的基本函数(定时器、比较、数学运算、类型转换、位操作、字符串等上百个函数)
4 可扩展Modbus、CANopen、EtherCAT总线通讯模块(需自己移植到所选平台)
5 支持C和Python语言,用户可以在PLC中调用C程序或者调用Python程序,也可以在Python中调用C程序
6 支持仿真,不支持在线调试
7 具有可视化界面(HMI),变量值可直观显示为图表
Beremiz的工作方式为:用户使用PLC语言编写应用程序,不管用户采用ST语言还是梯形图或者其它PLC语言,Beremiz都将其翻译成C语言,这是由MatIEC组件完成的。随后,gcc编译器将生成的C语言程序与总线通信程序一起编译链接得到二进制目标文件(Linux下是so文件,Windows下则是dll文件)。再之后,二进制目标文件被下载到目标设备上,目标设备上预先安装了runtime,runtime对目标文件进行调用完成相应的控制功能。