Добрый день, коллеги!
Нужна Ваша помощь в диагностике проблемы передачи данных между устройствами ModBUS.
Теперь к сути. Есть проект с четырьмя устройствами: ПР102 (слейв) + ИПП-120 (мастер) + пара датчиков загазованности СО и С3Н8 (слейвы).
Мастер ведет опрос датчиков и получает данные от ПР102, выводит информацию о работе установки на свой экран. При этом вся основная программа (логика) крутится на ПР102, в т.ч. управление внешними устройствами/исполнителями. Так же вывод/включение ламп индикации на панели управления осуществляется тем же ПР102. Датчики передают сведения о своем состоянии (исправность, уровни срабатывания) через битовую маску, а уровень загазованности уже через переменную с плавающей запятой. Так вот в чем проблема - ИПП-120 получает от датчиков, через две битовые функции, сведения об их текущем состоянии и запаковывает эти данные в битовую маску для ПР102. Данные эти меняются в зависимости от текущего состояния каждого датчика. Тут все хорошо. ПР102 получает эти данные, но, по какой-то причине, присваивает полученные значения не всем своим булевым переменным, только четырем из шести. В процессе онлайн отладки видно, что размер переменной уходит от ИПП-120 такой же, каким его получает ПР102. Двум из шести булевым переменным ПР102 не присваивает значения вообще - даже не появляется окошко с размером переменной.
Друзья, я уже и программу переустанавливал, и заново создавал и подключал переменные и функции битовые - не помогло. Может кто-то из Вас сталкивался с такой проблемой? Куда копать?