新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CANOpen总线与软PLC在MPS中的应用

CANOpen总线与软PLC在MPS中的应用

作者:时间:2012-10-29来源:网络收藏

1 引言
CANopen是CAN总线的一种有影响力的应用层协议,近年来得到了广泛的应用,保证了各种厂商设备的互用性、互换性,同时提高了信息传输的可靠性,实时性。软是一种基于PC机的新兴自动控制技术,不仅能够实现硬的所有功能,而且遵循IEC61131-3编程标准,为用户提供了更多的开放性。是德国FESTO公司结合现代工业企业特点开发研制的模拟自动化生产加工单元。它采用模块化结构,
将气动技术、电气电子、传感器技术、装配技术、机械技术、现场总线技术综合于一体。选取不同的单元可以组成自己的模拟生产加工系统,最大可以构成具有9个单元的系统。包括:送料、检测、加工、提取、暂存、组装、冲孔、功能检测和分拣单元。
基于CANopen协议的I/O从站可以作为控制系统中的一部分,国内还没有现成的产品可供选用,国外的产品往往价格过高, 增加了系统开发的成本。由此应用C8051F040单片机自行开发基于CANopen DS301、DSP401协议的I/O从站,并且通过上位机CAN卡构建了基于德国3S公司的CoDeSys软的分布式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信息的收发函数、如何滤波以及对象字典在程序中的实现。


上一页 1 2 下一页

关键词: CANOpen总线 PLC MPS

评论


相关推荐

技术专区

关闭