Modbus协议文件的编码、解码方法及编码器、解码器技术

技术编号:15441349 阅读:134 留言:0更新日期:2017-05-26 06:32
一种Modbus协议文件的编码、解码方法及编码器、解码器,所述编码方法包括:获取第一功能码以及对应的发送帧所需参数;将所述发送帧所需参数映射生成参数对象,并保存在参数字典中;从预设的功能码字典中查找与所述第一功能码对应的第一功能对象;从所述第一功能对象中读取所述发送帧所需参数的参数描述信息;根据所述发送帧所需参数的参数描述信息,从所述参数字典中查找对应的参数对象;确定所述参数对象的数据在所述发送帧的有效数据中的相应位置;生成发送帧并发送至从设备。上述方案能够降低采用Modbus协议通信时编码和解码过程中的复杂度,减少出错概率。

Encoding, decoding method, encoder and decoder of Modbus protocol file

Encoding and decoding method of Modbus protocol document and encoder, decoder, the encoding method includes obtaining the first transmission frame function code and the corresponding parameters needed in the transmission frame; the required parameters to generate object parameter mapping, and stored in the dictionary first function parameters; object lookup from preset function code in the dictionary and the first function code; reading the parameters sent from the first frame function object parameters needed to describe description information; information according to the parameter of the transmission frame parameters required, check the parameters from the object to find the corresponding parameters in the dictionary; determine the corresponding position of the effective data of the the parameter object data in the transmission of the frame; generating a transmission frame and sent to the equipment. The proposed scheme can reduce the complexity of encoding and decoding in Modbus protocol communication and reduce the error probability.

