Например так, собран из 3 дисплеев, с битами видимости и графич. макросов, работает в эмуляции.
Вид для печати
Спасибо огромное. Буду дальше разбираться.
На примере дисплея из трех цветных текстов https://owen.ru/forum/showthread.php...l=1#post473102
Можно просто отредактировать существующий дисплей под новую задачу
И так, в ранее созданном есть два элемента IF
Первый IF внутренний, который позволяет переключаться между текстами с зеленым(норма) и с желтым(внимание) цветами.
Скрытый текст:
Переключение происходит в зависимости от текущего значения для условия IF - если текущее значение "0", то отображается нижний элемент из списка вложенных текстов, т.е. "Зеленый текст", если текущее значение "1", то отображается верхний элемент из списка вложенных текстов, т.е. "Желтый текст". Сейчас текущее значение формируется по ИЛИ(OR) от двух бит PSP271 и PSB272.
Второй IF внешний, который позволяет переключаться между текстом с красным(авария) цветом и тем текстом, который выдаст внутренний IF
Скрытый текст:
В зависимости от текущего значения для условия внешнего IF - если текущее значение "0", то отображается нижний элемент из списка состояние внутреннего IF, т.е. "Зеленый" или "Желтый" текст, если текущее значение "1", то отображается верхний элемент из списка, т.е. "Красный текст". Сейчас текущее значение формируется по ИЛИ(OR) от двух бит PSP270 и PSB273.
Для решения текущей задачи нужно заменить два существующих ИЛИ(OR) на два юнита сравнения ">".
1. Удаляем существующие ИЛИ(OR)
Скрытый текст:
2. Сделаем нужные функции сравнения на больше, у юнита сравнения два операнда - слева и справа от знака сравнения. В качестве операнда слева в конечном итоге будет использоваться значение регистра PSW256(DWORD), а в качестве операнда справа константы 50 и 70. Константы можно записать прямо в поле операнда.
Скрытый текст:
3. Используем созданные функции сравнения в качестве текущих значений для внутреннего и внешнего IF
Скрытый текст:
4. Вспоминаем, что для левых операндов функций сравнения должен использоваться регистр PSW256, который у нас уже задействован внутри дисплея в качестве "содержания" для тестов. Можно конечно добавить юниты чтение PSW256 прямо в функции сравнения в качестве операндов слева. Но тогда, если нужно будет изменить в настройках дисплея источник данных, придется менять его адрес в трех местах. К счастью язык ГМ позволяет использовать результат чтения регистра в разных местах макроса. Для этого используем действие "Property Float". Это действие позволяет "вынести наружу" и сделать доступным свойства(property) юнитов, находящихся внутри группы или внутри других юнитов. Я его уже использовал при создании дисплея для свойств "содержание" трех текстов и теперь значение "Value" в группе Float Property внешнего IF используют все три текста. Добавим такую возможность и для двух функций сравнения
Скрытый текст:
Доброго времени суток!
Планирую делать проект на СП310 в связке с ПР102. Столкнулся с вопросом, на который не могу найти ответ.
Для объекта требуется довольно "точечное" управление, из-за чего буду использовать ПР102, с её большим количеством входов.
Однако, из-за большого количества кнопок, было принято ещё вдобавок заменить их сенсорной панелью оператора. Итак, вопрос:
Сколько с помощью панели я смогу сделать виртуальных кнопок? Есть ли какое-то ограничение?
У панели ограничений нет, а вот у ПР102, есть ограничения, всего 64 сетевых регистра. https://owen.ru/product/pr102/specifications
64 регистра * 16 бит = 1024 кнопки всего. При условии, что больше ничего передавать не надо.
Только боюсь ПР102 умрёт быстрее, пока передаст все 1024 бита.
Огромное СПАСИБО!!!!!!!
День добрый.
Простенький пример: считывание регистров контроллера. При загрузке в панель начинают расти второй и третий регистры статуса связи (число неполученных ответов и число превышений таймаута). Данных от PLC нет – всё в нулях. При запуске онлайн эмуляции, всё читается нормально.
Это уже повод грешить на панель? Или у меня с ручками не всё в порядке?