上位程序通过modbus tcp读写plc数据的问题

img


如图。
1,请问上位机程序读写的plc寄存器,是输入寄存器还是保持寄存器,或者两种都可能?
2,布尔值是通过读写线圈来读写的,还是通过读写输入或者保持寄存器来读写的?
3,不同厂牌规格的寄存器,比如西门子s7系列、三菱、欧姆龙等,地址定义是不是差别很大?

1.上位机程序可以读写PLC的输入寄存器和保持寄存器,具体使用哪种寄存器取决于PLC的编程和应用需求。输入寄存器通常用于保存PLC输入信号的状态,而保持寄存器则用于存储PLC内部计数器、定时器等数据。不同的PLC品牌和型号对应的输入寄存器和保持寄存器地址可能不同,需要根据PLC的说明文档或编程手册进行具体配置。
2.布尔值通常通过读写线圈来进行读写操作,而不是通过读写输入或保持寄存器。线圈通常用于存储PLC输出信号的状态,其地址可以是单个位,也可以是多个位,与具体PLC品牌和型号有关。
3.不同品牌和型号的PLC寄存器地址定义确实存在差异。例如,西门子S7系列PLC使用的寄存器地址通常是以DB、MB、EB、FB等为前缀的十六进制地址,而三菱PLC则采用的是字地址和位地址的方式。因此,在进行PLC读写操作时,需要根据具体PLC品牌和型号的说明文档或编程手册来确定正确的寄存器地址。

问题1: 两种都有可能。
问题2:布尔值一般是通过读写线圈来读写的,但是也有通过读写输入或者保持寄存器然后按位获取得到。
问题3:不同系列的PLC差别较大,同一系列的PLC地址定义相差不大。
以上是我个人所遇到的真实情况,希望你能采纳。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^