CANOpen总线与软PLC在MPS中的应用
1 引言
CANopen是CAN总线的一种有影响力的应用层协议,近年来得到了广泛的应用,保证了各种厂商设备的互用性、互换性,同时提高了信息传输的可靠性,实时性。软PLC是一种基于PC机的新兴自动控制技术,不仅能够实现硬PLC的所有功能,而且遵循IEC61131-3编程标准,为用户提供了更多的开放性。MPS是德国FESTO公司结合现代工业企业特点开发研制的模拟自动化生产加工单元。它采用模块化结构,
将气动技术、电气电子、传感器技术、装配技术、机械技术、现场总线技术综合于一体。选取不同的单元可以组成自己的模拟生产加工系统,最大可以构成具有9个单元的MPS系统。包括:送料、检测、加工、提取、暂存、组装、冲孔、功能检测和分拣单元。
基于CANopen协议的I/O从站可以作为MPS控制系统中的一部分,国内还没有现成的产品可供选用,国外的产品往往价格过高, 增加了系统开发的成本。由此应用C8051F040单片机自行开发基于CANopen DS301、DSP401协议的I/O从站,并且通过上位机CAN卡构建了基于德国3S公司的CoDeSys软PLC的分布式I/O控制系统。最终,通过测试实验验证了系统信息传递的可靠性、准确性和实时性。本文采用的控制系统结构(如图3所示)具有很好的开放性,灵活性和可扩展性。
2 系统概述
图1控制系统总体结构
整个控制系统由监控计算机、CAN总线主站适配卡、I/O从站节点、CAN总线网络和现场设备构成。其系统结构如图1所示。分布在现场的I/O从站节点连接MPS的传感器信号,并通过CAN通讯接口与总线相连,监控计算机运行软PLC软件并通过CAN总线主站适配卡和连接在CAN总线网络上的各个从节点进行实时通讯,从而实现MPS控制系统的分散控制和集中监管。
监控计算机可以选用普通计算机,软PLC选用德国3S公司的CoDeSys。总线适配卡完成总线和监控计算机之间的协议转换。各个从站节点之间使用专用屏蔽电缆互联构成CAN总线网络,总线两端使用终端电阻,用来提高系统稳定性、增强系统的抗干扰能力。
3 基于CANopen协议I/O从站的开发
3.1 系统的硬件设计
如图2所示,本文采用C8051F040单片机作为I/O从站的主芯片, 它具有与8051指令集完全兼容的CIP-51内核,内部集成的CAN控制器为Bosch CAN控制器[4]。此CAN控制器有以下几部分构成:CAN内核、报文RAM(与C8051 RAM相互独立)、报文处理状态机制和CAN控制寄存器。CAN收发器我们采用SN65HVD232,它具有高速稳定的差动发送和接收能力;为了提高抗干扰能力,系统中采用双路电源模块供电,在控制器和传输介质之间加接光电隔离器件ADuM1201高速数字隔离器替代传统的光电耦合器(如6N137),简化了电路,极大的降低了功耗。此外,从站I/O端口电路还采用了光耦TLP521隔离器进行光电隔离。为了使继电器输出得到足够的电流供应,光耦输出后加达林顿管以加大驱动电流。最后接自恢复式保险丝,然后输出。在图2中只给出一路输入输出,16路类同。在工业现场,需要共阴极的继电器输出,设计的数字IO从站需要16路输入,16路输出。基于此,选择两片UDN2982达林顿管。单片机在复位时,端口为高电平,为了避免复位期间继电器动作,所以
图2 系统硬件简图
设计低电平光耦连通,继电器吸合。由此,输出光耦使用下拉电阻。输入输出都有LED显示。
3.2系统的软件设计
本系统的软件设计采用模块化设计,使用C51Windows编程语言进行软件编程。程序框图如图3所示,程序模块分为主程序模块、CANopen协议模块、对象字典与节点配置模块、系统I/O模块、单片机与CAN控制器硬件驱动模块。
CANopen协议的软件实现遵循CANopen协议预定义主/从连接集,从站节点支持4个接收PDO,4个发送PDO,1个SDO,1个紧急对象和1个节点错误控制对象。结合通讯协议的特点,软件设计中采用结构体的方式来定义诸如CAN报文、发送和接收PDO配置对象、CANopen协议配置对象等,通过定义结构体型指针变量完成对对象中相关数据的读写,给程序的编制带来了方便。此外,利用定义数组的方法实现了对象字典和过程数据映像的操作。在SDO报文处理子函数中,通过被访问对象的主索引和子索引,以数组查询的方式实现了对对象字典的读写访问。CANopenI/O从站的状态机转换通过判断接收NMT报文命令字,对心跳报文标志字节代码进行读写,产生程序散转的方式得以实现。对于PDO、SDO通讯对象的处理则根据心跳报文标志字节代码指明的当前状态分别进行处理。
图3 系统主程序软件框架图软件设计的关键在于C8051F040的CAN信息的收发函数、如何滤波以及对象字典在程序中的实现。
C8051F040集成的CAN控制器是Bosch全功能CAN模块,在编写收发函数时,首先初始化邮箱,然后是发送信息函数和接收信息函数。滤波的时候只要把滤波地址放到对应的一个邮箱去,这样就使一个接受邮箱对应一个滤波地址。对象字典在程序中是以数组形式实现的,另外为了在监测软件上读出PDO映像的实时数据,这就需要开辟实时数据的存储区,然后在程序中进行询问。
3.3系统的连接与配置
对于从站模块CANopen协议的开发与调试,采用了德国PEAK公司的CANopen开发系统,硬件包括PCI和USB接口的CAN卡,上位机软件是PCANopen Magic Pro3.0专业开发版,很好的实现了对CANopen网络节点的配置、分析和实时监控。
调试时,采用的通讯结构如图1所示,在PC机中安装USB-CAN卡和PCANopen Magic Pro3.0软件,构成监控调试节点, 与从站进行通讯。应用I/O从站通过上位机PCAN-PCI卡构建了基于CoDeSys软PLC的分布式I/O控制系统。总线上挂接9个从节点,分别于MPS系统的模块单元连接。I/O从站的输出与MPS系统的输出相连,使MPS系统接受控制指令;I/O从站的输入与MPS系统的输入相连,接受MPS系统的传感器信号。
系统通过总线连接后,还需要对CoDeSys软PLC进行配置,如图4所示。配置工作包括安装系统支持的PCAN-PCI卡的驱动(由3S提供),加载从站设备的EDS文件,设置CAN相关通讯参数 (如波特率,本系统设置为250kbps),设置CANopen协议的相关参数(如从站ID号、启动方式、心跳报文时间等)。
图 4 软PLC配置监控界面
4 软PLC编程及对MPS控制
以上完成了总线连接和软PLC的配置工作,下面编写软PLC的程序来控制MPS系统的模块单元。在MPS系统的9个模块中,以加工单元较为复杂,由于篇幅的关系,这里只介绍加工单元这一模块的控制方法,其他单元类同。
如图5所示,加工单元软PLC控制程序流程。
如表1所示,加工单元的IO详细列表。
在CoDeSys软PLC上,主程序使用SFC顺序功能图语言,在每一步里的具体程序以及转换条件使用ST指令表语言。这样使得程序很容易编写,也很容易看懂。
由此编写控制程序。程序开始进入初始化状态,钻头停转,钻台在上行位,使工件放松。在程序上分别使得O3_04=1,O3_05=1,O3_01=0,O3_02=0,O3_03=0,O3_06=0。进入下一步的条件是钻台在最上,工件已放松。即I3_04=1,I3_02=1。
然后进入下一步,这一步要是转盘旋转,工件放松,O3_02=1,O3_05=1,O3_04=0,然后进入下一步,转换条件是转盘转至正位90度,即I3_01=1。
- CANopen总线系统在250t门座式起重机上的应用(12-20)
- 基于CANopen总线的瓦楞纸码垛机解决方案(12-16)
- 基于台达CANopen总线在针刺机的应用(12-16)
- 台达CANopen总线在多线切割设备中的应用(12-16)
- CANopen总线应用札记:关于通讯插头内的接线(12-15)
- CANopen总线应用札记:如何理解CANopen与CAN报文?(12-15)