Попробую систематизировать способы обмена битовыми переменными между Мастером, например HMI, и ПР в режиме слейва.
Явного задания BOOL сетевых переменных для слейва в ОЛ нет
Однако ПР поддерживает все функции ModBus для работы с битами - 01, 02, 05, 0F
Захват-1.png
При этом адреса бит находятся в той же памяти что и регистры. Т.е. каждому биту от 8192 до 9215 соответствует какой-либо разряд регистра 512...575.
В качестве мастера в примерах будет выступать панель СП3хх или конфигуратор в режиме онлайн эмуляции, тем боле что в последних версиях ОЛ можно подключать онлайн эмулятор СП300 к ПР через тот же USB кабель, который используем для программирования ПР.
Варианты обмена.
1. Мастер пишет и читает биты в ПРку
Мастер, например, будет читать и писать биты 0х9200, 0х9202, 0х9204, 0х9206. Это биты регистра 575.
Захват-2.png Захват-3.png
Здесь, для демонстрации, используются переключатели с подсветкой, т.е. битовая кнопка + лампа в "одном флаконе".
Нажимая этот элемент производим однократную запись в бит управления, в остальное время имеем непрерывное отображение сотояния этого бита.
В ПР для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 575, нужные разряды - 0, 2, 4 и 6.
Извлекаем биты функцией EXTRACT, или для компактности можно применить макрос из этих функций.
Захват-4.png
2. Мастер одни биты в регистре пишет и читает (например команды), остальные биты этого регистра- только читает (статус или состояние объектов в ПР)
Здесь, для демонстрации, используются переключатели с подсветкой, и обычные битовые лампы
Захват-5.png
В ПР
Захват-6.png
для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 512, нужные разряды - 0, 2, 4 и 6 (в мастере это переключатели с подсветкой).
Остальные разряды этого регистра можно использовать для сообщения мастеру (на лампы) состояния, например блинков.
Для этого пакуем соответствующие биты функциями PUTBIT прямо в сетевой регистр, в нашем случае 512
3. Запись и чтения одних и тех же бит из двух мест.
Например будем писать/читать в регистре 513 разряды 0, 2, 4 с экрана ПР или с экрана панели.
Здесь, для демонстрации, используются переключатели с подсветкой,
Захват-7.png
В ПР эти же биты будем писать/читать с экрана
Захват-9.png
и используем макрос SelChgI
Захват-8.png