型号: PXF2998
Abstract:CANopen, as a well-known application protocol of CANbus,has been widely applied in factory various automation system. Soft PLC, which is a new automation control technology based on PC, implements all functions of the traditional hard PLC, follows IEC61131-3 programming standard, and provides more open features to the customers. This paper describes the development of CANopen compliant I/O slave based on P87C591 microprocessor and its application in a distributed I/O control system based on CoDeSys Soft PLC through CAN card in PC. Finally, the reliability, veracity and real time feature of data communication are verified by
testing experiment, and CANopen compliant I/O slave well meets the requirement of the shaftless control system of printing machine. Key words:CANopen,CANbus,SoftPLC,Distributed ControlSystem
CANopen通信协议接口用于提供在总线上收发通信对象的服务;不同 CANopen设备间的通信都是通过交换通信对象来完成CANopen是 CAN总线的一种有影响力的应用层协议 ,近年的。CANopen协议中定义了 4种通信对象 (通讯模式 ),用于对来得到了广泛的应用 ,保证了各种厂商设备的互用性、互换性 ,不同作用的信息进行处理 :NMT对象用来传递主节点对整个网同时提高了信息传输的可靠性 ,实时性。软 PLC是一种基于 PC络系统的管理信息 ;SDO用来传递网络系统中的配置信息 ;PDO机的新兴自动控制技术 ,不仅能够实现硬 PLC的所有功能 ,而用来实时传送过程数据信息 ;特殊功能对象则包括同步对象 且遵循 IEC61131-3编程标准 ,为用户提供了更多的开放性。( Sync)紧急对象 ( Emergency)时间戳对象 ( TimeStamp)等,详在我们承担的北京市科委印刷设备的无轴传动与系统研究细内容可参考 CANopen协议相关文档。设备对象字典是 项目的开发中 ,基于 CANopen协议的 I/O从站模块作为控制系CANopen协议的核心概念,位于 CANopen设备模型中通信层和统中的一部分 ,国内还没有现成的产品可供选用 ,国外的产品用户应用层之间 ,为用户应用层提供接口。它是一个结构标准化
往往价格过高 ,增加了系统开发的成本。由此 ,我们应用 的、有序的对象组 ,描述了该设备使用的所有数据类型、通信对P87C591单片机自行开发了基于CANopenDS301、DSP401协议象和应用对象。基于 CANopen协议的网络系统中每一个设备都的 I/O从站 ,并且通过上位机 CAN卡构建了基于德国 3S公司要实现一个唯一的对象字典 ,区别在于设备类型不同其内容则的 CoDeSys软 PLC的分布式 I/O控制系统。最终 ,通过测试实验不同。对象字典中每个对象拥有一个唯一的16位主索引和 8验证了系统信息传递的可靠性、准确性和实时性。本文采用的位子索引 ,由此实现对其中各种对象的访问。对象字典在系统
控制系统结构 (如图 4所示 )具有很好的开放性 ,灵活性和可软件设计中得以实现 ,然后使用标准化的 EDS文件对其进行描扩展性。从站节点本身具有成本低 ,结构紧凑 ,易扩展的特点 ,述。EDS文件的编写可以借鉴同类设备 ,只需针对具体不同应很好地满足了印刷机无轴传动控制系统的要求。 用做出相应改动即可。
CANopen协议是 CiA协会基于 CAN总线定义的应用层协议之一 ,在各种控制系统中得到了广泛应用。如图 1所示 CANopen设备模型 ,不同设备通过 CAN总线进行连接组网 ,
赵建光 :硕士研究生基金项目 :本文工作得到北京市先进制造技术重点实验室开放基金 (kp0100200201)和北京市科委 2005年度科技重大项目印刷设备的无轴传动与系统研究项目 (DO305001040621)
一般工程实际应用中 ,往往 CAN总线系统网络中节点数量不多 ,传送信息量不大 ,要求 CANopen从站节点具有易开发、易扩展、低成本的特点。在CANopen协议中 ,为了减小简单网络的组态工作量 ,满足上述应用需求 ,提出了最小能力设备的概念 ,即从站节点采用 CANopen协议的预定义连接集定义。按照这种方式 ,本文应用 P87C591单片机的自身特点 ,在有限的硬件资源基础上 ,开发了基于 CANopen协议的 I/O从站。
3.1系统的硬件设计
如图 2所示 ,本文采用 P87C591单片机作为 I/O从站的主芯片 ,它是一个单片 8位高性能微控制器 ,具有片内 CAN控制器 ,从 80C51微控制器家族派生而来 ,采用了强大的 80C51指令集并成功的包括了 Philips半导体 SJA1000CAN控制器的 PeliCAN功能。CAN收发器我们采用 PhilipsPCA82C250芯片 ,它具有高速稳定的差动发送和接收能力 ;为了提高抗干扰能力 ,系统中采用双路电源模块供电 ,在控制器和传输介质之间加接光电隔离器件 ADuM1201高速数字隔离器替代传统的光电耦合器 (如 6N137) ,简化了电路 ,极大的降低了功耗。此外 ,从站 I/O端口电路还采用了光耦 TLP521隔离器进行光电隔离。为了使本系统具有更好的适应性 ,我们采用 P87C591单片机内部集成的 I2C总线 ,在系统中扩展了 E2PROM24C04芯片 ,还留出了扩展 I/O模块的 I2C总线接口 ,满足了系统的扩展性 ;此外 ,为了便于调试和与主控制器的通讯 ,系统中还扩展了 RS232接口。使用中系统板上电后 ,电源信号、通讯状态、I/O端口、故障信号都能通过相应的 LED指示灯分别进行显示。
3.2系统的软件设计
本系统使用伟福仿真器作为 P87C591单片机的硬件开发工具 ,使用 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.3系统的调试
对于从站模块 CANopen协议的开发与调试 ,我们采用了德国 PEAK公司的 CANopen开发系统 ,硬件包括 PCI和 USB接口的 CAN卡,上位机软件是PCANopenMagicPro3.0专业开发版 ,很好的实现了对 CANopen网络节点的配置、分析和实时监控。
调试时 ,我们采用的通讯结构如图 4所示 ,在 PC机中安装 USBCAN卡和 PCANopenMagicPro3.0软件 ,构成监控调试节点 ,与从站进行通讯 ,这种方式在后续与 CoDeSys软 PLC主站组网时可以方便地实现对网络的监控。如图 6所示 ,PCANopen MagicPro3.0软件可以对网络上传输的 CANopen通讯对象报文进行实时跟踪。此外 ,加载从站设备的 EDS文件后 ,能够实现对从站节点的配置 ,以及对该设备对象字典的访问 ,可以说为本系统的 CANopen协议开发和调试提供了很好的开发环境。在系统调试中 ,尤其要注意的是 ,CANopen网络中主从设备的 CAN波特率要保持一致 ,否则不能建立正常通讯。
德国 3S公司的 CoDeSys软 PLC符合 IEC61131-3编程标
嵌入式系统应用
准,支持多种编程语言 ,集成了逻辑控制、运动控制和可视化于
一体 ,只要在计算机上安装了 CoDeSysSPRTE实时程序组件 ,
就可以成为一台先进的高性能可编程控制器。
如图 4所示 ,我们应用 I/O从站通过上位机 PCAN-PCI卡
构建了基于 CoDeSys软 PLC的分布式 I/O控制系统 ,在上位机
CoDeSys软 PLC中编写了相应的调试程序 ,进行测试实验。按上
文提到的 ,我们通过在网络中挂接调试监控节点 ,有效地实现了
对网络报文的跟踪 ,给系统的调试和开发带来了极大的帮助。
系统通过总线连接后 ,还需要对 CoDeSys软 PLC进行配置。配置工作包括安装系统支持的 PCAN-PCI卡的驱动 (由 3S提供 ),加载从站设备的 EDS文件 ,设置 CAN相关通讯参数 (如波特率 ,本系统设置为 125kbps) ,设置 CANopen协议的相关参数 (如从站 ID号、启动方式、心跳报文时间等 )。这样 ,如图5所示 ,系统 PLC配置界面会把挂接在网络上的主从设备显
示出来 ,CANopenI/O从站设备的各个端口状态一目了然。
在系统测试中 ,我们在上位机 CoDeSys软 PLC中编写了一个 8位 DO指示灯延时交替闪烁的 I/O控制程序。在这之前 ,要在系统库管理中加入标准的CANopen协议库文件 ( 3S提供 ),这样上位机才能支持 CANopen通讯协议 ;其次 ,要注意将程序中定义的变量和设备端口地址进行关联 ,否则系统进行程序编译时会报错。编好程序后 ,在系统运行前 ,不要忘记先开启 CoDeSysSPRTE实时程序 ,否则系统会报出通讯错误。系统正常运行时 ,如图 5所示 ,在上位机中 CoDeSys提供了良好的监控界面 ,实时显示了 8路 DO指示灯延时交替闪烁的对应状态。
如图 6所示 ,系统建立正常通讯需要经过通讯初始化阶段。在这一阶段 ,从站启动后自动进入预操作状态 ,发送心跳报文表明当前状态 ,等待主站的询问 ;主站首先发送 Bootup启动报文 ,然后通过 SDO服务至少要向从站询问设备类型信息 ,更多的还可能有厂商 ID、产品代码、版本号等 ;得到应答确认之后 ,主站发送 NMT报文 ,命令从站进入操作状态 ,系统随即建立了正常通讯状态 ,开始了实时 PDO数据的通讯。在本系统中利用挂接监控节点对 CoDeSys与 CANopenI/O从站通讯进行实时跟踪 ,网络中所有交互通讯报文可以按时间顺序清晰记录 ,这种方法对于 CANopen协议的类似开发具有很好的借鉴意义。