一种用于工业物联网终端的数据通信协议及实现方法与流程

文档序号:16686566发布日期:2019-01-22 18:22阅读:222来源:国知局
一种用于工业物联网终端的数据通信协议及实现方法与流程
本发明涉及物联网终端系统开发领域,具体涉及一种用于工业物联网终端的数据通信协议及实现方法。
背景技术
:工业物联网是信息化与工业化的融合,是二者发展到一定阶段的必然产物,将信息技术广泛应用在工业生产的各个环节,实现现代信息技术与传统工业生产的有机结合是未来工业发展的方向,也就是工业的第四次革命。传统的工业设备一般并不具备信息互联的功能,工业生产环节中的各种参数信息往往需要人工查看、记录并分析。在人工成本日趋升高,而对生产效率也要求提高的情况下,当前很大程度上依赖于人工现场操作生产数据的方式,难以满足现代化生产的管理精度和实时性的要求,对于传统工业设备的信息网络化升级变得迫在眉睫。工业物联网终端可以广泛地应用于工业现场数据的采集及现场设备的控制,需要远程通信进行参数设置和查询操作。工业物联网终端设备多为使用单片机开发的嵌入式系统,主控芯片的计算能力较弱,而在一个稍复杂的工控系统中,可以查询和设置的参数往往能达到几十个,这给通讯功能的开发带来了不便,一套灵活简便的数据通信协议就显得尤为重要。技术实现要素:为了解决上述存在的问题,本发明提供了一种用于工业物联网终端的数据通信协议及实现方法,使用本发明的通信协议及实现方法可以方便、直观和灵活地进行查询或设置操作。为了实现上述目的,本发明采用以下技术方案:一种用于工业物联网终端的数据通信协议,该通信协议能够用于上位机和物联网终端之间的通信,上位机发送给物联网终端的为包含查询或设置参数数据内容的指令,物联网终端接收到来自上位机的指令后能够返回该指令所指定的参数数据,所述上位机和物联网遵循同一种数据通信协议格式,该数据通信协议格式由数据帧同步标识、字节数、内容开始标识符、数据内容、内容结束标识符和数据帧校验6部分组成。进一步地,数据帧同步标识为两个字节,分别为十六进制的0x55和0xaa,起到表示一个通信数据帧开始的作用;一旦在空闲时检测收到连续的十六进制数值0x55和0xaa,即可开始进入到处理一条新的数据帧的流程。进一步地,字节数表示接下来还有多少字节需要接收,其范围为2-255。进一步地,内容开始标识符用“[”表示,内容结束标识符用“]”表示。进一步地,数据内容为实际需要传输的通信数据,每组参数的格式为“【参数名】=【数值】”,多组参数之间使用英文“,”字符隔开,在数据帧字节数不超长的前提下参数的组数和出现的顺序不作要求,参数名可以为任意长度的字母和数字组合,数值可以为确定的值或英文字符“?”,当数值为确定的值时表示要设置或查询的返回值,当数值为“?”时表示需要查询该参数的值,查询和设置操作可以同时出现。进一步地,数据帧校验使用crc16校验算法,占用2个字节。进一步地,对于数据发送端,在发完crc16校验字节后需要停顿至少3个字符的发送时间才能开始发送下一条数据帧;对于数据接收端在检测到空闲后才能开始新的一条数据帧的接收。进一步地,上位机可以设置和查询系统运行状态、模拟量输入与输出、数字量输入与输出、继电器开关控制等操作,物联网终端可以对上述操作进行返回相应的状态数据;系统运行状态包含系统启停、故障、设备信息等模块,用于综合描述系统的整体运行状态;模拟量输入与输出模块,可以输入电流和电压量,用于采集现场仪表的各种电流和电压量信号;也可以输出电流信号,用于控制其它设备;数字量输入与输出模块,可以输入和输出数字量,用于采集或控制一些现场设备;继电器开关模块,可以实现设备的通断。本发明还提供了以上所述的数据通信协议的实现方法,包括数据帧的接收流程和数据帧的解析流程两个步骤。进一步地,数据帧的接收流程为:如果在空闲状态时连续接收到了“0x55”和“0xaa”,那么接着再接收完指定的字节数,接收完数据后作crc16校验,根据最后两个字节判断crc校验是否通过。进一步地,数据帧的解析流程为:将已定义的参数名存为数组,遍历该数组,每次取出一个参数名,在数据帧中尝试寻找是否有该参数名的参数对,如果有则取出值,根据该值是具体的数值还是字符“?”来判断是要设置参数还是查询参数。本发明的有益效果是:(1)本发明摒弃现有标准通信协议的繁复、臃肿等不足,针对工业物联网终端常用的通信功能,提供一种灵活简便的数据通信协议格式及实现方法,其结构清晰、灵活高效、方便扩展、易于开发修改与维护。附图说明图1为本发明的通信内容传递方向示意图。图2为本发明的通信协议数据帧结构图。图3为本发明的数据帧中数据内容可以存在的内容形式的示意图。图4为本发明的数据帧接收流程图。图5为本发明的数据帧解析流程图。具体实施方式以下结合附图对本发明的技术方案做进一步详细说明,应当指出的是,具体实施方式只是对本发明的详细说明,不应视为对本发明的限定。本发明的一种用于工业物联网终端的数据通信协议,该通信协议能够用于上位机和物联网终端之间的通信,上位机发送给物联网终端的为包含查询或设置参数数据内容的指令,物联网终端接收到来自上位机的指令后能够返回该指令所指定的参数数据,上位机和物联网终端遵循同一种数据通信协议格式。上位机和物联网终端所使用的协议框架为:数据帧同步标识字节数内容开始标识符数据内容内容结束标识符数据帧校验上位机可以设置和查询系统运行状态、模拟量输入与输出、数字量输入与输出、继电器开关控制等操作,物联网终端可以对上述操作进行返回相应的状态数据。①系统运行状态包含系统启停、故障、设备信息等模块,用于综合描述系统的整体运行状态。②模拟量输入与输出模块,可以输入电流和电压量,用于采集现场仪表的各种电流和电压量信号;也可以输出电流信号,用于控制其它设备。③数字量输入与输出模块,可以输入和输出数字量,用于采集或控制一些现场设备。④继电器开关模块,可以实现设备的通断。该数据通信协议格式主要由数据帧同步标识、字节数、内容开始标识符、数据内容、内容结束标识符和数据帧校验6部分组成,其中,(1)数据帧同步标识为两个字节,分别为十六进制的0x55和0xaa,起到表示一个通信数据帧开始的作用。一旦在空闲时检测收到连续的十六进制数值0x55和0xaa,即可开始进入到处理一条新的数据帧的流程。选用十六进制数值0x55和0xaa是因为在数据比特流中具有“0”和“1”相间的特征,能够很好地排除干扰信息,提高数据帧开始的鉴别能力。(2)字节数表示接下来还有多少字节需要接收,其范围为2-255。(3)内容标识符用于标识数据内容的起始和结束,分别用“[”和“]”表示。(4)数据内容为实际需要传输的通信数据。每组参数的格式为“【参数名】=【数值】”,多组参数之间使用英文“,”字符隔开,在数据帧字节数不超长的前提下参数的组数和出现的顺序不作要求。参数名可以为任意长度的字母和数字组合,数值可以为确定的值或英文字符“?”,当数值为确定的值时表示要设置或查询的返回值,当数值为“?”时表示需要查询该参数的值,查询和设置操作可以同时出现。(5)数据帧校验使用crc16校验算法,占用2个字节,确保一条数据帧的完整和正确性。该数据通信协议,对于数据发送端,在发完crc16校验字节后需要停顿至少3个字符的发送时间才能开始发送下一条数据帧;对于数据接收端在检测到空闲后才能开始新的一条数据帧的接收。停顿主要是为了方便检测一条数据帧完毕,可以开始解析数据帧。本发明还提供了以上所述的数据通信协议的具体实现方法,分为数据帧的接收流程和数据帧的解析流程两个步骤:①数据帧的接收流程如图4所示:如果在空闲状态时连续接收到了“0x55”和“0xaa”,那么接着再接收完指定的字节数,接收完数据后作crc16校验,根据最后两个字节判断crc校验是否通过。②数据帧的解析流程如图5所示:将已定义的参数名存为数组,遍历该数组,每次取出一个参数名,在数据帧中尝试寻找是否有该参数名的参数对,如果有则取出值,根据该值是具体的数值还是字符“?”来判断是要设置参数还是查询参数。工业物联网终端通信的主要内容就是查询并返回当前测量到的现场数据以及对系统参数的设置,使用本发明所述的通信协议及实现方法可以方便、直观和灵活地进行查询或设置操作。可按照图2和图3所示的数据格式编写嵌入式系统的通信数据帧,按照图4所示的数据帧接收流程接收数据帧,按照图5所示数据帧解析流程,解析数据帧中对参数的设置或查询操作。首先需要确定参数名,为了直观起见,参数名可以为任意长度的大写字母加数字的组合,一般选择5个字符长度以内为宜。在本实施例中,规定部分参数名“wd”代表设定的温度;参数名“xzt”代表系统状态;参数名“dqwz”代表当前位置;参数名“kg2”代表第二路开关的状态。确定好参数名后,接着要确定每个参数名的数值类型,数值类型一般为数字型或字符型。本实施例中参数名“wd”和“dqwz”的类型为数字,可以为整数,也可以为小数;参数名“xzt”为字符型,“run”代表运行,“stop”代表停止,“error”代表故障;参数名“kg2”为字符型,“on”代表打开,“off”代表关闭。以下为具体使用的实例:(一)上位机向工业物联网终端查询数据。如果向发往工业物联网终端的通信数据帧的数据内容中填入“wd=?,xzt=?,dqwz=?,kg2=?”,说明需要查询温度、系统状态、当前位置和第二路开关的值。那么工业物联网终端经过解析并读取相关数值后将会返回所有查询参数的值,如“wd=31,xzt=run,dqwz=2.56,kg2=off”,代表设定的温度为31摄氏度、系统为运行状态、当前位置为2.56米,第二路开关为关闭状态。(二)上位机向工业物联网终端设置参数。如果向发往工业物联网终端的通信数据帧的数据内容中填入“wd=28,xzt=stop,dqwz=1.23,kg2=on”,说明需要将温度设定为28摄氏度、将系统停止运行、将当前位置移动到1.23米,开启第二路开关,那么工业物联网终端将会执行各个参数对应所需的操作。(三)本发明的通信协议还可以同时查询和设置参数,随意调换各参数出现的位置和增减参数的个数。例如向发往工业物联网终端的通信数据帧的数据内容中填入“kg2=?,xzt=run,dqwz=?”,说明需要进行查询第二路开关的状态、设置系统为运行状态和查询当前位置的操作。那么工业物联网终端将会根据参数值,进行对应的设置或查询操作,并返回要查询的参数值。上述指令工业物联网终端将会执行启动系统操作并返回“kg2=off,dqwz=3.60”,代表已查询到第二路开关为关闭状态,当前位置在3.60米。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1