Показать сообщение отдельно
Старый 10.01.2008, 12:21   #96
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Реализация чтения длинных чисел Modbus

smhcom.hpp, smhproto.hpp отражают состояние дел на 2005 год. Более новых не существует, т.к. ядро перестроено по структуре (оптимизация быстродействия) и из него нельзя выделить BIOS.

Насчёт блоков ввода-вывода, то это происходит как правило не чаще 10 раз в секунду. А то и гораздо реже. От сети требуется иногда гораздо большая частота.

Передаются так:

bool = 1 status (coil/input)
int = 1 register (holding/input)
long = 2 registers (holding/input)
real = 2 registers (holding/input)

real = стандартный четырёхбайтный вещественный тип (IEEE 854-1987).

Очерёдность регистров прямая, очерёдность байтов внутри регистров обратная:
Lo_R(Hi->Lo)->Hi_R(Hi->Lo).


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием