我试图访问通过ModbusTcp发送的PLC数据int16,但是我只接收到2x int8(作为两个寄存器而不是一个)。有谁知道如何将可读寄存器从2x int8更改为一个int16? 预先感谢。
https://github.com/krakorj/phpmodbus/blob/cebe783e922232100b9f1b74f33613cdbd4bc809/Phpmodbus/ModbusMaster.php
答案 0 :(得分:0)
使用PhpType类将接收到的Modbus数据(字节数组)转换为PHP数据类型。
$array = $modbus->readMultipleRegisters(1, 1, 1);
$val_signedInt = PhpType::bytes2signedInt($array);