源数据与目标数据相互转换的Modbus适配器的实现方法技术

技术编号:19341758 阅读:41 留言:0更新日期:2018-11-07 13:45
本发明专利技术公开了一种源数据与目标数据相互转换的Modbus适配器的实现方法,通过将Modbus数据作为源数据,将传感/执行数据作为目标数据,实现Modbus数据与传感/执行数据之间的相互转换,方法由目标数据属性描述库、源数据收发模块、目标数据收发模块、收发控制模块以及数据转换模块构成的转换系统实现;方法包括将源数据转换成目标数据以及将目标数据转换成源数据的过程;在源数据与目标数据的相互转换过程中,还包括寄存器映射过程、寄存器分类和排序过程以及源数据收发模块对源数据的收发过程;本发明专利技术的方法在源数据与目标数据的相互转换过程中屏蔽了源数据处理的细节,使得应用可以直接使用这些数据所表达的传感/执行信息,简化了应用程序的开发。

Implementation method of Modbus adapter for mutual conversion of source data and target data

The invention discloses an implementation method of Modbus adapter for converting source data to target data. By using Modbus data as source data and sensing/execution data as target data, the mutual conversion between Modbus data and sensing/execution data is realized. The method consists of target data attribute description library, source data transceiver and receiver module. The realization of conversion system consisting of block, target data receiving and receiving module, transceiving and controlling module and data conversion module. The method includes the process of converting source data into target data and target data into source data. In the process of converting source data to target data, register mapping process and register mapping process are also included. The method of the present invention shields the details of source data processing in the process of mutual conversion between source data and target data, so that applications can directly use the sensing/execution information expressed by these data and simplify the development of application programs.

