摘要:
本文在实际应用的基础上,介绍一款功能强大的工业控制器PAC单元PLCmodul-C32,该PAC预安装Linux OS和IEC61131-3编程系统,支持的编程方式包括LD,SFC,CFC,和文字编程方式KOP/FUB、IL、ST;PLCmodul-C32集成的CANopen 主站完全符合CANopen标准,可与任何第三方CANopen设备组合;独特的Shared Process Image机制能够实现IEC61131-3与C/C++之间的数据交换, 延续了IEC61131-3编程的标准化又扩展了C/C++程序的灵活性;同时PLCmodule-C32支持RS-232、Ethernet与CANopen三者之间的协议转换功能,适用于多个总线间的数据交换和对于控制器灵活性较高的要求等工业领域。
关键词:
PAC,工业控制器,CANopen 主站,IEC61131-3,协议转换
Abstract:
On the basis of the practical application, the article introduces a powerful PAC industrial controller unit: PLCmodul-C32. The unit is pre-installed Linux OS and iec61131-3 programming system and support the Programming Type of LD/SFC/CFC and KOP/FUB/IL/ST. PLCmodul-C32 integrated a CANopen standard master can communicate with any other third-party CANopen Device. The unique Shared Process Image mechanism achieves the data interchange between the program of IEC61131-3 and C/C++, which is a continuation of the standardization of IEC61131-3 programming and extension of flexibility of C/C++. PLCmodul-C32 supports the protocol conversion among three protocols: RS-232, Ethernet and CANopen, which is suitable for the high requirement controller in industrial areas.
Key words:
PAC, industrial controller, CANopen master, IEC61131-3, protocol conversion
一、 前言
如今PLC在工业控制领域中非常活跃且发展良好,具有很强的生命力。与此同时,PLC也正在许多方面不断改变,不断增加其功能。自动化供应商一直致力于PLC的开发,以迎合市场与用户的需求。功能的增强促使新的系统出现。PAC基于开放的工业标准,具有多领域功能、通用的开放平台以及高性能等特点。本文在实际应用的基础上介绍一款功能强大的PAC单元PLCmodul-C32。
二、PLCmodule-C32功能
PLCmodule-C32是基于预安装Linux OS和IEC61131-3编程系统的紧凑型PAC。这是一款高性能的控制器,不仅可以实现PLC的应用功能,而且可以进行网络管理和节点检测等任务。
2.1 PLCmodule-C32的硬件特性
PLCmodule-C32模块有1个10/100Mbps以太网接口,2个CAN接口,3个UART接口,24个24V直流数字输入,16个24V/500mA直流输出,4个250V/3A继电器交流输出,4个0-10V/0-20mA模拟量直流输入,2个0-10V模拟量直流输出,2个PWM和3个高速计数输入。另外,模块还提供CANopen协议,WEB浏览器的HTML配置,telnet远程登录以及温度传感器等功能。
2.2 IEC61131-3和CANopen
PLCmodule-C32使用符合IEC61131-3标准的OpenPCS编程系统,该系统由德国infoteam软件公司设计。OpenPCS支持的编程方式包括LD,SFC,CFC,和文字编程方式KOP/FUB、IL、ST。除此之外,PLCmoduleC32还可以进行C/C++编程,通过Shared Process Image机制甚至可以实现C/C++与PLC程序的数据交换。
PLCmodule-C32中包含了一个功能完整的CANopen Master。因此,模块可以通过CANopen协议执行控制任务,例如连接输入、输出,转换机制,以及节点间进行数据和事件传递。
2.3 Shared Process Image
Shared Process Image是一种类似于双端口RAM的机制,它保证了PLC 和Linux应用程序可以进行数据交换。通过这一机制可以实现将所有运算功能,例如复杂控制算法、加密等,从PLC程序转移到操作系统完成。在Linux操作系统下,可以将应用设计成不同的功能模块。
这种模块化的设计不但能够根据需要对不同功能模块进行任意组合,而且能够将以前的项目中已有的功能放到正在进行中的项目中使用,避免了重复性设计。
三、 定制化设计思想
PLCmodule-C32虽然是一个标准化产品,但是思泰电子仍然花费不少心思为产品提供高柔性和可定制化的功能。客户定制范围从现有模块的I/O组合,到根据用户具体需求的全新板卡设计。这样可以做到最大限度的满足不同用户对于控制器接口以及尺寸的各种需求。
在软件方面,PLCmodule-C32提供了C/C++程序功能和Shared Process Image机制。使用C/C++程序可以提高控制器编程的灵活性,使用Share Process Image可以在IEC61131-3和C/C++之间建立数据交换通道,既延续了IEC61131-3编程的标准化又扩展了C/C++程序的灵活性。
四、应用案例
4.1 PLCmodule-C32 在协议转换中的应用
在PLCmodule-C32上,Shared Process Image能够实现IEC61131-3与C/C++之间的数据交换。
另外,在PLCmodule-C32上C/C++支持所有的硬件接口,且易于将任何协议栈的源代码集成到控制器上。从而实现RS-232、Ethernet与CANopen之间或RS-232与Ethernet之间的协议转换功能。
结构如图1,在这里我们将一个开源的Modbus协议栈libmodbus集成到PLCmodule-C32上。该工程中共创建读、写和中间变量各10byte用于数据交换。涉及到的modbus API功能包括创建连接(modbus_new_tcp)、释放连接(modbus_free)、打开连接(modbus_connect)、关闭连接(modbus_close)以及功能码0x01、0x03、0x05、0x0F、0x10对应的API函数。Modbus协议栈的数据通过Shared Process Image保存到IEC61131-3的程序中。
由于PLCmodule-C32上PLC编程环境已经集成了一个完整的CANopen Master,因此,将modbus保存后的数据通过CANopen协议进行转发就变得非常简单。
图1:协议转换实现
4.2 PLCmodule-C32在远程网页访问中的应用
BOA 服务器是一个小巧高效的web服务器, 是一个运行于linux下的,支持CGI的单任务http服务器,源代码开放、性能高。在PLCmodule-C32上已经集成了BOA服务。
完成以太网配置,就可以调用集成在PLCmodule-C32的Web配置功能。 使用此功能只需要在PC机上已安装的Web浏览器 (例如:Microsoft Internet Explorer, Mozilla Firefox 360 Explorer等)来调用配置页面。
如图2,在浏览器地址栏输入 “http://192.168.10.248/index.html ”PLCmodule-C32配置功能的地址即可通过PC对PLCmodule-C32进行远程设置。可以通过该功能对控制器上的CAN、Ethernet以及Process Image和用户权限等进行设置。
图 2: PLCmodule-C32 Configuration
输入"http://192.168.10.248/sam.html",即可通过PC对PLCmodule-C32进行远程程序更新。
总结
PLCmodule-C32中集成的CANopen Master完全符合CANopen标准,可以实现任何第三方CANopen设备的组合。同时提供了Shared Process Image API,用户可以在PAC固件中非常轻松的开发和集成自定义的C/C++应用程序。因此,凭借着它灵活的使用方式,PLCmodule-C32在实际工程中非常适用于多个总线间的数据交换和对于控制器灵活性较高的要求。