CoDeSys
很多机器人控制软件都是借助CoDeSys实现的,那么CoDeSys是什么呢?
CoDeSys是德国3S公司推出的一款付费的软PLC开发软件,简单来说,它包括两部分:Development System和Runtime System。Development System就是用来编程的软件界面(就像Visual Studio、Eclipse等软件,也可以称为IDE),设计、调试、编译PLC程序都在IDE中进行,这部分是用户经常打交道的;程序写好了以后,就要把它转移到硬件设备中执行。可是这时生成的PLC程序自己是无法运行的,它还要在一定的软件环境中才能工作,这个环境就是Runtime System(也叫运行核),这部分是用户看不到的。二者安装的位置通常不同,IDE一般安装在用户的开发计算机上,Runtime System则位于起控制作用的硬件设备上,程序通过网线或串口线下载到Runtime中运行。
CoDeSys为什么要分成两部分?Zui主要的原因是CoDeSys主要运行在嵌入式系统中,例如ARM或者DSP芯片。这样的系统资源有限,不可能在其上建立庞大、复杂的开发环境,因而其开发环境和运行环境相互分离。因此,嵌入式软件的开发方式一般是,在宿主机(Host)上建立开发环境,进行应用程序代码的编写和交叉编译,然后宿主机与目标机(Target)建立连接,将应用程序下载到目标机上进行交叉调试,经过调试和优化,Zui后将应用程序固化到目标机中实际运行。当然,随着芯片的性能越来越强大,如果选择资源丰富的芯片,那么CoDeSys的开发环境和运行环境放在一起也没什么问题。我们自己的个人电脑不就是编译和运行程序都能完成吗。
CoDeSys在工业控制领域的应用非常广泛,上面提到的很多机器人公司都使用了它的产品,例如KEBA、倍福、固高、台达、广州启帆机器人、新时达机器人。3S公司只卖底层软件,不卖硬件和上层应用程序,应用程序和硬件电路需要由用户自己设计,3S公司负责将Runtime System移植到客户的硬件上。Runtime System可以裸跑在硬件上,但一般是运行在操作系统上,配置操作系统也是客户的工作。如果客户要求,CoDeSys的IDE可以定制,换成客户的logo和外观,这就是为什么你会发现不同厂家的开发平台长得不一样,但风格又比较相似。当然,用户也可以使用其它IDE,例如倍福就使用了Visual Studio,而背后的编译器等内核功能以及函数库仍然采用CoDeSys的方案。CoDeSys的Runtime具有强大的适应性,支持绝大多数的操作系统和芯片类型。
CoDeSys的IDE部分是免费的,你可以从官网下载体验。真正收费的是运行系统Runtime System以及一系列的通信、运动控制组件。
CoDeSys采用.Net技术开发,其在设计之初就将功能划分为若干组件模块,例如总线协议栈、可视化界面、运动控制、安全控制等等,用户可以像搭积木一样选购必需的模块搭建自己的系统,Zui后形成一个定制化的控制软件平台。一些初次接触软PLC的用户可能对这部分感到陌生,但其实这种设计方式非常普遍。举几个例子,MATLAB Simulink的实时工具箱(Real-Time)就是这样的工作方式,用户在Simulink的图形界面里通过拖拽设计控制程序,然后下载到真实的硬件中跑,可以在这里了解。还有像倍福也是这样的使用方式,用户在TwinCAT IDE里进行编程,然后下载到倍福的控制器中,控制器里面其实已经预装了一个Runtime。西门子的STEP7也是一款IDE,它的PLC中也存在一个配套的Runtime。只不过西门子(包括日系PLC)的系统封闭而保密,外人不知道他的系统架构。
用户编写的PLC程序就像我们电脑里的应用程序,它运行在Runtime System上,而Runtime System又运行在操作系统之上。由于Runtime System位于应用程序和操作系统中间,所以又被称为中间件(Middleware)。简单来说,你可以把中间件看成是由驱动程序、基本的函数库等等模块组成的软件系统。因为这些程序模块主要与硬件或者底层软件打交道,与用户关系不大,所以被组织成了单独的一块。这些软件呈现给用户的是函数调用接口,也就是说你只需要会使用就行了,不用操心具体怎么实现,因为这些是驱动工程师和算法工程师的活儿。当然,大多数时候你也看不到这部分的具体实现,因为它们是以编译后的二进制文件的形式提供给你的,根本无法阅读,你顶多能看到一些头文件,其中只是一些函数和变量定义,没有什么干货。在机器人软件里面,处于同样地位的还有ROS、OROCOS等。
1、开发层
CODESYS Development System(具有完善的在线编程和离线编程功能)、编译器及其配件组件、可视化界面编程组件等,同时供用户可选的运动控制模块可使其功能更加完整和强大。
IEC 61131-3 编辑器。CODESYS提供了所有IEC 61131-3所以定义的五种编程语言:如结构化文本(ST)、顺序功能图(SFC)、功能块图(FBD)、梯形图(LD)和指令表,此外还支持连续功能图(CFC)的编程语言。
编译器:负责将 CODESYS 中的应用程序转换为机器代码并且优化可编程控制器的性能。当用户输入了错误的应用程序代码时,立刻会接收到编译器发出的语法错误警告及错误信息,让编程人员可以迅速做出相应纠正。用户可以不必改变编程方式,就可以使用不同的基于 CODESYS 编程的硬件装置(系统)进行工程开发。
硬件/现场总线配置器:针对不同制造商的硬件设备及不同现场总线协议,该部分负责在CODESYS中对相应参数进行设定。
可视化界面编程:直接在 CODESYS 中即可实现可视化编程(人机界面HMI),系统已经集成了可视化编辑器。
运动控制模块:运动控制功能已经集成在CODESYS中,形成了 SoftMotion(CNC)软件包。基于PLCopen的工具包可以实现单轴、多轴运动;电子凸轮传动;电子齿轮传动;复杂多轴CNC控制等。
- 工业机器人商业控制器(一) 2024-11-26
- 工业机器人控制系统 2024-11-26
- 变频器在工业吊扇的应用 2024-11-26
- 变频器控制面板按键说明 2024-11-26
- 变频器基本频率和Zui高频率的设置 2024-11-26
- 三菱变频器恒压供水怎么设置参数 2024-11-26
- 变频器长期不用该如何保养 2024-11-26
- 变频器断电报UL欠电压的原因 2024-11-26
- 市面上常见的变频器有几种 2024-11-26
- 变频器基本工作原理详解 2024-11-26
- 变频器怎么调试参数 2024-11-26
- 变频器什么时候需要制动电阻 2024-11-26
- PLC程序的质量? 2024-11-26
- 变频器主电路维修检测方法 2024-11-26
- 变频器可以进行调速的几种方法 2024-11-26