Показать сообщение отдельно
Старый 15.01.2021, 14:15   #1
neiiron
Новичок
 
Регистрация: Sep 2013
Сообщения: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Получение данных от Болида через шлюз С2000-ПП

Добрый день,
поставили довольно интересную задачу в плане интеграции с оборудованием Болид. Вентустановки должны менять производительность в зависимости от кол-ва взятых/снятых с охраны разделов Болида. Решение - получение от Болида событий постановки/снятия раздела и по количеству снятых с охраны определять требуемую производительность или вообще останавливаться, если все на охране. Для получения событий используется преобразователь протоколов С2000-ПП (Болид), который по протоколу modbus-rtu может выдавать данные стороннему оборудованию. С2000-ПП является слейвом, SMH4 - мастером.
Собственно сам вопрос: чтение выполняется командой 03 - Чтение значений из нескольких регистров хранения (Read Holding Registers). Формат пакета:
event-rd.png
Как правильно организовать таблицу Модбас слейва (С2000-ПП) для получения данного пакета (24 байт)? Разместил последовательно регистры типа int с чтением по запросу и привязал вход запроса к одному выходу, как требует help для организации получения данных в одном запросе.
map.jpg
Что-то не так делаю в организации регистров или запроса? При запросе должны вернуться данные описания последнего события, а возвращаются нулевые значения. Данные о кол-ве событий в буфере, номера первого и последнего считываются успешно и при появлении событий в системе инкрементируются.
Проект опроса - во вложении.
Спасибо.
Вложения
Тип файла: psl mb_s2000-pp.psl (176.3 Кбайт, 21 просмотров)
neiiron вне форума   Ответить с цитированием