Здравствуйте.
Вместо нескольких отдельных переменных/битов, на ПЛК можно создать одну целочисленную переменную с нужными состояниями, например: 1 - работа, 2 - авария, 3 - пауза и затем использовать ее в скада-системе. Это самый лучший и простой способ.
Судя по описанию, Вам необходимо создать индикатор состояния работы оборудования. Для этого можно использовать компоненты "
Фигура", "
Изображение" или "
Текст". "
Кнопка" это сложный компонент, состоящий из множества элементов. Рекомендуем использовать доступные компоненты по назначению. Если требуется управлять значением переменной, то используйте кнопку. Если нужно создать индикатор работы оборудования, то используйте Фигуру, Изображение или Текст.
Компонент "
Текст" по внешнему виду можно настроить в точности как кнопку.
Чтобы написать универсальный скрипт для Вашей задачи, нужно:
1. Разместить на мнемосхеме компонент "
Текст".
2. Разбить целочисленные внешние переменные на биты, как это описано
по ссылке. Тогда с каждым битом переменной можно будет работать как с отдельной переменной.
3. Переменную бита аварии указать в свойстве "Переменная" объекта Текст.
4. Переменную бита работы указать в свойстве "Доп. переменная" объекта Текст.
5.
Создать скрипт с типом события "Универсальный скрипт" и следующим кодом:
begin
if Sender is TM_Text then // проверяем, что Sender это текст
with Sender as TM_Text do // приводим Sender к типу "Text"
begin
if AsBool then // если основная переменная объекта = True, то
begin
Text := "Авария";
Color := clRed;
end else // иначе
if VariableEx.AsBool then // если доп. переменная объекта = True, то
begin
Text := "Работа";
Color := clGreen;
end else // в других случаях
begin
Text := "Пауза";
Color := clGray;
end;
end;
end.
6. Данный скрипт назначить на два события объекта:
"OnDataChange" и "OnDataChangeEx" – это нужно для того, чтобы скрипт выполнялся по изменению двух переменных.
Пример проекта во вложении.
Данный скрипт
универсальный и его можно использовать для любых объектов Текст, которые должны работать аналогичным образом. Так как в проекте предполагается использовать однотипные объекты, то рекомендуем использовать
систему шаблонов.