Система команд
Oбозначения
AA - адрес процессора (16) например : A3
S - шифр блока например : AIN1
F - поле блока например : Сure
DDDD - адрес (16) например : 00FF
DDDD - адрес (16) например : 00FF
DDDD - адрес (16) например : 00FF
C - количество (16) например : E
FLOAT - число с плавающей запятой в ASCII формате
DEC - десятичное число в ASCII формате
\r - символ 0x0d
#RC - прочитать время цикла
-------
Формат - команды :
#RCAA\r например : #RC01\r
Формат - ответа
DEC\r например : 12\r
#RD Прочитать поле блока
-------
Формат - команды :
#RDAAS. F\r например : #RD01AIN1.Cure\r
Формат - ответа
DEC\r например : 12.33\r
#WR Записать поле блока
-------
Формат - команды :
#WRAAS. F FLOAT\r
например : #WR01AIN1.Cure 23.45\r
Формат - ответа
>\r например : >\r
#TC Прочитать количество идентификаторов в таблице доступа
-------
Формат - команды :
#TCAA\r например : #TC01\r
Формат - ответа
>DEC\r например : 20\r
#RI Прочитать значение идентификатора по номеру
-------
Формат - команды :
#RIAADDDD\r например : #RI010001\r
Формат - ответа
>FLOAT\r например : 25\r
#WI Записать значение идентификатора по номеру
-------
Формат - команды :
#WIAADDDDFLOAT\r например : #WI.4\r
Формат - ответа
>\r например : >\r
#TA Прочитать значения всех идентификаторов таблицы
-------
Формат - команды :
#TAAA\r например : #TA01\r
Формат - ответа
>FLOAT FLOAT ... FLOAT \r например :1\r
#IA Прочитать все идентификаторы таблицы
-------
Формат - команды :
#IAAAN\r например : #IA010\r
если N = '0' - читаются первые 64 идентификатора
если N = '1' - читаются идентификаторы 65-127
если N = '2' - читаются идентификаторы 128-191
если N = '3' - читаются идентификаторы 192-256
( в таблице не может быть > 256 идентификаторов)
Формат - ответа
>ASCII;ASCII;...ASCII; \r например : Расход;Нагрузка 4.5\r
DDE Cервер
ИМЯ СЕРВЕРА ROBO3140 - ghcomsrv
ИМЯ РАЗДЕЛА - EAT
ИМЯ ЭЛЕМЕНТА - ИДЕНТИФИКАТОР. АДРЕС. ПОРТ
где:
ИДЕНТИФИКАТОР - идентификатор из таблицы доступа
АДРЕС - адрес процессора
ПОРТ - номер последовательного порта
например:
ТЕМПЕРАТУРА1.1.1
COM Cервер
Объект имеет имя "Srv3140" и находится в файле GHCOMSRV. exe. Для работы с обьектом его необходимо после инсталляции системы первоначально запустить и настроить скорости последовательных портов, на которых будет происходить поиск процессоров, а также диапазон поиска адресов процессоров от1 до 254.

