UpakNet CSyntax_V2.1
Руководство пользователя
×

Описание языка Upak

Upak - язык релейной логики (ELL).
 
Роль переменными в программе исполняют номера логических регистров.
программа состоит из строк, каждая из которых (в случае если она не пустая
или не является комментарием) представляет собой одну логическую формулу.
Формула представляет собой логическое выражение, состоящее из двух частей,
разделённых знаком «=». Левая часть содержит номера регистров, операторы и
скобки, правая – номер регистра, которому необходимо присвоить результат
вычисления левой части.
Операторов реализовано четыре: «+» - логическое ИЛИ, «*» - логическое И, «^» -
исключающее ИЛИ,  «~» - логическое НЕ.
 
Операторы «+», «^» и «*» применимы к двум операндам, которыми могут быть либо
переменные, либо выражения в скобках. Оператор «~» применим к переменной, либо
к выражению в скобках.
 
Операции осуществляются со значениями находящимися в логических регистрах.
Номера допустимых регистров от 0 до 8191. Часть регистров зарезервирована для
специальных целей  в приборе (см. системные переменные типа r) или используется для ввода и
вывода через модули Modbus, для использования таймерами и т.п.
 
В программе возможна замена номеров логических регистров на буквенные
обозначения.  Для этого необходимо в тексте программы добавить строку-замену
следующего вида:
#?100=FLAG_START
#?101=TEST_BIT
Запись программы в номерах регистров:
   100=101
Запись программы в именованных переменных:
#?100=FLAG_START
#?101=TEST_BIT
 
FLAG_START=TEST_BIT
 
# Программа может содержать комментарии. Комментарием является всё, что находится
# справа от символа комментария «#».
 
Далее рассмотрим простейший пример реализации релейной схемы запуска двигателя в программе "Upak"
 
При написании программы в выражениях на языке ELL необходимо учитывать приоритет
выполнения операций. Самый высокий приоритет имеет выражение, заключенное в
скобки. Далее приоритет операций уменьшается в следующем порядке: «~», «*»,
«^», «+».
 
Для операции отрицания вместо символа «~» допустимо использовать символ «!».
Данные символы операции отрицания полностью взаимозаменяемы.
 
Для ускорения выполнения программы возможен пропуск обработки части выражений
в текущем цикле обработки. Решение о том надо или не надо обрабатывать блок
формул  принимается прибором  в каждом цикле обработки на основе результатов
проверки условного регистра. Номер этого  регистра указывается в программе.
 
Любой условный блок начинается с сочетания символов #* , далее следует признак
начала условного перехода -  START  и само выражение «REG_NAME=1» .  Данная запись
обозначает, что если регистр REG_NAME на данном этапе выполнения
программы равен логической «1», то будут вычислены все выражения , следующие за
данной строкой и вплоть до первой строки с признаком конца условного блока
«STOP».  Условие перехода можно записать и так:   «#* START REG_NAME=0», в таком
случае выражения в условном блоке будут выполнены, если регистр равен
логическому «0».
 
Для прерывания  обработки  текущего цикла логической программы предусмотрена
команда досрочного завершения. Аналогично условным блокам , при совпадении условия в команде прерывания  -
текущий цикл обработки логической программы прерывается.
 
Пример:
 
#* BREAK TEST_BIT=1
 
 
 
 
 
 
Онлайн помощь создана в Dr.Explain