E870-EG01是一款由成都亿佰特电子科技有限公司自主研发的可视化编程的边缘计算网关,上一篇文章中提到该设备支持的两个特色节点分别是逻辑转换节点与缓存队列节点。本次将继续介绍其它的特色节点,modbus请求节点与modbus解析节点,这两个节点通常一起使用,简单来说请求节点负责生产用户定义的modbus数据,而解析节点用于解析modbus设备返回的报文,提取其中的数据并且在调试窗口输出。
特色节点介绍:modbus请求节点该节点的功能实际上非常容易理解,在节点内配置一条指令的从机地址、功能码、寄存器的地址、数量和类型。
打个比方,如果我们想要该节点生成一条指令内容为:读取从机地址为5的第三个线圈。那么就要在节点内将从机地址配置为5,功能码为1,寄存器地址为2(寄存器的地址一般从0开始),数量为1,类型为位。最终该节点会生成这样一条指令:05 01 00 02 00 01 5D 8E (该指令的校验位会由节点自动运算)

那么理解了作用与原理后,我们就可以使用串口节点将该节点输出的指令发送到与EG01连接的modbus设备上,使用户可以通过该节点远程操控modbus设备。本节点还可以通过继续添加寄存器配置来生成多条命令,如果想要同时读取2号和3号线圈,就在下方新增一条寄存器地址为3的配置。这样该节点就会按照添加顺序依次输出2条modbus指令。
modbus解析节点解析节点主要用于将modbus设备返回的报文加以解释,并且在调试窗口输出,例如读取到的线圈状态,寄存器的内部数据等。
在设备的实际应用中一般与请求节点一起使用,方便实时读取返回的报文。如果想要解析节点正确解析报文,则需要在该节点内部填写正确的属性。需要解析什么类型的报文就填写什么类型的功能码。

举个例子:我们使用这两个节点读取从机地址为5的5个线圈,并且解析。这意味着需要按照顺序依次解析5条返回的报文,那么就需要添加5个解析节点并且正确配置,如下图:

当然如果用户不需要使用我们的请求节点,想要解析自己的modbus报文,也没问题,只需要将回复的报文输入进该节点并且在该节点后方接一个调试节点就可以将解析后的数据输出了。
更多用法读取参数的部署方式其实都大同小异,我们来介绍如何写入某些参数。例如我们想要对单个线圈进行写入操作,我们先将modbus请求节点内的功能码修改为5号码,然后填写需要修改的线圈的地址,之后我们就需要使用注入节点向modbus请求节点写入相应的值了:例如0和1。由于我们是写数据所以我们并不需要对返回的数据进行解析,所以只需要将请求节点生成的报文通过串口输入到modbus设备中就行:

那么我们如何同时写入多个线圈的值呢?当然可以,我们只需要一个注入节点并且将payload的值修改为文本形式并且以1 1 1 1的方式写入。之后将请求节点的功能码修改为15号码就可以实现同时修改4个线圈了。

根据上述举例,寄存器的写入方式也基本相同,如果依旧存在疑问可以通过鼠标点击任何一个节点,然后在右侧的帮助窗口看到该节点的详细信息,在其下方会有一个“详情请点击”的链接,点击进入后,会进入我们为用户准备的更为具体的节点介绍与数量众多的节点示例,用户均可以通过导入的方式使用官方现成的方案。