После этого объект будет зарегистрирован в системе.
Объект имеет следующие методы:
Обозначения:
Port - номер последовательного порта
Modul - адрес процессора
Ident - идентификатор в ASCII коде
Получить готовность сервера
GetReady(int *Ready);
Прочитать количество идентификаторов в таблице
GetCountIdent(unsigned Port, unsigned Modul, int* CountIdent));
Прочитать идентификатор в таблице
GetIdent(unsigned Port, unsigned Modul, unsigned Number,
BSTR* Ident));
Прочитать значение идентификатора
GetValue(unsigned Port, unsigned Modul, BSTR Ident,
float* Value));
Записать значение идентификатора
SetValue(unsigned Port, unsigned Modul, BSTR Ident,
float Value));
Пример реализации на Visual Basic
Dim MyObj As Object
' Открыть COM
Set MyObj = CreateObject("Srv3140")
'Получить готовность сервера
Ready = 0
While Ready = 0 ' Анализирует значение ready
Ready = MyObj. GetReady()
Wend ' Завершает цикл While, если Ready = 1
'дальнейшие действия проводятся если Ready = 1
'иначе ожидать, пока Ready не будет равно 1
'Прочитать количество идентификаторов из первого порта
'из процессора с адресом 1
i = MyObj. GetCountIdent(1, 1)
'Прочитать первый идентификатор
s = MyObj. GetIdent(1, 1, 0)
'Прочитать второй идентификатор
s1 = MyObj. GetIdent(1, 1, 1)
'Прочитать значение идентификатора s
f = MyObj. GetValue(1, 1, s)
'Записать полученное значение в идентификатор s1
f = MyObj. SetValue(1, 1, s1, f)
Set MyObj = Nothing ' Ссылка освобождается.
OPC Cервер
Объект имеет имя "OPC. ROBO3140.2" и находится в файле GHOPCSRV. exe. Сервер должен запускаться только после запуска ghcomsrv. exe.
Поддерживаемые интерфейсы
IOPCServer - поддерживается;
IOPCServerPublicGroups - не поддерживается;
IOPCBrowseServerAddressSpace - поддерживается;
IOPCItemProperties - не реализован;
IConnectionPointContainer - (для IOPCShutdown) поддерживается;
IPersistFile - не поддерживается.
Интерфейсы группы
IOPCGroupStateMgt - все методы, кроме CloneGroup();
IOPCPublicGroupStateMgt - не поддерживается;
IOPCSyncIO - поддерживается;
IOPCAsyncIO2 - поддерживается;
IOPCItemMgt - поддерживается;
IOPCAsyncIO - поддерживается;
IDataObject - поддерживается;
IEnumOPCItemAttributes - поддерживается;
IConnectionPointContainer - (для IOPCDataCallback) поддерживается.
Приложение 1.
Описание работы программных блоков.
Стандартные алгоблоки: AIN
Программный блок применяется для связи программных блоков с аппаратными средствами контролера (АЦП).
High - Low
Cure = Low + * cod,
mcod
где: cod - код с ацп
mсоd - максимальный код ацп
High - максимум шкалы
Low - минимум шкалы
Cure - выход блока
если установлен признак сглаживания-значение сглаживается
по формуле
Cure(i) = Cure(i-1)*Ksg + (1.0 - Ksg) * x(i) ,
где : Cure(i) - текущее значение выхода
Сure(i-1) - значение выхода на предыдущем шаге
x(i) - текущее измеренное значение параметра
при отклонении значения от аварийных границ или
при отклонении значения от технологических границ
поля A или T устанавливаются в 1.
Для привязки блока к аппаратуре необходимо на этапе редактирования схемы настроить его параметры(модуль, адрес, канал, шкалы, разрешение и т. д)
Поля блока:
Cure - текущее значение выхода алгоблока
A - диагностика выхода за аварийные границы
Т - диагностика выхода за технологические границы
М - диагностика отказа модуля
Стандартные алгоблоки: AOU
Программный блок применяется для связи программных блоков с аппаратными средствами контролера (ЦАП).
In(i) - Low
Cure = (-) * mcod,
High - Low
где: In(i) - текущее значение управляющего параметра
mcod - максимальное значение выходного кода ЦАП
High - максимум шкалы
Low - минимум шкалы
Cure - выход блока
Для привязки блока к аппаратуре необходимо на этапе редактирования схемы настроить его параметры(модуль, адрес, канал, шкалы, разрешение и т. д)
Поля блока:
Cure - текущее значение выдаваемое на модуль вывода
Стандартные алгоблоки: DIN
Программный блок применяется для связи программных блоков с аппаратными средствами контролера (ПЛАТЫ ДИСКРЕТНОГО ВВОДА)
Для привязки блока к аппаратуре необходимо на этапе редактирования схемы настроить его параметры(модуль, адрес, канал, шкалы, разрешение и т. д)
Поля блока:
Cure - текущее значение выхода
Cure1 - диагностика переключения
Cure2 - инверсия Cure
Стандартные алгоблоки: DOU
Программный блок применяется для связи программных блоков с аппаратными средствами контролера (ПЛАТЫ ДИСКРЕТНОГО ВЫВОДА)
Для привязки блока к аппаратуре необходимо на этапе редактирования схемы настроить его параметры(модуль, адрес, канал и т. д)
Поля блока:
Cure - текущее значение выдаваемое на модуль вывода
Стандартные алгоблоки: FRM
Выражение-это математическое уравнение, которое возвращает значение.
Этот термин относится ко всему уравнению, в то время, как сегмент выражения называется термом.
Пример: Разница между выражением и утверждением
(tag1 * tag2) AND (tag3 / 2) - выражение
(tag3 / 2) - терм
Выражения содержат:
* значения тегов
* константы
* математические, логические, битовые операторы и операторы сравнения
* встроенные функции
Примечание: Все выражения возвращают значения с плавающей запятой.
ЗНАЧЕНИЯ ТЕГА
Тег может являться частью выражения или выступать самостоятельно в виде целого выражения.
Под тегом следует понимать в данной веpсии системы выражение вида
[Shifr. Field] или [Shifr],
где Shifr - Шифp пpогpаммногo блока
Field - Поле пpогpаммного блока
КОНСТАНТЫ
Константа, являющаяся числом, например, 123.45, может иметь любой из следующих форматов:
* целый(123)
* с плавающей запятой(123.45)
* десятичный нормализованный с плавающей запятой(0.12345Е3)
АРИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ
Арифметические операторы производят основные математические операции со значениями тегов.
Обозначение Оператор Пример
+ сложение tag1 + tag2
- вычитание tag1 - tag2
* умножение tag1 * tag2
/ деление tag1 / tag2
% модуль (остаток) tag1 % tag2
! возведение в степень tag1 ! 2
Примечание: Оператор "модуль" представляет собой остаток от деления одного числа на другое. Например, остаток от деления 13 на 5 равен 3; поэтому: 13 % 5 = 3.
Примеры: Арифметические операторы
В данных примерах tag1 равен 5, а tag2 равен 7.
tag1 + tag2 возвращает значение, равное 12
tag1 * tag2 возвращает значение, равное 35
tag1 - tag2 возвращает значение, равное -2
tag1 / tag2 возвращает значение, равное 0.71
tag1 % tag2 возвращает значение, равное 5
tag1 ! tag2 возвращает значение, равное 78125
Примечание: последовательность операторов является важной и объясняется далее.
ВСТРОЕННЫЕ ФУНКЦИИ
Встроенные функции возвращают значения с плавающей запятой.
Функция Возвращаемое значение
SIN(tag) синус выражения
COS(tag) косинус выражения
LOG(tag) десятичный логарифм выражения
LN(tag) натуральный логарифм выражения
EXP(tag) выражение в степени Е
TAN(tag) тангенс выражения
SQR(tag) квадратный корень выражения
ABS(tag) абсолютное значение выражения
NOT(tag) выражение = - выражение
ON(tag) возвращает 1.0 если выражение!=0 ,иначе 0.0
OFF(tag) возвращает 1.0 если выражение ==0.0 ,иначе 1.0
ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ ОПЕРАТОРОВ
Существует три правила, определяющие последовательность проведения операций при вычислении значения выражения, в котором содержатся более одного оператора.
1. Когда два оператора имеют неодинаковый приоритет, оператор с более высоким приоритетом будет выполнен первым.
2. Когда у двух операторов одинаковый приоритет, они будут выполнены слева направо.
3. Для изменения обычного порядка вычислений операторы могут быть заключены в скобки.
Приоритеты операторов:
Приоритет Название Обозначение
1(Высший) Скобки ()
2 Степень!
3 Умножение *
Деление /
Модуль %
4 Сложение +
Вычитание -
Равенство =
Неравенство N
Mеньше <
Больше >
Меньше или равно L
Больше или равно G
И &
ИЛИ |
ПРИМЕРЫ: Последовательность выполнения операторов
В данных примерах выражение tag1 равно 5,tag2 равно 7 и tag3 равно 10.
Выражение (tag1>tag2)&(tag1<tag3) вычисляется в такой последовательности
1. tag1>tag2 = 0
2. tag1<tag3 = 1
3. 0 & 1 = 0
Выражение равно 0
Выражение tag1>tag2&tag3 вычисляется в такой последовательности
1. tag1 > tag2 = 0
2. 0&tag3 = 0
Выражение равно 0
Выражение NOT(tag1) & tag2>tag3!2 вычисляется в такой последовательности
1. tag3 ! 2 = 100.0
2. NOT(tag1)= 0.0
3. 0.0 & tag2 = 0.0
4. 0.0 > 100.0 = 0.0
Выражение равно 0
Стандартные алгоблоки: AVE
Синтаксис события аналогичен синтаксису формулы (FRM). Отличие состоит в том, что выход события является дискретной величиной. На выходе блока формируется 1.0 (истина) ,если значение вычисленного выражения не ноль, и 0.0 в обратном случае.
Дополнительно используются:
СРАВНЕНИЯ
Эти операторы сравнивают два значения, чтобы проверить истинность утверждения. Если оно верно, возвращается величина, равная 1, если нет,- возвращается 0. Операторов сравнения - шесть, каждый может быть записан двумя способами.
Обозначения Оператор Пример
= равенство tag1 = tag2
N неравенство tag1 N tag2
< меньше, чем tag1 < tag2
> больше tag1 > tag2
L менее или равно tag1 L tag2
G больше или равно tag1 G 2
Примеры: Операторы сравнения
В данных примерах tag1 равен 5, а tag2 равен 7.
tag1 > tag2 утверждение неверно, поэтому возвращается 0
tag1 L tag2 верно, поэтому выражение возвращает 1
tag1 = 5 верно, поэтому выражение возвращает 1
ОПЕРАЦИИ С БИТАМИ
Любое выражение, дающее значение, не равное нулю, признается верным. Например, выражение tag1 будет ложным, если значение tag1 есть 0, и истинным, если tag1 имеет любое другое значение.
Битово - логические операторы определяют истинность одного или нескольких утверждений, а также наличие определенных битов в опеpанде. Операторы возвращают не 0, если в утверждении есть биты, и 0 - если их нет. Битовых операторов два: & (И), |(Или)
* & (И) возвращает не 0, если хотя бы один бит утверждений, находящихся и справа и слева от оператора cовпадает
* | (Или) выдает не 0, если в утверждении или слева, или справа от оператора имеются биты, отличные от 0.
Важно: Когда утверждение верно, редактор выражений возвращает значение, равное единице, в противном случае он признает значения, не равными нулю, - верными.
Таблица 3.3
Битовые опеpатоpы
Обозначения Оператор Пример
& и (tag1 & tag2)
| или (tag1 = 5) | (tag1 = 10)
Примеры: Битовые операторы
В данных примерах выражение tag1 равно 5, а выражение tag2 равно 7.
(tag1 < tag2) & (tag1 = 5)
возвращает 1, так как оба утверждения возвращают 1
(tag1 N 0.0) & (tag2 N 0.0)
возвращает 1, потому что ни tag1, ни tag2 не равны нулю
(tag1 > tag2) | (tag1 = 5)
возвращает 1, так как утверждение tag1 = 5 - истинно
tag1 & tag2
возвращает 5, так как (tag1=0101,tag2=0111)
tag1 | tag2
возвращает 7, так как (tag1=0101,tag2=0111)
Важно: в приведенных выражениях скобки крайне важны.
Стандартные алгоблоки: AVR
Скользящее среднее расчитывается на основе значений, поступающих на вход СПБ. При накоплении количества значений большего, чем "Ширина окна" , при поступлении каждого нового значения из буфера удаляется самое старое (FIFO).
In(I)+In(I-1)+...+In(I-Count-1)
Cure=-------
Соunt
При поступлении на вход Reset 1 происходит обнуление буфера.
При поступлении на вход Еnable 0 СПБ останавливает свою работу до получения 1 на этом входе.
Стандартные алгоблоки: IVR
Модуль предназначен для усреднения измеренных значений на заданном интервале, пришедших на вход In за это время.
По достижении счетчиком количества значений уставки Max или поступлении 1 на вход Reset происходит сброс СПБ:
на выход до прихода новых значений на вход In подается последнее полученное значение,
счетчик количества значений обнуляется и расчет ведется на основе значений, полученных после сброса.
При значении Мах =0 самосброс не происходит.
Сброс осуществляется только по входу Reset.
Усреднение значений производится по формуле:
In(i)=In(i-1)+1/i*(Cure(i)-In(i-1)) ,
где Cure(i) - текущее значение параметра;
Х(i-1) - среднее значение параметра, вычисленное на предыдущем шаге.
СПБ включается в работу, когда вход Enable = 1.
Стандартные алгоблоки: SUM
Модуль предназначен для суммирования определенной аналоговой величины.
При достижении максимального значения Max выдается сообщение о переполнении счетчика. Для включения и сброса счетчика в исходное состояние используются поля Enable и Reset.
Суммирование производится по формуле :
Y(N)=Y(N-1)+ К * X(N),
где X(N) - текущее значение параметра;
Y(N-1) - сумма вычисленное на предыдущем шаге.
K - коэффициент
Стандартные алгоблоки: LBR
Программный блок предназначен для ввода различных аналоговых значений, необходимых для работы системы (лабораторные анализы, коэффициенты и т. п.).
Вводимое значение ограничивается значениями полей Low и High.
Стандартные алгоблоки: MAT
Программный блок предназначен для выполнения арифметических операций над двумя входами In1 и In2 . Результат операции формируется на выходе Cure.
Блок выполняется всегда, если находится в фокусе выполнения программы.
Операции:
ADD - сложение
Значение выхода Cure равно сумме входов In1 и In2.
Cure = In1+In2;
SUB - вычитание
Значение выхода Cure равно разности входов In1 и In2.
Cure = In1-In2;
MUL - умножение
Значение выхода Cure равно произведению входов In1 и In2.
Cure = In1*In2;
DIV - деление
Значение выхода Cure равно частному от деления входа In1на In2.
Cure = In1/In2; Если In2 равно 0-Сure также равно 0;
Стандартные алгоблоки: LOG
Программный блок предназначен для выполнения логических операций над двумя входами In1 и In2 . Результат операции формируется на выходе Cure.
Блок выполняется всегда, если находится в фокусе выполнения программы.
Операции:
AND - логическое и
если значение входа In1 отлично от нуля и
значение входа In2 отлично от нуля, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
OR - логическое или
если значение входа In1 равно нулю и
значение входа In2 равно нулю
, то значение выхода Cure равно 0.
В остальных случаях значение выхода Сure равно 1.
XOR - логическое исключающее или
если значение входа In1 равно нулю и
значение входа In2 равно нулю
, то значение выхода Cure равно 0.
если значение входа In1 и
значение входа In2 отличны от нуля
, то значение выхода Cure равно 0.
В остальных случаях значение выхода Сure равно 1.
EQ(=) - равенство
если значение входа In1 равно значению входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
NE(/=) - неравенство
если значение входа In1 не равно значению входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
LE(<) - меньше
если значение входа In1 меньше значения входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
LT(<=) - меньше или равно
если значение входа In1 меньше или равно значению входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
GE(>) - больше
если значение входа In1 больше значения входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
GT(>=) - большеt или равно
если значение входа In1 больше или равно значению входа In2
, то значение выхода Cure равно 1.
В остальных случаях значение выхода Сure равно 0.
Стандартные алгоблоки: TMR
Таймер позволяет управлять процессами основываясь на времени.
СПБ используется для включения или выключения выхода через установленный промежуток времени после включения счетчика таймера.
Таймер начинает счет интервалов времени с момента, когда на вход Enable подается 1, и продолжает счет, пока не произойдет одно из следующих событий :
СОБЫТИЕ
Счетчик таймера равен задержке на включение
РЕЗУЛЬТАТ
Включение выходoв Сure = 1 Cure_=0.
СОБЫТИЕ
Вход Еnable = 0
РЕЗУЛЬТАТ
Cброс счетчика таймера если 2-й бит в Sbf = 0.
Если 2-й бит в Sbf = 1 - остановка счета с сохранением значения
счетчика, при получении на входе Enable 1 ,счет продолжается с
сохраненного значения
СОБЫТИЕ
Reset = 1
РЕЗУЛЬТАТ
Сброс счетчика таймера
Анологично, при включенном выходе, происходит выключение таймера.
Когда на вход Enable подается 0, таймер начинает счет интервалов
времени и продолжает счет, пока не произойдет одно из следующих
событий :
СОБЫТИЕ
Счетчик таймера равен задержке на выключение
РЕЗУЛЬТАТ
Выключение выходoв: Сure =0, Cure_=1.
СОБЫТИЕ
Вход Еnable = 1
РЕЗУЛЬТАТ
Cброс счетчика таймера, если 2-й бит в Sbf = 0
Если 2-й бит в Sbf = 1 - остановка счета с сохранением значения
счетчика, при получении на входе Enable 0 счет продолжается с
сохраненного значения
СОБЫТИЕ
Reset = 1
РЕЗУЛЬТАТ
Сброс счетчика таймера
Стандартные алгоблоки: ADD
Програмный блок предназначен для суммирования аналоговых сигналов с заданными весовыми коэффициентами по формуле :
Cure = Coeff0 * (In1 * Coeff1 + In2 * Coeff2 + In3 * Coeff3 + Fcomp)
где In1, In2, In3 - аналоговые сигналы (входы)
Cure - аналоговый сигнал (выход)
Coeff1, Coeff2, Coeff3 - весовые коэффициенты
Coeff0 - коэффициент усиления (общий)
Fcomp - свободный член
Стандартные алгоблоки: LMT
Програмный блок предназначен для ограничения изменений сигнала на границах его диапазона.
Расчетная схема блока :
если Low < In < High, Cure = In, Out1=0 , Out2=0
если In < = Low, Cure = Low, Out1=1 , Out2=0
если In >= High, Cure = High, Out1=0 , Out2=1
где: In - аналоговый сигнал, вход
Low - нижняя граница
High - верхняя граница
Cure - аналоговый сигнал, выход
Out1 - дискретный сигнал
Out2 - дискретный сигнал
Стандартные алгоблоки: IMP
Програмный блок предназначен для суммирования числа импульсов, поступающих на вход In, при этом под импульсом понимается изменение состояния входа с логического 0 на 1.
При Cure < Max, где Cure и Max - соответственно текущее число импульсов и уставка, сигнал на выходе счетчика Out = 0.
При Cure > Max на выходе Out устанавливается логическая 1.
При поступлении на вход Reset единицы обнуляется счетчик и выход.
Если на вход Reset и на вход счетчика In одновременно поступает логическая 1, это событие расценивается как сброс счетчика и приход одного импульса, т. е. начало счета.
Стандартные алгоблоки: LMI
Програмный блок предназначен для интегрирования с ограничителем
Расчетная формула : Cure(i) = Cure(i-1)+DT/Time*In(i)
при старте в Cure заносится Const
если Cure(i) >= High, то Cure(i) = High, Out1=1, Out2=0
если Cure(i) <= Low, то Cure(i) = Low, Out1=1, Out2=0
если Cure(i) > Low, то Cure(i) = Cure, Out1=0, Out2=1
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
Out1 - сигнал о нарушении ограничения
Out2 - инверсное значение
High - ограничение сверху
Low - ограничение снизу
Time - время интегрирования
DT - цикл расчета (всегда 1.0)
Const - константа согласования
Стандартные алгоблоки: ZDV
Алгоритм применяется для управления задвижками
ОПИСАНИЕ АЛГОРИТМА
Алгоритм ZDV имеет 4 входа и 3 выхода.
Если вход Enable равен 1 и вход Reset = 0 , то если вход In = 0 – на выход Cure подается 1.
Если в течении времени, равного значению на входе Time на вход In не приходит 1, то выход Cure сбрасывается в 0 а Выход Alarm становится равным 1. Это состояние сохраняется до подачи единицы на вход Reset.
Если вход Enable = 0, то блок не обрабатывается.
Если на вход Reset подать 1 , то выходы Cure, Alarm, Topen становятся равными 0.
На выход Topen подается время открытия задвижки.
Стандартные алгоблоки: TMS
Таймер по системному времени устанавливает выход в 1 при наступлении астрономического времени H_on:М_on:S_on и сохраняет его до наступления астрономического времени H_off:М_off:S_off.
Все остальное время на выходе 0, до наступления следующего момента H_on:М_on:S_on через 24 часа.
Поля блока:
Idn
Stn
Txt
Sbf
Сure
H_on:М_on:S_on
H_off:М_off:S_off
Стандартные алгоблоки: UDP
Программный блок предназначен для логического управления двухпозиционным исполнительным устройством в тех случаях, когда на одно исполнительное устройство (например, клапан, нагреватель и т. д.) приходят команды из нескольких точек (шагов) логической программы.
Имеется две группы входных сигналов: On, j (команды включения) и Off, j (команды выключения).
По переднему фронту (т. е. в момент перехода из состояния логического 0 в состояние логической 1) любого сигнала в группе включения на выходе устанавливается сигнал Cure = 1, при этом
состояние остальных входов в группе включения и выключения безразлично (т. е.они могут находиться в состоянии логического 0 или логической 1).
Аналогичные действия вызывает приход переднего фронта любого сигнала в группе выключения с той лишь разницей, что на выходе устанавливается и запоминается сигнал Cure=0.
При одновременном действии команд на включение и выключение приоритетна команда на выключение.
Если входные сигналы должны действовать не по переднему, а по заднему фронту, на соответствующих входах устанавливается инверсия.
Стандартные алгоблоки: UTP
Программный блок предназначен для логического управления трехпозиционным исполнительным устройством (например, клапан с моторным управлением) в тех случаях, когда на исполнительное устройство приходят команды из нескольких точек (шагов) логической программы.
Имеется три группы входных сигналов:
группа Open - команда на открытие,
группа Close - команда на закрытие,
группа Stop - команда на останов.
Каждая группа имеет одинаковое число сигналов и задается модификатором.
По переднему фронту (т. е. в момент перехода из состояния логического 0 в состояние логической 1) любого сигнала в группе открытия устанавливается выходной сигнал на открытие Cure_Op = 1, а выходной сигнал на закрытие Cure_Cl = 0, при этом состояние остальных входных сигналов в любой из групп безразлично (т. е. они могут находиться в состоянии логического 0 или логической 1).
Аналогично действуют сигналы в группе закрытия с той лишь разницей, что на выходе устанавливаются и запоминаются сигналы Cure_Op = 0 и Cure_Cl = 1.
По тому же правилу действуют сигналы в группе останова, при этом на выходе устанавливаются сигналы Cure_Op = Cure_Cl = 0.
Если в разных группах поступают команды одновременно, действует система приоритетов: группа закрытия приоритетна над группой открытия, группа останова приоритетна над остальными группами.
Если входные сигналы должны действовать не по переднему, а по заднему фронту, на соответствующих входах устанавливается инверсия.
Стандартные алгоблоки: LM0
Програмный блок предназначен для ограничения изменений сигнала в окрестности нуля
Расчетная схема :
Cure = 0 , при abs(In) < Limit
Cure = In, при abs(In) > Limit
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
Limit - величина ограничения
Стандартные алгоблоки: INZ
Програмный блок предназначен для ограничения изменений сигнала в окрестности нуля при добавлении гистерезиса к сигналу
Расчетная формула :
Cure=0, при abs(In)<InZ1
Cure=0, при In>0, In>In(i-1), InZ1<In<InZ2
Cure=In-H*sign(In), при abs(In)=InZ2
Cure=In-H, при In>0, In<In(i-1), InZ1<=In<InZ2
Cure=0, при In<0, In<=In(i-1), InZ1<=abs(In)<InZ2
Cure=In+H, при In<0, In>In(i-1), InZ1<=abs(In)< InZ2
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
H - настройка зоны нечувствительности
InZ1, InZ2 - настройки гистерезиса
Стандартные алгоблоки: FLT
Програмный блок выполняет фильтрацию входного сигнала
Расчетная формула :
Cure(i) = 1/(1+DT/TD)*Cure(i-1)+KD*In(i)/(1+TD/DT)
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
TD - время демпфирирования
KD - коэффициент усиления
DT - цикл расчета (0.5)
Стандартные алгоблоки: DFR
Програмный блок предназначен для выполнения операций реального дифференцирования.
Расчетная формула :
Cure(i) = Cure(i-1) / (1+Time/DT) + Coeff * (In(i)-In(i-1)) / (1+DT/Time)
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
Time - коэффициент дифференцирования
Coeff - коэффициент усиления
DT - цикл расчета (всегда 1.0)
Стандартные алгоблоки: DFD
Програмный блок предназначен для выполнения реального дифференцирования с предвключенным демпфером.
Расчетная формула:
Z(i) = Z(i-1) / (1 + DT / TimeD) + Coeff / (1 + TimeD / DT)
InD(i) = InD(i-1) / (1 + DT / TimeF) + In(i) / (1 + TimeF / DT)
PS(i) = ( PS(i-1) + InD(i) - InD(i-1) ) / (1 + DT / TimeD)
Cure = Z(i) * PS(i)
где In - аналоговый сигнал (вход)
Cure - аналоговый сигнал (выход)
TimeF - коэффициент демпфирования
TimeD - коэффициент дифференцирования
Coeff - коэффициент усиления
DT - цикл расчета (всегда 1.0)
Стандартные алгоблоки: UPR
Програмный блок предназначен для формирования управляющих сигналов регулятора
Расчетная схема :
Cure = Dist при DistOn = 1
Cure = Reg при DistOn = 0
где Dist - дистанционное управление (вход)
Reg - регулятор (вход)
Cure - аналоговый сигнал (выход)
DistOn - переключатель дистанционного управления (вход)
Стандартные алгоблоки: CMP
Програмный блок предназначен для сравнения двух входных параметров
Расчетная схема
при А = В Y1=1, Y2=0, Y3=0
при А < В Y1=0, Y2=1, Y3=0
при А > В Y1=0, Y2=0, Y3=1
при А <= В Y1=1, Y2=1, Y3=0
при А >= В Y1=1, Y2=0, Y3=1
где A - аналоговый сигнал (вход) / B - аналоговый сигнал (вход)
Y1 - дискретный сигнал (выход) / Y2 - дискретный сигнал (выход)
Y3 - дискретный сигнал (выход)
Стандартные алгоблоки: RND
Програмный блок выдает случайные числовые значения в диапазоне [Смещение - Амплитуда+Смещение]
Стандартные алгоблоки: CLG
Програмный блок предназначен для логического сравнения двух входных
параметров
Расчетная схема:
при истинном In1 & In2...& In10 And = 1, иначе And = 0
при истинном In1 | In2...| In10 Or = 1, иначе Or = 0
при истинном In1 xor In2...xor In10 Or_ = 1, иначе Or_ = 0
при изменении сигнала на любом активном входе
на выходе Not формируется единица на время одного
цикла выполнения
где In1...In10 - аналоговый сигналы (входы)
And - дискретный сигнал (выход)
Or - дискретный сигнал (выход)
Or_ - дискретный сигнал (выход)
Not - дискретный сигнал (выход)
Стандартные алгоблоки: INV
Алгоблок используется для получения на выходе инверсного дискретного значения. При Enable=0 на выход подается дискретное значение без инверсии.
Стандартные алгоблоки: DIB
Алгоблок применяется для динамической балансировки.
Балансировка обеспечивает плавный переход значения переменной процесса от текущего к заданному.
Расчетная формула:
Cure(i) = Cure(i-1) + sign(In-InReg)/Step;
где In - входной параметр / InReg - регулирующая величина
Step - шаг изменения значения выходного параметра (>1)
Cure(i) - выходной параметр / Cure(i-1) - предыдущий выходной параметр
Стандартные алгоблоки: MOD
Алгоблок используется для периодического включения и выключения нагрузки в том случае, когда скважность включения должна быть пропорциональна непрерывному управляющему сигналу.
Алгоблок содержит широтно-импульсный (ШИМ) модулятор с заданным периодом и меняющейся длительностью включения
Если входной сигнал Skv > 0, то импульсы формируются на дискретном выходе CureMo (больше),
если Skv < 0 - на выходе CureLe (меньше).
Период следования импульсов задается сигналом на настроечном входе алгоблока In. Длительность выходных импульсов
tи = ¦Skv¦ * In / 100.
Если Skv=0, то tи=0; если ¦Skv¦ >= 100%, то tи=In (т. е. пауза отсутствует).
Если вычисленное по формуле значение tи < Т0, где Т0 - время цикла контроллера, то реализуемое значение tи=In, причем часть импульсов при этом "пропадает", так что в среднем сохраняется
пропорциональность зависимости между скважностью и входным сигналом.
Если установленное значение периода In < Т0, то реализуемое значение tи = 0 (т. е. импульсы не формируются).
Стандартные алгоблоки: MUV
Алгоблок применяется для периодического включения оборудования (двигателя, нагревателя, обеспечения мигающей сигнализации и т. п.).
Мультивибратор запускается по переднему фронту сигнала на входе Enable (пуск), т. е. при переходе Enable из состояния логического 0 в состояние логической 1. После пуска на основном выходе алгоблока Cure формируется последовательность импульсов. Длительность этих импульсов задается настроечным входом TImp, длительность паузы - входом ТPause.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


