我试图使用节点红色连接到一个主机,使用Modbus和模拟从设备,当它要求的时候将数据发送给主程序。我试着到处寻找关于如何开始的提示,唯一使用节点红色控制-modbus模块的例子似乎是在模拟从和主或者仅仅是主。我知道模块附带了一个标记为modbus从服务器的示例,但我很困惑modbus flex服务器是否充当从服务器。最初我认为是这样的,但是,由于pi是通过以太网连接到网关的,同事们告诉我,我不应该输入主机的IP地址等,因为只有主机需要从服务器的IP地址,而不是相反的。我不确定是否使用modbus写节点。
发布于 2020-01-14 20:44:57
扩展我的评论,因为这似乎可以回答你的问题。如注释所述,Modbus-Flex-Server中的IP地址字段是“Bind地址”(截图如下),这控制Modbus从服务器将侦听哪个IP地址。将此设置保持为0.0.0.0意味着它将侦听计算机上设置的所有IP地址。
了解如何使用Modbus Server的最佳方法是查看演示流。要从主节点红色菜单中选择“导入”并选择Examples->nod-red-contrib-modbus->Modbus-Slave:
导入的流程演示了一种非常简单的设置寄存器的方法(请注意,您也可以通过Modbus写来实现这一点)。有效载荷看起来类似于:
msg.payload = {
'value': 1,
'register': 'coils',
'address': 0 ,
'disablemsg' : 1
} ;
return msg
会让主程序通过从机的IP地址连接到从机。
对,是这样。如果它们位于相同的框中,只需使用127.0.0.1;如果在不同的框上,则可能还需要添加防火墙规则。
最后,如何检测主程序发送的请求,从而使从站只在被请求时才作出响应?
不太清楚这是什么意思-奴隶只会回应它收到的请求。您可以使用“注入”主题检查modbus寄存器的值,这将导致从节点将其寄存器发送到适当的输出(参见演示)。或者,您可以添加自定义代码,这些代码将在modbus Server属性中接收到Modbus命令时运行。
https://stackoverflow.com/questions/59718324
复制相似问题