Тема: PHP modbus
Показать сообщение отдельно
Старый 10.04.2017, 14:51   #9
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: PHP modbus

Цитата:
/**
* readMultipleRegisters
*
* Modbus function FC 3(0x03) - Read Multiple Registers.
*
* This function reads {@link $quantity} of Words (2 bytes) from reference
* {@link $referenceRead} of a memory of a Modbus device given by
* {@link $unitId}.
*
*
* @param int $unitId usually ID of Modbus device
* @param int $reference Reference in the device memory to read data (e.g. in device WAGO 750-841, memory MW0 starts at address 12288).
* @param int $quantity Amounth of the data to be read from device.
* @return false|Array Success flag or array of received data.
*/
Words (2 bytes) соответствует формату числа Integer.
Стандартная программа вентустановки из Конструктора (а видимо у вас именно такая) выводит температуры в формате Real (4 байта).
Вам надо брать 2 последовательных значения из получаемого массива и преобразовывать их в одно значение Real.

Либо изменить программу в контроллере так, чтобы в модбас уходили значения температур в формате Integer (2 байта).

Последний раз редактировалось младшой, 10.04.2017 в 15:13
младшой вне форума   Ответить с цитированием