有没有人知道一种能自动设置MODBUS地址的方案?在我的情况下,我将有许多奴隶供电,需要一些自动的方式分配他们的地址。
发布于 2021-09-11 14:22:10
我知道这是一个旧的职位,但我只是偶然发现,我想我会给出我的答案,以防有人试图这样做,现在或将来。如果目标是将一个从ID分配给一个新的从服务器(并且您正在为从设备开发固件),则可以将该ID存储在一个可以写入新ID的保存寄存器中。这确实要求:
发布于 2015-08-25 22:06:40
你是说奴隶身份证吗?如果是这样,那是不可能的.SlaveID对于客户端能够在串行网络上对所述从站进行寻址至关重要。(RS485串行网络,大概.)
因此,甚至无法发送Modbus消息并将其寻址到SlaveID 1,然后以某种方式将该设备设置为SlaveID 1,因为在这种情况下,所有设备都会尝试响应。更不用说,Modbus中没有给奴隶分配ID的方法.从另一方面看..。
您是在说执行某种类型的查询来询问从设备有哪些Modbus寄存器吗?同样,没有任何Modbus方法可以做到这一点,但是使用一些代码,您可以查询40001,如果您得到一个错误2返回,那么您就知道注册是不可用的。如果然后循环遍历所有寄存器,跟踪哪些寄存器返回无错误,那么您可以执行一种形式的“自动配置”,但是.老实说?我不建议这样做,而且我认为这样做也没有多大价值,因为您不仅必须知道寄存器号,您必须知道寄存器中的数据实际上意味着什么!
你到底想做什么?也许还有另外一种方法来实现这个目标呢?
发布于 2020-06-25 20:04:13
你想要的: Modbus RTU中的自动从ID分配。
您真正想要的是:使用Modbus TCP的常量公共从ID。
简而言之,所有Modbus从ID都被设置为固定的公共值,然后将它们与支持链接本地寻址或DHCP之类的TCP堆栈连接起来。然后,可以动态地处理TCP地址分配,同时为每个单元保留一个常数SlaveID。
这里有三个大致的选项,取决于您已经拥有的硬件:
https://stackoverflow.com/questions/13299291
复制相似问题