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