【技术实现步骤摘要】
源数据与目标数据相互转换的Modbus适配器的实现方法
本专利技术属于物联网及M2M(Machine-to-MachineMan,一种以机器终端智能交互为核心的、网络化的应用与服务)
,用于源数据与目标数据之间的相互转换,尤其涉及一种源数据与目标数据相互转换的Modbus适配器的实现方法。
技术介绍
随着物联网概念的不断发展,物联网相关的需求和应用也与日俱增。在物联网平台的相关应用中,处于感知层的终端设备是读写数据的第一个环节,包括传感器和执行器。终端设备数量众多,且种类多种多样,接口和通信协议也千差万别。其中Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。但是不同型号的Modbus设备数据存储的格式不同,因此一旦需要增添不同型号的Modbus设备,就需要对这一特定的设备型号进行开发适配工作。上述缺陷不仅增加了工作量以及成本,而且破坏了物联网平台的适用性。
技术实现思路
本专利技术的主要目的在于提供一种源数据与目标数据相互转换的Modbus适配器的实现方法,可以实现Modbus数据和目标数据之间的转换,使得应用可以直接使用这些数据所表达的传感/执行信息,简化了应用程序的开发;具体技术方案如下:一种源数据与目标数据相互转换的Modbus适配器的实现方法,通过将Modbus数据作为源数据,将传感/执行数据作为目标数据,实现Modbus数据与传感/执行数据之间的相互转换,方法由目标数据属性描述库、源数据收发模块、目标数据收发模块、收发控制模块以及数据转换模块构成的转换系统实现;方法包括将源数据转换成目标数据以及将目标数据转换成源数据的过程;其中,源数据转换成目标数据的过程包括步骤:S11:查询判断源数据是否为原始数组定义,若是则将源数据透明传输至指定系统的目标数据存储地址中,否则进入下一步;S12:取指定系统的所述目标数据地址,查询判断是否有基本源数据定义,如果有,系统则获取基本源数据作为目标数据进入下一步;否则系统将此目标数据记为0,并返回步骤S1直至获得目标数据的地址;S13:查询判断步骤S2中获取的基本源数据是否有高位扩展,有则获取基本源数据的高位扩展数据,然后将目标数据与高位扩展数据合并作为新的目标数据再次进行查询判断所述新的目标数据是否有高位拓展,直至判断出新的目标数据不具有小数扩展数后进入下一步,否则直接进入下一步;S14:查询判断步骤S2中获取的基本源数据是否有小数扩展,有则获取基本源数据的小数扩展数据,然后合并目标数据和小数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有小数扩展,直至判断出新的目标数据不具有小数扩展后进入下一步,否则直接进入下一步;S15:查询判断步骤S2中获取的基本源数据是否有指数扩展,有则获取基本源数据的指数扩展数据,然后合并目标数据和指数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有指数扩展,直至判断出新的目标数据不具有指数扩展后进入下一步,否则直接进入下一步;S16:查询判断步骤S2中获取的基本源数据是否有符合扩展,有则获取基本源数据的符号扩展数据,然后合并目标数据和符号扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有符号扩展,直至判断出新的目标数据不具有符号扩展后进入下一步,否则直接进入下一步;S17:检查判断是否所有的目标数据均处理完,若完成则返回所有目标数据地址以及对应的目标数据,否则重复步骤S2~S6;目标数据转换成源数据的过程包括步骤:S21:查询判断目标数据是否为数组定义,若是则按目标数据地址的映射直接发送至Modbus设备,否则进入下一步;S22:任意取一目标数据,查询判断其是否有基本数据映射,有则将映射的基本数据进行数据处理后进入下一步,否则丢弃该数据,并记录该数据的连续地址;S23:查询判断步骤S22中的基本数据是否有高位扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S24:查询判断步骤S22中的基本数据是否有小数扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S25:查询判断步骤S22中的基本数据是否有指数扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S26:查询判断步骤S22中的基本数据是否有符号扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S27:检查判断是否取完所有的目标数据,若取完,则进入下一步,否则,重复步骤S21~S26;S28:判断步骤S21~S26过程中是否有数据需要拼接,若有则综合步骤S22~S26过程中数据处理产生的拼接记录向Modbus设备发出读取命令后读取这些需要拼接的数据,并一一进行拼接操作;S29:将步骤S28的所有拼接数据拼接完成后,将所有处理完成的数据按地址的映射关系发送至Modbus设备。进一步的,步骤S22~S26的所述数据处理包括步骤:将目标数据转换后形成源数据的Modbus地址和数据本身一一对应形成键-值对,并记录保存至存储器;检查判断所有需要写入的源数据是否为Modbus整字,若不是整字则进入下一步,否则结束数据处理操作;将源数据地址和需要拼接数据部分的bit序列记录保存至存储器,然后结束数据处理操作。进一步的,在源数据转换成目标数据,或目标数据转换成源数据前,方法还包括寄存器映射过程,具体步骤为:通过所述目标数据属性描述数据库查找一个目标数据在所述Modbus设备上的的所有映射寄存器;将所述寄存器计入寄存器列表中;检查是否查找完所有的目标数据,是则返回寄存器列表,否则重新从所述目标数据属性描述数据库中查找目标数据的映射寄存器。进一步的,在源数据转换成目标数据,或目标数据转换成源数据前,方法还包括寄存器分类和排序过程,具体步骤为:对所述寄存器列表从地址低位至地址高位进行排序;对寄存器列表中的寄存器地址进行查重,删除所述寄存器列表中重复的寄存器地址;判断寄存器的地址是否连续,若连续,则将地址连续的寄存器连接进行分割,得到寄存器列表的子列表,并将得到的所述子列表均放入一个新的母列表中,所述母列表中含有若干内部地址连续寄存器的所述子列表,并返回所述母列表。进一步的,在源数据转换成目标数据,或目标数据转换成源数据前,方法还包括所述源数据收发模块接收源数据的过程,具体步骤为:设定一时间阈值,判断所述源数据收发模块接收Modbus设备接收源数据后返回的数据是否超时;若超时,则抛出异常并返回,否则对收到的Modbus设备发送的数据进行解析,源数据收发模块将寄存器与对应读取到的寄存器内部的数值作相关联操作;将所有解析后得到的数据存储至一数据列表中,并返回数据列表。与现有技术相比,本专利技术的有益效果为:能够实现新型号的Modbus设备的快速适配,简化或消除对这一特定的设备型号进行开发适配工作;能够为Modbus终端设备在生命周期内在物联网平台上提供统一的管理,降低了产品使用难度和技术门槛,从而可以促进物联网及其产品的推广;能够将工业上已广泛使用的Modbus设备接入物联网平台,丰富了物联网平台的使用场景,方便物联网应用在工业上的开发与运用,为新的商务模式提供了良好的平本文档来自技高网...

