Изучение SCADA-системы InTouch 10 (на примере разработки верхнего уровня АСУ ТП выпаривания метанола в водном реакторе), страница 47

Заметьте: Справа от нулей и десятичной точки должны быть только нули. Например: 000.00 – верно, #0#0#/0# - неверно.

По технологии InTouch генерация SmartSymbol-ов выполняется только из ячеек. Ячейки могут состоять из простых объектов, кнопок и символов. Для создания подходящей ячейки были применены простые объекты – прямоугольники, текст, рамки. Настройка анимации производится до объединения элементов в ячейку. Для текста задана анимация Value Display – Analog по аналоговому тегу TagName (где TagName – любой аналоговый тег). Формат отображения данных #.#. Обязательно отображаются целые первого разряда и  десятые доли, разряды младше и старше – при их наличии. Для красных рамок задана анимация Visible по дискретным тегам TagNamealX для каждой рамки. Набор составляющих ячейку компонентов отображен на рисунке В3.12.

Рисунок В3.12 – Набор компонентов для создания ячейки

Далее компоненты размещаются соответствующим образом на рабочей области и объединяются в ячейку – см рисунок В3.13.

Рисунок В3.13 – Объединение компонентов в ячейку

На основе полученной ячейки генерируется SmartSymbol – рисунок В3.14.

Рисунок В3.14 – Генерация SmartSymbol

Автоматически открывается окно браузера SmartSymbol. В окне браузера представлены имеющиеся в приложении объекты SmartSymbol, осуществляется их удаление, копирование, экспортирование и переименование. Вид браузера SmartSymbol показан на рисунке В3.15.

Рисунок В3.15 – Браузер SmartSimbol

В отличие от ячейки SmartSymbol поддерживает изменение размеров своего графического изображения. В отличие от символа SmartSymbol сохраняет все настройки и связи анимации входящих в него компонентов. Командами Substitute Strings…  и Substitute Tags для SmartSymbol настраиваются теги и подписи.

Поведение рамок описывается сценарием. Для этого объявляется серия дискретных тегов. Ниже приведен пример для тега level, такой же сценарий применяется для каждого аналогового тега, задействованного в проекте:

IF level.UnAck  THEN

    IF levelal1==1 AND levelal2==0 AND levelal3 == 0 THEN

        levelal1=0;

        levelal2=1;

    ELSE

        IF levelal1==0 AND levelal2==1 AND levelal3 == 0 THEN

            levelal3=1;

            levelal2=0;

        ELSE

            IF levelal1==0 AND levelal2==0 AND levelal3 == 1 THEN

                levelal3=0;

                levelal1=1;

            ELSE

                IF levelal1==0 AND levelal2==0 AND levelal3 == 0 THEN

                    levelal1=1;

                ENDIF;

            ENDIF;

        ENDIF;

    ENDIF;

ENDIF;

Согласно данной программе при поступлении сигнала тревоги от тега level меняется значение дискретных тегов, отвечающих за видимость красных рамок.

Скопируйте из проекта оригинала цифровые табло для индикации расхода. Данные табло представляют собой ячейки, собранные из стандартных прямоугольников (серого и черного), текстового объекта (зеленого цвета) и объекта Wizards → Frames → Single Insert Frame . Разместите в рабочем окне стандартные кнопки (расположенные на панели инструментов). Окно редактора подписей кнопок выполняется командой контекстного меню (вызывается нажатием правой кнопки мыши над объектом) Substitute → Substitute Strings…Разместите кнопки «Воздух», «Топливо», «Расход», «Приход», «Сброс», «Участок», а также «+» и «-». Сгруппируйте кнопки, настройте их размер и разместите их по нижнему краю рабочего окна в соответствии с рисунком В3.16.

Рисунок В3.16 – Кнопки управления потоками веществ и индикации расходов

Для кнопки «-», распложенной рядом с кнопкой «Воздух» задайте анимацию Touch Pushbutton → Action. В окне редактора выберите OnLeftClick/KeyDown и введите vozduh = vozduh - 1;. Для кнопки «+» введите в том же окне vozduh = vozduh + 1;. Таким образом, при помощи данных кнопок в режиме исполнения можно регулировать значения тега vozduh. Для каждой из кнопок настройте анимацию Miscellaneous → Disable в соответствии с рисунком В3.17.

Рисунок В3.17 – Настройка доступа к кнопкам управления потоками веществ