我试图弄清楚如何从 modbus 设备(Powerscout 24)中读取不同元素的不同值。这里有一本手册说
处理一个元素
PowerScout 24 有八个元素。Modbus 和 BACnet 各自使用不同的方式来指定 PS24 上的元素。在 Modbus 模式下,十进制网络开关设置计量元件“A”的基地址。计量元件“B”到“H”的 Modbus 地址总是比之前的元件高 1。例如,如果旋转地址开关设置为 001,则计量元件“A”寄存器值将在 Modbus 地址 001 处访问,元素“B”寄存器将在 Modbus 地址 002 处访问,元素“C”在地址 003 处访问,并且很快。
所以根据我的理解,如果我想读取元素 A(或从站 1)上寄存器 4012 的值,我会读取 4012 的保持寄存器。
如果我想读取元素 B,寄存器将是 4013?但这怎么可能,4013被用于不同的值——排量PF系统。(查看第 65 页顶部)
我试过使用这个库EasyModbusTCP
ModbusClient modbusClient = new ModbusClient("192.168.1.250", 502); //Ip-Address and Port of Modbus-TCP-Server
modbusClient.Connect();
int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(4000,1);
//Read 10 Holding Registers from Server, starting with Address 1
我已经对此进行了测试,它的工作原理是它只能读取元素 A(从站 1)的寄存器。我无法弄清楚如何读取其他元素的寄存器。
我检查了库的另一部分(RTU - 从串行端口读取),这定义了一个要读取的从属设备,但我需要通过 TCP 而不是串行读取设备,所以我不能以这种方式实现它。
谁能解释我如何通过 TCP 读取不同的元素?