Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Настроил чтение данных с обоих устройств.
Но с одного устройства, при чтении регистров функцией 02, почему-то состояние в программе отображается или FALSE или <Значение выражения не может быть найдено.>.
Следующий по списку регистр, как положено FALSE или TRUE. Что может быть не так?
зкр_5.jpg
В протоколе Modbus биты передаются в виде битовой маски, где конкретный "coil" или, как в вашем случае, "discrete input" занимает именно 1 бит.
В CODESYS тип BOOL занимает 8 бит, из которых значимым является только младший.
Если каким-то образом изменяются другие биты переменной типа BOOL - то отладчик понимает, что что-то пошло не так (<Значение выражения не может быть найдено>).
Вам нужно под указателем разместить массив переменных типа BYTE (а не BOOL), и уже из них извлекать отдельные биты (и если нужно - копировать их в BOOL-переменные).
Последний раз редактировалось Евгений Кислов; 17.09.2021 в 06:22.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Я что-то совсем запутался, как организован регистр для функции 02.
Программой Modbus Poll данные читаю правильно, номера регистров и значения соответствуют спецификации производителя.
Я в программе читаю с контроллера массив в 234 регистра Discrete Input.
Регистры с адресом 2 и 9 у меня индикация с контроллера состояния вентилятора и насоса. При это на 1 регистре считывается значение 2, когда включается насос.
Регистры с адресом 97, 98, 99 должны быть в значении 1 (TRUE), а читает нули.
Давайте по TeamViewer посмотрим?Я что-то совсем запутался
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Здравствуйте, Коллеги! Может кто знает, как создавать собственные шаблоны для Modbus устройств? Очень удобно если, например, используешь ПЧ в нескольких проектах. Не нужно набирать по несколько раз. Заранее спасибо