【技术保护点】
1.源数据与目标数据相互转换的Modbus适配器的实现方法,通过将Modbus数据作为源数据,将传感/执行数据作为目标数据,实现Modbus数据与传感/执行数据之间的相互转换,其特征在于,方法由目标数据属性描述库、源数据收发模块、目标数据收发模块、收发控制模块以及数据转换模块构成的转换系统实现;方法包括将源数据转换成目标数据以及将目标数据转换成源数据的过程;其中,源数据转换成目标数据的过程包括步骤:S11:查询判断源数据是否为原始数组定义,若是则将源数据透明传输至指定系统的目标数据存储地址中,否则进入下一步;S12:取指定系统的所述目标数据地址,查询判断是否有基本源数据定义,如果有,系统则获取基本源数据作为目标数据进入下一步;否则系统将此目标数据记为0,并返回步骤S1直至获得目标数据的地址;S13:查询判断步骤S2中获取的基本源数据是否有高位扩展,有则获取基本源数据的高位扩展数据,然后将目标数据与高位扩展数据合并作为新的目标数据再次进行查询判断所述新的目标数据是否有高位拓展,直至判断出新的目标数据不具有小数扩展数后进入下一步,否则直接进入下一步;S14:查询判断步骤S2中获取的基本源数据是否有小数扩展,有则获取基本源数据的小数扩展数据,然后合并目标数据和小数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有小数扩展,直至判断出新的目标数据不具有小数扩展后进入下一步,否则直接进入下一步;S15:查询判断步骤S2中获取的基本源数据是否有指数扩展,有则获取基本源数据的指数扩展数据,然后合并目标数据和指数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有指数扩展,直至判断出新的目标数据不具有指数扩展后进入下一步,否则直接进入下一步;S16:查询判断步骤S2中获取的基本源数据是否有符合扩展,有则获取基本源数据的符号扩展数据,然后合并目标数据和符号扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有符号扩展,直至判断出新的目标数据不具有符号扩展后进入下一步,否则直接进入下一步;S17:检查判断是否所有的目标数据均处理完,若完成则返回所有目标数据地址以及对应的目标数据,否则重复步骤S2~S6;目标数据转换成源数据的过程包括步骤:S21:查询判断目标数据是否为数组定义,若是则按目标数据地址的映射直接发送至Modbus设备,否则进入下一步;S22:任意取一目标数据,查询判断其是否有基本数据映射,有则将映射的基本数据进行数据处理后进入下一步,否则丢弃该数据,并记录该数据的连续地址;S23:查询判断步骤S22中的基本数据是否有高位扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S24:查询判断步骤S22中的基本数据是否有小数扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S25:查询判断步骤S22中的基本数据是否有指数扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S26:查询判断步骤S22中的基本数据是否有符号扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S27:检查判断是否取完所有的目标数据,若取完,则进入下一步,否则,重复步骤S21~S26;S28:判断步骤S21~S26过程中是否有数据需要拼接,若有则综合步骤S22~S26过程中数据处理产生的拼接记录向Modbus设备发出读取命令后读取这些需要拼接的数据,并一一进行拼接操作;S29:将步骤S28的所有拼接数据拼接完成后,将所有处理完成的数据按地址的映射关系发送至Modbus设备。...

【技术特征摘要】
1.源数据与目标数据相互转换的Modbus适配器的实现方法,通过将Modbus数据作为源数据,将传感/执行数据作为目标数据,实现Modbus数据与传感/执行数据之间的相互转换,其特征在于,方法由目标数据属性描述库、源数据收发模块、目标数据收发模块、收发控制模块以及数据转换模块构成的转换系统实现;方法包括将源数据转换成目标数据以及将目标数据转换成源数据的过程;其中,源数据转换成目标数据的过程包括步骤:S11:查询判断源数据是否为原始数组定义,若是则将源数据透明传输至指定系统的目标数据存储地址中,否则进入下一步;S12:取指定系统的所述目标数据地址,查询判断是否有基本源数据定义,如果有,系统则获取基本源数据作为目标数据进入下一步;否则系统将此目标数据记为0,并返回步骤S1直至获得目标数据的地址;S13:查询判断步骤S2中获取的基本源数据是否有高位扩展,有则获取基本源数据的高位扩展数据,然后将目标数据与高位扩展数据合并作为新的目标数据再次进行查询判断所述新的目标数据是否有高位拓展,直至判断出新的目标数据不具有小数扩展数后进入下一步,否则直接进入下一步;S14:查询判断步骤S2中获取的基本源数据是否有小数扩展,有则获取基本源数据的小数扩展数据,然后合并目标数据和小数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有小数扩展,直至判断出新的目标数据不具有小数扩展后进入下一步,否则直接进入下一步;S15:查询判断步骤S2中获取的基本源数据是否有指数扩展,有则获取基本源数据的指数扩展数据,然后合并目标数据和指数扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有指数扩展,直至判断出新的目标数据不具有指数扩展后进入下一步,否则直接进入下一步;S16:查询判断步骤S2中获取的基本源数据是否有符合扩展,有则获取基本源数据的符号扩展数据,然后合并目标数据和符号扩展数形成新的目标数据,并再次进行查询判断所述新的目标数据是否具有符号扩展,直至判断出新的目标数据不具有符号扩展后进入下一步,否则直接进入下一步;S17:检查判断是否所有的目标数据均处理完,若完成则返回所有目标数据地址以及对应的目标数据,否则重复步骤S2~S6;目标数据转换成源数据的过程包括步骤:S21:查询判断目标数据是否为数组定义,若是则按目标数据地址的映射直接发送至Modbus设备,否则进入下一步;S22:任意取一目标数据,查询判断其是否有基本数据映射,有则将映射的基本数据进行数据处理后进入下一步,否则丢弃该数据,并记录该数据的连续地址;S23:查询判断步骤S22中的基本数据是否有高位扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S24:查询判断步骤S22中的基本数据是否有小数扩展,有则对改基本数据进行数据处理后进入下一步,否则直接进入下一步;S25:查询判断步骤S22中的基...

【专利技术属性】
技术研发人员:闵丽娟卢捍华束丰
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

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

1