【关键字】CANopen协议;船舶监控;过程数据;通信;Labview
【出 处】 2018年 1期
【收 录】中文学术期刊网
【作 者】王静悦,骆艳洁
【单 位】
【摘 要】 摘要:在对CANopen(Control Area Network Open)应用层协议通信机理研究分析的基础上,设计上位机为监控功能下位机为采集模块的船舶监控系统。以CANopen协议中的过程数据对
摘要:在对CANopen(Control Area Network Open)应用层协议通信机理研究分析的基础上,设计上位机为监控功能下位机为采集模块的船舶监控系统。以CANopen协议中的过程数据对象(PDO)完成船舱液位和压力的实时通信和监控,运用Labview软件编写了船舶监控系统的主界面,完成了发送和接收子程序的开发,模块具有较强的可移植性。设计的监控系统在船舶监控自动化领域有广阔的应用前景。
关键字:CANopen协议;船舶监控;过程数据;通信;Labview
中国分类号:TP393 文献标识码:A
Abstract:Based on the research and analysisof CANopen (control area network open) application layer protocol ,a shipping monitoring system has been designedwhich consists of upper-end monitoring system and a lower-end data acquisition system. The process data objects (PDO)in CANopen Protocolwas applied to communicate and monitor the cabin’slevelsand pressures. Themain interfaceas well as sending and receiving procedures of shippingmonitoring systemwere programmed by labview. The modules have a strong portability.Thedesigned shipping monitoring system has broad application prospectsin the field of shippingcontrol automation.
Key words:CANopen Protocol; hipping monitoring;process data objects; communicate; labview 0 引言
我国造船业目前国内科技水平不高,设计制造的船舶科技含量偏低。船舶制造过程中面临着几大趋势:设备的规模和数量越来越大,设备复杂程度提高,涉及的部门和行业越来越多。船舶监控系统是现代自动化船舶中最基本和最重要的系统,是提高船舶航行安全性,可行性、经济性的关键环节。现场总线技术能提高监控系统中信号的测量、控制和传输精度,为丰富控制信息内容,实现远程传送创造条件。
CAN总线具有可靠性、实时性、低成本、抗干扰性、兼容能力等多个方面的优势,普遍应用于船舶海运、公共交通,楼宇自动化,医疗设备以及食品加工、海事电子、汽车工业等领域。CANopen是一种开放的标准化现场总线协议,于1995年由位于德国的CAN自动化协会(CiA)提出并制订,定义了基于CAN的分布式工业自动化系统的应用标准以及CAN的应用层通信标准。作为CAN 总线的应用层协议,CANopen是一个基于CAL 的子协议,其采用面向对象的设计思想,具有很好的模块化特性和很高的适应性,通过扩展不同的行规可以适用于不同的应用领域。因此,CANopen目前成为欧洲嵌入式网络的主要标准协议。
1 CANopen协议通信机理[1]
CANopen的通信结构参考ISO/OSI模型,如图1所示。应用层是由CANopen设备协议和通信协议等构成;数据链路层和物理层是基于CAN控制器芯片和协议,遵守ISO 11898标准。良好的分层和面向对象的设计使得通信模型较为清晰。
1.1对象字典(Object Dictionary)
设备对象字典(OD:Object Dictionary)是CANopen协议的核心部分,是一个预先确定的,可通过网络访问的有序对象组:每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义
图1 CANopen通信参考模型
了一个8 位的子索引。对象字典也定义了各个设备参数、通讯参数,描述了设备的全部应用对象。OD的通用结构如表1所示。
表1 设备控制和状态对象的描述 索引 值 ...... …… 1000~1FFFF 通讯子协议区域(DS-301) 2000~5FFFF 制造商特定子协议区域 6000~9FFFF
...... 标准的设备子协议区域(DS-4xx)
……
1.2管理报文NMT(Network Management)
管理报文的主要功能是对设备状态进行管理、控制和及时发现设备故障。包括层管理,网络管理和ID分配服务,如初始化,配置和网络管理,节点保护等。
1.3服务数据对象SDO(Service Data Object)
SDO对对象字典进行访问,通过使用索引和子索引。SDO使客户机能够访问设备(服务器)对象字典中的项,主要用于在设备配置过程中传递参数或大数据块。SDO请求和应答报文总是包含8个字节,完成系统的参数配置、组态、设定PDO的格式。
1.4过程数据对象PDO(Project Data Object)
PDO对小型数据进行高速实时传输,数据从一个生产者传递到一个或多个消费者,它的优先级比SDO高。PDO消息的内容是预定义的,即假定生产者和消费者知道PDO的数据内容。PDO用于数据的发送和接收可分为TPDs(Transmit PDOs)和RPDs(Receive PDOs)。
1.5特殊功能对象
特殊功能对象包括同步(SYNC)、紧急事件(Emergency)和时间标记对象(Time stamp)、节点/寿命保护(Node/Life Guarding)以及Boot-Up。
2 船舶采集监控系统结构与实现
2.1系统网络结构
船舶监控系统主要由上位机监控主站,下位机数据采集从站组成[2]。主站与各从站之间采用CAN总线进行通信,屏蔽双绞线作为传输介质。主站对各个从站发出指令,收集总线上传输的模拟量和数字量信息,监控系统的运行状态,检测所有设备的运行参数。下位机从站采集设备相应参数,通过CAN总线传回上位机进行实时控制和保存。系统网络结构如图2所示。
图2 监控系统网络结构图
2.2 上位机监控系统设计
上位机由一台工控机,和一块插在ISA总线上的CAN适配卡组成。CAN适配卡有两种,即内置式卡—插在 PC机的扩展插槽中,和外置式卡—与PC机串口相连。本系统采用内置式插卡,它结构比较简单,采用双口 RAM与 PC机进行数据交换。双口 RAM具有两套数据线和地址线,同一数据单元可分别被 ISA总线和微处理器访问。本例中用到的接口卡如图3所示。
82C250是 CAN控制器与物理总线之间的接口部件,可完成对总线的差动发送和接收功能。82C250与ISO /DIS11898标准完全兼容,具有抗瞬间干扰、降低射频干扰、 热保护、总线与电源及地之间的短路保护等能力。
图3 CAN接口卡原理图
2.3 下位机数据采集系统设计
下位机由数字化传感器、放大滤波电路、微处理器、A/D数模转换、CAN控制器、智能执行器等组成,主要完成对船舶航行数据采集,船舱数据采集,货物数据采集任务。具体包括:主机油门、螺距操作、实际舵角、推进器,船舱压力、液位、温度等;以及船速、船位、船体应力、风向等一些状态信息[3]。考虑到仪器的通用性和可靠性,选择MC9S12C32芯片作为MCU。MC9S12C32集成了一个HCS12CPU 单元/32KB 的Flash/2K bit的RAM、一个异步串行通讯口(SCI)、一个8通道模数装换模块和一个CAN2.0A/B 接口。可以满足数据采集和CAN通信的要求。CAN控制器采用SJA1000芯片,SJA1000 集成了 CAN 协议的物理层和数据链路层的所有功能,可以完成对数据的帧处理。通信波特率最高可达 1Mbit / s。
2.4 CAN通信参数设计
通信模块是实现船舶采集数据的发送和接收,运用CAN总线技术来完成。采用一主多从的工作方式,工控机具有总线的控制权,可向从站发送、获取信息。各个从站都挂接在现场总线上,能够实时接收指令和上报现场工作状况。
CAN控制器收到上位机的请求命令,就对该命令做出响应,将请求的航行信息发送到指定的地址。其中多数信息以应答形式进行发送,个别信息,如即时船位报文、心跳信息等,是由系统自动定时方式发送。发送方式和地址可以事先设定,也可由主站随时修改。主从站之间传输和运行数据的读取均以PDO方式完成。
上位机和下位机的数据通信由表2所示的PDO映射决定。通信参数主要包括CANopen设备的通信参数,RPDOs、TPDOs的通信及映射参数。每个映射参数子索引都包含表2所示的各部分。子索引0的值表示有3个对象映射到PDO中。子索引1开始为映射的数据对象。每个子索引包含4个字节。例如值0x64010110前两个字节表示数据对象的索引值,第三个字节表示数据对象的子索引值,最后一个字节表示数据对象的长度,10表示由16位组成。
表2 PDO对象映射 子索引 值 0 3 1 0x64010110 (控制船舱压力) 2 0x62200110 (控制船舱液位) 3 0x60200208 (控制船舱温度) …… …… 3 系统软件设计
整个系统的软件设计包括船舶采集模块、上位机监控模块、以及CAN通信模块的软件设计。上位机监控软件程序主要完成数据显示、分析、报警信息、回放、存储、数据报表打印等功能。利用虚拟仪器Labview中已经封装好的API能够便利地进行各个模块的开发,人机界面友好,有较强的模块性和可移植性。
3.1船舶采集模块
采集模块中微处理器软件采用自顶向下的程序设计思想,使用C语言和汇编语言混合编写,其主程序流程图如图4所示。
具体工作流程为:上电开始后,微处理器负责CAN控制器和I/O通道的初始化,通过内部A/D模块采集船舶数据,数据采集的间隔时间由定时器来完成,即在定时器中断到来时才读取A/D转换采集得到的数据。如果得到数据则设置一个标志位通知CPU已经输出数字量和模拟量信息,并将数据传送给CAN 控制器。将常用的 I/O输入输出功能即 A I、AO、D I、DO功能全部集成到从站上,用以模拟现场应用环境[5],并可根据需要从 CAN 总线接受命令和控制参数,把采集计算结果传输到 CAN总线上,达到集中监控、分散处理的目的。
利用CANopen协议,传送PDO数据前要用SDO来设置从站的PDO,而在整个主站与从站的数据交换过程中,随时都可以使用SDO灵活读取或写入任何索引数据[6]。
3.2上位机监控模块
上位机监控系统软件主要包括以下几个模块:数据显示模块、数据处理模块、报警模块、报表打印模块、退出模块等。监控系统的主界面如图5所示。
图4采集模块流程图
(1)数据采集显示模块:按照用户的设定的采样率,对船舶中主要设备参数进行多通道实时采集并在主界面上显示。
(2)数据处理模块:将采集到的模拟量、数字量信息以及音频信息做例如滤波、FFT、时域、频域分析等处理,以及时预测和了解船舶航行的状态和受周围环境影响的程度。
(3)报警模块:当采样数据超越设定极限时,发出声光等报警,LED灯闪烁,提醒现场工作人员进行调查,排除故障。
(4)报表打印模块:可按照监控人员要求保存某一时刻采集的实时数据或者历时数据,制作成报表形式,存档以备日后使用。
(5)退出模块:点击退出按钮,退出监控界面,返回操作系统。
图5 监控系统主界面
3.3 CAN通信软件实现
(1)初始化
系统初始化包括对CAN端口的属性设置及发送接收报文的初始化。CAN端口设置包括对波特率,端口号,节点的设置。对于高速CAN卡波特率一般选择125K/bs。报文初始化包括对PDO的类型,地址分配符,缓冲区大小、PDO的传输方式等设置[5-6]。初始化前面板如图6所示。
图6 初始化前面版
(2)发送、接收子程序
发送与接收程序中,PDO传送的类型要对应起来,为相应的TPDOx和RPDOx,分别调用了CANopen write.vi和CANopen read.vi来实现通信。循环内是将缓冲区内的数据进行转换,最后停止远程请求模式,关闭PDO报文传输和CAN通信设备。具体程序如图6所示。
图7 (a) 发送子程序
图7(b) 接收子程序
4 结语
本文设计了以CANopen为应用层通信协议的船舶监控系统,主要完成了对船舱液位和压力的实时采集、通信及监控,保证了船舶行驶过程中的安全性。将现场总线技术运用于船舶工业中,提高了数据传递的实时性和可靠性,为进一步提高船舶工业的自动化水平奠定基础。
参考文献:
[1]CAN in Automation. CiA Draft Standard 301,Version 4.02,2002.
[2]邓遵义,宁祎. 基于CANopen 协议的主节点通讯实现[J].微计算机信息,2008(24): 54-56.
[3]车海宁.船舶机舱监测系统设计[J].2008(37):50-52.
[4]韩建锋,陈星. 嵌入式船舶数据采集与监控系统[J].仪表技术与传感器,2008(8):61-62.
[5]曾胜斌,林少芬,江小霞等.基于LabVIEW船舶变频液压舵机测控系统的设计与实现[J].机电技术,2009增刊:93-95.
[6] MadalinStefanVlad,Valentin Sgarciu. Distance ProcessMonitoring Using LabVIEW Environment[A].Automation,QualityandTesting,Robotics (AQTR) , IEEE International Conference on[C]. 2006 :214 - 219.