欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于EdgeX Foundry的Modbus与dnp3的协议转换方法独创技术0字

基于EdgeX Foundry的Modbus与dnp3的协议转换方法

2021-04-25 10:15:15

附图说明" src="/d/file/p/2020/11-20/5a080cdba5ba21cb955b8dd5e6ba17e5.gif" />

基于EdgeX Foundry的Modbus与dnp3的协议转换方法

  技术领域

  本发明涉及协议解析转换技术领域,尤其是涉及了基于EdgeX Foundry的Modbus与dnp3的协议转换方法。

  背景技术

  目前,工业协议众多,而现场常有的PLC(可编程逻辑控制器)、无线收发器、测量仪表等设备可能仅支持一种(如仅支持Modbus)或若干种工业协议。若设备增加支持的协议,复杂度和成本都将大幅增加。若能简单与另一种工业协议(如dnp3)转换,将大大扩大设备(或模拟器)的应用场景。

  EdgeX Foundry是一个中立于供应商的开源项目,为物联网边缘计算构建了一个通用的开放结构。在开源项目中已实现Modbus客户端的驱动,只要修改相应的配置文档便可实现与Modbus设备(或模拟器)通信。

  发明内容

  为解决现有技术的不足,实现工业协议之间转换的目的,本发明采用如下的技术方案:

  基于EdgeX Foundry的Modbus与dnp3的协议转换方法,包括如下步骤:

  S1,第一协议数据转换成第二协议数据,包括如下步骤:

  S11,EdgeX Foundry中设置配置文件,使得Edgex Foundry可与第二协议设备通信;

  S12,第一协议从站模块从第一协议主站接收第一协议数据包,并将其解析为应用数据;

  S13,第一协议从站模块调用EdgeX Foundry命令下发应用数据,EdgeX Foundry根据第二协议,为应用数据组第二协议数据包并发送给第二协议设备;

  S14,第二协议设备解析并执行从EdgeX Foundry接收到的第二协议数据包;

  S2,第二协议数据转换成第一协议数据,包括如下步骤:

  S21,EdgeX Foundry中设置配置文件,使得Edgex Foundry可与第二协议设备通信;

  S22,第二协议设备发送第二协议数据包至EdgeX Foundry;

  S23,EdgeX Foundry解析从第二协议设备接收到的第二协议数据包,得到格式数据并发送给第一协议从站模块;

  S24,第一协议从站模块解析从EdgeX Foundry接收到的格式数据,并提取格式数据中的字段数据作为应用数据,为应用数据组第一协议数据包发送给第一协议主站。

  现有的设备支持的协议有限,利用EdgeX Foundry实现的设备驱动,在原协议栈的基础上应用层实现命令的调用和解析格式数据,达到协议之间的解耦,无需更改原设备,降低了工作量和开发成本,扩大设备的应用场景。

  所述EdgeX Foundry中设置第二协议设备配置文件,定义第二协议设备的值和操作方法,EdgeX Foundry通过调用命令对值和操作方法进行读写操作,EdgeX Foundry根据配置文件接收并解析第二协议数据包,返回格式数据,实现Edgex Foundry与第二协议设备的通信。

  所述命令是curl命令,所述读写操作是EdgeX Foundry提供PUT和GET接口,通过curl命令分别调用PUT接口实现参数的下发,调用GET接口实现读取命令的下发,及解析第二协议数据包并得到格式数据,curl命令可带参数,可以将解析出来的应用数据作为参数放入curl命令,在执行curl命令调用PUT接口时即可将应用数据下发。

  所述格式数据是JSON格式数据。

  本发明的优势和有益效果在于:

  本申请的协议转换方法,不需要将两种协议在设备(或模拟器)上同时实现,且两种协议间解耦,不需要更改原设备(或模拟器等),通过应用层实现Edgex Foundry中设备(或模拟器等)协议相关命令的调用即可转换成另一协议,通过解析Edgex Foundry返回的数据作为另一协议相应的应用数据来源即可转换成设备(或模拟器等)的协议,而Edgex Foundry已实现设备(或模拟器等)的相关驱动,只需简单配置使得Edgex Foundry可与设备(或模拟器等)通信即可,工作量较小,增加了设备(或模拟器等)支持的协议,扩大了设备(或模拟器等)的应用场景,增强了设备(或模拟器等)的灵活性,降低了设备(或模拟器等)的使用的复杂度。

  附图说明

  图1是本发明中dnp3协议到Modbus协议的转换流程图。

  图2是本发明中Modbus协议到dnp3协议的转换流程图。

  具体实施方式

  以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

  基于EdgeX Foundry的Modbus与dnp3的协议转换方法,目的在于针对现有的PLC(可编程逻辑控制器)、无线收发器、测量仪表等设备支持Modbus协议而不支持dnp3协议,为扩大这类设备的应用场景,利用EdgeX Foundry实现Modbus与dnp3的协议转换,该方法利用EdgeX Foundry达到Modbus和dnp3解耦、降低开发成本的效果,同时该方法不仅限于Modbus协议和dnp3协议的转换,同样可适用于其他工业协议间的转换。

  方法涉及支持Modbus协议的设备(或模拟器等)、dnp3从站协议模块及EdgeXFoundry,dnp3从站协议模块通过dnp3协议与外部dnp3主站通信,dnp3从站协议模块通过EdgeX Foundry与支持Modbus协议的设备(或模拟器等)通信。其中EdgeX Foundry已实现Modbus客户端驱动,EdgeX Foundry为各个微服务都提供了相应的RESTful API接口供调用,通过这些接口dnp3从站协议模块可以从设备读取数据和控制设备等操作,设置设备配置文件DeviceProfile,定义设备的值和操作方法,这些值和操作方法可以是读取或写入,读取或写入都是通过curl命令,配置后dnp3从站协议模块可通过特定的命令与支持Modbus协议的设备(或模拟器等)通信。配置文件中定义数据类型,数值是否可读写,数值是否要放大,最大、最小和默认的取值范围,返回数值的形式,读和写操作的说明,第二协议设备的IP地址、端口等信息。

  如图1、2所示,转换过程如下:dnp3从站协议模块接收到外部dnp3主站的数据包时,解析数据包取出应用数据,dnp3从站协议模块根据该应用数据调用EdgeX Foundry命令,例如curl命令,应用数据包括要下发的参数、读取数据的命令等,Edgex Foundry为此提供PUT和GET接口,都是通过curl命令调用的,curl命令中可带下发参数,curl命令调用PUT接口,将参数下发,或者调用GET接口,下发读取Modbus协议的设备(或模拟器等)采集数据的命令,Edgex Foundry平台内部执行该条curl命令时会根据Modbus协议组成相应的Modbus数据包发送至支持Modbus协议的设备(或模拟器等),因为Edgex Foundry平台已实现Modbus客户端驱动,由此实现从dnp3到Modbus的协议转换;当支持Modbus协议的设备(或模拟器等)发送Modbus数据时,Edgex Foundry根据前期配置好的配置文件自动接收并解析Modbus数据包成JSON格式的数据返回,dnp3从站协议模块解析JSON格式数据,取出所需的字段后,将其作为dnp3应用数据源,组相应的dnp3数据包发给外部dnp3主站通信,由此实现从Modbus到dnp3的协议转换。

  从以上转换方法可看出Modbus设备(或模拟器等)与dnp3协议模块相互独立,不需要更改原设备(或模拟器等),dnp3协议模块在原dnp3协议栈的基础上应用层实现EdgexFoundry中Modbus相关命令的调用以及解析Edgex Foundry返回的JSON数据作为dnp3相应的应用数据来源即可,而Edgex Foundry已实现Modbus客户端相关的驱动,只要简单配置使得Edgex Foundry可与Modbus设备(或模拟器等)通信即可,工作量较小。

  同理,可将上述两种协议换成其他工业协议,如OPCUA等。

  以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

《基于EdgeX Foundry的Modbus与dnp3的协议转换方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)