基于虚拟仪器的CANopen协议监控面板设计

时间:2022-08-16 05:32:17

基于虚拟仪器的CANopen协议监控面板设计

摘 要:针对工业现场分布式总线网络的在线监控问题,提出将具有可视化编程环境的虚拟仪器软件与现场总线高层通信协议CANopen相结合,开发出具有智能化、高效化的同步实时监控界面。在分析CANopen协议标识符的基础上,使用虚拟仪器对CANopen数据报文进行打包与解析,并使用VISA接口通过自行设计的RS 232CAN协议转换器完成数据收发,最终完成监控面板的开发,为现场总线与虚拟仪器技术相融合的发展趋势起到了一定推动作用。

关键词:CANopen协议; 虚拟仪器; 现场总线; VISA接口

中图分类号:TN91134; TP273 文献标识码:A 文章编号:1004373X(2012)10018103

虚拟仪器是电子测量技术与计算机技术深层次结合的产物,通过软、硬件的结合来实现传统仪器的各种功能,大大突破了传统仪器在数据处理、显 友好的图形界面来操作虚拟仪器的面板就如同操作真实仪器一样方便。CAN协议只定义了物理层和数据链路层,本身并不完整,有些复杂的应用问题需要一个更高层次的协议——应用层协议来实现[1]。CANopen协议就是将CAN网络中通信数据的组建和传输进行标准化,并给用户很大的自由度,允许用户随时添加自己所需要的新功能。

本文将虚拟仪器技术应用于CANopen协议开发,有利于实现分布式工业现场的实时监控、数据采集,改善现场总线网络通信系统的运行效率,提高实时性和信息处理能力。

1 CANopen协议概述

CANopen协议是由CiA协会针对CAN协议的不完整性而定义出来的一个更高层次的协议——应用层协议。不同CANopen 设备间的通信都是通过交换通信对象完成的[2]。

1.1 通信对象

通过CAN网络传输的CANopen通信对象可以通过服务和协议来描述。分类为:实时数据通过过程数据对象(PDO)协议传输;服务数据对象(SDO)协议用来对对象字典进行读写操作;特殊功能对象协议提供了特定应用,网络同步,时间戳和紧急报文传输;网络管理(NMT)协议提供了网络初始化,错误控制和设备状态控制服务;层设置服务(LSS)协议用来配置CAN总线通信参数和设备参数。

1.2 CANopen预定义连接集

为了减少简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CANID)分配表。这些标识符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通信对象提供相应的标识符。缺省ID分配表是基于11位的CANID,包含一个4位的功能码(Function Code)部分和一个7位的节点ID(NodeID)部分。

NodeID由系统集成商定义,范围是1~127(0不允许使用)。预定义的连接集定义了4个接收PDO(ReceivePDO),4个发送PDO(TransmitPDO),1个SDO(占用2个CANID),1个紧急对象和1个节点错误控制ID。也支持不需确认的NMTModuleControl服务,SYNC和Time Stamp对象的广播[34]。 标识符的默认值如表1,表2所示。

表1 默认标识符分配表(一)

CANopen预定义主/从连接集的广播对象

对象 功能码

(IDbits 107) COBID 通信参数在

OD中的索引

NMT Module

Control 0000 000H 

SYNC 0001 080H 1005H, 1006H, 1007H

TIME SSTAMP 0010 100H 1012H, 1013H

表2 默认识别分配符表(二)

CANopen主/从连接集的对等对象

对象 功能码

(IDbits 107) COBID 通信参数在

OD中的索引

紧急 0001 081H~0FFH 1024H, 1015H

PDO1(发送) 0011 181H~1FFH 1800H

PDO1(接收) 0100 201H~27FH 1400H

PDO2(发送) 0101 281H~2FFH 1801H

PDO2(接收) 0110 301H~37FH 1401H

PDO3(发送) 0111 381H~3FFH 1802H

PDO3(接收) 1000 401H~47FH 1402H

PDO4(发送) 1001 481H~4FFH 1803H

PDO4(接收) 1010 501H~57FH 1403H

SDO

(发送/服务器) 1011 581H~5FFH 1200H

SDO

(接收/客户) 1100 601H~67FH 1200H

NMT Error

Control 1110 701H~77FH 1016H1017H

2 CANopen监控面板工控现场应用框架

采用虚拟仪器软件LabVIEW进行CANopen协议监控面板的开发,完成CANopen数据的接收与发送,实现分布式工控现场总线网络的数据监测。LabVIEW是NI公司开发的虚拟仪器应用程序编程环境,是一种图形化编程语言,特别适合开发测控应用软件,其具有所有通用编程环境的标准,如数据结构、循环结构和事件处理。其内置各种专业工具软件包可满足工程应用开发[5]。应用示意见图1,通过RS 232CAN协议转换器实时监测现场总线上各节点的数据,完成控制任务。

图1 虚拟仪器CANopen监控面板应用示意图3 RS 232CAN协议转换器

虚拟仪器LabVIEW软件及PC机内部没有专门的CAN接口只有RS 232串行接口,因此使用单片机等微控制器设计RS 232CAN转换器,实现PC机接入现场总线网络,完成数据监听[6]。在PC机上可用LabVIEW环境下的NIVISA实现串口通信。图2为RS 232CAN协议转换器硬件原理图,选用内嵌CAN 总线控制器的Microchip公司PIC18F258单片机为核心处理芯片[78]。

上一篇:基于FPGA的双模式光伏电池测试仪 下一篇:基于FPGA的H.264 DCT算法的硬件实现