CoDeSys的IDE部分是免费的,你可以从官网下载体验。真正收费的是运行系统RuntimeSystem以及一系列的通信、运动控制组件。
CoDeSys采用.Net技术开发,其在设计之初就将功能划分为若干组件模块,例如总线协议栈、可视化界面、运动控制、安全控制等等,用户可以像搭积木一样选购必需的模块搭建自己的系统,Zui后形成一个定制化的控制软件平台。一些初次接触软PLC的用户可能对这部分感到陌生,但其实这种设计方式非常普遍。举几个例子,MATLABSimulink的实时工具箱(Real-Time)就是这样的工作方式,用户在Simulink的图形界面里通过拖拽设计控制程序,然后下载到真实的硬件中跑,可以在这里了解。还有像倍福也是这样的使用方式,用户在TwinCATIDE里进行编程,然后下载到倍福的控制器中,控制器里面其实已经预装了一个Runtime。西门子的STEP7也是一款IDE,它的PLC中也存在一个配套的Runtime。只不过西门子(包括日系PLC)的系统封闭而保密,外人不知道他的系统架构。
用户编写的PLC程序就像我们电脑里的应用程序,它运行在Runtime System上,而RuntimeSystem又运行在操作系统之上。由于Runtime System位于应用程序和操作系统中间,所以又被称为中间件(Middleware)。简单来说,你可以把中间件看成是由驱动程序、基本的函数库等等模块组成的软件系统。因为这些程序模块主要与硬件或者底层软件打交道,与用户关系不大,所以被组织成了单独的一块。这些软件呈现给用户的是函数调用接口,也就是说你只需要会使用就行了,不用操心具体怎么实现,因为这些是驱动工程师和算法工程师的活儿。当然,大多数时候你也看不到这部分的具体实现,因为它们是以编译后的二进制文件的形式提供给你的,根本无法阅读,你顶多能看到一些头文件,其中只是一些函数和变量定义,没有什么干货。在机器人软件里面,处于同样地位的还有ROS、OROCOS等。