发表于:2021/1/4 15:25:30
#0楼
西门子S7-200PLC,可以通过编写程序,定义为Modbus主从站,但是有好多注意的细节,稍微注意,可能导致程序写错,这样调试时会带来不必要的麻烦。
下面介绍下编程从站程序要注意的细节部分:
1.如下图程序,非常简单的一个Modbus从站的程序
2.Modbus从站协议指令本身占用V数据存储区,所以接收数据的缓冲区,如4xxxx地址区,通过V区来映射地址的话,最少应该从V780开始,也就是说指令引脚为HoldSt~,绝对地址最小地址为&VB780。很多人不注意这里,直接定义为&VB0,这样是不对的。
如下图帮助信息:
3.也可以从编程软件里的“程序块”-“库”-“库存储区分配”,通过“建议地址”来自动分配。
附:Modbus寄存器地址与S7-200寄存器地址对应关系:
如有需要将ModbusRTU协议转ModbusTCP的,可使用德嘉ModbusTCP/ModbusRTU协议转换器,只需要简单的设置参数即可,如上位机使用WinCC、组态王、力控等直接通过ModbusTCP协议访问PLC内部数据。
下面介绍下编程从站程序要注意的细节部分:
1.如下图程序,非常简单的一个Modbus从站的程序
2.Modbus从站协议指令本身占用V数据存储区,所以接收数据的缓冲区,如4xxxx地址区,通过V区来映射地址的话,最少应该从V780开始,也就是说指令引脚为HoldSt~,绝对地址最小地址为&VB780。很多人不注意这里,直接定义为&VB0,这样是不对的。
如下图帮助信息:
3.也可以从编程软件里的“程序块”-“库”-“库存储区分配”,通过“建议地址”来自动分配。
附:Modbus寄存器地址与S7-200寄存器地址对应关系:
如有需要将ModbusRTU协议转ModbusTCP的,可使用德嘉ModbusTCP/ModbusRTU协议转换器,只需要简单的设置参数即可,如上位机使用WinCC、组态王、力控等直接通过ModbusTCP协议访问PLC内部数据。