По всей видимости, вы что-то делаете не так. Если вы детально сформулируете проблему, а также выложите проект для СПК и скриншоты настроек вашего OPC-сервера (как я понимаю, данные в скаду вы передаете с помощью него), то постараюсь помочь .
Я думаю все делаем правильно. Проверяли программой Modscan. Запросы делались 4-й функцией. При этом то что в СПК было привязано к QW битами - читалось правильно, то что в СПК было привязано к QW словами - читались 0. Грешим на версию CodeSys - v3.5 SP5 Patch5. Я просто направил это сообщение, чтобы Вы проверили не осталась ли эта ошибка в новой версии.Вложение 24514
Есть возможность проверить не Modscan'ом, а чем-то еще? Мне доводилось опрашивать input registers СПК через ворды по TCP различным устройствами (другими СПК, панелями оператора, виртуальным контроллером CODESYS, OPC-серверами), и проблем никогда не возникало.
Если возможности нет, я могу проверить у себя - но тогда прошу прислать архив проекта (на e.kislov@owen.ru) и подробную инструкцию в скриншотах, что вы делаете в утилите Modscan (еще лучше - саму утилиту тоже, чтобы избежать ситуации разных версий).
Upd. - ну, собственно, у меня получилось:
Вложение 24515
Моя версия компонента Ethernet: 3.4.2.0
Моя версия компонента Modbus TCP Slave Device: 3.5.2.0
У нас те же версии, к сожалению то что не работает мы уже стерли, а вместо этого есть работающий вариант: union (real, 2 word), затем word раскладываем на 16 булевских переменных, и затем эти булевские переменные привязываем к битам QW - все работает!
В предыдущей версии программы было: union (real, 2 word), затем word привязываем к слову QW - читаются нули!
Понятно. Но, как видите, у меня работает и привязка WORD к QW - с той же Modscan. Чтобы локализовать проблему, нужны эксперименты именно с вашим проектом и версией утилиты. Если это вам интересно, пишите на мою почту.
Посмотрите так надо увеличивать количество входов и выходов