【技术实现步骤摘要】
Modbus协议文件的编码、解码方法及编码器、解码器
本专利技术涉及协议处理领域,尤其涉及一种Modbus协议文件的编码、解码方法及编码器、解码器。
技术介绍
Modbus协议是应用于电子控制器上的一种通用语言。通过Modbus协议,控制器相互之间、控制器经由网络与其他设备之间可以实现通信。控制器通信使用主从技术,即主设备初始化查询,其他从设备根据主设备查询提供的数据做出相应的反应。Modbus通信方式建立了主设备查询的格式:从设备地址、功能代码、所有要发送的数据以及校验码。从设备回应消息采用Modbus通信方式进行,所述从设备回应消息包括确认要行动的域、要返回的数据和校验码。PC主机是一个典型的主设备。PC软件在实现Modbus协议通信时,需要针对该协议实现相应的编码和解码。在每一个编码函数中都需要针对协议的具体组成结构进行组合,重复的数组操作较多,容易出错。
技术实现思路
本专利技术解决的技术问题是减少采用Modbus协议通信时编码和解码过程中的复杂度,降低出错概率。为解决上述技术问题,本专利技术实施例提供一种Modbus协议文件的编码方法,所述Modbus协议文件包括从设备基本信息以及协议数据,所述编码方法包括:获取第一功能码以及对应的发送帧所需参数;将所述发送帧所需参数映射生成第一参数对象,并保存在第一参数字典中;从预设的功能码字典中查找与所述第一功能码对应的第一功能对象;从所述第一功能对象中读取所述发送帧所需参数的参数描述信息;根据所述发送帧所需参数的参数描述信息,从所述第一参数字典中查找对应的第一参数对象;确定所述第一参数对象的数据在所述发送帧的有效数据中的相应位置;生成发送帧并发送至从设备。可选的,所述功能码字典采用如下方式生成:读取所述Modbus协议文件;对所述Modbus协议文件中的协议数据进行解析,生成与所述协议数据一一对应的功能对象;读取预设的特殊事件处理方法,获取与所述预设的特殊事件一一对应的功能对象;根据所述与所述协议数据一一对应的功能对象以及与所述预设的特殊事件一一对应的功能对象,建立功能对象与功能码的映射关系,生成所述功能码字典。可选的,在从所述第一参数字典中查找对应的第一参数对象之后,还包括:判断是否存在预设的特殊处理事件;当存在所述特殊处理事件时,对所述查找到的对应第一参数对象的数据进行更新。可选的,在从所述第一功能对象中读取所述发送帧所需参数的参数描述信息之前,还包括:判断是否存在发送帧预处理事件;当存在所述发送帧预处理事件时,对所述发送帧进行预处理操作。可选的,在生成发送帧之前,还包括:判断是否存在发送帧后处理事件;当存在所述发送帧后处理事件时,对所述发送帧进行后处理操作。可选的,所述生成发送帧,包括:根据所述从设备基本信息、所述发送帧中的数据部分的有效数据,生成所述发送帧。本专利技术实施例还提供了一种Modbus协议文件的解码方法,包括:接收从设备发送的帧;从接收帧中解析出第二功能码以及所述接收帧的有效数据;从预设的功能码字典中查找与所述第二功能码对应的第二功能对象;从所述第二功能对象中读取所述接收帧中的参数描述信息;根据所述接收帧中的参数描述信息,确定所述接收帧的有效数据中所述从设备返回参数对应的字符数组;将所述从设备返回参数对应的字符数组映射生成第二参数对象,并保存在第二参数字典中;对所述第二参数字典进行解析,得到解码结果。可选的,在从接收帧中解析出第二功能码以及所述接收帧的有效数据之前,还包括:对所述接收帧进行校验,并对校验结果进行判断;当所述校验结果正确时,执行从所述接收帧中解析出第二功能码以及所述接收帧的有效数据的操作;当所述校验结果错误时,返回错误信息并结束解码操作。可选的,在将所述从设备返回参数对应的字符数组映射生成第二参数对象之前,还包括:判断是否存在预设的特殊处理事件;当存在所述预设的特殊处理事件时,对所述从设备返回参数对应的字符数组进行更新。可选的,在确定所述接收帧的有效数据中所述从设备返回参数对应的字符数组之前,还包括:判断是否存在接收帧预处理事件;当存在所述接收帧预处理事件时,对所述接收帧进行预处理操作。可选的,在对所述第二参数字典进行解析之前,还包括:判断是否存在接收帧后处理事件;当存在所述接收帧后处理事件时,对所述接收帧进行后处理操作。可选的,所述对所述第二参数字典进行解析,包括:从所述第二参数字典中读取所述第二参数对象;获取所述第二参数对象对应的字符数组;对所述字符数组进行解析,得到所述解码结果。本专利技术实施例提供了一种编码器,用于对Modbus协议文件进行编码,所述Modbus协议文件包括从设备基本信息以及协议数据,所述编码器包括:获取单元,用于获取第一功能码以及对应的发送帧所需参数;第一映射单元,用于将所述发送帧所需参数映射生成第一参数对象,并保存在第一参数字典中;第一查找单元,用于从预设的功能码字典中查找与所述第一功能码对应的第一功能对象;第一读取单元,用于从所述第一功能对象中读取所述发送帧所需参数的参数描述信息;第二查找单元,用于根据所述发送帧所需参数的参数描述信息,从所述第一参数字典中查找对应的第一参数对象;第一确定单元,用于确定所述第一参数对象的数据在所述发送帧的有效数据中的相应位置;第一生成单元,用于生成发送帧;发送单元,用于将所述发送帧发送至从设备。可选的,所述功能码字典采用如下方式生成:读取所述Modbus协议文件;对所述Modbus协议文件中的协议数据进行解析,生成与所述协议数据一一对应的功能对象;读取预设的特殊事件处理方法,获取与所述预设的特殊事件一一对应的功能对象;根据所述与所述协议数据一一对应的功能对象以及与所述预设的特殊事件一一对应的功能对象,建立功能对象与功能码的映射关系,生成所述功能码字典。可选的,所述编码器还包括:第一更新单元,用于在所述第二查找单元从所述第一参数字典中查找对应的第一参数对象之后,判断是否存在预设的特殊处理事件;当存在所述特殊处理事件时,对所述查找到的对应第一参数对象的数据进行更新。可选的,所述编码器还包括:第一预处理单元,用于当存在发送帧预处理事件时,对所述发送帧进行预处理操作。可选的,所述编码器还包括:第一后处理单元,用于当存在发送帧后处理事件时,对所述发送帧进行后处理操作。可选的,所述第一生成单元,用于根据所述从设备基本信息、所述发送帧中的数据部分的有效数据,生成所述发送帧。本专利技术实施例还提供了一种解码器,用于对Modbus协议文件进行解码,包括:接收单元,用于接收从设备发送的帧;第一解析单元,用于从接收帧中解析出第二功能码以及所述接收帧的有效数据;第三查找单元,用于从预设的功能码字典中查找与所述第二功能码对应的第二功能对象;第二读取单元,用于从所述第二功能对象中读取所述接收帧中的参数描述信息;第二确定单元,用于根据所述接收帧中的参数描述信息,确定所述接收帧的有效数据中所述从设备返回参数对应的字符数组;第二生成单元,用于将所述从设备返回参数对应的字符数组映射生成第二参数对象,并保存在第二参数字典中;第二解析单元,用于对所述第二参数字典进行解析,得到解码结果。可选的,所述解码器还包括:校验单元,用于在所述第一解析单元从接收帧中解析出第二功能码以及所述接收帧的有效数据之前,对所述接收帧进本文档来自技高网...
Modbus协议文件的编码、解码方法及编码器、解码器

