Система команд

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