论文部分内容阅读
随着工业生产规模的不断扩大,使的传感器和执行器等现场设备空间位置上分散且与控制中心相距较远。这样的情况下,分布式的、可配置的、具有通信功能的远程I/O模块即为可行的解决方法,而且越来越受到欢迎。这种I/O模块作为应用接口,将其布置在工业现场,靠近传感器与执行器等现场设备,就地进行信号采集与控制。CANopen属于现场水平级的网络通信协议,由于其弥补了CAN总线通信的局限性,定义了一系列强大的应用层管理服务,因此被广泛地应用在工业自动化分布式控制领域。然而国内对CANopen的研究处于起步阶段,需要对其进一步的推广。文章基于STM32F407ZE控制器开发了开关量和模拟量远程I/O模块,这些模块采用CANopen通信协议,实现I/O模块的可配置和开关量、模拟量传输控制。在Cadence环境下完成电路设计与PCB板绘制工作。软件方面,移植了eCOS实时操作系统和思泰的CANopen协议栈,在eCOS中嵌入了CANopen内核,并对主要任务进行了封装。在CANopen通信方面,实现了模拟量和开关量模块的对象字典定义,PDO通信、SDO通信、Heart心跳功能、NMT网络管理等功能。另外,采用软件方法对封闭式的I/O模块的初始Node-ID和波特率进行配置,通过CANopen协议的LSS功能进行CANopen网络中模块的Node-ID和波特率的动态改变。最后,对I/O模块进行组网测试,主要包括单个模块的精度测试,CANopen通信中的SDO、PDO、NMT网络管理以及LSS功能测试。从最终的测试结果来看,每一个模块运行稳定,满足精度要求,符合DS301规范,且能够通过LSS功能动态改变网络中的I/O模块的Node-ID和波特率。