Всем доброго времени суток. Я новичок-самоучка в делах автоматизации на должности наладчик КИПиА.
Для предприятия возникла необходимость в создании проектов в SCADA-системе. Работаю в MasterSCADA, опрос регистров осуществляю с помощью MasterOPC.
Возникла проблема с приборами фирмы "ТЕПЛОПРИБОР" - Диск-250М.
Проблема в том, что не удается получить корректное значение тега, а именно значение измеряемой температуры.
На данный момент конфигурация следующая:
Опрос по интерфейсу rs-485
1) Протокол - Modbus ASCII (RTU не поддерживает);
2) скорость - 9600, без контроля четности, 1 стоп-бит, 8 бит данных;
3) Адрес опрашиваемого тега 0x0000 ( т.к. в документации указано "данные последнего измерения 0х00-0х01, float -число");
тип данных в устройстве -float, тип данных на сервере - float;
4) Регион input registers (т.к. в документации указано "команда 0x04 служит для чтения регистров данных)
5) Перестановка байтов значении - использовал все типы перестановки байт
*старшим байтом вперед - значение непостоянное, постоянно меняется, некорректное;
*старшим словом вперед - значение = 0;
* старшим двойным словом вперед - значение = -3093.xxxx , непостоянное, постоянно меняется, некорректное;
*без перестановки байт - значение непостоянное, постоянно меняется, некорректное;
Качество связи GOOD.
Так же пробовал изменять межсимвольный таймаут 0, 50, 300, 500, 700, 1000, 1500, 2000, 3000, корректного значения получить не удалось.
Как мне поступить в сложившейся ситуации, подскажите пожалуйста?
Может есть у кого-нибудь найдутся для меня рекомендации, что нужно сделать, чтобы я смог корректно опросить регистры 0x00-0x01.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Помощь в создании конфигурации OPC-сервера
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 20 янв 2022, 03:35
- Имя: Егор
- Страна: Россия
- город/регион: Иркутск
- Поблагодарили: 2 раза
-
- освоился
- Сообщения: 233
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 15 раз
- Поблагодарили: 38 раз
Помощь в создании конфигурации OPC-сервера
Я не знаток систем, с которыми вы работаете. Но из общего опыта могу предположить, что проблема в правильном преобразовании двух регистра Modbus типа Word (4 байта) в тип Float (4 байта). Погуглите формат представления числа float в регистрах word.egorsubbotin писал(а): ↑20 янв 2022, 04:06 3) Адрес опрашиваемого тега 0x0000 ( т.к. в документации указано "данные последнего измерения 0х00-0х01, float -число")
-
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 20 янв 2022, 03:35
- Имя: Егор
- Страна: Россия
- город/регион: Иркутск
- Поблагодарили: 2 раза
Помощь в создании конфигурации OPC-сервера
Благодарю за ответ.
Проблема решена, было установлено неверное чередование байт.
При опросе последнего измеренного значения нужно запрашивать 2 регистра начиная с адреса 0x00 командой 0x04.
Байты данных идут от младшего байта к старшему, т.е. для значения 0xAABBCCDD в шестнадцатиричной системе исчисления, где 0xAA -старший байт, а 0xDD - младший, порядок байт в ответе будет следующий: 0xDD 0xCC 0xBB 0xAA.
Проблема решена, было установлено неверное чередование байт.
При опросе последнего измеренного значения нужно запрашивать 2 регистра начиная с адреса 0x00 командой 0x04.
Байты данных идут от младшего байта к старшему, т.е. для значения 0xAABBCCDD в шестнадцатиричной системе исчисления, где 0xAA -старший байт, а 0xDD - младший, порядок байт в ответе будет следующий: 0xDD 0xCC 0xBB 0xAA.