Макрос – это функция, программируемая пользователем. Макросы расширяют возможности
пользователя, предоставляя ему арифметические операции, функции сравнения и другие
функции, не предусмотренные среди стандартных инструментов проектирования NS-Designer. С
помощью этих функций можно управлять отображением экранов или обрабатывать данные, т.е.,
выполнять операции, которые ранее возлагались на ПЛК. Благодаря этому также снижается
загруженность ПЛК. Событие
руководстве “условием выполнения макроса”. Классифицируя макросы по условиям выполнения,
можно выделить следующие типы макросов:
-Макросы, выполняемыепособытиюпроекта
-Макросы, выполняемыепособытиюэкрана
-Макросы, выполняемыепособытиюфункционального объекта
Количество макросов, которое может быть создано для одного проекта/экрана, не
ограничено
Объем макроса не должен превышать 3000 символов. Символ разрыва (перевода) строки
засчитывается за два символа. Количество строк в макросе также не ограничено.
Пример:
$W0=10; 7 символов + перевод строки (2 символа)
STRCPY($W10”,ABCDE”); 21 символ Вданномслучаеиспользуется 30 символов.
Макрос может быть создан для проекта, экрана и функционального объекта. Макрос может
быть создан для одного из условий выполнения, перечисленных ниже.
Условия выполнения для проекта
Ниже перечислены условия выполнения макроса, которые могут быть использованы для
проекта.
Откройте закладку [Settings (Настройка)]-[Project properties (Свойства проекта)]-[Macro (Макрос)] в
NS-Designer, укажите условия выполнения и запрограммируйте макрос.
Подробное описание регистрации (назначения) макросов смотрите в Руководствепоэксплуатации NS-Designer (6-1 Назначение макроса - 6-1-1 Назначениемакросапроекту).
Условие выполнения Пояснение
When Loading a Project
(Призагрузкепроекта)
Alarm/Event ON Timing
(Привозникновениитревоги/события)
Alarm/Event OFF Timing
(Приотменетревоги/события)
Условия выполнения для экрана
Ниже перечислены условия выполнения макроса, которые могут быть использованы для
каждого экрана.
Откройте закладку [Settings (Настройка)]-[Screen properties (Свойства экрана)]-[Macro (Макрос)] в
NS-Designer, укажите условия выполнения и запрограммируйте макрос.
Подробное описание регистрации (назначения) макросов смотрите в Руководствепоэксплуатации NS-Designer (6-1 Назначение макроса - Назначениемакросаэкрану).
Условие выполнения Пояснение
When Loading a Screen
(Приоткрытииэкрана)
When Unloading a Screen
(Призакрытииэкрана)
Выполнение непосредственно перед загрузкой первого
экрана по завершению запуска аппаратной части NS
Выполнение при возникновении тревоги/события
Выполнение при отмене тревоги/события
Выполнение сразу после считывания данных экрана до
его отображения
Выполнение непосредственно после закрытия текущего
экрана
конечномэкране)
User screen->User screen
(Экранпользователя->Экранпользователя)
User screen->Transfer screen
(Экранпользователя->Экранпередачи)
User screen->System menu
(Экранпользователя->Системноеменю)
System menu->User screen
(Системноеменю->Экранпользователя
User screen->Screen Saver
(Экранпользователя->Сбережениеэкрана)
Screen Saver->User screen
(Сбережениеэкрана->Экранпользователя)
Выполняется Выполняется
Не выполняется Выполняется
Не выполняется Выполняется
Выполняется Не выполняется
Не выполняется Не выполняется
Не выполняется Не выполняется
При закрытии экрана
(выполнение на конечном
экране)
1-4
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Условия выполнения для функциональных объектов
В следующей таблице перечислены условия выполнения макроса, которые могут быть
использованы для функционального объекта.
Чтобы назначить макрос функциональному объекту, откройте диалоговое окно настройки
свойств для этого объекта, откройте закладку [Macro (Макрос)], выберите условие
выполнения и создайте макрос.
Подробное описание регистрации (назначения) макросов смотрите в Руководствепоэксплуатации NS-Designer (6-1 Назначение макроса - 6-1-2 Назначение
функциональному объекту).
Условие выполнения Пояснение
Touch on Timing (По нажатию) Макрос выполняется после нажатия
(прикосновения) нафункциональныйобъект
Touch off Timing (По отжатию) Макрос выполняется после отпускания
(снятияпальца) функциональногообъекта,
накоторыйбылопроизведенонажатие
Before Inputting numeral or
character string
(Передвводомчислового
назначение или символьной
строки)
Before Writing numeral or character
string (Перед записью числового значенияилисимвольнойстроки)
When changing numeral and
character string
(Приизменениичисловогозначенияилисимвольнойстроки)
When Processing Display Area
(Понажатиювзонеотображения)
When Selecting an Alarm/Event
(Повыборутревоги/события)
When selecting a list
(Повыборуобъектаизсписка)
Макрос выполняется непосредственно перед
отображением десятиклавишной или
виртуальной клавиатуры для ввода значений
или строк
Макрос выполняется непосредственно перед
передачей числового значения или текстовой
строки в контроллер
Макрос выполняется после изменения
числового или строкового значения по
данному адресу.
Макрос выполняется после нажатия на
область отображения тревоги.
Макрос выполняется после выбора
определенной строки (тревоги/события) в
Табло сводки и архива тревог/событий
Макрос выполняется после выбора
определенной строки в списке.
Примечание
Если для функционального объекта установлен пароль, перечисленные ниже
макросы выполняются после ввода пароля. Если пароль был отменен (пароль не
введен), макрос выполнен не будет.
- Выполнениепонажатию/отжатию
- Выполнениепередвводомчисла/строки
- Выполнениепонажатиювзонеотображения
- Выполнениепривыборетревоги/события
- Выполнениепривыбореобъектаизсписка
макроса
1-5
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Условия выполнения, которые могут быть выбраны для функциональных объектов, перечислены
в следующей таблице.
При изменении
По нажатию
Функциональный
объект
Кнопка "ВКЛ/ВЫКЛ" OK OK - - - Регистровая кнопка OK OK - - - Кнопка "Команда" OK OK - - - Однобитовая лампа - - OK - - Регистровая лампа - - OK - - Числовое поле
отображения и ввода
Строковое поле
отображения и ввода
Барабанный
переключатель
Текст - - - - - Текстовый список - - - - - OK
Измеритель уровня
(Вертикальная шкала)
Линейный тренд - - - - - Растровый объект - - - - - Аналоговый
измеритель
(Круговая шкала)
Отображение
видеосигналов
Дата - - - - - Время - - - - - Тренд протокола
данных
Таблица блока
данных
- - OK OK OK -
- - OK OK OK -
- - OK - OK -
- - - - - -
- - - - - -
- - - - - -
- - - - - -
- - - OK OK -
По отжатию
числа/строки
Перед вводом
числа/строки
Перед записью
числа/строки
объекта из списка
При выборе
[Alarm/Event object (Объект тревоги/события)]
Функциональный
объект
Однострочное табло
тревог/событий
Табло сводки и
архива
тревог/событий
When Pressing a Display Area
(Понажатиювзонеотображения)
OK -
-OK
When selecting an Alarm/Event
(Повыборутревоги/события)
1-6
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
1-3 Программированиемакросов
В данном разделе описаны процедуры создания макросов, а также даны определения
терминов, используемых при программировании.
Синтаксис макроса
Символ разделителя в программе
В конце каждой строки необходимо размещать символ разделения (;). Это
необязательно делать лишь для инструкций IF (), ELSEIF (), ELSE(), ENDIF.
Пример;
$W0=2;
IF ($W0>=10)
$W5=$W0-$W2;
ELSE
$W5=$W0+$W2;
ENDIF
Комментарий
Чтобы разместить в программе комментарий, введите перед текстом комментария
одиночную кавычку (‘). Весь текст после кавычки до конца строки является
комментарием.
Пример:
$W0 = 100; ‘Комментарий
‘Комментарий
IF ($W1==200)
···
Термины, используемые при написании программы
При написании программы символы верхнего и нижнего регистров не различаются,
поэтому можно использовать символы любого регистра.
Пример:
-MovePopwDown () и MOVEPOPWDOWN() – это одна и та же функция.
-[Host1:DM0] и [host1:dm0] – этоодинитотжеадресстанции.
В тексте программы макроса могут использоваться следующие переменные.
Определе-
ние
дрес
в контроллере
Память
программируемого
терминала
Индекс
(Указатель)
При обращении к данным, расположенным по определенному адресу в
контроллере, используйте для связи функции READCMEM и WRITECMEM.
Адрес заключается в квадратные скобки [ ]
Пример:
Для адресации битов и слов в памяти программируемого терминала (ПТ)
используются указатели (индексы).
Адрес с указанным в конце индексом воспринимается следующим образом:
[указанный адрес + значение индекса]
Всего может быть использовано 10 индексов (I0…I9).
Укажите для значений $SW27 … $SW36 индексы I0…I9.
Пример:
Ниже описано применение классификаторов, которые устанавливаются для переменных.
Классификаторы применяются для работы с 32-битовыми данными, а также для
обращения к битам как к числу.
Параметр Пояснение
Обращение к
слову (16 бит)
как к двойному
слову (32 бит)
Обращение к
битам как к
числу
В конце переменной разместите “L”. Обращение к двум словам.
$W0L=1000000; ‘Обращение к $W0, $W1 как к 32-битовой переменной
$W100L=1000*1000; ‘Обращ. к $W100, $W101 как к 32-битовой переменной
Разместите в конце переменной “:n”. В “n” укажите значение, определяющее
группу битов (до 32, с кратностью 4 бита).
Исключения: Если n=16, введите ”W”. Если n=32, введите “L”.
$B0:4 = 3; ‘Запись значения 3(0011) в группу из 4 битов $B0…$B3
$B0W = 12345; ‘Запись 2345 (0011000000111001) в группу из 16 битов
'$B0…$B15
$W20 = 123
1-8
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Константа
В следующей таблице перечислены константы, которые могут применяться в программах
макросов.
Параметр Пояснение
Десятичная константа При использовании слова (16 битов) можно ввести
значение в диапазоне от -32768 до 32767
При использовании двух слов (32 бита) можно ввести
значение от -2147483648 до 2147483647
Шестнадцатеричная
константа
Символьная строка Заключите в кавычки (“ “)
При использовании слова (16 бит) можно ввести значение
от H0 до HFFFF
При использовании двух слов (32 бита) можно ввести
значение от H0 до HFFFFFFFF
Пример: ”ABCDE”
Ветвления
Для определения условий можно использовать следующие ключевые слова.
Параметр Пояснение
IF
ELSEIF
ELSE
ENDIF
Условия выполнения, размещаемые после IF и ELSEIF,
заключаются в круглые скобки ( ).
В конце конструкции обязательно размещайте ENDIF. Допускается
до 8 вложений.
Количество строк в выражении IF не ограничено. Однако общее
количество символов в макросе не должно превышать 3000.
Пример:
Для определения условий в конструкции IF используются следующие условные
выражения. Они действуют для любых типов данных (слово, слово в формате двойного
слова, бит, группа битов в формате числа).
Параметр Пояснение
A == B Если A равно B, тогда TRUE.
A > B Если A больше B, тогда TRUE.
A >= B Если A больше или равно B, тогда TRUE.
A < B Если A меньше B, тогда TRUE.
A <= B Если A меньше или равно B, тогда TRUE.
A <> B
A ! = B
A && B
A AND B
A || B
A OR B
Если A не равно B, тогда TRUE.
Если и A, и B истинны (true), тогда TRUE (AND)
Если A или B истинно (true), тогда, TRUE (OR)
Справка
Результат (A&&B, A>B) можетбытьподставленвкачествепеременной.
Пример: $B100=$W0>100;
Еслизначение $W = “100” илименьше, тов $B100 будет записан “0”. Еслизначение $W больше ”100”, в $B100 будет записана “1”.
1-10
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Основные операторы
В программе можно использовать следующие операторы.
Операция Символ Пример Значение
Присвоение = A = B Присвоение значения B операнду A
Добавление + C = A+B Запись результата A+B в C
Вычитание - C = A–B Запись результата A–B в C
Умножение * C = A*B Запись результата AxB в C
Деление / C = A/B Запись результата A/B в C
Остаток % C = A%B Запись результата A%B в C
ИЛИ | C = A|B Логическое ИЛИ операндов A и B
И & C = A & B Логическое И операндов A и B
НЕ ! C = !A Запись в C отрицания A
Исключающее ИЛИ ˆ C = A^B Запись в C логического ИЛИ
Дополнение до 1 ~ B = ~A Запись в B дополнения А до 1
Сдвиг на один разряд
(влево)
Сдвиг на один разряд
(вправо)
<< C = A<<B Запись в C значения, полученного
>> C = A>>B Запись в C значения, полученного
операндов A и B
после сдвига А на B битов влево
после сдвига А на B битов вправо
Справка
Логические операции должны выполняться над данными одного типа (например,
над словами, битами или словами в формате двойных слов)
Пример: $SW0L=$SW10L&$W20L;’Обращение к словам как к двойным словам’
В одном выражении можно комбинировать несколько операций.
Пример: A=(B+C)*(D+E/2)
При выполнении операций соблюдается следующий порядок очередности.
Приоритет Символ
Старший ( )
~
*, /,%
+, << ,>>
&
ˆ
|
Младший =
1-11
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Функции
Для программирования макросов в серии NS предусмотрены следующие функции.
Действие/Операция Функция
Значение в формате BIN
форматов BCD/BIN
Преобразование
символьных строк
Статистика
тревог/событий
Специальные функции
программируемого
терминала
Обмен данными
Завершение процесса Прекращение программы
Установка даты/времени Изменение содержимого
->значение в формате BCD
Значение в формате BCD
->значение в формате BIN
Копирование символьной строки STRCPY/STRCPYW
Преобразование из кодировки
ASCII в кодировку Unicode
Преобразование из кодировки
Unicode в кодировку ASCII
Обнуление количества
произошедших тревог/событий
Вывод записанного значения и
измененного значения
Переключение экрана SHOWPAGE/SHOWPAGEBCD
Перемещение объекта по экрану MOVEPARTS
Отображение диалогового окна с
сообщением
Получение координат
прямоугольника объекта
Перемещение всплывающего
окна
Перемещение всплывающего
окна вверх
Перемещение всплывающего
окна вниз
Перемещение всплывающего
окна влево
Перемещение всплывающего
окна вправо
Закрытие всплывающего окна CLOSEPOPW
Чтение данных по указанному
адресу
Запись данных по указанному
адресу
Чтение бита по указанному
адресу
Чтение слова по указанному
адресу
Запись бита по указанному
адресу
Запись слова по указанному
адресу
макроса
внутренних часов
программируемого терминала
BCD Преобразование
BIN
STRM2W
STRW2M
RSTALARMCNT
GETNUMVAL
MSGBOX
GETPARTS
MOVEPOPW
MOVEPOPWUP
MOVEPOPWDOWN
MOVEPOPWLEFT
MOVEPOPWRIGHT
READCMEM
WRITECMEM
READHOSTB
READHOSTW
WRITEHOSTB
WRITEHOSTW
RETURN
SETTIME
1-12
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Чтение содержимого (значений в
двоичном формате) указанного
файла в карте памяти (CF) и
запись в память
программируемого терминала.
Сохранение содержимого памяти
программируемого терминала в
карту памяти (CF).
Запись одновременно по
нескольким адресам
BCDOK OK OK OK OK OK OK OK OK OK OK OK OK
BIN OK OK OK OK OK OK OK OK OK OK OK OK OK
CLOSEPOPW OK OK OK OK OK OK OK OK OK OK OK OK
GETNUMVAL
GETPARTS OK OK OK OK OK OK OK OK OK OK
MOVEPARTS OK OK OK OK OK OK OK OK OK OK
MOVEPOPW OK OK OK OK OK OK OK OK OK OK OK OK
MOVEPOPWDOWN OK OK OK OK OK OK OK OK OK OK OK OK
MOVEPOPWLEFT OK OK OK OK OK OK OK OK OK OK OK OK
MOVEPOPWRIGHT OK OK OK OK OK OK OK OK OK OK OK OK
MOVEPOPWUP OK OK OK OK OK OK OK OK OK OK OK OK
MSGBOX OK OK OK OK OK OK OK OK OK OK OK OK OK
READCMEM OK OK OK OK OK OK OK OK OK OK OK OK OK
RETURN OK OK OK OK OK OK OK OK OK OK OK OK OK
RSTALARMCNT OK OK OK OK OK OK OK OK OK OK OK OK OK
SHOWPAGE OK OK OK OK OK OK OK OK OK OK OK OK OK
SHOWPAGEBCD OK OK OK OK OK OK OK OK OK OK OK OK OK
STRCPY(W) OK OK OK OK OK OK OK OK OK OK OK OK OK
STRM2W OK OK OK OK OK OK OK OK OK OK OK OK OK
WRITECMEM OK OK OK OK OK OK OK OK OK OK OK OK OK
SETTIME OK OK OK OK OK OK OK OK OK OK OK OK OK
READCF OK OK OK OK OK OK OK OK OK OK OK OK OK
WRITECF OK OK OK OK OK OK OK OK OK OK OK OK OK
MEMCOPY OK OK OK OK OK OK OK OK OK OK OK OK OK
SWAP OK OK OK OK OK OK OK OK OK OK OK OK OK
SWAPL OK
SETFOCUS OK OK OK OK OK OK OK OK
RELEASEFOCUS OK OK OK OK OK OK OK OK
FOR, NEXT OK OK OK OK OK OK OK OK OK OK OK OK OK
BREAK OK OK OK OK OK OK OK OK OK OK OK OK OK
CONTINUE OK OK OK OK OK OK OK OK OK OK OK OK OK
READHOSTB OK OK OK OK OK OK OK OK OK OK OK OK OK
READHOSTW OK OK OK OK OK OK OK OK OK OK OK OK OK
WRITEHOSTB OK OK OK OK OK OK OK OK OK OK OK OK OK
WRITE HOSTW OK OK OK OK OK OK OK OK OK OK OK OK OK
BITSET OK OK OK OK OK OK OK OK OK OK OK OK OK
MEMSET OK OK OK OK OK OK OK OK OK OK OK OK OK
п
оекта
т
По возникновению
т
евоги/события
евоги/события
По отмене
Макрос
экрана
При загрузке
к
ана
Макрос функционального объекта
значение
При выгрузке
к
ана
По отжатию
По нажатию
Перед вводом
числа/ст
Когда изменяется
оки
*
числа/ст
оки
При записи
*
*Числовоеполеотображенияиввода
область отоб
Текстовый список
По нажатию на
При выборе
т
евоги/события
аж.
1-14
Раздел 1 Введение в макросы
Серия NS - Справочное руководство по макросам
Добавленные функции
Действие/Операция Функция Замечания
Установка даты/времени SETTIME Добавлено в NS-Designer V3.0