【技术保护点】
一种Modbus协议文件的编码方法,其特征在于,所述Modbus协议文件包括从设备基本信息以及协议数据,所述编码方法包括:获取第一功能码以及对应的发送帧所需参数;将所述发送帧所需参数映射生成第一参数对象,并保存在第一参数字典中;从预设的功能码字典中查找与所述第一功能码对应的第一功能对象;从所述第一功能对象中读取所述发送帧所需参数的参数描述信息;根据所述发送帧所需参数的参数描述信息,从所述第一参数字典中查找对应的第一参数对象;确定所述第一参数对象的数据在所述发送帧的有效数据中的相应位置;生成发送帧并发送至从设备。

【技术特征摘要】
1.一种Modbus协议文件的编码方法,其特征在于,所述Modbus协议文件包括从设备基本信息以及协议数据,所述编码方法包括:获取第一功能码以及对应的发送帧所需参数;将所述发送帧所需参数映射生成第一参数对象,并保存在第一参数字典中;从预设的功能码字典中查找与所述第一功能码对应的第一功能对象;从所述第一功能对象中读取所述发送帧所需参数的参数描述信息;根据所述发送帧所需参数的参数描述信息,从所述第一参数字典中查找对应的第一参数对象;确定所述第一参数对象的数据在所述发送帧的有效数据中的相应位置;生成发送帧并发送至从设备。2.如权利要求1所述的Modbus协议文件的编码方法,其特征在于,所述功能码字典采用如下方式生成:读取所述Modbus协议文件;对所述Modbus协议文件中的协议数据进行解析,生成与所述协议数据一一对应的功能对象;读取预设的特殊事件处理方法,获取与所述预设的特殊事件一一对应的功能对象;根据所述与所述协议数据一一对应的功能对象以及与所述预设的特殊事件一一对应的功能对象,建立功能对象与功能码的映射关系,生成所述功能码字典。3.如权利要求1所述的Modbus协议文件的编码方法,其特征在于,在从所述第一参数字典中查找对应的第一参数对象之后,还包括:判断是否存在预设的特殊处理事件;当存在所述特殊处理事件时,对所述查找到的对应第一参数对象的数据进行更新。4.如权利要求1所述的Modbus协议文件的编码方法,其特征在于,在从所述第一功能对象中读取所述发送帧所需参数的参数描述信息之前,还包括:判断是否存在发送帧预处理事件;当存在所述发送帧预处理事件时,对所述发送帧进行预处理操作。5.如权利要求1所述的Modbus协议文件的编码方法,其特征在于,在生成发送帧之前,还包括:判断是否存在发送帧后处理事件;当存在所述发送帧后处理事件时,对所述发送帧进行后处理操作。6.如权利要求1所述的Modbus协议文件的编码方法,其特征在于,所述生成发送帧,包括:根据所述从设备基本信息、所述发送帧中的数据部分的有效数据,生成所述发送帧。7.一种Modbus协议文件的解码方法,其特征在于,包括:接收从设备发送的帧;从接收帧中解析出第二功能码以及所述接收帧的有效数据;从预设的功能码字典中查找与所述第二功能码对应的第二功能对象;从所述第二功能对象中读取所述接收帧中的参数描述信息;根据所述接收帧中的参数描述信息,确定所述接收帧的有效数据中所述从设备返回参数对应的字符数组;将所述从设备返回参数对应的字符数组映射生成第二参数对象,并保存在第二参数字典中;对所述第二参数字典进行解析,得到解码结果。8.如权利要求7所述的Modbus协议文件的解码方法,其特征在于,在从接收帧中解析出第二功能码以及所述接收帧的有效数据之前,还包括:对所述接收帧进行校验,并对校验结果进行判断;当所述校验结果正确时,执行从所述接收帧中解析出第二功能码以及所述接收帧的有效数据的操作;当所述校验结果错误时,返回错误信息并结束解码操作。9.如权利要求7所述的Modbus协议文件的解码方法,其特征在于,在将所述从设备返回参数对应的字符数组映射生成第二参数对象之前,还包括:判断是否存在预设的特殊处理事件;当存在所述预设的特殊处理事件时,对所述从设备返回参数对应的字符数组进行更新。10.如权利要求7所述的Modbus协议文件的解码方法,其特征在于,在确定所述接收帧的有效数据中所述从设备返回参数对应的字符数组之前,还包括:判断是否存在接收帧预处理事件;当存在所述接收帧预处理事件时,对所述接收帧进行预处理操作。11.如权利要求7所述的Modbus协议文件的解码方法,其特征在于,在对所述第二参数字典进行解析之前,还包括:判断是否存在接收帧后处理事件;当存在所述接收帧后处理事件时,对所述接收帧进行后处理操作。12.如权利要求7所述的Modbus协议文件的解码方法...

【专利技术属性】
技术研发人员:卢昊裘巍
申请(专利权)人:上海东软载波微电子有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1