流程加工CAN测控网络的应用层协议研究
2014-06-06李军站
刘 超,李军站,黄 伟
(江西师范大学计算机信息工程学院,南昌330022)
流程加工CAN测控网络的应用层协议研究
刘 超,李军站,黄 伟
(江西师范大学计算机信息工程学院,南昌330022)
为提高CAN测控网络的适应性和通信效率,以CAN2.0A技术规范为基础,针对流程加工测控网络的特点,设计面向流程加工领域的CAN总线应用层协议ProCAN。在明确流程加工概念及范围的基础上,分析流程加工测控系统结构模型的特征,提出通信报文的类型,定义标准数据帧仲裁域与数据域的编码格式,并讨论ProCAN协议的通信模式、通信状态、通信异常及长报文误帧重传控制。利用OPNET网络仿真软件进行实验,结果表明, ProCAN协议能实现报文通信,并且具有延时短、实时性强、可靠性高的特点,尤其当网络负载较大时,效果更为明显。
CAN总线;应用层协议;控制网络;流程工业;通信模式
1 概述
制造工业分为离散工业和流程工业[1]。流程工业是指物料连续地在相同路径上流动,以改变物理或化学特性,生产出有价值的产品[1-2]。依据生产技术,流程工业可分为物料处理过程有化学反应的流程制造和物料处理过程仅有物理转换的流程加工2种。流程加工具有产品设计简单、生产技术难度较低、过程数据易取、生产周期较短等特点。
工业测控进入网络控制阶段后,CAN总线凭借其结构简单、低成本、抗干扰强、多主方式工作、可靠性与实时性较高、容错性好、传送数据帧短等特点,成为最具发展潜力的控制网络[3]。但CAN总线由于协议的开放性,仅对物理层和数据链路层进行规范,应用层没有定义(现场网络只含一个网段,不需要传输层、网络层、会话层和描述层功能),导致应用开发周期长、技术难度较大。目前,CAN应用层协议主要有CANopen,DeviceNet,CAL等,但有的结构复杂、编码效率不高的通用性协议,有的灵活性差、不便于扩展的专用性协议[3-5]。为了避免通信资源浪费和满足领域通信要求,针对中小型流程加工测控系统的特点,本文提出一种CAN领域性应用层协议ProCAN。
2 流程加工测控系统的结构模型与特征
CAN总线网络控制是集散控制,根据集散控制系统集中操作、分散控制的架构原则,可分为现场控制和操作管理两级,级与级之间通过CAN总线连接构成控制网络,形成分级分布式结构[6-7],如图1所示。操作管理级采用一台PC机,负责实时监视与动态模拟、组态配置与参数设定、统计分析与报表输出等。现场式控制级由一定数量以可编程控制器或嵌入仪器或工业控制机为核心的具有自治功能的智能测控装置组成,以实现过程实时数据的采集转换与显示、设备状态的检测与组合、按设定算法对现场操作控制、故障报警、不规范事件提示等。
图1 CAN总线流程加工测控系统的结构模型
流程加工的工艺流程一般包含原料接收清理、配料混合、成品计量包装等4个~8个工段,每个工段配置一个现场控制节点(少数需配置2个),供气供电等辅助设备配置2个~4个现场控制节点,控制节点12个左右。每个工段一般包含4个~6个工序,每个工序一般包含2个~4个端口,每个智能测控装置的端口数可达20个左右[8-9]。
流程加工工段之间存在动作状态关联,如配料,若仓料不足,一方面要停止配料,另一方面还要告知前一工段供料[8-9]。操作节点与控制节点、控制节点之间均需要数据交换,因此测控系统通信应以多主方式工作。另外,由于实时性强的报文采用事件触发发送且操作控制命令多,数据请求命令与操作控制命令统一采用数据帧的数据域编码表示,协议不使用远程帧。
3 ProCAN应用层协议的报文定义
CAN规范的报文格式分为标准格式与扩展格式,且均有4种不同的帧类型,在不采用远程帧时,仅需对数据帧进行定义。CAN总线分配是通过标识符比较实现的,标准格式与扩展格式的主要区别是标识符的长度不同,标准格式是11位,扩展格式是29位[3]。为了减少总线分配的时间、提高总线的利用率和传输效率,并保证协议的兼容性,结合实际需要,严格采用CAN2.0A技术规范。在统一帧格式和充分预留扩展的基础上,使用特定字段的不同编码区分不同的帧[10]。
3.1 ProCAN报文标识符定义
在CAN2.0A标准帧格式中,仲裁域由11位标识符和1位RTR组成[3]。由于ProCAN协议不采用远程帧,仅通过数据帧进行通信,因此RTR位恒为隐性。ProCAN报文标识符定义如图2所示。
图2 ProCAN报文标识符定义
报文优先级占标识符的3位 ID10~ID8,用000~111将报文数据类型分为8个等级的优先权,体现报文紧急程度;编码值越小,优先权越高[11]。数据类型有设备故障、设备状态、现场数据、控制参数、组态配置、总线检验(含检验、同步)和系统命令(含查询、控制、缺失和长报文错误)等[11-12]。源节点地址(DMAC)占标识符的4位ID7~ID4,指示发送报文的节点编号;目标节点地址(SMAC)占标识符的4位ID3~ID0,指示接收报文的节点编号。数据类型的优先权可根据报文重要性、报文数据长度、报文传输频率和报文实时性等,修改编码,以实现动态优先级,提高总线使用的公平性、灵活性。
3.2 ProCAN报文数据域定义
在CAN2.0A标准帧格式中,数据域包含9个字节72位,高位在前[3]。为提高编码效率,对于不同数据类型的数据域采用不同的编码定义[13-14]。
设备故障与设备状态数据类型用1个字节表示一台设备的故障或状态,一个数据帧可表示同一控制节点下8台设备的故障或状态,数据域的定义如图3所示。设备地址3位D7~D5,指示仲裁域源节点所控制设备的相对编号;故障或状态类型3位D4~D2,指示设备地址对应设备故障或状态组合的编码。
图3 ProCAN设备故障与状态数据域定义
组态配置数据类型用1个字节表示一台设备的硬件配置和软件组态,一个数据帧可表示同一控制节点下8台设备的组态配置,数据域的定义如图4所示。设备地址3位D7~D5,指示仲裁域源节点所控制设备的相对编号;组态配置类型4位D4~D1,指示设备地址对应设备组态配置的编码。
图4 ProCAN组态配置数据域定义
现场数据类型用4个字节表示一个端口地址的实时数据,一个数据帧可表示同一控制节点下2个端口地址的实时数据,数据域的定义如图5所示。第1字节的端口地址5位D7~D3,指示仲裁域源节点所控制端口的相对编号;帧编号3位D2~D0,指示仲裁域源节点多帧数据的顺序号。第2个字节~第4个字节的数据24位,指示端口地址的实时数据。特别地,帧编号为000时,指示报文为单帧;帧编号为111时,指示该帧为报文的结束帧。
图5 ProCAN现场数据域定义
控制参数数据类型定义与现场数据类似,仅在于端口地址和帧编号指示的是仲裁域目的节点。总线检验和系统命令数据类型用2个字节的编码(缺失命令含缺失节点地址,长报文错误命令含错误帧编号)。
4 ProCAN应用层协议的通信模式与控制
4.1 ProCAN通信模式
ProCAN协议针对数据类型通信特征,采用主从应答通信模式和事件触发通信模式[15]。特别地,任何一种通信模式,对于单次信息交换而言,发起通信者为“主节点”,响应通信者为“从节点”。
主从应答通信模式又称命令/响应模式,是主节点向从节点请求数据或自操作,主节点发送命令帧,从节点返回响应帧或进行自操作,一般是非周期性的。主从通信模式分为点对点和广播2种方式,且均包含命令型和应答型。采用点对点方式时,主从节点的地址必须是唯一的;点对点应答型用于操作节点查询控制节点的设备状态、现场数据、控制参数、组态配置和相邻工段控制节点间查询设备状态、现场数据;点对点命令型用于发送长报文错误编号。广播方式时,标识符目标节点地址设为0000b(0000b不能为节点地址);广播命令型用于操作节点向所有控制节点发送启停或缺失命令;广播应答型用于总线检验,通信过程与点对点方式类似。
事件触发模式是以点对点方式,周期性或非周期性地由主节点直接向从节点发送数据帧,用于操作节点向控制节点发送控制参数,操作节点与所有控制节点间发送本身的组态配置,控制节点向操作节点发送现场数据、设备状态和设备故障,相邻工段操作节点间发送现场数据、设备状态和设备故障。事件可以是主节点循环定时的,也可以是特定状态的(事先约定或状态改变)。
4.2 ProCAN的通信控制
ProCAN的网络通信包括总线检验、在线节点初始化(控制参数、组态配置、设备初态)、在线节点实时报文传输、控制节点缺失(操作节点不能缺失)等4个状态,访问通信是操作节点通过切换规则执行状态转换图来实现控制,状态转换图如图6所示[16]。控制节点缺失有2种情况:(1)控制节点没有接入CAN总线,可称为脱离缺失;(2)控制节点没有通过总线检验,可称为离线缺失。当网络通信过程中,新增控制节点缺失时,若通过总线检验恢复到在线,在线节点初始化仅对恢复到在线的控制节点而言。当存在控制节点缺失时,需要报警,通过手动或定时的方式由总线检验转入在线节点初始化、在线节点实时报文传输。
图6 网络通信状态转换示意图
对于单次通信还包括异常控制和长报文误帧重传控制等2个方面[11]。通信异常控制是利用连接定时器的“超时机制”,由操作节点设定所有节点连接定时器的定时参数,当连接建立时,从节点启动连接定时器,超时删除连接,否则连接定时器复位。长报文误帧控制是在传输完多帧数据后,再发送错误帧编号,根据帧编号,主节点选择性地重传错误帧,而不是整个报文重新传输。如果多帧数据传输完后,无错误帧则转入下一次通信。仅错误帧重传和一次性应答,可节约重传时间,提高传输效率。
5 ProCAN应用层协议的仿真实验
OPNET网络仿真软件集三层建模、参数设置、协议定义、数据采集、统计分析、数字图形输出和2次开发等于一体,采用离散事件驱动的模拟机理仿真和管理网络运行过程,准确预测分析复杂网络的性能和行为[17]。
ProCAN协议仿真的网络模型为8个节点的总线型网络,通过链路配置创建相应的链路,分物理层、数据链路层和应用层3个层次8个模块的节点模型如图7所示(虚线表示统计线),通过编辑器对节点包格式属性设置CAN和ProCAN协议的帧格式(含字段名称和大小等)。节点的进程模型包含6个,其功能分别为:CAN_GEN用于随机产生并发送数据包;Data_POOL用于接收整理数据包和更新统计变量;CAN_LLC用于处理来自应用层和低层MAC的数据;CAN_MAC用于将包封装成帧与解封装并将数据转发到高层或低层;Space用于检测状态和接收反馈信息;ERR_RESOLVE用于监听并处理错误。Space进程模型如图8所示(实线表示有条件进行状态转换,虚线表示无条件进行状态转换),通过 init状态初始化后转入 Space进程模块, WATCHING状态监听CAN_RX和CAN_MAC模块的状态信号。当BUSY_LOW为0,表示当前帧间空隙为空闲状态,进入SLOT_FREE状态;当BUSY_ HIGH为1,表示当前帧间空隙忙,进入 SLOT_ BUSY,WAIT等待状态,直到BUSY_LOW或BUFF_ ON(缓存允许发送)有效,进入SLOT_FREE状态。在SLOT_FREE状态时,发送信号并转入CAN_ MAC进程模块。
图7 CAN节点的三层结构模型
图8 Space进程模型
参照SJA1000标准波特率表设定节点CAN_ TX,CAN_RX,CAN_Link的波特率均为500 Kb/s,仿真时间30 s,默认上电启动及网络参数配置时间为5 s,选择全局统计变量为端到端时延和收发帧数,分别在负载率为15%和42%上仿真运行。在负载率为15%时,发送帧数为7.8K(其中,广播帧数为1.2K),接收帧数为15.0K,平均网络延时曲线如图9所示。在负载率为42%时,发送帧数为6.8K (其中,广播帧数为1.1K),接收帧数为13.4K;平均网络延时曲线如图10所示。
图9 负载率为15%时平均网络延时比较
图10 负载率为42%时平均网络延时比较
从仿真结果可以看出,CAN和ProCAN协议均能实现可靠传输。当网络负载率为15%时,ProCAN协议的平均延时维持在0.000 32s左右,近似为一条直线;CAN协议的平均延时不到0.000 54 s,有微小波动。当网络负载率为42%时,ProCAN协议的平均延时维持在0.000 37 s左右,并有逐渐变小的趋势;CAN协议的平均延时增大到0.000 79 s,也有逐渐变小的趋势。可见,随着网络负载率的增大,报文发送碰撞的概率增大,平均延时也有所增加。但ProCAN协议变化很小,网络带宽利用率较高。
6 结束语
基于CAN2.0A标准,结合流程加工测控系统的需要,本文设计一种编码效率高、可扩展性强的ProCAN协议。通过仿真实验结果表明,ProCAN协议具有性能可靠、网络资源利用率高等优点,可在实际中推广应用。但由于ProCAN应用层协议是以数据链路层的CAN静态调度为基础建立并进行仿真实验,对于动态调度是否有同样的效果,有待进一步研究。
[1] 黄河清,俞金寿.流程工业CIMS与离散工业CIMS的多方位对比[J].华东理工大学学报,2003,27(5): 480-484.
[2] 赵欣宇,柴天佑,赵新力.CIMS与CIPS体系结构对比分析的研究[J].信息与控制,1998,27(4):304-309.
[3] 夏继强,邢春香.现场总线工业控制网络技术[M].北京:北京航空航天大学出版,2005.
[4] 广州周立功单片机发展有限公司.DeviceNet规范简介[Z].2004.
[5] Boterenbrood H.CANopen High-levelProtocolfor CAN-bus[M].Amsterdam,Holland:NIKHEF,2000.
[6] 令朝霞.基于智能仪表的集散控制系统的设计与实现[J].机械工程与自动化,2010,(5):124-126.
[7] 袁任光.集散型控制系统应用技术与实例[M].北京:机械工业出版社,2003.
[8] 周青锋.基于PLC的饲料配料控制系统设计[D].西安:西安电子科技大学,2008.
[9] 刘 超,程国华.饲料加工过程自动化系统的体系结构研究[J].饲料工业,2011,33(7):5-7.
[10] 肖存龙,卜乐平,王黎明,等.CAN总线实时性分析[J].微计算机信息,2009,25(2):64-65.
[11] 王苏敬,王立德,申 萍,等.列车用CAN总线应用层协议研究与实现[J].北京交通大学学报,2008,32 (5):102-106.
[12] 田帅帅,王红亮.多节点CAN网络及通信协议设计[J].水电能源科学,2010,28(6):112-114.
[13] 辉亚男,冷文浩,刘培林.CAN总线应用层通信协议的设计与实现[J].计算机工程与设计,2008,29(3): 669-671.
[14] 李晓静,张侃谕.基于CAN总线的温室群控系统设计与实现[J].计算机工程,2010,36(1):245-247.
[15] Jimenez J,Martin J L,Cuadrado C,et al.A Top-down Design for the Train Communication Network[C]// Proceedings of IEEE InternationalConference on Industrial Technology.[S.l.]:IEEE Press,2003: 1000-1005.
[16] 王毅峰,李令奇.基于CAN总线的分布式数据采集与控制系统[J].工业控制计算机,2000,13(5):34-38.
[17] 张 铭,窦赫雷,常春藤.OPNET Modeler与网络仿真[M].北京:人民邮电出版社,2007.
编辑 陆燕菲
Research on Application Layer Protocol of CAN Measurement and Control Network for Process Machining
LIU Chao,LI Jun-zhan,HUANG Wei
(College of Computer Information Engineering,Jiangxi Normal University,Nanchang 330022,China)
In order to improve the adaptability and the communicative efficiency of CAN control network,the ProCAN in the field of process industry is designed,which is based on the technical specification of CAN2.0A and the features of machining process control network.This paper analyzes the features of machining process control system structure model, and proposes the types of communication messages,defines the coding of the standard data frame arbitration field and data field.Meanwhile,the communication model,the control of communication state network,the abnormal communication and the long packets retransmission of error frames for ProCAN protocol are discussed.By using OPNET network simulation software,simulation experiments show that the ProCAN protocol is able to achieve message communication with characteristics of low time delay,strong real-time capacity,high reliability,especially when the network is overload.
CAN bus;application layer protocol;control network;process industry;communication mode
1000-3428(2014)09-0130-04
A
TP336
10.3969/j.issn.1000-3428.2014.09.026
江西省直厅(局)科研计划基金资助项目“饲料加工配料监控管理系统的研制”(20073801)。
刘 超(1963-),男,教授,主研方向:复杂系统建模,网络通信;李军站、黄 伟,硕士研究生。
2013-08-05
2013-10-21E-mail:214607731@qq.com