CN103647690A - 基于can总线的工业自动化设备通信方法 - Google Patents
基于can总线的工业自动化设备通信方法 Download PDFInfo
- Publication number
- CN103647690A CN103647690A CN201310590747.2A CN201310590747A CN103647690A CN 103647690 A CN103647690 A CN 103647690A CN 201310590747 A CN201310590747 A CN 201310590747A CN 103647690 A CN103647690 A CN 103647690A
- Authority
- CN
- China
- Prior art keywords
- daughter board
- frame
- recipient
- master control
- control borad
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开一种基于CAN总线的工业自动化设备通信方法,通过在CAN数据帧的数据场内嵌Modbus报文,能够有效地实现设备间进行CAN总线通信,由于所述协议简单且高效,因此能够极大地提高电力自动化控制设备的开发效率和产品稳定性。
Description
技术领域
本发明涉及一种工业自动化设备通信方法,特别涉及一种基于CAN总线的工业自动化设备通信方法。
背景技术
随着电力自动化控制装置的功能要求越来越复杂、实时响应性越来越高,同时半导体芯片技术日新月异,使得现在的电力自动化控制装置由以前的单一控制芯片控制单个板卡变成一台装置就需要多个控制芯片控制多个板卡,不同的板卡完成不同的功能组合。基于此,装置内的多个板卡的通信是整个产品设计的核心技术之一。
由于对电力自动化装置的实时性、稳定性和大数据量传输的要求,装置内板卡间的通信已由传统的串口通信(如RS232或RS485)转向CAN总线通信。目前实现的板卡间通信方式多为串口(如RS232或RS485),而如果将串口协议放在CAN总线实现,则无法真正体现CAN总线的优越性;而如果采用CAN总线标准的协议如CANopen、DeviceNet等,则又过于复杂,且实现难度较大。
发明内容
鉴于此,有必要提供一种基于CAN总线且通信方式简单的工业自动化设备通信方法。
一种基于CAN总线的工业自动化设备通信方法,用来在工业自动化设备的发送方和接收方之间通信,所述通信方法基于CAN总线协议,包括如下步骤:
发送方将通信信息封装为Modbus报文,并将所述Modbus报文划分为一个以上的Modbus报文子段,所述Modbus报文子段的长度不大于CAN通信协议所定义的数据帧的数据场的大小;
发送方将所述一个以上的Modbus报文子段分别嵌入一个以上的CAN数据帧中;所述一个以上的CAN数据帧包含表示所述一个以上的Modbus报文子段相互关联的信息;
发送方按照CAN通信协议向接收方发送所述一个以上的CAN数据帧;
接收方接收所述一个以上的CAN数据帧,并提取出CAN数据帧的数据场的数据得到一个以上的Modbus报文子段,将相互关联的Modbus报文子段合成为Modbus报文;
接收方解析所述Modbus报文获取通信信息。
在其中一个实施例中,所述发送方为主控板,所述接收方为子板;所述发送方向接收方发送通信信息的方式为广播,所述CAN数据帧的仲裁场填写代表广播的标识。
在其中一个实施例中,所述发送方为主控板,所述接收方为子板;所述发送方向接收方发送通信信息的方式为单点发送,所述CAN数据帧的仲裁场填写接收方标识;所述Modbus报文包含发送方标识、表示主控板对子板操作的功能码、以及主控板对子板的操作指令和所述主控板对子板的操作指令的参数。
在其中一个实施例中,所述主控板对子板的操作指令为控制IO状态和读参数寄存器的操作指令的其中之一。
在其中一个实施例中,所述子板为遥控子板,所述控制IO状态的操作指令用于遥控,所述读参数寄存器的操作指令用于遥测。
在其中一个实施例中,所述子板为数据采集子板或通信子板。
在其中一个实施例中,所述发送方为子板,所述接收方为主控板;所述发送方向接收方发送通信信息的方式为单点发送,所述CAN数据帧的仲裁场填写接收方标识;所述Modbus报文包含发送方标识、表示子板对主控板操作的功能码、以及子板对主控板的操作指令和所述子板对主控板的操作指令的参数。
在其中一个实施例中,所述子板对主控板的操作指令为主动上传IO状态、主动上传输入状态、主动上传寄存器值以及主动上传输入寄存器值的操作指令的其中之一。
在其中一个实施例中,所述子板为遥控子板,所述主动上传IO状态用于主动上传遥控变位信息,所述主动上传寄存器值用于主动上传遥测信息。
在其中一个实施例中,所述CAN数据帧为CAN通信协议所定义的扩展帧。
上述的基于CAN总线的工业自动化设备通信方法,通过在CAN数据帧的数据场内嵌Modbus报文,能够有效地实现设备间进行CAN总线通信,由于所述通信方法简单且高效,因此能够极大地提高电力自动化控制设备的开发效率和产品稳定性。
附图说明
图1为本发明一个实施例的流程图;
图2为本发明一个实施例的示意图;
图3为常见的工业自动化设备的架构图;
图4为采用本发明一个实施例的系统启动后的工作流程图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述。
图1为本发明一个实施例的工业自动化设备通信方法流程图。
图2为本发明一个实施例的通信方法中的数据帧格式示意图。
一种基于CAN总线的工业自动化设备通信方法,用来在工业自动化设备的发送方和接收方之间通信。工业化自动设备是电力设备,例如电力自动化控制装置的板卡。如图3所示,是一组工业设备构成的系统结构图,主控板和多个子板之间通过CAN总线连接。该通信方法基于CAN总线协议,包括如下步骤。
步骤S100:发送方将通信信息封装为Modbus报文,并将Modbus报文划分为一个以上的Modbus报文子段,Modbus报文子段的长度不大于CAN通信协议所定义的扩展帧的数据场的大小。通信信息是板卡之间传递的数据和用于控制的信息。Modbus报文是基于Modbus协议的通信数据包。Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准,因此被大量应用在工业化自动设备中。本实施例中,划分Modbus报文的方式为:以CAN通信协议所定义的数据帧的数据场的大小(通常是8个字节)为标准,将所述Modbus报文依次截断。其他实施例中,还可以采用其他划分标准,例如小于8字节。
步骤S110:发送方将一个以上的Modbus报文子段分别嵌入一个以上的CAN数据帧中;一个以上的CAN数据帧包含表示一个以上的Modbus报文子段相互关联的信息。由于CAN数据帧的数据场最多只能放8个字节长度的数据,所以当Modbus报文的长度小于数据帧的数据场的大小时,可直接将Modbus报文填入该数据场。如果Modbus报文超过8个字节,则相应将Modbus报文划分为一个以上的Modbus报文子段,然后分别嵌入一个以上的CAN数据帧中进行传输。在其他实施例中,当Modbus报文的长度小于或等于数据帧的数据场的大小时,也可以进行划分得到两个以上的CAN数据帧。
步骤S120:发送方按照CAN通信协议向接收方发送所述一个以上的CAN数据帧。将步骤S110中得到的一组相互关联的,即包含一个完整Modbus报文的CAN数据帧发送给接收方。CAN通信协议是本领域熟知技术,具体通信方式不再赘述。
步骤S130:接收方接收一个以上的CAN数据帧,并提取出CAN数据帧的数据场的数据得到一个以上的Modbus报文子段,将相互关联的Modbus报文子段合成为Modbus报文。接收方将所获取的Modbus报文子段合并成完整的Modbus报文。
步骤S140:接收方解析Modbus报文获取通信信息。
参考图2,CAN数据帧包括仲裁场、控制场、数据场以及CRC场,通过在CAN数据帧的数据场内嵌Modbus报文,能够有效地实现设备间通过CAN总线通信,同时又可以利用传统的被大量应用的Modbus协议。由于上述通信方法简单且高效,因此能够极大地提高电力自动化控制设备的开发效率和产品稳定性。
本实施例中,CAN数据帧为CAN通信协议所定义的扩展帧。表1为CAN扩展帧详细架构表,请参考表1:
CAN扩展帧信息为13个字节,包括两部分,信息和数据部分,前5个字节为信息部分,后8个字节为数据部分。
字节1为帧信息,第7位(FF)标示帧格式,在扩展帧中,FF=1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示远程帧;DLC表示在数据帧时实际数据长度。
字节2~5为报文识别码,高29位有效。
字节6~13为数据帧的实际数据,远程帧时无效。
表1
以下结合具体的应用场景说明上述通信方法。
(1)主控板向子板广播信息。这种情况可以发生在主控板使用广播报文查询各子板的参数,此时发送方为主控板,接收方为子板,发送方向接收方发送通信信息的方式为广播,CAN数据帧的仲裁场填写代表广播的标识(ID)。本实施例中,广播报文的标识为0,只有主控板能发广播报文,各子板接收广播报文。
(2)主控板向子板进行定向控制。此时发送方为主控板,接收方为子板,发送方向接收方发送通信信息的方式为单点发送,CAN数据帧的仲裁场填写接收方标识,Modbus报文包含发送方标识、表示主控板对子板操作的功能码、以及主控板对子板的操作指令和主控板对子板的操作指令的参数。Modbus报文格式见表2。
表2
例如子板为遥控子板,此时CAN数据帧的仲裁场的数据为代表接收方为遥控子板的2xx。主控板对子板的操作指令可以为控制IO状态和读参数寄存器的操作指令的其中之一。控制IO状态的操作指令可用于遥控,读参数寄存器的操作指令可用于遥测。
在本实施例中,发送方标识占两个字节,功能码占一个字节,数据长度占两个字节,数据占两个字节。
(3)子板向主控板主动上传信息。此时发送方为子板,接收方为主控板。发送方向接收方发送通信信息的方式为单点发送,CAN数据帧的仲裁场填写接收方标识,Modbus报文包含发送方标识、表示子板对主控板操作的功能码、以及子板对主控板的操作指令和子板对主控板的操作指令的参数。
Modbus报文格式见表3。
表3
在其中一个实施例中,子板为遥控子板,此时CAN数据帧的仲裁场的数据为代表接收方为主控板的1xx。遥控子板对主控板的操作指令为主动上传IO状态、主动上传输入状态、主动上传寄存器值以及主动上传输入寄存器值的操作指令的其中之一。主动上传IO状态可用于主动上传遥控变位信息,主动上传寄存器值可用于主动上传遥测信息。
上述Modbus报文包括原功能码,也包括在原功能代码基础上扩展的功能码,包括功能码30:主动上传IO状态;功能码31:主动上传输入状态;功能码32:主动上传寄存器值;功能码33:主动上传输入寄存器值。Modbus报文内容见表4。在其他实施例中,还可以进行其他扩展。
功能码 | 描述 |
00 | 广播报文 |
01 | 读IO状态(该报文可用于遥控等单个IO节点) |
02 | 读输入状态 |
03 | 读参数寄存器(该报文可用于遥测,参数等) |
04 | 读输入寄存器 |
05 | 控制IO状态 |
06 | 设置单个寄存器 |
07 | 读异常状态(读取该节点的异常信息) |
08 | 诊断(用于CAN网络的自诊断) |
15 | 设置多个IO状态 |
16 | 设置多个寄存器 |
17 | 上传从节点标识 |
30 | 主动上送IO状态(该报文可用于主动上传遥控变位) |
31 | 主动上送输入状态 |
32 | 主动上送寄存器值(该报文可用于主动上传遥测等信息) |
33 | 主动上送输入寄存器值 |
表4
图4为采用本发明一个实施例的系统启动后的工作流程图。
请结合图3和图4。系统上电后,系统各板卡进行初始化(包括初始化板卡间的CAN接口驱动以及板卡间通信相关参数)。主控板在初始化完毕后,延迟一段时间(以确保其他子板初始化完毕),发送广播报文向各子板查询其相关信息,主控板接收各子板上传的回应报文,延迟一段时间,确保报文接收完毕。主控板解析接收到的各子板信息,当主控板自身保存的参数与接收到的子板参数不符,参数差别很大且无法更新,则停止错误参数子板的通信权利;如果参数错误,但是可更新,则更新错误参数子板的相关参数。主控板在校验完相关参数后,通过报文使能各子板运行。
下面为内嵌Modbus报文运用举例:
1.如图2所示,当系统上电初始化后,主控板使用广播报文查询各子板的参数,此时CAN数据帧的标识为0。各子板收到广播报文时,将其参数回复主控板,此时各子板的CAN数据帧标识为主控板标识。当主控板需要修改各子板的参数时,使用功能代码为06的Modbus报文修改目标子板的参数,CAN数据帧的标识为该目标子板的标识。
2.当主控板进行遥控时,使用功能代码为05的Modbus报文。
3.当子板需要上传遥测信息(或上传实时事件时)时,使用功能代码为32的Modbus报文,CAN数据帧的标识为主控板的标识。
4.当遥控变位时,子板使用功能代码为30的Modbus报文。
上述的基于CAN总线的工业自动化设备通信方法,通过在CAN数据帧的数据场内嵌Modbus报文,能够有效地实现设备间进行CAN总线通信,由于所述通信方法简单且高效,因此能够极大地提高电力自动化控制设备的开发效率和产品稳定性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于CAN总线的工业自动化设备通信方法,用来在工业自动化设备的发送方和接收方之间通信,所述通信方法基于CAN总线协议,包括如下步骤:
发送方将通信信息封装为Modbus报文,并将所述Modbus报文划分为一个以上的Modbus报文子段,所述Modbus报文子段的长度不大于CAN通信协议所定义的数据帧的数据场的大小;
发送方将所述一个以上的Modbus报文子段分别嵌入一个以上的CAN数据帧中;所述一个以上的CAN数据帧包含表示所述一个以上的Modbus报文子段相互关联的信息;
发送方按照CAN通信协议向接收方发送所述一个以上的CAN数据帧;
接收方接收所述一个以上的CAN数据帧,并提取出CAN数据帧的数据场的数据得到一个以上的Modbus报文子段,将相互关联的Modbus报文子段合成为Modbus报文;
接收方解析所述Modbus报文获取通信信息。
2.根据权利要求1所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述发送方为主控板,所述接收方为子板;所述发送方向接收方发送通信信息的方式为广播,所述CAN数据帧的仲裁场填写代表广播的标识。
3.根据权利要求1所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述发送方为主控板,所述接收方为子板;所述发送方向接收方发送通信信息的方式为单点发送,所述CAN数据帧的仲裁场填写接收方标识;所述Modbus报文包含发送方标识、表示主控板对子板操作的功能码、以及主控板对子板的操作指令和所述主控板对子板的操作指令的参数。
4.根据权利要求3所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述主控板对子板的操作指令为控制IO状态和读参数寄存器的操作指令的其中之一。
5.根据权利要求4所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述子板为遥控子板,所述控制IO状态的操作指令用于遥控,所述读参数寄存器的操作指令用于遥测。
6.根据权利要求4所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述子板为数据采集子板或通信子板。
7.根据权利要求1所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述发送方为子板,所述接收方为主控板;所述发送方向接收方发送通信信息的方式为单点发送,所述CAN数据帧的仲裁场填写接收方标识;所述Modbus报文包含发送方标识、表示子板对主控板操作的功能码、以及子板对主控板的操作指令和所述子板对主控板的操作指令的参数。
8.根据权利要求7所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述子板对主控板的操作指令为主动上传IO状态、主动上传输入状态、主动上传寄存器值以及主动上传输入寄存器值的操作指令的其中之一。
9.根据权利要求8所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述子板为遥控子板,所述主动上传IO状态用于主动上传遥控变位信息,所述主动上传寄存器值用于主动上传遥测信息。
10.根据权利要求1所述的基于CAN总线的工业自动化设备通信方法,其特征在于,所述CAN数据帧为CAN通信协议所定义的扩展帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310590747.2A CN103647690A (zh) | 2013-11-20 | 2013-11-20 | 基于can总线的工业自动化设备通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310590747.2A CN103647690A (zh) | 2013-11-20 | 2013-11-20 | 基于can总线的工业自动化设备通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103647690A true CN103647690A (zh) | 2014-03-19 |
Family
ID=50252851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310590747.2A Pending CN103647690A (zh) | 2013-11-20 | 2013-11-20 | 基于can总线的工业自动化设备通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103647690A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103901858A (zh) * | 2014-04-02 | 2014-07-02 | 上海国鼎数码科技有限公司 | 一种基于内部总线的电动执行器控制系统及其控制方法 |
CN108551442A (zh) * | 2018-03-29 | 2018-09-18 | 上海工程技术大学 | 对动力电池包bms报文简单快速的翻译与解析方法 |
CN114978797A (zh) * | 2022-05-16 | 2022-08-30 | 深圳渊联技术有限公司 | 数据传输方法和系统 |
-
2013
- 2013-11-20 CN CN201310590747.2A patent/CN103647690A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103901858A (zh) * | 2014-04-02 | 2014-07-02 | 上海国鼎数码科技有限公司 | 一种基于内部总线的电动执行器控制系统及其控制方法 |
CN108551442A (zh) * | 2018-03-29 | 2018-09-18 | 上海工程技术大学 | 对动力电池包bms报文简单快速的翻译与解析方法 |
CN108551442B (zh) * | 2018-03-29 | 2021-03-26 | 上海工程技术大学 | 对动力电池包bms报文简单快速的翻译与解析方法 |
CN114978797A (zh) * | 2022-05-16 | 2022-08-30 | 深圳渊联技术有限公司 | 数据传输方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104521219A (zh) | 工业网络中的消息隧穿 | |
CN106411667A (zh) | 一种基于网络芯片的智能家居多云端控制方法和系统 | |
CN106095376B (zh) | 一种快速组态监控画面的实现方法 | |
CN106603506B (zh) | 基于多现场总线的数据通信方法、设备及系统 | |
CN103123470A (zh) | 用于操作现场设备的方法 | |
CN103647690A (zh) | 基于can总线的工业自动化设备通信方法 | |
CN106873541A (zh) | 一种基于DSP的EtherCAT分布式伺服运动控制系统 | |
EP2618544A1 (en) | Ethernet communication system and method based on mmc/sd interface | |
CN104301906A (zh) | 一种无线传感网络网关与网关之间的中继通信方法 | |
CN104993583A (zh) | 配电自动化设备的通信方法 | |
CN103366540A (zh) | 无线网络动态路径抄表系统及其抄表方法 | |
CN106506303A (zh) | 一种控制器实时以太网EtherCAT的主站系统 | |
CN104601420A (zh) | 一种利用Modbus灵活读取电站数据的方法 | |
CN105955398B (zh) | 一种基于fpga的系统对时装置及对时方法 | |
CN104243246A (zh) | 一种基于ZigBee技术的FlexRay总线测试与优化方法及装置 | |
CN104022934A (zh) | 基于profibus-dp协议的通信设备的通信方法 | |
CN108266861B (zh) | 通过识别卡进行配对组网的多联机空调系统及其组网方法 | |
CN203387692U (zh) | 可将ZigBee信号与Wi-Fi信号进行数据转换的无线网关设备 | |
CN111314284B (zh) | 一种基于配电终端可拓展modbus的规约转换方法及系统 | |
CN205210920U (zh) | 一种rfid读写器 | |
CN105959140A (zh) | 非网管型交换设备的在线调试方法及装置 | |
CN210053415U (zh) | 工业现场通信网关 | |
CN103995475B (zh) | 一种柔性嵌入式被测设备模拟器 | |
CN204679846U (zh) | 协议控制的干节点模块 | |
CN208367472U (zh) | 一种控制器及控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140319 |
|
WD01 | Invention patent application deemed withdrawn after publication |