-
Обмен с ТРМ101
Опрашиваю ТРМ101 с ПЛК100, по RS-485, протокол Овен. Связь есть, но почему-то не передаёт значение, и выдаёт ошибку. Руководствовался списком параметров ТРМ101 отсюда http://www.owen.ru/uploads/list_para...1_v02.0021.zip
Для связи пользуюсь биб-кой OwenNet. Хочу, например, прочитать текущую уставку. Согласно списку, имя параметра SP, хэш 9107 (в 16-ричной), тип данных F24. Вызываю из биб-ки ФБ owen_get_real вот так:
owengr(
Enable:=TRUE,
Addr:=40,
AddrLen:=A8BIT,
Name:='SP',
Index:=37127,
RealType:=FLOAT24,
ComHandle:=portn,
TimeOut:=tout,
Complete=>cmpl,
Value=>zap,
wTime=>ww,
Error=>err);
(Enable:=TRUE, так как данный код стоит у меня под условным оператором, и работает, пока не получен признак завершения операции). zap обьявлена как REAL. Index = 37127 - это десятичное представление хэша 0x9107. Операция завершается без таймаута, но Value = 0, а Error = 49. Посмотрел по описанию протокола, 49 (dec) - "Размер поля данных не соответствует ожидаемому".
Что не так делаю? Правильно ли при вызове ФБ присваиваю имя параметра и индекс?
-
Причём пробовал ставить Index 0, а имя параметра писать строчными буквами, как в примере работы с биб-кой. Результат тот же.
-
Вложений: 1
В техподдержке ответили:
Хэш-свертка - это хэш-код имени, т.е. тоже самое что и имя, только в ином представлении. Индекс - это отдельный компонент. В поле индеск Вам необходимо указать значение "0" для Вашего сучая. Если будете читать параметр, для которого не используется индекс, то в поле индекс указываете значение 0хFFFF (65535).