Scada-система Овен телемеханика лайт. Руководство пользователя - часть 4

 

  Главная      Учебники - Разные     Scada-система Овен телемеханика лайт. Руководство пользователя

 

поиск по сайту            правообладателям  

 

 

 

 

 

 

 

 

содержание      ..     2      3      4      5     ..

 

 

Scada-система Овен телемеханика лайт. Руководство пользователя - часть 4

 

 

Контроллеры
В верхней части отображается массив всех внутренних переменных скрипта: их адреса,
названия, типы и начальные значения. Если переменные описываются в пользовательских
функциях (процедурах), то таким переменным дается название вида
<название функции>.<название переменной>
Ниже располагается сам псевдокод разбора программы с указанием адреса, размер стека,
мнемоник команд и некоторой другой информации для проверки правильности создания
конфигурации функционального блока.
Для сохранения информации разбора щелкните правой кнопки мыши в любом месте этой
вкладки, из всплывшего меню выберите соответствующий раздел.
Отладка скрипта
Написанный скрипт нужно отладить. Для этого предусмотрено несколько инструментов.
Доступ к этим инструментам возможен либо через кнопки управления отладкой, либо через
соответствующие им горячие клавиши.
- 200 -
Контроллеры
Компиляция. Производится проверка синтаксиса всего скрипта и в случае обнаружения
ошибок будет выдано сообщение в окне вывода сообщений компилятора. Для компиляции
скрипта нужно нажать на кнопку
или комбинацию клавиш <Ctrl+F9>. Операция
компиляции производится автоматически перед запуском программы на выполнение, в том
числе и в пошаговом режиме.
Выполнение. Производится компиляция и выполнение скрипта. Для запуска скрипта на
выполнение нужно щелкнуть на кнопке
или нажать клавишу <F9>. Скрипт будет
выполнен до первой точки останова или целиком, если таких точек нет.
Пошаговое выполнение. Для отслеживания изменения внутренних и внешних переменных
удобно выполнять скрипт не целиком, а последовательно, строка за строкой. Для
выполнения одного шага скрипта нужно щелкнуть на кнопке
или нажать клавишу <F8>.
Строка, которая будет выполнена следующей, подсвечивается синим цветом. На каждом
шаге выполнение отображается состояние всех входов \ выходов ФБ и внутренних
переменных (см. Отладка).
Остановка выполнения программы. Если необходимо прекратить выполнение
программы, нужно щелкнуть мышкой на кнопке
или нажать комбинацию клавиш <Ctrl
+F2>.
Добавление\удаление точек останова. Точку останова определяет оператор в программе,
перед выполнением которого программа прервет свою работу и управление будет передано
среде. Для добавления новой точки останова следует поставить курсор на необходимую
строчку кода и щелкнуть на клавишу
или нажать левую кнопку мыши слева от строки
кода в окне редактора или клавишу <F5>. Повторное нажатие приведет к удалению этой
точки.
- 201 -
Контроллеры
Примечание. Все операции записи и чтения глобальных переменных (входов\выходов
функционального блока) в режиме отладки только имитируются.
Настройка
Настройка включает в себя :
Опции
Цветовые схемы
Редактор шаблонов
Опции
Окно настройки выглядит следующим образом
На вкладке "Редактор" можно настроить параметры работы окна редактора кода.
Кнопкой "Цветовые настройки" выполняется настройка цветовой гаммы для выделения
различных элементов в окне редактора кода. (см. Редактор тем.)
Цветовые схемы
Для каждого языка программирования можно задать свою цветовую схему подсветки
синтаксиса (тему). Настройка тем производится при помощи редактора тем.
- 202 -
Контроллеры
Для каждого элемента синтаксиса можно задать цвет символов, кликнув нужный цвет левой
кнопкой мыши (на него переместится указатель FG), и цвет фона, кликнув нужный цвет правой
кнопкой мыши (указатель).
Для удобства из набора можно выбрать одну из готовых тем.
Примечание. Цветовая схема каждого языка программирования действует для всего
приложения в рамках текущего проекта. То есть, если пользователь изменил тему языка
Pascal, то эта же тема будет использоваться при редактировании всех скриптов на языке
Pascal.
- 203 -
Контроллеры
Редактор шаблонов
Горячие клавиши
Сочетания клавиш
Действие
<F1>
Вызов справки
<Ctrl + F>
Найти
<Ctrl + R>
Заменить
<F2>
Найти \ заменить предыдущий элемент
<F3>
Найти \ заменить следующий элемент
<F4>
Показать \ скрыть панель инструментов
<F5>
Добавить \ удалить точку останова
<F6>
Показать \ скрыть панель состояния
<Shift + Ctrl + F5>
Удалить все точки останова
<Ctrl + F6>
Сгенерировать К-код
<F8>
Пошаговое выполнение
<Ctrl + F2>
Остановить пошаговый режим
<Ctrl + F9>
Компилировать
<F9>
Выполнить
<Ctrl + P>
Печать
<Ctrl + Space>
Опция завершения кода
<Ctrl + J>
Опция шаблонов
<Shift + Ctrl + Space>
Опция параметров
- 204 -
Контроллеры
<Ctrl + Z>,
Отменить последнее действие
<Alt + BackSpace>
<Ctrl + C>
Копировать в буфер
<Ctrl + V>
Вставить из буфера
<Ctrl + X>
Вырезать
<Ctrl + Y>
Удалить строку
<Ctrl + N>
Вставить новую строку
<Ctrl + T>
Удалить слово
<Shift + Ctrl + I>
Сдвинуть выделенный блок кода вправо
<Shift + Ctrl + U>
Сдвинуть выделенный блок кода влево
<Shift + Ctrl + Y>
Удалить код до конца текущей строки
<Home>
Перейти в начало строки
<End>
Перейти в конец строки
<Enter>
Вставить символ возврата каретки
<Ins>
Переключатель режима вставки\замены
<Del>
Удалить символ справа от курсора
<BackSpace>
Удалить символ слева от курсора
<Tab>
Вставить символ табуляции
<Shift + Tab>
Переместить курсор на одну позицию
табуляции влево
<Space>
Вставить пробел
<Page Up>
Переместиться на одну страницу вверх
<Page Down>
Переместиться на одну страницу вниз
<Ctrl + стрелка влево>
Переместиться на одно слово влево
<Ctrl + стрелка вправо>
Переместиться на одно слово вправо
<Ctrl + стрелка вверх>
Пролистать на одну строку вверх
<Ctrl + стрелка вниз>
Пролистать на одну строку вниз
<Ctrl + Home>
Переместиться в начало скрипта
<Ctrl + End>
Переместиться в конец скрипта
<Shift + стрелка влево>
Выделить символ слева от курсора
<Shift + стрелка вправо>
Выделить символ справа от курсора
<Shift + стрелка вверх>
Переместить курсор на одну строку вверх
и выделить код до начальной позиции
курсора
<Shift + стрелка вниз>
Переместить курсор на одну строку вниз и
выделить код до начальной позиции
курсора
<Shift + Page Down>
Переместить курсор на один экран вверх
и выделить код до начальной позиции
курсора
< Shift + Page Up>
Переместить курсор на один экран вниз и
выделить код до начальной позиции
- 205 -
Контроллеры
курсора
<Ctrl + A>
Выделить все
<Shift + End>
Выделить код до конца текущей строки
<Shift + Home>
Выделить код до начала текущей строки
<Ctrl + Shift + стрелка влево>
Выделить слово слева от курсора
<Ctrl + Shift + стрелка
Выделить слово справа от курсора
вправо>
<Ctrl + Shift + Home>
Выделить до начала скрипта
<Ctrl + Shift + End>
Выделить до конца скрипта
<Ctrl + Page Down>
Выделить до нижней строки экрана
<Ctrl + Page Up>
Выделить до верхней строки экрана
<Ctrl + Shift + 0..9>
Установить закладку 0..9
<Ctrl + 0...9>
Перейти на закладку 0..9
<Alt + F>
Перейти к первой странице
<Alt + P>
Предыдущая страница
<Alt + N>
Следующая страница
<Alt + L>
Перейти к последней странице
<Alt + Z>
Изменить масштаб
5.4.6.3 Входы\выходы ФБ
Каждый функциональный блок характеризуется наличием входов и\или выходов и их типом.
Под входом \ выходом ФБ будем иметь ввиду именно такие характеристики ФБ, т.е. это
структура, где имеются:
признак : вход \ выход,
тип : целочисленный, вещественный, логический,
начальные значения
Именно через такие переменные будет доступна связь с другими функциональными блоками
и модулями ввода\вывода.
Сами переменные в тексте скрипта не объявляются, определяются во вкладке "Скрипт"
системы EnLogic. Чтение и запись в такие переменные из программного кода скрипта
осуществляется через специальные функции (см. Функции чтения\записи), определенные
внутри скрипта.
5.4.6.4 Внутренние переменные скрипта
Под внутренними переменными будем иметь в виду переменные, объявленные внутри
программного кода скрипта, область действия которых - скрипт или подпрограмма, где они
определены. Такие переменные недоступны другим ФБ, модулям ввода\вывода.
5.4.6.5 Стандартные функции скрипта
Функции, определенные в скрипте:
Математические
Функции чтения\записи
Функции чтения\записи по адресу
- 206 -
Контроллеры
Математические
Список математических функций:
Арифметические
Тригонометрические
Abs
Cos
Ceil
Sin
Exp
Tan
Floor
ArcCos
Frac
ArcSin
Ln
ArcTan
LogN
Pi
Pow
Sqrt
Int
Abs
Функция возвращает абсолютное значение указанного числа.
Синтаксис:
function Abs(X);
Аргументы :
X - значение, имеющее целочисленный или действительный тип.
Пример:
Abs (-2.3);
{результат 2.3}
(см. Арифметические функции)
ArcCos
Функция возвращает арккосинус указанного числа. Арккосинус числа - это угол, косинус
которого равен указанному в качестве аргумента значению. Угол определяется в радианах в
интервале от 0 до 1 (от 0 до 180°).
Синтаксис:
function ArcCos(X : Real): Real;
Аргументы :
X - действительное число, лежащее в интервале от -1 до 1.
(см. Тригонометрические функции)
ArcSin
Функция возвращает арксинус указанного числа. Арксинус числа - это угол, косинус которого
равен указанному в качестве аргумента значению. Угол определяется в радианах в интервале
от - 1 / 2 до 1 / 2 (от -90 до 90°).
- 207 -
Контроллеры
Синтаксис:
function ArcSin(X : Real): Real;
Аргументы :
X - действительное число, лежащее в интервале от -1 до 1.
(см. Тригонометрические функции)
ArcTan
Функция возвращает арктангенс аргумента указанного числа. Арктангенс числа - это угол,
тангенс которого равняется указанному в качестве аргумента значению. Угол определяется в
радианах в диапазоне от -1 / 2 до 1 / 2 (от -90 до 90°).
Синтаксис:
function ArcTan(X : Real): Real;
Аргументы :
X - любое действительное число, характеризующее угол, заданный в радианах.
(см. Тригонометрические функции)
Ceil
Функция определяет наименьшее целое >= указанного числа.
Синтаксис:
function Ceil(X : Real): Integer;
Аргументы :
X - действительное число.
Возвращаемое целочисленное значение имеет тип Integer и представляет собой наименьшее
целое число, которое больше или равно указанного числа.
Пример:
Ceil (-2.8);
{результат -2}
Ceil (2.8);
{результат 3}
Ceil (-1.0);
{результат -1}
(см. также Floor, Арифметические функции)
Cos
Функция возвращает косинус указанного числа.
Синтаксис:
function Cos(X : Real): Real;
Аргументы :
X - число, характеризующее угол, заданный в радианах.
(см. Тригонометрические функции)
- 208 -
Контроллеры
Exp
Функция возвращает число e (экспонента), возведенное в заданную степень.
Синтаксис:
function Exp(X : Real): Real;
Аргументы :
X - степень экспоненты.
(см. Арифметические функции)
Floor
Функция определяет наибольшее целое <= указанного числа.
Синтаксис:
function Floor(X : Real): Integer;
Аргументы :
X - значение, имеющее действительный тип.
Возвращаемое целочисленное значение имеет тип Integer и представляет собой наибольшее
целое число, которое меньше или равно указанного числа.
Пример:
Floor (-2.8);
{результат -3}
Floor (2.8);
{результат 2}
Floor (-1.0);
{результат -1}
(см. также Ceil, Арифметические функции)
Frac
Функция возвращает дробную часть числа.
Синтаксис:
function Frac(X : Real): Real;
Аргументы :
X - значение, имеющее действительный тип.
Результат, возвращаемый функцией Frac, может быть получен с помощью функции Int
следующим образом:
Frac (X) = X - Int (X).
Пример:
Frac (123.456);
{результат 0.456}
(см. Арифметические функции)
Int
Функция возвращает целую часть числа.
Синтаксис:
function Int(X : Real): Real;
- 209 -
Контроллеры
Аргументы :
X - значение, имеющее действительный тип.
Пример:
Int (123.456);
{результат 123.0}
(см. Арифметические функции)
LogN
Функция возвращает логарифм по произвольному основанию от указанного числа.
Синтаксис:
function LogN(N,X: Real): Real;
Аргументы :
N- действительное, неотрицательное число, являющееся основанием логарифма;
X - действительное, неотрицательное число.
Пример:
LogN (3,27);
{результат 3}
(см. также Ln, Арифметические функции)
Ln
Функция возвращает натуральный логарифм указанного числа. Натуральный логарифм
экспоненты равен единице : Ln(e) = 1.
Синтаксис:
function Ln(X: Real): Real;
Аргументы :
X - действительное, неотрицательное число.
Пример:
Ln (Exp (54));
{результат 54}
(см. также LogN, Арифметические функции)
Pi
Функция возвращает число пи, равное 3.141592.
Синтаксис:
function Pi: Real;
(см. Арифметические функции)
Pow
Функция возвращает значение степенной функции по любому основанию.
Синтаксис:
function Pow(X, Y : Real): Real;
- 210 -
Контроллеры
Аргументы :
X - основание степенной функции;
Y - стенень.
Пример:
Pow (2, 3);
{результат 8}
(cм. также Арифметические функции)
Sin
Функция возвращает синус указанного числа.
Синтаксис:
function Sin(X : Real): Real;
Аргументы :
X - число, характеризующее угол, заданный в радианах.
Sqrt
Функция возвращает квадратный корень от указанного значения.
Синтаксис:
function Sqrt(X : Real): Real;
Аргументы :
X - действительное число, большее 0.
Пример:
sqr (25);
{результат 5}
(см. Арифметические функции)
Tan
Функция возвращает тангенс указанного числа.
Синтаксис:
function Tan(X : Real): Real;
Аргументы :
X - любое действительное число, характеризующее угол, заданный в радианах.
(см. Тригонометрические функции)
Чтения/Записи
Функции чтения/записи используются для доступа ко входам/выходам функционального
блока.
Функции чтения
Функции записи
ReadInteger
WriteInteger
ReadFloat
WriteFloat
ReadBool
WriteBool
ReadQuality
WriteQuality
- 211 -
Контроллеры
Общий вид функций :
function <название функции> (const VarName : String, X : VarType) : bool;
Аргументы :
VarName - имя внешней переменной, к которой осуществляется доступ.
X - имя внутренней переменной с типом VarType (Integer, Real, Bool).
Каждая функция возвращает True, если запрос прошел удачно, и False в случае неудачи (это
может быть отсутсвие внешней или внутренней переменной или несоответствующие их типы).
Для записи должна используется внешняя переменная с признаком выход, а для чтения -
любой: вход, выход.
ReadInteger
Получение значения внешней переменной целого типа.
function ReadInteger (const VarName : String, X: Integer) : bool
Описание.
Функция запрашивает значение входа\выхода ФБ целого типа с именем VarName. Значение
переменной будет помещено во внутреннюю переменную X. На выходе функция возвратит
True, если запрос прошел удачно, и False в случае неудачи (это может быть отсутствие
внешней или внутренней переменной или несоответствующие их типы).
ReadFloat
Получение значения внешней переменной вещественного типа.
function ReadFloat (const VarName : String, X: Float) : bool
Описание.
Функция запрашивает значение входа\выхода ФБ вещественного типа с именем VarName.
Значение переменной будет помещено во внутреннюю переменную X. На выходе функция
возвратит True, если запрос прошел удачно, и False в случае неудачи (это может быть
отсутствие внешней или внутренней переменной или несоответствующие их типы).
ReadBool
Получение значения внешней переменной логического типа.
function ReadBool (const VarName : String, X: Bool) : bool
Описание.
Функция запрашивает значение входа\выхода ФБ логического типа с именем VarName.
Значение переменной будет помещено во внутреннюю переменную X. На выходе функция
возвратит True, если запрос прошел удачно, и False в случае неудачи (это может быть
отсутствие внешней или внутренней переменной или несоответствующие их типы).
ReadQuality
Получение качества внешней переменной любого типа.
function ReadInteger (const VarName : String, X: Integer) : bool
Описание.
- 212 -
Контроллеры
Функция запрашивает качество входа\выхода ФБ любого типа с именем VarName. Качество
переменной будет помещено во внутреннюю переменную X. На выходе функция возвратит
True, если запрос прошел удачно, и False в случае неудачи (это может быть отсутствие
внешней или внутренней переменной ). Значение хорошего качества равно 192.
См. также пример использования процедур чтения и записи.
WriteInteger
Запись значения во внешнюю переменную целого типа.
function WriteInteger (const VarName : String, X: Integer) : bool
Описание.
Функция записывает значение во входа\выхода ФБ целого типа с именем VarName и
признаком выход. Записываемое значение должно находиться во внутренней переменной X.
На выходе функция возвратит True, если запись прошла удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
WriteFloat
Запись значения во внешнюю переменную вещественного типа.
function WriteFloat (const VarName : String, X: Float) : bool
Описание.
Функция записывает значение во входа\выхода ФБ вещественного типа с именем VarName и
признаком выход. Записываемое значение должно находиться во внутренней переменной X.
На выходе функция возвратит True, если запись прошла удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
WriteBool
Запись значения во внешнюю переменную логического типа.
function WriteBool (const VarName : String, X: Bool) : bool
Описание.
Функция записывает значение во входа\выхода ФБ логического типа с именем VarName и
признаком выход. Записываемое значение должно находиться во внутренней переменной X.
На выходе функция возвратит True, если запись прошла удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
WriteQuality
Запись качества во внешнюю переменную любого типа.
function WriteQuality (const VarName : String, X: Integer) : bool
Описание.
Функция записывает качество в вход\выход ФБ любого типа с именем VarName и признаком
выход. Записываемое значение качества должно находиться во внутренней переменной X. На
выходе функция возвратит True, если запись прошла удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной ).Значение хорошего качества
равно 192.
- 213 -
Контроллеры
См. также пример использования процедур чтения и записи.
Пример использования
Пример скрипта на языке С
{
int In1, In2, res;
ReadInteger("In1", In1);
ReadInteger("In2", In2);
res = In1 + In2;
WriteInteger("In1 + In2", res);
res = In1 - In2;
WriteInteger("In1 - In2", res);
}
где In1, In2, In1 + In2, In1 - In2 -внешние переменные, которые
описываются следующим образом
In1 : Вход, Integer;
In2 : Вход, Integer;
In1 + In2 : Выход, Integer;
In1 - In2 : Выход, Integer;
Пример скрипта на языке Pascal
var In1,In2 : Integer;
begin
ReadInteger('In1', In1);
ReadInteger('In2', In2);
WriteInteger('In1 + In2', In1 + In2);
WriteInteger('In1 - In2', In1 - In2);
end.
Чтения/Записи по адресу
Функции чтения/записи тегов по адресу используются для доступа к любым тегам в
контроллере, используя уникальный адрес тега.
Функции чтения
Функции записи
ReadIntegerAddr
WriteIntegerAddr
ReadFloatAddr
WriteFloatAddr
ReadBoolAddr
WriteBoolAddr
Общий вид функций :
function <название функции> (const VarAddr : integer, X : VarType) :
bool;
Аргументы :
VarAddr - имя внешней переменной, к которой осуществляется доступ.
X - имя внутренней переменной с типом VarType (Integer, Real, Bool).
Каждая функция возвращает True, если запрос прошел удачно, и False в случае неудачи (это
- 214 -
Контроллеры
может быть отсутсвие внешней или внутренней переменной или несоответствующие их типы).
Для записи должна используется внешняя переменная с признаком выход, а для чтения -
любой: вход, выход.
ReadIntegerAddr
Получение значения внешней переменной целого типа.
function ReadIntegerAddr (const VarAddr : integer, X: Integer) : bool
Описание.
Функция запрашивает значение переменной целого типа по его адресу. Адрес задается
переменной VarAddr. Считанное значение будет помещено во внутреннюю переменную X. На
выходе функция возвратит True, если запрос прошел удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их
типы).
ReadFloatAddr
Получение значения внешней переменной вещественного типа.
function ReadFloatAddr (const VarAddr : integer, X: Float) : bool
Описание.
Функция запрашивает значение переменной вещественного типа по его адресу. Адрес
задается переменной VarAddr. Считанное значение будет помещено во внутреннюю
переменную X. На выходе функция возвратит True, если запрос прошел удачно, и False в
случае неудачи (это может быть отсутствие внешней или внутренней переменной или
несоответствующие их типы).
ReadBoolAddr
Получение значения внешней переменной логического типа.
function ReadBoolAddr (const VarAddr : integer, X: Bool) : bool
Описание.
Функция запрашивает значение переменной логического типа по его адресу. Адрес задается
переменной VarAddr. Считанное значение будет помещено во внутреннюю переменную X. На
выходе функция возвратит True, если запрос прошел удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их
типы).
WriteIntegerAddr
Запись значения во внешнюю переменную целого типа.
function WriteIntegerAddr (const VarAddr : integer, X: Integer) : bool
Описание.
Функция записывает значение в переменную целого типа с адресом VarAddr и признаком
выход. Записываемое значение должно находиться во внутренней переменной X. На выходе
функция возвратит True, если запись прошла удачно, и False в случае неудачи (это может
быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
- 215 -
Контроллеры
WriteFloatAddr
Запись значения во внешнюю переменную вещественного типа.
function WriteFloatAddr (const VarAddr : integer, X: Float) : bool
Описание.
Функция записывает значение в переменную вещественного типа с адресом VarAddr и
признаком выход. Записываемое значение должно находиться во внутренней переменной X.
На выходе функция возвратит True, если запись прошла удачно, и False в случае неудачи (это
может быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
WriteBoolAddr
Запись значения во внешнюю переменную логического типа.
function WriteBoolAddr (const VarAddr : integer, X: Bool) : bool
Описание.
Функция записывает значение в переменную логического типа с адресом VarAddr и признаком
выход. Записываемое значение должно находиться во внутренней переменной X. На выходе
функция возвратит True, если запись прошла удачно, и False в случае неудачи (это может
быть отсутствие внешней или внутренней переменной или несоответствующие их типы.
Пример использования
Пример скрипта на языке С
{
int In1, In2, res, Addr1;
Addr1 = 1;
ReadIntegerAddr(Addr1, In1);
ReadIntegerAddr(2, In2);
res = In1 + In2;
WriteIntegerAddr(3, res);
res = In1 - In2;
WriteIntegerAddr(4, res);
}
где In1, In2, In1 + In2, In1 - In2 - входа и выхода ФБ, которые
описываются следующим образом
In1 : Вход, Integer;
(адрес 1)
In2 : Вход, Integer;
(адрес 2)
In1 + In2 : Выход, Integer; (адрес 3)
In1 - In2 : Выход, Integer; (адрес 4)
Пример скрипта на языке Pascal
var In1,In2,Addr1 : Integer;
begin
Addr1 := 1;
ReadIntegerAddr(Addr1, In1);
ReadIntegerAddr(2, In2);
- 216 -
Контроллеры
WriteIntegerAddr(3, In1 + In2);
WriteIntegerAddr(4, In1 - In2);
end.
5.4.6.6 Особенности
Отсутствуют объявления типов (records, classes) в скрипте; нет записей (records),
указателей (pointers), множеств (sets) , нет строковых типов, массивов, нет безусловного
перехода (GOTO).
CScript: нет восьмеричных констант; нет 'break' в операторе SWITCH (SWITCH работает
подобно Pascal CASE); операторы '++' и '--' возможны только после переменных, т.е. '++i' не
будет работать; операторы '--', '++' и '=' ничего не возвращают, т.е. 'if(i++)' не будет
работать; все идентификаторы не чувствительны к регистру; Константа NULL это Null из
Pascal- используйте nil вместо NULL. Вместо побитовых операций &, | используются && и ||.
Нет поддержки многомодульности для скрипта. (т.е не работают команды uses, unit для
PascalScript; #include<> для CScript.
5.4.7 Специальные
UserTaskInfo
SystemInfo
SerialTaskInfo
PerfInt
PerfFloat
TCPInfo
ModbusInfo
Инициативная связь
Установка времени
Контроль состояния модема
IOTaskInfo
Сохранение переменных
FlashInfo
ArchiveTaskInfo
IecInfo
IecConnectionInfo
Контроль IP
5.4.7.1 UserTaskInfo
Префикс ФБ: UserTaskInfo
Полное название: Информация о задаче пользователя
Код: 200
Мультиканальность: нет
Назначение: Функциональный блок для мониторинга работы задачи пользователя.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Выходы
01
Целочисленный
QuanFB
Количество ФБ в задаче
02
Целочисленный
SizeShareMemFB
Размер "общей" памяти ФБ, байты
03
Целочисленный
FBPersonalMemSize
Суммарный размер "персональной"
памяти ФБ, байты
04
Целочисленный
LenLastStep_ms
Длительность последнего цикла задачи,
- 217 -
Контроллеры
мсек
05
Целочисленный
CicleCounter
Счетчик обработанных циклов задачи
06
Целочисленный
ErrorCounter
Счетчик ошибок при вызове функций ФБ
07
Целочисленный
Period
Период задачи, мсек
08
Целочисленный
QuanParams
Количество параметров в задаче, мсек
09
Целочисленный
CfgSize
Размер конфигурации задачи, байт
10
Целочисленный
Number
Внутренний номер задачи
11
Целочисленный
Priority
Приоритет выполения задачи
5.4.7.2 SystemInfo
Префикс ФБ: SystemInfo
Полное название: Информация о системе
Код: 201
Мультиканальность: нет
Назначение: Функциональный блок для общего мониторинга работы исполнительной системы.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Дискретный
Reset
Рестарт контроллера по переднему
фронту импульса
Выходы
01
Целочисленный
QuanParamsInGlobArra
Количество параметров в глобальном
y
массиве
02
Целочисленный
QuanBooleanParamsIn
Количество параметров типа Boolean в
GlobArray
глобальном массиве
03
Целочисленный
QuanIntegerParamsInGl
Количество параметров типа Integer в
obArray
глобальном массиве
04
Целочисленный
QuanFloatParamsInGlo
Количество параметров типа Float в
bArray
глобальном массиве
05
Целочисленный
QuanTasks
Общее количество задач
06
Целочисленный
QuanUserTasks
Количество задач пользователя
07
Целочисленный
QuanSerialTasks
Количество задач опроса внешних
устройств
08
Целочисленный
QuanModbusTasks
Количество задач Modbus
09
Целочисленный
MainCounter
Счетчик циклов основной задачи
10
Целочисленный
CPUloading
Загрузка процессора, %
11
Целочисленный
FreeRAM_Kb
Объем свободного ОЗУ, Кбайт
5.4.7.3 SerialTaskInfo
Префикс ФБ: SerialTaskInfo
Полное название: Информация о задаче опроса внешних устройств
Код: 202
- 218 -
Контроллеры
Мультиканальность: нет
Назначение: Функциональный блок для мониторинга работы задачи опроса внешних УСО.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Целочисленный
TaskNumber
Номер задачи опроса, начиная с
0,
сверху вниз
Выходы
01
Целочисленный
Port
Номер COM-порта
02
Целочисленный
Boud
Скорость обмена
03
Целочисленный
Data
Число бит в символе
04
Целочисленный
Parity
Четность
05
Целочисленный
Stop
Число стоповых бит
06
Целочисленный
ProtocolType
Тип протокола обмена
07
Целочисленный
ProtocolFlags
Дополнительные флаги протокола
обмена
08
Целочисленный
QuanModules
Количество модулей для опроса
09
Целочисленный
CurrentModule
Номер текущего опрашиваемого модуля
10
Целочисленный
LenLastStep
Длительность последнего цикла задачи,
мсек
11
Целочисленный
CicleCounter
Счетчик отработанных циклов задачи
12
Целочисленный
ErrorCounter
Счетчик ошибок при работе задачи
13
Целочисленный
Period
Период задачи, мсек
14
Целочисленный
QuanParams
Количество параметров в задаче
15
Целочисленный
CfgSize
Размер конфигурации задачи, байт
16
Целочисленный
Number
Внутренний номер задачи
17
Целочисленный
Priority
Приоритет выполения задачи
5.4.7.4 PerfInt
5.4.7.5 PerfFloat
5.4.7.6 TCPInfo
5.4.7.7 ModbusInfo
5.4.7.8 Инициативная связь
Префикс ФБ: ИнициативнаяСвязь
Полное название: Инициация связи с системой верхнего уровня
- 219 -
Контроллеры
Код: 210
Мультиканальность: нет
Назначение: Функциональный блок получает сигнал принудительного установления связи с
верхним уровнем и управляет процессом установления связи.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ЧислоПопыток
Количество попыток установить связь в
сеансе
02
Integer
ОтменаВызова
Отмена вызова при отсутствии связи,
секунд
03
Integer
ТаймАутПовтор
Тайм-аут между повтором набора
номера, секунд
04
Boolean
ЗапретРаботы
Запрет срабатывания ФБ
05
Boolean
ПереднийФронт
Сигнал срабатывания ФБ по переднему
фронту
06
Boolean
Задний Фронт
Сигнал срабатывания ФБ по заднему
фронту
Выходы
01
Integer
НомерПопытки
Номер текущей попытки
02
Integer
Состояние
Код текущего состояния ФБ
03
Integer
ЧислоСеансов
Счетчик возникающих сеансов связи
04
Integer
ЧислоНеудач
Счетчик неудавшихся сеансов связи
Панель настройки ФБ:
Описание: Функциональный блок используется для инициирования исполнительной системой
передачи данных по каналу связи GSM верхнему уровню при обнаружении
запрограммированной ситуации. ФБ обрабатывается циклически в программе пользователя,
аналогично типовым ФБ. В цикле происходит анализ состояния управляющих входов
ПереднийФронт и ЗаднийФронт, в случае обнаружения соответствующего перехода по
- 220 -
Контроллеры
любому из входов ФБ формирует команду на дозвон задаче связи с верхним уровнем.
В момент обнаружения перехода происходит фиксация во внутренней памяти ФБ состояния
параметров (входов-выходов) других ФБ, которые необходимо передать наверх в первую
очередь. Например - это могут параметры, изменение которых вызвало ситуацию дозвона.
Список параметров формируется на вкладке настройки данного ФБ "перетаскиванием" в
таблицу из дерева проекта необходимых параметров или целых ФБ (или Модулей).
В процессе ожидания управляющего фронта выход Состояние данного ФБ имеет значение 0.
После формирования данным ФБ команды на дозвон и передачи ее задаче обмена значение
выхода Состояние отличается от нуля до тех пор, пока задача обмена не закончит отработку
сформированной команды.
Код
Состояние
состояния
0
в ожидании, ждем управляющий фронт
1
обнаружен управляющий фронт, необходимо дать команду модему, ждем когда
освободится модем
2
управляющий блок передан модему, ждем ответа задачи модема
В панели настройки ФБ существует 3 телефонных номера для дозвона и передачи параметров
системе верхнего уровня. Обязательным является "Номер телефона
#1", остальные,
дополнительные номера телефонов - необязательные. Однако, если дополнительные номера
определены, то дозвоны на них будут совершаться независимо от наличия или результатов
дозвона до остальных номеров.
Количество попыток дозвона задается в ФБ входом ЧислоПопыток. Повтором попыток
дозвона в очередном сеансе управляет ФБ. Номер текущей попытки выдается в выходе
НомерПопытки. Процесс дозвона, состоящий из одной или нескольких попыток, называется
сеансом. ФБ ведет счетчик сеансов связи - выход ЧислоСеансов. Также фиксируется,
сколько из этих сеансов было неудачных - ЧислоНеудач.
Вход ОтменаВызова задает значение таймаута в секунда для ожидания ответа при звонке
верхнему уровню. Вход ТаймАутПовтор - значение таймаута (паузы) между попытками
дозвона в очередном сеансе.
С помощью входа ЗапретРаботы можно запретить (при TRUE) данному ФБ формировать
команды на установление инициативной связи.
Система верхнего уровня организуется так, что принимает входящий звонок, открывает канал
связи, принимает инициативный пакет от исполнительной системы. Пакет содержит набор
идентификаторов, которые позволят идентифицировать произошедшее событие, в том числе
и задаваемый пользователем идентификатор, время события в контроллере, и список
значений параметров, состояние которых зафиксировал инициативный ФБ в момент
управляющего фронта. После отправки ответа на инициативный пакет система верхнего
уровня может дополнительно запросить текущее состояние всех переменных контроллера, и
затем закрыть сеанс связи.
5.4.7.9 Установка времени
5.4.7.10 Контроль состояния модема
Префикс ФБ: КонтрольМодема
Полное название: Контроль состояния модема
Код: 212
Мультиканальность: нет
- 221 -
Контроллеры
Назначение: Функциональный блок используется для контроля за подключенным к
контроллеру модемом.
Описание: ФБ КонтрольМодема работает с модемом, подключенным к контроллеру, посылая
ему периодически команду "AT", Модем в ответ должен передать контроллеру строку "OK".
Если же в момент запроса модем находится в режиме передачи данных, и, практически не
может отработать AT-команду, то исполнительная система обрабатывает такую ситуацию
сама и предполагает что модем работает нормально. На выход "СостояниеФБ" подается
текущий режим работы ФБ, на выход "СостояниеМод" подается результат последней проверки
модема (см. таблицу).
Цикл работы ФБ КонтрольМодема следующий: после начала работы, ФБ ожидает
"ЗадержкаОпрос" циклов опроса ("СостояниеМод"=0), затем переходит в режим запроса
("СостояниеМод"=1) и сразу же переходит в режим ожидания и реакции на результат
("СостояниеМод"=2). Если модем нормально ответил на запрос, то ФБ переходит вновь в
состояние ожидания следующей проверки (0), если же модем не ответил, или ответил
неправильно, ФБ все равно переходит в состояние ожидания(0), но также инкрементирует
счетчик подряд идущих неудачных опросов модема (который сбрасывается при успешном
опросе). После инкремента этого счетчика
- если достигнуто значение "КолОпросов",
происходит рестарт модема - установление на "ДлитВыклМодем" секунд, значения True на
выходе "Перезапуск". После этого ФБ вновь переходит в состояние ожидания (0). На выходе
"КолПерезапуск" накапливается общее количество перезапусков модема с последнего старта
работы контроллера.
Для физического рестарта "зависшего" модема необходимо подключить(создать связь)
выхода "Перезапуск" к каком-нибудь дискретным выходом модуля (или контроллера, если он
несет на себе дискретные выводы), а тот, в свою очередь, соединить физически либо со
специальным контактом рестарта модема, если он есть, либо, при отсутствии последнего -
подключить реле, размыкающее цепь питания модема.
ФБ работает только при установленном на входе "Работа" значении True.
Таблица входов-выходов функционального блока «КонтрольМодема»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
КолОпросов
Количество опросов модема при отсутствии ответа
от него
02
Integer
ЗадержкаОпрос
Задержка между опросами (в циклах опроса)
03
Integer
ДлитВыклМодем
Длительность выключенного состояния модема (в
секундах)
04
Boolean
Работа
Работа функционального блока
Выходы
01
Integer
КолПерезапуск
Количество перезапусков модема
02
Integer
СостояниеФБ
Состояние ФБ
(0-ждет;
1-запрос;
2-ожидание и
реакция на результат)
03
Boolean
Перезапуск
Сигнал на перезапуск модема
04
Boolean
СостояниеМод
Состояние модема (True-ответил, False-не ответил,
неопределенность - еще не был опрошен)
5.4.7.11 IOTaskInfo
5.4.7.12 Сохранение переменных
Префикс ФБ: СохрПерем
Полное название: Сохранение переменных
- 222 -
Контроллеры
Код: 155
Мультиканальность: нет
Назначение: Функциональный блок используется для сохранения параметров.
Описание: ФБ Сохранение переменных имеет настраиваемый пользователем список
переменных, которые затем можно связать с ключевыми или промежуточными значениями
коэффициентов, параметров технологической программы и других значений. Далее
предполагается их ввод или вывод на верхний уровень. Список переменных настраивается
прямо из
Никакой математической обработки списка переменных не ведется. Каждый параметр может
быть изменен, как и любой другой вход-выход ФБ (начальное значение, связь, комментарий),
плюс ко всему можно изменить его имя и тип.
Окно настройки переменных описано в соответствующем разделе общих настроечных окон.
5.4.7.13 FlashInfo
Префикс ФБ: FlashInfo
Полное название: Информация о состоянии FLASH
Код: 206
Мультиканальность: нет
Назначение: Функциональный блок отражающий информацию о состоянии FLASH.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Целочисленный
Номер блока
Номер блока (0..N)
Выходы
01
Целочисленный
Размер блока
Размер блока
02
Целочисленный
Тип блока
0-FLASH
1-EEPROM (энергонезависимая память)
2-RAM
(данные теряются при рестарте,
сбросе питания..)
03
Целочисленный
Состояние блока
0-BAD (плохой, не используемый)
1-FREE CLEAN
(свободный, очищенный,
готовый к записи)
2-FREE DIRTY
(занятый мусором, перед
использованием требуется форматирование)
3-USE PARTLY (частично занят, начато
использование)
4-USE FULLY (полностью занят)
04
Целочисленный
Пропущенные
Есть ли "дырки" в записях этого блока
точки
0 - есть пропущенные точки
05
Целочисленный
Первая запись
Дата\время первой записи в этом блоке
06
Целочисленный
Последняя запись
Дата\время последней записи в блоке
07
Целочисленный
Свободно
Количество байт сводных в блоке
- 223 -
Контроллеры
5.4.7.14 ArchiveTaskInfo
Префикс ФБ: ArchiveTaskInfo
Полное название: Информация о задаче Архив
Код: 207
Мультиканальность: нет
Назначение: Функциональный блок выдающий информацию о задаче типа Архив.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Целочисленный
Номер архива
Номер архива (0..N)
02
Целочисленный
Тип архива
0-исторический
1-оперативный
Выходы
01
Целочисленный
Счетчик циклов
Счетчик обработанных циклов задачи
02
Целочисленный
Счетчик ошибок
Счетчик ошибок при работе задачи
03
Целочисленный
Тип записи
0-периодический
1-по расписанию
04
Целочисленный
В работе
0-работа
1-ошибка
05
Целочисленный
Кол-во параметров
Кол-во параметров в задаче
06
Целочисленный
Номер параметра
Номер обрабатываемого параметра
в
текущем архиве в текущий момент
07
Целочисленный
Число точек
Общее число полученных точек
08
Целочисленный
Число записанных
Общее число записанных точек
точек
09
Целочисленный
Состояние
Состояние задачи
0-ожидание
1-заполнение пропущенных точек
2-чтение последних получасовок
3-сохранение точек
10
Целочисленный
Длительность
Длительность последнего запроса
запроса
11
Целочисленный
Длительность
Длительность сохранения точек
сохранения
12
Временной
Время начала цикла
Время начала цикла
13
Временной
Время запроса
Время запроса
5.4.7.15 IEC_Info
Функциональный блок для мониторинга работы задачи МЭК.
5.4.7.16 IEC_Connection_Info
Функциональный блок для мониторинга МЭК-соединения.
- 224 -
Контроллеры
5.4.7.17 КонтрольIP
Префикс ФБ: Контроль IP
Полное название: Контроль IP
Код: 219
Мультиканальность: нет
Назначение: Функциональный блок проверки наличия связи с удаленной машиной
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
Integer
IP_a
Часть IP адреса
02
Integer
IP_b
Часть IP адреса
03
Integer
IP_c
Часть IP адреса
04
Integer
IP_d
Часть IP адреса
05
Integer
Ожидание
Время ожидания ответа
Выходы
06
Bool
Связь
Признак наличия связи
07
Integer
ПакетовПос
Количество посланных пакетов
08
Integer
ПакетовПрин
Количество принятых пакетов
09
Integer
Задержка
Задержка, мс
Внимание!
В случае безуспешной попытки проверки связи выполнение задачи пользователя будет
задержано, потому рекомендуем использовать этот функциональный блок в отдельной
задаче пользователя
5.4.8 Таймеры
Таймер
Таймер-календарь
Интервал
Счетчик пробега
Перевод секунд в Д:Ч:М:С
Таймер - обратный отсчет
Timer
Импульсный таймер
Таймер с задержкой включения
5.4.8.1 Таймер
Префикс ФБ: Таймер
Полное название: Таймер
Код: 81
Мультиканальность: да
Описание канала: Количество нуль-органов
Минимальное количество каналов: 1
Максимальное количество каналов: 126
- 225 -
Контроллеры
Назначение: Функциональный блок содержит до
126 таймеров, объединенных общими
командами "стоп" и "сброс". В каждом таймере индивидуально настраивается время
срабатывания таймера.
Алгоритм используется для задания выдержек времени.
Описание: Функциональный блок содержит одно звено таймера и некоторое количество нуль-
органов.
ФБ имеет два дискретных входа: «Стоп» и «Сброс», управляющих отсчетом времени таймера.
Отсчет времени производится только при установленных на обеих входах «Стоп» и «Сброс»
значениях «False».
- При установке значения «True» на входе «Стоп» отсчет времени прекращается.
- При установке значения «True» на входе «Сброс» отчет времени также прекращается,
дополнительно звено таймера обнуляется.
Если в i-ом канале (нуль-органе) значение текущего времени сравняется со значением
настроечного параметра «ВремяСрНО N», то выходной сигнал «ВыходНО N» этого канала
переходит в состояние логической единицы. Все временные параметры ФБ "Таймер"
задаются в секундах.
Текущее время (t)
Выход нуль-органа
t< ВремяСрНО N
ВыходНО N =False
tі ВремяСрНО N
ВыходНО N =True
- 226 -
Контроллеры
Таблица входов-выходов функционального блока «Таймер»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Стоп
Команда "стоп"
02
Boolean
Сброс
Команда "сброс"
03
Float
ВремяСрНО 1
Время срабатывания нуль-органа 1 (в секундах)
04
Float
ВремяСрНО 2
Время срабатывания нуль-органа 2 (в секундах)
N+2
Float
ВремяСрНО N
Время срабатывания нуль-органа N (в секундах)
Выходы
01
Float
ВремяТек
Текущее время (в секундах)
02
Boolean
ВыходНО 1
Выход нуль-органа 1
03
Boolean
ВыходНО 2
Выход нуль-органа 2
N+1
Boolean
ВыходНО N
Выход нуль-органа N
5.4.8.2 Таймер-календарь
Префикс ФБ: Таймер-Календарь
Полное название: Таймер - календарь
Код: 120
Мультиканальность: нет
Назначение: Функциональный блок предназначен для получения параметров текущей даты и
времени.
Описание: Функциональный блок имеет 8 целочисленных выходов, в которые выдает
параметры текущего времени, начиная с года и кончая миллисекундами. Также ФБ имеет один
дискретный вход «Режим», определяющий режим работы таймера-календаря.
При наличии логической единицы («True») на этом входе, функциональный блок запрашивает
время системы и выдает его в целочисленные выходы ФБ.
Если же на входе «Режим» установлено значение «False», то таймер-календарь будет
работать в ручном режиме, удобном для отладки. В каждом цикле работы ФБ в этом режиме
происходит считывание текущих параметров времени со своих выходов, добавление разницы
времени между текущим и предыдущим вызовом и запись новых параметров времени. В этом
режиме пользователь может в любой момент выставить собственные параметры времени и
проследить за их изменением. Однако, если хотя бы на одном выходе установлено значение
«неопределенности» или указано невозможное значение (месяца, дня, часа, ..), таймер не
будет работать.
Значение на входе «Режим» может быть также изменено в процессе работы ФБ, и это
приведет к переключению режима работы таймера-календаря.
Правильное значение на выходе «ДеньНедели» выдается, только если значение года больше
2001. Значение 0 соответствует понедельнику, 6 - воскресенью.
Таблица входов-выходов функционального блока «Таймер-Календарь»
- 227 -
Контроллеры
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Режим
Режим работы (True-системное время, False-ручное)
Выходы
01
Integer
Год
Год
02
Integer
Месяц
Месяц (1..12)
03
Integer
День
День (1..31)
04
Integer
ДеньНедели
День недели (0..6)
05
Integer
Час
Час (0..23)
06
Integer
Минут
Минут (0..59)
07
Integer
Секунд
Секунд (0..59)
08
Integer
Миллисекунд
Миллисекунд (0..999)
5.4.8.3 Интервал
Префикс ФБ: Интервал
Полное название: Вычисление интервала времени
Код: 83
Мультиканальность: да
Описание канала: Отслеживаемая пара дискретных сигналов
Минимальное количество каналов: 1
Максимальное количество каналов: 51
Назначение: Алгоритм применяется для вычисления интервала времени между
срабатыванием двух дискретных сигналов, одним ФБ может обсчитываться до 55 пар
сигналов
Описание: ФБ независимо обсчитывает до 55 пар дискретных сигналов "Дискрет 1 N",
"Дискрет 2 N", и в зависимости от значений появляющихся на этих каналах, высчитывает
интервалы времени между событиями, в зависимости от выбранного признака вывода
интервала "Признак N".
Поддерживается 2 режима обсчета событий:
1. "Признак N" = False. В этом режиме значение на "Выход N" обновляется постоянно (в
каждом цикле работы ФБ), оно вычисляется как разность времени между текущим и
последним передним фронтом. В зависимости от того, на каком из каналов был
зарегистрирован последний передний фронт, вычисляется знак интервала. Если последний
фронт был детектирован на канале
1, то значение временного промежутка имеет
положительный знак, если на канале 2 - отрицательный.
2. "Признак N" = True. В этом режиме временной интервал расчитывается конкретно между
передними фронтами первого и второго канала. Только после определения завершения
интервала (передний фронт на втором канале) вычисленное значение времени заносится в
"Выход N" и не изменяется вплоть до определения завершения следующего интервала
(замораживается).
В обеих случаях признаку достоверности "Р N" присваивается значение
10 в случае
недостоверности на одном из входов алгоритма "Дискрет 1" или "Дискрет 2", в противном
случае присваивается нулевое значение.
Таблица входов-выходов функционального блока «Интервал»
Номер
Тип
Обозначение
Описание
- 228 -
Контроллеры
Входы
01
Boolean
Дискрет1 1
Первый дискретный вход канала 1
02
Boolean
Дискрет2 1
Второй дискретный вход канала 2
03
Boolean
Признак 1
Признак вывода интервала канала 1
3N-2
Boolean
Дискрет1 N
Первый дискретный вход канала N
3N-1
Boolean
Дискрет2 N
Второй дискретный вход канала N
3N
Boolean
Признак 2
Признак вывода интервала канала N
Выходы
01
Float
Выход 1
Выход канала 1, сек
02
Integer
P 1
Признак достоверности канала 1
2N-1
Float
Выход N
Выход канала N, сек
2N
Integer
P N
Признак достоверности канала N
5.4.8.4 Счетчик пробега
Префикс ФБ: Пробег
Полное название: Счетчик пробега
Код: 85
Мультиканальность: нет
Назначение: Алгоритм представляет собой счетчик пробега какого-либо
устройства,
состояние работы которого задается дискретным сигналом.
Описание: Дискретный выход, сигнализирующий о пуске/останове устройства, необходимо
подключить к входному каналу "СтартСтоп". Функциональный блок детектирует изменение
сигнала на этом канале: переход из состояния "False" в состояние "True" считается пуском
устройства и началом отсчета очередного интервала пробега; обратный переход считается
остановом устройства и концом интервала пробега.
Начало и конец последнего интервала пробега, в формате астрономического времени,
выдаются в соответствующие выхода "ВремяСтарта" и "ВремяСтопа". В канал
"ПробегТекущий" выдается время пробега с последнего старта, в канале "ПробегОбщий"
накапливается общее время работы устройства.
Необходимо учитывать что значение канала "ПробегОбщий" необходимо сохранять в
энергонезависимой памяти контроллера, для того чтобы включение\выключение контроллера
не повлияло на значение общего пробега.
Запись значения "True" во входной канал "Сброс" совершит сброс общего и текущего значения
пробега в нулевые значения.
Таблица входов-выходов функционального блока "Счетчик пробега"
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
СтартСтоп
Старт-стоп работы счетчика пробега
02
Boolean
Сброс
Сброс счетчика пробега
Выходы
- 229 -
Контроллеры
01
Integer
ПробегОбщий
Общий счетчик пробега, секунды
02
Integer
ПробегТекущий
Текущий счетчик пробег, секунды
03
DateTim
ВремяСтарта
Дата-время последнего старта
e
04
DateTim
ВремяСтопа
Дата-время последнего останова
e
5.4.8.5 Перевод секунд в Д:Ч:М:С
Префикс ФБ: Пробег
Полное название: Перевод секунд в Д:Ч:М:С
Код: 232
Мультиканальность: нет
Назначение: Алгоритм представляет собой преобразователь секунд в формат День : Час :
Минуты : Секунды.
Описание: При установке целого значения на вход СекВход алгоритма формируются
значения целочисленных выходов День Час Мин Сек в следующих диапазонах значениие дней
(0-...) , часов (0-23), минут (0-59), секунд (0-59).
Если на вход алноритма приходит значение сигнала с плохим качеством то на все выхода так
же выставляется плохое качество.
Таблица входов-выходов функционального блока "Перевод секунд в Д:Ч:М:С"
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ВходСекунды
Входное значение секунд (0-...)
Выходы
01
Integer
День
Значениие дней (0-...)
02
Integer
Час
Значениие часов (0-23)
03
Integer
Мин
Значениие минут (0-59)
04
Integer
Сек
Значениие секунд (0-59)
5.4.8.6 Таймер - обратный отсчет
Префикс ФБ: ОбрТаймер
Полное название: Таймер - обратный отсчет
Код: 84
Мультиканальность: нет
Назначение: Функциональный блок содержит таймер, предназначеный для отсчета заданного
интервала времени. При достижении
времени 0, срабатывает флаг окончания отсчета времени.
Алгоритм используется для отсчета времени в длительных процессах.
Описание:
ФБ имеет три дискретных входа: «Старт», «Стоп» и «Сброс», управляющих отсчетом времени
таймера и три аналоговых (целочисленных) входа «ВремяЗдЧ», «ВремяЗдМ» и «ВремяЗдС», для
задания интервала времени. Три аналоговых выхода
«ВремяТекЧ»,
«ВремяТекМ» и
«ВремяТекС» указывают текущее время таймера. Дискретные выхода «СигналОк» и «Ош»
сигнализирют об окончании отсчета заданного интервала времени и правильности задания
интервала времени.
- 230 -
Контроллеры
Отсчет времени производится только при установленном на входе «Старт» значении «True», а
на входах «Стоп» и «Сброс» значениях «False».
- При установке значения «True» на входе «Стоп» отсчет времени прекращается.
- При установке значения «True» на входе «Сброс» отчет времени также прекращается, текущее
время таймера обнуляется и на выходе «СигналОк» устанавливается значение «False».
Во время отсчета на выходах «ВремяТекЧ», «ВремяТекМ» и «ВремяТекС» выводится значение
текущего времени таймера.
В исходном состоянии задание времени равно 0:0:0.
Контроль нештатных ситуаций:
Если дан старт, а интервал времени не задан (входа «ВремяЗдЧ», «ВремяЗдМ» и «ВремяЗдС»
равны 0), то таймер не начинает отсчет времени.
По окончании отсчета повторная команда «Старт» разрешается только после команды «Сброс».
Это необходимо для квитирования выхода «СигналОк». Т.е. если для несброшенного таймера
будет задан новый интервал и дан старт, то отсчет времени не запускается.
Формат ввода не ограничивается значениями 23:59:59. Допустимы следующие значения для
заданного интервала времени:
500:59:59
0:500:59
0:0:500
Об ошибке в задании интервала времени сигнализирует значение «True» на выходе «Ош». При
наличии ошибки в заданном интервале времени команда «Старт» игнорируется.
Попытка изменения задания времени при работающем таймере игнорируется.
- 231 -
Контроллеры
Таблица входов-выходов функционального блока «Таймер - обратный отсчет»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Старт
Запуск таймера
02
Boolean
Стоп
Команда "стоп"
03
Boolean
Сброс
Команда "сброс"
04
Integer
ВремяЗдЧ
Заданный интервал времени (часы)
05
Integer
ВремяЗдМ
Заданный интервал времени (минуты)
06
Integer
ВремяЗдС
Заданный интервал времени (секунды)
Выходы
01
Boolean
Ош
Флаг ошибки неверного ввода задания
интервала
времени
02
Integer
ВремяТекЧ
Текущий интервал времени (часы)
03
Integer
ВремяТекМ
Текущий интервал времени (минуты)
04
Integer
ВремяТекС
Текущий интервал времени (секунды)
05
Boolean
СигналОк
Сигнал окончания отсчета времени
5.4.8.7 Timer
Префикс ФБ: Timer
Полное название: Timer
Код: 95
Мультиканальность: нет
Назначение: Отражение текущего времени системы с отдельным признаком лето\зимазима.
Таблица входов-выходов функционального блока
Номер
Тип
Обозначение
Описание
Входы
01
DateTime
Время
Текущее время системы
02
Integer
ПризнакЛето
Признак лето\зима
5.4.8.8 Импульсный таймер
Префикс ФБ: Импульсный таймер
Полное название: Импульсный таймер
Код: 96
Мультиканальность: да
Описание канала: Количество нуль-органов
Минимальное количество каналов: 1
Максимальное количество каналов: 84
Назначение: Функциональный блок содержит до 84 импульсных таймеров, объединенных
общими командами «старт» и «сброс». В каждом таймере индивидуально настраивается
время срабатывания таймера и длительность импульса на выходе.
- 232 -
Контроллеры
Описание: Функциональный блок содержит одно звено таймера и некоторое количество нуль-
органов.
ФБ имеет два дискретных входа: «Старт» и «Сброс», управляющих отсчетом времени
таймера.
Отсчет времени инициируется подачей фронта на вход «Старт», в противном случае ФБ не
активен.
- При подаче фронта на вход
«Старт» начинается отсчет времени, если он еще не
инициирован.
- При подаче фронта на вход «Сброс» отчет времени прекращается, дополнительно звено
таймера обнуляется.
- Установка значений «False» на входах «Старт» и «Сброс» не влияет на работу ФБ.
Если в i-ом канале (нуль-органе) значение текущего времени сравняется со значением
настроечного параметра «ВремяСрНО N», то выходной сигнал «ВыходНО N» этого канала
переходит в состояние логической единицы, и будет держаться в течение времени, заданного
в настроечном параметре «ВремяДействНО N». Все временные параметры ФБ «Таймер»
задаются в секундах.
Текущее время (t)
Выход нуль-органа
t < ВремяСрНО N
ВыходНО N = False
t
ВремяСрНО N и t ВремяДействНО N
ВыходНО N = True
t > ВремяДействНО N
ВыходНО N = False
Таблица входов-выходов функционального блока «Импульсный таймер»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Старт
Команда "старт"
02
Boolean
Сброс
Команда "сброс"
03
Float
ВремяСрНО 1
Время срабатывания нуль-органа 1 (в секундах)
04
Float
ВремяДействНО 1
Время действия нуль-органа 1 (в секундах)
05
Float
ВремяСрНО 2
Время срабатывания нуль-органа 2 (в секундах)
06
Float
ВремяДействНО 2
Время действия нуль-органа 2 (в секундах)
2*N+1
Float
ВремяСрНО N
Время срабатывания нуль-органа N (в секундах)
2*N+2
Float
ВремяДействНО N
Время действия нуль-органа N (в секундах)
Выходы
01
Float
ВремяТек
Текущее время (в секундах)
02
Boolean
ВыходНО 1
Выход нуль-органа 1
03
Boolean
ВыходНО 2
Выход нуль-органа 2
N+1
Boolean
ВыходНО N
Выход нуль-органа N
5.4.8.9 Таймер с задержкой включения
Префикс ФБ: Таймер с задержкой включения
Полное название: Таймер с задержкой включения
Код: 97
- 233 -
Контроллеры
Мультиканальность: да
Описание канала: Количество нуль-органов
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок содержит до
85 таймеров с задержкой включения,
объединенных общей командой «старт». В каждом таймере индивидуально настраивается
время срабатывания таймера.
Описание: Функциональный блок содержит одно звено таймера и некоторое количество нуль-
органов.
ФБ имеет один дискретных вход «Старт», управляющий отсчетом времени таймера.
Отсчет времени производится только при установленном на входе «Старт» значении «True».
- При установке значения «True» на входе «Старт» иницируется отсчет времени.
- При установке значения
«False» на входе
«Старт» отсчет времени прекращается,
дополнительно звено таймера обнуляется.
В момент старта таймера начинается отсчет времени работы каждого канала (нуль-органа),
которое присваивается выходному сигналу «ВремяТекНО N». Если в i-ом канале значение
настроечного параметра «ВремяСрНО N» станет меньше значения текущего времени таймера,
то выходной сигнал «ВыходНО N» этого канала переходит в состояние логической единицы, а
время работы канала замораживается на отметке «ВремяСрНО N», в противном случае
выходной сигнал находится в состоянии логического нуля. Все временные параметры ФБ
«Таймер» задаются в секундах.
Временная диаграмма работы таймера
Таблица входов-выходов функционального блока «Таймер с задержкой включения»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Старт
Команда "старт"
02
Float
ВремяСрНО 1
Время срабатывания нуль-органа 1 (в секундах)
03
Float
ВремяСрНО 2
Время срабатывания нуль-органа 2 (в секундах)
N+1
Float
ВремяСрНО N
Время срабатывания нуль-органа N (в секундах)
Выходы
01
Float
ВремяТекНО 1
Текущее время нуль-органа 1 (в секундах)
02
Boolean
ВыходНО 1
Выход нуль-органа 1
03
Float
ВремяТекНО 2
Текущее время нуль-органа 2 (в секундах)
04
Boolean
ВыходНО 2
Выход нуль-органа 2
- 234 -
Контроллеры
2*N-2
Float
ВремяТекНО N
Текущее время нуль-органа N (в секундах)
2*N-1
Boolean
ВыходНО N
Выход нуль-органа N
5.4.9 Тригонометрические
Синус
Косинус
5.4.9.1 Синус
Префикс ФБ: Синус
Полное название: Значение функции Y = SIN(X), в зависмости от значения аргумента
Код: 16
Мультиканальность: да
Описание канала: Значение аргумента
Минимальное количество каналов: 1
Максимальное количество каналов: 126
Назначение: Программа вычисляет значение функции sin(x), в зависимости от значения
аргумента (в градусах или радианах).
Описание:
Если значение Входа 1 (Град/Рад) = true, (т.е. значение аргумента функции - градусы),
значение выхода вычисляется по формуле:
Выход N = sin(
* X / 180).
Если значение Входа 1 (Град/Рад) = false, (т.е. значение аргумента функции - радианы),
значение выхода вычисляется по формуле:
Выход N = sin(X)
Таблица входов-выходов функционального блока «Синус»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Град/Рад
единица измерения значения аргумента:
=true-
градусы,=false-радианы
02
Float
Вход 1
Значение аргумента 1
1N+1
Float
Вход N
Значение аргумента N
Выходы
01
Float
Выход 1
Значение функции 1
1N
Float
Выход N
Значение функции N
5.4.9.2 Косинус
Префикс ФБ: Косинус
Полное название: Значение функции Y = COS(X), в зависмости от значения аргумента
Код: 17
Мультиканальность: да
Описание канала: Значение аргумента
Минимальное количество каналов: 1
Максимальное количество каналов: 126
Назначение: Программа вычисляет значение функции cos(x), в зависимости от значения
аргумента (в градусах или радианах).
- 235 -
Контроллеры
Описание:
Если значение Входа 1 (Град/Рад) = true, (т.е. значение аргумента функции - градусы),
значение выхода вычисляется по формуле:
Выход N = cos(
* X / 180).
Если значение Входа 1 (Град/Рад) = false, (т.е. значение аргумента функции - радианы),
значение выхода вычисляется по формуле:
Выход N = cos(X)
Таблица входов-выходов функционального блока «Косинус»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Град/Рад
единица измерения значения
аргумента:
=true-
градусы,=false-радианы
02
Float
Вход 1
Значение аргумента 1
1N+1
Float
Вход N
Значение аргумента N
Выходы
01
Float
Выход 1
Значение функции 1
1N
Float
Выход N
Значение функции N
5.4.10 Управление
Управление аппаратом
Управление выключателем
Контроль и управление превышением нагрузки
2-х позиционный регулятор
Отсечной клапан
Регулирующий клапан
Насос
Задвижка
5.4.10.1 Управление аппаратом
5.4.10.2 Управление выключателем
Enter topic text here.
5.4.10.3 Контроль и управление превышением нагрузки
Enter topic text here.
5.4.10.4 2-х позиционный регулятор
Префикс ФБ: Ctrl2Point
Полное название: 2-х позиционный регулятор
Код: 90
Мультиканальность: да
Описание канала:
Минимальное количество каналов: 1
Максимальное количество каналов: 25
- 236 -
Контроллеры
Назначение: Алгоритм применяется для контроля за выходом сигнала или разности двух
сигналов из ограниченной справа области допустимых значений в автоматическом или
ручном режимах.
Описание: Функциональная схема приведена на рисунке 1.
Алгоритм содержит N независимых каналов, причем 0<N<26. Каждый канал содержит
звено сумматора и звено порогового элемента.
В автоматическом режиме, вход Режим имеет значение False.
В этом режиме звено сумматора выделяет разность двух сигналов:
Z =Вход - Уставка
Разностный сигнал Z подается на звено порогового элемента.
Звено порогового элемента срабатывает, когда Z H+, при этом появляется дискретный
сигнал на выходе звена порогового элемента. Логика работы ячейки описывается таблицей 1.
Таблица 1
Z
D
0
Z < H-
1
Z H+
где
H- - левая граница гистерезиса,
H+ - правая граница гистерезиса
H- должен быть меньше H+ . При несоблюдении этого условия выходу Ош присваевается
значение 2, но выполнение ФБ не прекращается.
В автоматическом режиме сигнал D подается на выход канала Выход
- 237 -
Контроллеры
Рисунок 1 - Функциональная схема алгоритма «2-х позиционный регулятор»
В ручном режиме, вход Режим имеет значение True.
В этом режиме при срабатывании по фронту сигнала на входе СинхИмп, на выход канала
Выход подается значение равное значению, формируемому на входе ЗнРучВых.
Входы-выходы ФБ Ctrl2Point приведены ниже.
Таблица входов-выходов функционального блока «Ctrl2Point»
Номе
Тип
Обозначение
Описание
р
Входы
01
Float
Вход 1
Регулируемая величина канала 1
02
Float
Уставка 1
Уставка для канала 1
03
Float
Гист+ 1
Правая граница гистерезиса канала 1
04
Float
Гист- 1
Левая граница гистерезиса канала 1
05
Boolean
ЗнРучВых 1
Значение ручного выхода (если режим работы
- ручной)
канала 1
06
Boolean
СинхИмп 1
Команда на изменение выхода (если режим работы - ручной)
канала 1
07
Boolean
Режим 1
Режим работы (False - автоматический, True - ручной) канала
- 238 -
Контроллеры
1
08
Integer
Тцикл 1
Длительность цикла работы (в мсек) канала 1
8N-7
Float
Вход N
Регулируемая величина канала N
8N-6
Float
Уставка N
Уставка для канала N
8N-5
Float
Гист+ N
Правая граница гистерезиса канала N
8N-4
Float
Гист- N
Левая граница гистерезиса канала N
8N-3
Boolean
ЗнРучВых N
Значение ручного выхода (если режим работы алгоблока -
ручной) канала N
8N-2
Boolean
СинхИмп N
Команда на изменение выхода (если режим работы алгоблока
- ручной) канала N
8N-1
Boolean
Режим N
Режим работы алгоблока (False - автоматический, True
-
ручной) канала N
8N
Integer
Тцикл N
Длительность цикла работы (в мсек) канала N
Выходы
01
Boolean
Выход 1
Основной выход канала 1
02
Integer
Ош 1
Код ошибки самодиагностики канала 1
2N-1
Boolean
Выход N
Основной выход канала N
2N
Integer
Ош N
Код ошибки самодиагностики канала N
5.4.10.5 Отсечной клапан
Префикс ФБ: Отсечной клапан
Полное название: Отсечной клапан
Код: 91
Мультиканальность: нет
Назначение: Функциональный блок используется для формирования сигналов управления
отсечным клапаном и его диагностики.
Описание: Для включения в работу ФБ необходимо входному параметру «Работа» присвоить
значение
«True». При значении параметра
«Работа» равном
«False» значение выходов
принимают начальное значение.
Назначение входов-выходов функционального блока Отсечной клапан приведены в таблице 1.
Таблица 1 - Входы-выходы функционального блока «Отсечной клапан»
Номер
Тип
Обозначение
Начальное
Описание
значение
Входы
01
Boolean
Работа
True
Работа ФБ (True - работа ФБ, False - нет)
02
Boolean
Тип
False*
Управлять: True
- потенциалом, False
-
импульсом
- 239 -
Контроллеры
03
Boolean
Открыт
False
Сигнал «Клапан открыт»
04
Boolean
Закрыт
False
Сигнал «Клапан закрыт»
05
Boolean
Открыть
False
Команда открыть клапан
06
Boolean
Закрыть
False
Команда закрыть клапан
07
Boolean
Стоп
False
Команда остановить клапан
08
Float
ТОткр
5
Длительность импульса на открытие (в
секундах)
09
Float
ТЗакр
5
Длительность импульса на закрытие (в
секундах)
10
Float
ТСтоп
3
Длительность импульса на остановку (в
секундах)
Выходы
01
Boolean
Откр
False
Сигнал на открытие клапана
02
Boolean
Закр
False
Сигнал на закрытие клапана
03
Boolean
Стоп_1
False
Сигнал на останов клапана
04
Integer
Ош
0
Код ошибки (расшифровка в таблице 2)
* - начальные значения параметров подбираются к конкретному клапану в ходе разработки
технологического программного обеспечения и могут отличаться от указанных в таблице.
Таблица 2 - Расшифровка кодов ошибки ФБ «Отсечной клапан»
Код ошибки,
Расшифровка кода ошибки
(выход Ош)
0
Ошибок нет
1
Не используется
2
Не сработал датчик конечного положения клапана «Закрыт»
3
Не сработал датчик конечного положения клапана «Открыт»
4
Не используется
5
На вход ФБ поступила команда «Закрыть» при действующей команде «Стоп»
6
На вход ФБ поступила команда «Открыть» при действующей команде «Стоп»
7
На вход ФБ поступила команда
«Закрыть» при действующей команде
«Открыть».
8
На вход ФБ поступила команда
«Открыть» при действующей команде
«Закрыть».
9
На вход ФБ поступила команда «Стоп» при действующих командах «Закрыть»
или «Открыть».
- 240 -
Контроллеры
10
Сигналы
«Открыт» и
«Закрыт» сработаны
(действуют) одновременно.
Залипание датчиков конечного положения клапана.
В зависимости от схемы управление клапаном выбирается тип управления (входной
параметр «Тип»). При управлении импульсом («Тип» = False) подаётся импульс на закрытие,
открытие или останов клапана. Схема управления отрабатывает эти команды до конца, даже
если сигнал на управление снялся. Например, команда «Закр» выполняется то тех пор, пока не
сработает датчик конечного положения клапана
«Закрыт», даже если команда
«Закр»
сброситься на «0» (самоподхват), или не поступит команда «Стоп». В схеме управления
потенциалом самоподхват отсутствует, при пропадании команд управления «Закр» или «Откр»
клапан останавливается (перестаёт открываться или закрываться).
Функциональный блок присваивает выходному параметру «Ош» значение «0». Далее
проверяется состояние входных сигналов «Открыт» и «Закрыт». Если оба эти сигналы имеют
значение «True», то выходному параметру «Ош» присваивается значение «10». Это означает
неисправность (залипание) датчиков конечного положения клапана. В этом случае выходным
значениям присваивается начальное значение и на этом выполнение ФБ прекращается.
Управление клапаном возможно только при исправных датчиках конечного положение
клапана.
При управлении клапаном импульсным сигналом
(на входе параметра
«Тип»
установлено «0») выполняется следующий алгоритм:
1) Закрытие отсечного клапана импульсом.
При поступлении сигнала на закрытие отсечного клапана (на вход «Закрыть» поступает
сигнал «1»), анализируется состояние входов «Стоп», «Открыть» и «Закрыт». Если входной
сигнал «Стоп» = True, то выходу «Ош» присваивается значение 5 и выполнение алгоритма
прекращается. Если входной сигнал
«Открыть» = True, то выходу «Ош» присваивается
значение 7 и выполнение алгоритма прекращается. Если входной сигнал «Закрыт» = True, то
выполнение алгоритма прекращается. Если «Открыть» = False и «Стоп» = False то сбрасывается
сигнал на открытие (выход «Откр», если она была равной «1»), подаётся команда на останов
клапана (выход «Стоп_1» = True). Затем, после выполнения команды «Стоп_1» (сбрасывается
выход «Стоп_1» по истечении времени «ТСтор») подаётся команда на закрытие клапана
(выход «Закр» = True) и по истечении времени или при поступлении сигнала
«Закрыт»
сбрасывается на «False». Графически алгоритм закрытия отсечного клапана ФБ «Отсечной
клапан» показан на рисунке 1.
2) Открытие отсечного клапана импульсом.
Алгоритм открытие клапана аналогичен алгоритму закрытия, вместо сигналов закрытия
используются команды открытия и наоборот. При поступлении сигнала на открытие отсечного
клапана (на вход «открыть» поступает сигнал «True») анализируется состояние входов «Стоп»,
«Закрыть» и «Открыт». Если входной сигнал «Стоп» = True, то выходу «Ош» присваивается
значение 6 и выполнение алгоритма прекращается. Если входной сигнал «Закрыть» = True, то
выходу «Ош» = присваивается значение 8 и выполнение алгоритма прекращается. Если
входной сигнал «Открыт» = True, то выполнение алгоритма прекращается. Если «Закрыть» =
False и «Стоп» = False, то сбрасывается сигнал на закрытие (выход «Закр», если она была
равной «True»), подаётся команда на останов клапана (выход «Стоп_1» = True). Затем, после
выполнения команды
«Стоп_1»
(сбрасывается выход
«Стоп_1» по истечении времени
«ТСтор») подаётся команда на закрытие клапана (выход «Закр» = True) и по истечении времени
сбрасывается на «False».
- 241 -
Контроллеры
Закр
От кр
Ст оп_1
Закрыт ь
Закрыт о
0
TСт оп
ТСт оп+ТЗакр
Рисунок 1 - Алгоритм закрытия отсечного клапана, при управлении импульсом
Графически алгоритм открытия отсечного клапана ФБ «ОКл» показан на рисунке 2.
От кр
Закр
Ст оп_1
От крыт ь
От крыт о
0
TСт оп
ТСт оп+ТОт кр
Рисунок 2 - Алгоритм открытия отсечного клапана, при управлении импульсом
3) Останов отсечного клапана импульсом.
При поступлении команды «Стоп» отсечного клапана, анализируется состояние входов
«Закрыть» и «Открыть». Если входной сигнал «Закрыть» = True или «Открыть» = True то выходу
«Ош» присваивается значение 9. Далее сбрасываются выходные сигналы «Закр» и «Откр» (если
они были равной «True»). Затем подаётся команда на останов клапана (выход «Стоп_1» = True),
по истечении времени «ТСтоп» выходу «Стоп_1» присваивается значение «False». Графически
алгоритм останова отсечного клапана ФБ «Отсечной клапан» показан на рисунке 3.
- 242 -
Контроллеры
От кр
Закр
Ст оп_1
Ст оп
0
TСт оп
Рисунок 3 - Алгоритм останова отсечного клапана, при управлении импульсом
При управлении клапаном потенциалом (на входе параметра «Тип» установлено «True»)
выполняется следующий алгоритм:
1) Закрытие отсечного клапана потенциалом.
При поступлении сигнала на закрытие отсечного клапана (на вход «Закрыть» поступает
сигнал «1»), анализируется состояние входов, «Открыть» и «Закрыт». Если входной сигнал
«Открыть» = True, то выходу «Ош» = присваивается значение 7 и выполнение алгоритма
прекращается. Если входной сигнал «Закрыт» = True, то выполнение алгоритма прекращается.
Если входные сигналы «Открыть» = False и «Закрыт» = False, то сбрасывается выходной сигнал
на открытие «Откр» (если она была равной «True»). Затем подаётся команда на закрытие
клапана (выход «Закр» = True) и по истечении времени «ТЗакр» или при поступлении сигнала
«Закрыт» = True, сбрасывается на «False». Если команда «Закр» сбросилась («Закр» = «False») но
не поступил сигнал о том, что клапан закрыт («Закрыт»=False), то выходу «Ош» присваивается
значение «2». Это означает, что длительности импульса на закрытие не хватает для отработки
механизма закрытия клапана
(необходимо увеличить
«ТЗакр»), или датчик конечного
положения клапана «Закрыт» не срабатывает.
2) Открытие отсечного клапана потенциалом.
При поступлении сигнала на открытие отсечного клапана (на вход «Открыть» поступает
сигнал «True») анализируется состояние входов, «Закрыть» и «Открыт». Если входной сигнал
«Закрыть» = True, то выходу «Ош» присваивается значение 8 и выполнение алгоритма
прекращается. Если входной сигнал «Открыт» = True, то выполнение алгоритма прекращается.
Если «Закрыть» = False и «Открыт» = False, то сбрасывается выходной сигнал на закрытие
«Закр» (если она была равной «True»). Затем подаётся команда на открытие клапана (выход
«Откр» = True) и по истечении времени «Тоткр» или при поступлении сигнала «Открыт» = True
сбрасывается на «False». Если сигнал «Откр» сбросился на «False» но не поступил сигнал о том,
что клапан открыт («Открыт» = False), то «Ош» присваивается значение «3». Это означает, что
длительности импульса на открытие не хватает для отработки механизма открытия клапана
(необходимо увеличить «ТОткр»), или датчик конечного положения клапана «Открыт» не
срабатывает.
Остановка отсечного клапана при управлении потенциалом происходит при отсутствии сигналов «Открыть» и
«Закрыть», поэтому сигнал «Стоп» в этом случае не используется.
- 243 -
Контроллеры
5.4.10.6 Регулирующий клапан
Префикс ФБ: Регулирующий клапан
Полное название: Регулирующий клапан
Код: 92
Мультиканальность: нет
Назначение: Функциональный блок используется для формирования сигналов управления
регулирующим клапаном.
Описание: Для включения в работу ФБ необходимо входному параметру «Работа» присвоить
значение True. При значении параметра «Работа» равном False значение выходов принимают
начальное значение.
Назначение входов и выходов функционального блока «Регулирующий клапан» приведены в
таблице 1.
Таблица 1 - Входы-выходы функционального блока «Регулирующий клапан»
Номер
Тип
Обозначение
Начальное
Описание
значение
Входы
01
Boolean
Работа
True
Работа ФБ (True - работа ФБ, False - нет)
02
Boolean
Авто
True
Управление клапана руч/авто (True -
автоматически, False - ручное)
03
Boolean
Открыт
False
Сигнал «Клапан открыт»
04
Boolean
Закрыт
False
Сигнал «Клапан закрыт»
05
Boolean
Открыть
False
Команда открыть клапан
06
Boolean
Закрыть
False
Команда закрыть клапан
07
Float
Задание
0
Задание ФБ установить клапан в указанное
положение, %. (Используется при
автоматическом управлении клапаном)
08
Float
Положение
0
Сигнал от датчика положение клапана, %
09
Float
Тм
25
Время полного хода исполнительного
механизма, сек
10
Float
Dp
1
Зона нечувствительности, %
Выходы
01
Boolean
Откр
False
Сигнал на открытие клапана
02
Boolean
Закр
False
Сигнал на закрытие клапана
03
Integer
Ош
0
Код ошибки (расшифровка в таблице 4)
* - начальные значения параметров подбираются к конкретному клапану в ходе разработки
- 244 -
Контроллеры
Номер
Тип
Обозначение
Начальное
Описание
значение
Входы
технологического программного обеспечения и могут отличаться от указанных в таблице 2.
Функциональный блок присваивает выходному параметру «Ош» значение «0». Далее
проверяется состояние входных сигналов «Открыт» и «Закрыт». Если оба эти сигналы имеют
значение «True», то выходному параметру «Err» присваивается значение «10». Это означает
неисправность (залипание) датчиков конечного положения клапана. В этом случае выходным
значениям присваивается начальное значение и на этом выполнение ФБ прекращается. Далее
проверяется сигнал с датчика положения клапана (входной параметр «Положение»). Если
входной параметр «Положение» больше 25 % и при этом входной параметр «Закрыт» равно
«True» или
«Положение» меньше 75 % и «Открыт» равно «True», то параметру «Ош»
присваивается значение «4». Это означает неисправность датчика(ов) положения клапана. На
этом выполнение ФБ прекращается. Управление клапаном возможно только при исправных
датчиках положение клапана.
Таблица 2 - Расшифровка кодов ошибки ФБ «Регулирующий клапан»
Код ошибки,
Расшифровка кода ошибки
(выход Ош)
0
Ошибок нет
1
Не используется
2
Не используется
3
Не используется
4
Неисправность датчика(ов) положения клапана
5
Не используется
6
Не используется
7
На вход ФБ поступила команда
«Закрыть» при действующей команде
«Открыть».
8
На вход ФБ поступила команда
«Открыть» при действующей команде
«Закрыть».
9
Не используется
10
Сигналы
«Открыт» и
«Закрыт» сработаны
(действуют) одновременно.
Залипание датчиков конечного положения клапана.
Для поддержания клапана в указанном положении (входной параметр «Положение»)
необходимо параметру «Авто» присвоить значение «True». Тогда порядок работы ФБ
следующий:
- вычисляется значение рассогласования по формуле (1)
= «Положение» - «Задание»
(1)
- определяется длительность импульса воздействия на клапан по формуле (2)
|
Тм / 100 %
(2)
Тимп = |
- 245 -
Контроллеры
- определяется направление («Откр» или «Закр») импульса воздействия на клапан. Если
> Dp то импульс формируется на выходе «Закр», Если
< 0 - Dp, то импульс формируется на
выходе «Откр», в остальных случаях управляющих воздействий не формируются.
- по истечении времени Т
имп или выполнению условия (3) управляющие воздействия
прекращаются (выхода «Откр» и «Закр» приравниваются False).
|
| < Dp
(3)
При управлении клапаном в ручном режиме (на входе параметра «Авто» установлено
«False») выполняется следующий алгоритм:
1) Закрытие регулирующего клапана.
При поступлении сигнала на закрытие отсечного клапана (на вход «Закрыть» поступает
сигнал «True»), анализируется состояние входов, «Открыть» и «Закрыт». Если входной сигнал
«Открыть» = True, то выходу «Err» = присваивается значение 7 и выполнение алгоритма
прекращается. Если входной сигнал «Закрыт» = True, то выполнение алгоритма прекращается.
Если входные сигналы «Открыть» = False «Закрыт» = False, то сбрасывается команда на
открытие (если она была равной «True»). Затем подаётся команда на закрытие клапана (выход
«Закр» = True). При поступлении сигнала «Закрыт» = True (клапан закрылся) или отключении
команды на закрытие клапана («Закрыть» = False) , команда «Закр» сбрасывается на «False».
2) Открытие регулирующего клапана.
При поступлении сигнала на открытие отсечного клапана (на вход «Открыть» поступает
сигнал «True») анализируется состояние параметров «Закрыть» и «Открыт». Если входной
сигнал «Закрыть» = True, то выходу «Err» присваивается значение 8 и выполнение ФБ
прекращается. Если входной сигнал «Открыт» = True, то выполнение ФБ прекращается. Если
«Закрыть» = False и «Открыт» = False, то сбрасывается команда на закрытие (если она была
равной «True»). Затем подаётся команда на открытие клапана (выход «Откр» = True). При
поступлении сигнала «Открыт» = True (клапан открылся) или отключении команды на
открытие клапана («Открыть» = False), команда «Откр» сбрасывается на «False».
5.4.10.7 Насос
Префикс ФБ: Насос
Полное название: Управление насосом
Код: 93
Мультиканальность: нет
Назначение: Функциональный блок «Насос» применяется в схемах запуска/останова насоса с
дискретным управлением. .
Описание: Команды запуска и останова насоса подаются, соответственно, на входы
«Включить» и «Выключить», функциональный блок отлавливает фронт (переход из значения
False в True) на этих входах, анализирует текущее состояние насоса по другим входным
сигналам и, в случае удовлетворения предусловиям, генерирует на соответствующем выходе
«КомандаВключить» или «КомандаВыключить» импульс. Продолжительность импульса в
миллисекундах задается значением на входе «ДлинаИмпульсаКоманды». Возможна выдача не
только импульса, но и постоянного значения на выходе ФБ, для этого канал «РежимИмпульс»
необходимо установить в False.
Входы ФБ «Включен» и
«Выключен» необходимо привязать к соответствующим
дискретным входам, сигнализирующем о текущем состоянии объекта.
Внимание! Настроечные входы ФБ
«РежимИмпульс»,
«ВремяПерегрузкаАвария»,
«ВремяДавлениеВыходАвария»,
«ВремяАвтоСбросаАварии»,
«ВремяИмпульсаКоманды»
читаются один раз при старте или перезапуске работы ФБ
- 246 -
Контроллеры
Запуск ФБ
При запуске ФБ «Насос» считываются настроечные входы, устанавливаются значения
внутренних переменных. В случае, если режим работы насоса
- потенциальный,
осуществляется установка выходных значений в соответствии с текущим состоянием насоса.
Включение двигателя
Функциональный блок имеет один входной сигнал готовности и 7 входных сигналов
аварий. При запуске двигателя проверяется:
1. Cигнал готовности (например, к нему можно привязать готовность задвижки насоса,
или конъюкцию нескольких сигналов) («Готовность» = True);
2. Все
7 аварии
(должны быть установлены в False), исключение
- сигнал
«ДавлениеВыходАвария», этот аварийный сигнал не помеха запуску двигателя;
3. Состояние двигателя («Включен» = False)
Если все эти условия выполнены, и поступила команда включения, то двигатель
включается.
Если какой-то из сигналов аварии неприменим к текущему объекту, то его необходимо
оставить неподключенным и задать значение-константу
«False»
(устанавливается по
умолчанию).
Работа двигателя
Во время работы двигателя (входной сигнал «Включен» = True) постоянно проверяются
все аварийные сигналы, значение «True» на любом из них приводит к выключению двигателя.
Исключение составляют два сигнала аварии:
1. «ПерегрузкаАвария», имеет парный канал «ВремяПерегрузкаАвария»
2. «ДавлениеВыходАвария» имеет парный канал «ВремяДавлениеВыходАвария»
При появлении сигнала аварии на любом из этих 2 входов, выключение двигателя произойдет
только по истечении заданного ему времени игнорирования этого сигнала в парном канале.
Остановка насоса по остальным аварийным каналам происходит сразу же.
Изменение значения на канале
«Готовность» не влияет на работу двигателя,
проверяется только при включении двигателя.
Выключение двигателя.
При поступлении команды выключения двигателя не проверяются никакие условия
аварий, происходит выключение двигателя.
Для режима с генерацией импульсов на выходах ФБ («РежимИмпульс»=True): на время
включения/выключения насоса
(генерация импульса на соответствующих выходах) не
принимаются к исполнению никакие команды
Определение состояния насоса
Состояние насоса анализируется по двум входным сигналам
«Включен» и
«Выключен» (остановлен или в работе). Если состояние этих сигналов противоречит здравому
смыслу (включены или выключены одновременно оба сигнала), то насос переходит в
ошибочное состояние (выход «Состояние» = 2). Находясь в этом состоянии, ФБ продолжает
сканировать входные сигналы «Включен» и «Выключен» и после приведения их к правильным
значениям, переходит в одно из стабильных состояний.
В целочисленном канале «Состояние» кодируется текущее состояние насоса, в
соответствии с таблицей 1.
Таблица 1. Состояния насоса
- 247 -
Контроллеры
Значение
Комментарий
0
Насос остановлен, ожидает команд
1
Насос в работе
2
Ошибочное состояние
В целочисленном канале «СостояниеАвар» кодируются аварийные и блокировочные
состояния насоса, каждому состоянию соответствует бит
Таблица 2. Аварийные и блокировочные состояния насоса
Бит
Значение
Комментарий
0
Блокировка включения насоса по неготовности
1
Блокировка включения
/ аварийное выключение
насоса по аварии фаз питания
2
Блокировка включения
/ аварийное выключение
насоса по перегреву двигателя
3
Блокировка включения
/ аварийное выключение
Блокировки
(при
насоса по по аварии сухого хода
включении)
и аварийные
4
Блокировка включения
/ аварийное выключение
отключения
(во
время
насоса по аварийной перегрузке по току
работы)
5
Блокировка включения
/ аварийное выключение
насоса по давлению внутри насоса
6
Аварийное выключение насоса по давлению на
выходе насоса
7
Блокировка включения
/ аварийное выключение
насоса по дополнительному сигналу аварии
8
Ошибка. Одновременное срабатывание сигналов
«Двигатель включен» и
«Двигатель выключен».
Ошибки
Неисправность датчиков
9-31
Резерв
Биты 0 — 8 устанавливаются при:
блокировке, когда двигатель не может быть запущен при поступлении команды;
аварии, после которых двигатель насоса аварийно выключается.
Любое из этих событий устанавливает соответствующие биты выхода «СостояниеАвар»
(для
дальнейшего анализа ситуации), а через время, указанное в канале
«ВремяАвтоСбросаАварии», биты автоматически сбрасываются в нулевые значения. Если
время установлено в 0, то возможен только ручной сброс аварий.
Входной канал «СбросАварии» сбрасывает флаги блокировок\аварий при поступлении
фронта на него.
Таблица 3. Входы-выходы функционального блока «Насос»
Номе
Тип
Обозначение
Начально
Описание
р
е
значение
- 248 -
Контроллеры
Входы
01
Boolea
Работа
True
Работа ФБ (True - работа ФБ, False - нет)
n
При False, выходы в 0, не реагируем на входы
02
Boolea
Включен
False
Сигнал «Насос включен»
n
03
Boolea
Выключен
False
Сигнал «Насос выключен»
n
04
Boolea
Включить
False
Команда «Включить насос»
n
05
Boolea
Выключить
False
Команда «Выключить насос»
n
06
Boolea
РежимИмпульс
True
Режим работы выходных команд ФБ. При
n
РежимИмпульс
= True, генерируются
импульсы
заданной
длительности
(импульсный режим), иначе
— выход
постоянно удерживается
(потенциальный
режим)
07
Boolea
Готовность
True
Сигнал готовности к пуску насоса.
n
08
Boolea
КонтрольФазАвария
False
Контроль фаз питания насоса, один из
n
сигналов аварий насоса.
09
Boolea
ПерегревАвария
False
Авария по перегреву двигателя насоса (t
n
подшипника выше аварийного значения),
один из сигналов аварии насоса.
10
Boolea
СухойХодАвария
False
Авария по сухому ходу двигателя, один из
n
сигналов аварии насоса.
11
Boolea
ПерегрузкаАвария
False
Перегрузка по току, один из сигналов аварии
n
насоса
12
Boolea
ДавлениеВнутрАвар
False
Авария по давлению внутри насоса, один из
n
ия
сигналов аварии насоса
13
Boolea
ДавлениеВыходАва
False
Авария по давлению на выходе насоса, один
n
рия
из сигналов аварии насоса
14
Boolea
Авария
False
Дополнительный сигнал аварии
n
15
Boolea
СбросАварии
False
Канал ручного сброса аварии, в аварийные
n
биты записываются нулевые значения по
детектированию фронта на этом канале.
16
Integer
ВремяПерегрузкаАва
5000
Время игнорирования сигнала аварии по
рия
перегрузке по току, в миллисекундах
- 249 -
Контроллеры
17
Integer
ВремяДавлениеВых
5000
Время игнорирования сигнала аварии по
одАвария
давлению на выходе насоса, в миллисекундах
18
Integer
ВремяАвтоСбросаА
10000
На канале задается время, после истечении
варии
которого сигналы блокировок/аварий,
высвечиваемые в выходном канале
«Состояние», будут автоматически сброшены,
в миллисекундах
19
Integer
ВремяИмпульсаКом
5000
Длина импульса команд «Включить» и
анды
«Выключить» двигатель, в миллисекундах
(имеет смысл при РежимИмпульс=True)
Выходы
01
Boolea
КомандаВключить
False
Команда включения насоса
n
02
Boolea
КомандаВыключить
False
Команда выключения насоса
n
03
Integer
Состояние
0
Код состояния (расшифровка в таблице 1)
04
Integer
СостояниеАвар
0
Код аварийных состояний, блокировок,
ошибок (расшифровка в таблице 2)
5.4.10.8 Задвижка
Префикс ФБ: Задвижка
Полное название: Управление задвижкой
Код: 94
Мультиканальность: нет
Назначение: Функциональный блок «Задвижка» применяется в схемах открытия/закрытия
задвижки с дискретным управлением.
Описание: Команды открытия, закрытия и остановки задвижки подаются, соответственно, на
входы «Открыть», «Закрыть», и «Стоп», функциональный блок отлавливает фронт (переход из
значения False в True) на этих входах, анализирует текущее состояние задвижки по другим
входным сигналам и, в случае удовлетворения предусловиям, генерирует на соответствующем
выходе
«КомандаОткрыть»,
«КомандаЗакрыть» или
«КомандаСтоп» импульс.
Продолжительность импульса
в миллисекундах задается значением на входе
«ДлинаИмпульсаКоманды».
Открытие задвижки
При открытии задвижки проверяется:
1. Проверяется сигнал «Защита» (установлен в False).
2. Проверяются сигналы «Открытие» и «Закрытие» (установлены в False).
3. Проверяются «ПоложениеОткрытия» (False) и «ПоложениеЗакрытия» (True).
Формируется сигнал
«КомандаОткрыть» и запускается таймер с
продолжительностью
«ВремяСходаЗакр». Если в течение заданного времени
задвижка не сошла с конечного выключателя закрытого положения
ПоложениеЗакрытия» не установился в false), то в сигнале
«Авария»
устанавливается состояние
«Задвижка не сошла с конечного выключателя
- 250 -
Контроллеры
закрытого положения», иначе запускается таймер продолжительностью
«ВремяМеханизма», если в течение заданного времени «ПоложениеОткрытия» не
установится в true, то сигнале «Авария» устанавливается состояние «Задвижка не
открылась».
Закрытие задвижки
При закрытие задвижки проверяется:
1. Проверяется сигнал «Защита» (установлен в False).
2. Проверяются сигналы «Открытие» и «Закрытие» (установлены в False).
3. Проверяются «ПоложениеОткрытия» и «ПоложениеЗакрытия».
Формируется сигнал
«КомандаЗакрыть» и запускается таймер с
продолжительностью
«ВремяСходаОткр». Если в течение заданного времени
задвижка не сошла с конечного выключателя открытого положения
ПоложениеОткрытия» не установился в false), то в сигнале
«Авария»
устанавливается состояние
«Задвижка не сошла с конечного выключателя
открытого положения». Запускается таймер продолжительностью
«ВремяМеханизма», если в течение заданного времени «ПоложениеЗакрытия» не
установится в true, то сигнале «Авария» устанавливается состояние «Задвижка не
закрылась».
Промежуточное положение
Такое положение характеризуется значениями false на обеих каналах
«ПоложениеОткрытия» и «ПоложениеЗакрытия».При поступлении команд "Открыть"
или "Закрыть", отрабатываются соответствующие команды. Время схода задвижки с
конечного выключателя при этом не анализируется
Останов задвижки
При останове задвижки безусловно формируется сигнал «КомандаСтоп».
На время открытия/закрытия задвижки
(генерация импульса на соответствующих
выходах) не принимаются к исполнению никакие команды, кроме «КомандыСтоп».
Ошибочное состояние
Если
«ПоложениеОткрытия» и
«ПоложениеЗакрытия» равны True, то в сигнале
«Авария» устанавливается состояние
«Залипание конечного выключателя открытого или
закрытого положения».
В целочисленном канале «Состояние» кодируется текущее состояние задвижки в
соответствии с таблицей:
Таблица 1. Коды состояния задвижки
Знач
Значение
ение
0
Открыта
1
Промежуточное состояние
2
Закрыта
3
Ошибочное состояние
- 251 -
Контроллеры
В целочисленном канале «Авария» кодируется аварийные ситуации, в соответствии с
таблицей.
Таблица 2. Коды аварийных состояний задвижки
Знач
Значение
ение
0
Норма
1
Задвижка не сошла с конечного выключателя
закрытого положения
2
Задвижка не сошла с конечного выключателя
открытого положения
3
Задвижка не открылась
4
Задвижка не закрылась
5
Залипание конечного выключателя открытого или
закрытого положения
Аварийное состояние ФБ блокирует все команды.
Любое аварийное состояние автоматически сбрасывается в нормальное состояние через
время, указанное в канале
«ВремяАвтоСбросаАварии». Если время установлено в
0, то
возможен только ручной сброс аварий.
Входной канал «СбросАварии» сбрасывает аварийное значение в нормальное при
поступлении фронта на него.
Таблица 1. Входы-выходы функционального блока «Задвижка»
Номе
Тип
Обозначение
Началь
Описание
р
ное
значени
е
Входы
01
Boole
Работа
True
Работа ФБ (True - работа ФБ, False - нет)
an
При False, выходы в 0, не реагируем на входы
02
Integer
Положение
0
Контроль
положения
задвижки
(не
используется)
03
Boole
ПоложениеОткрыти
False
Контроль положения открытия
an
я
(ОТКРЫТА)
04
Boole
ПоложениеЗакрытия
False
Контроль положения закрытия
an
(ЗАКРЫТА)
05
Boole
Открытие
False
Контроль включения задвижки на открытие
an
(ОТКРЫВАЕТСЯ) (не используется)
06
Boole
Закрытие
False
Контроль отключения задвижки на закрытие
an
(ЗАКРЫВАЕТСЯ) (не используется)
- 252 -
Контроллеры
07
Boole
Открыть
False
Команда открытия задвижки
an
08
Boole
Закрыть
False
Команда закрытия задвижки
an
09
Boole
Стоп
False
Команда останова задвижки в промежуточном
an
положении
10
Boole
ВыходИмпульс
True
Режим работы выходных команд ФБ (True -
an
импульсы, False - потенциал) Потенциальный
режим - не реализован
11
Boole
Защита
False
Срабатывание защиты задвижки
an
12
Boole
СбросАварии
False
Ручной сброс аварии
an
13
Integer
ВремяСходаОткр
5000
Время схода задвижки с конечного
выключателя открытого положения, мсек.
14
Integer
ВремяСходаЗакр
5000
Время схода задвижки с конечного
выключателя закрытого положения, мсек
15
Integer
ВремяМеханизма
5000
Время полного хода задвижки, мсек
16
Integer
ВремяИмпульсаКома
5000
Время импульса команд открытия/закрытия/
нды
останова задвижки, мсек
17
Integer
ВремяАвтоСбросаАв
10000
Время автоматического сброса аварии (0 -
арии
только ручной сброс), мс
Выходы
01
Boole
КомандаОткрыть
False
Команда открытия задвижки
an
02
Boole
КомандаЗакрыть
False
Команда закрытия задвижки
an
03
Boole
КомандаСтоп
False
Команда останова задвижки
an
Integer
04
Авария
0
Код авария (расшифровка в таблице)
5.4.11 Управление программой
Условие
5.4.11.1 Условие
Используется для создания ветвлений в выполнении ФБ в программе пользователя по
дискретному условию
- 253 -
Контроллеры
ФБ Условие имеет один дискретный вход "Условие" и три группы ("При 1", "При 0", "При плохом
качестве") для добавления других ФБ и групп. В зависимости от значения на входе "Условие"
будет выполняться пользовательская программа из ассоциированной со значением группой.
Остальные группы в это время выполняться не будут.
5.4.12 Шифраторы
Шифратор целых чисел
Дешифратор целых чисел
Шифратор дискретных переменных
Дешифратор дискретных переменных
Упаковщик вещественных чисел
Распаковщик вещественных чисел
5.4.12.1 Шифратор целых чисел
Префикс ФБ: Шифратор ЦЧ
Полное название: Шифратор целых чисел
Код: 109
Мультиканальность: да
Описание канала: Количество пар целых чисел
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок осуществляет упаковку целых чисел для дальнейшей их
передачи в другие ФБ или по каналам связи. В пределах одного ФБ возможна упаковка до 85
пар целых чисел.
Описание: Каждый канал ФБ упаковывает два (или одно) целых стандартных числа в одно
целое четырехбайтовое число. Первые два байта этого числа содержат первое целое число,
вторые два байта - второе число.
Таблица входов-выходов функционального блока «Шифратор ЦЧ»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Целое1 1
1-ое целое число канала 1
02
Integer
Целое2 1
2-ое целое число канала 1
03
Integer
Целое1 2
1-ое целое число канала 2
04
Integer
Целое2 2
2-ое целое число канала 2
2N-1
Integer
Целое1 N
1-ое целое число канала N
2N
Integer
Целое2 N
2-ое целое число канала N
Выходы
- 254 -
Контроллеры
01
Integer
Выход 1
Упакованное(шифрованное) число канала 1
02
Integer
Выход 2
Упакованное(шифрованное) число канала 2
N
Integer
Выход N
Упакованное(шифрованное) число канала N
5.4.12.2 Дешифратор целых чисел
Префикс ФБ: Дешифратор ЦЧ
Полное название: Дешифратор целых чисел
Код: 110
Мультиканальность: да
Описание канала: Количество дешифруемых целых чисел
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок осуществляет распаковку целых чисел для дальнейшего
использования в ФБ. В пределах одного ФБ возможна распаковка до 85 целых чисел.
Описание: Каждый канал ФБ распаковывает одно четырехбайтовое число в два целых числа.
Первые два байта входного четырехбайтового числа считаются первым целым числом
канала, вторые два байта - вторым целым числом канала.
Таблица входов-выходов функционального блока «Дешифратор ЦЧ»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Выход 1
Упакованное(шифрованное) число канала 1
02
Integer
Выход 2
Упакованное(шифрованное) число канала 2
N
Integer
Выход N
Упакованное(шифрованное) число канала N
Выходы
01
Integer
Целое1 1
1-ое целое число канала 1
02
Integer
Целое2 1
2-ое целое число канала 1
03
Integer
Целое1 2
1-ое целое число канала 2
04
Integer
Целое2 2
2-ое целое число канала 2
2N-1
Integer
Целое1 N
1-ое целое число канала N
2N
Integer
Целое2 N
2-ое целое число канала N
5.4.12.3 Шифратор дискретных переменных
Префикс ФБ: Шифратор ДП
Полное название: Шифратор дискретных переменных
Код: 111
Мультиканальность: да
Описание канала: Количество групп дискретных переменных
Минимальное количество каналов: 1
Максимальное количество каналов: 7
Назначение: Функциональный блок осуществляет упаковку дискретных значений
для
дальнейшей их передачи в другие ФБ или по каналам связи. В пределах одного ФБ возможна
- 255 -
Контроллеры
упаковка до 7 групп дискретных сигналов (до 32 параметров в каждой группе).
Описание: Каждый канал ФБ упаковывает до 32 дискретных значений в одно целое
четырехбайтовое число, каждый бит которого равен соответствующему входу алгоритма. Если
число входов канала меньше 32, то биты выходного числа, не соответствующие никаким
входам, имеют значение 0.
Таблица входов-выходов функционального блока «Шифратор ДП»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Дискрет1 1
1-ое дискретное значение канала 1
02
Boolean
Дискрет2 1
2-ое дискретное значение канала 1
32
Boolean
Дискрет32 1
32-ое дискретное значение канала 1
33
Boolean
Дискрет2 1
1-ое дискретное значение канала 2
34
Boolean
Дискрет2 2
2-ое дискретное значение канала 2
64
Boolean
Дискрет32 2
32-ое дискретное значение канала 2
32N
Boolean
Дискрет32 N
32-ое дискретное значение канала N
Выходы
01
Integer
Выход 1
Упакованное(шифрованное) число канала 1
02
Integer
Выход 2
Упакованное(шифрованное) число канала 2
N
Integer
Выход N
Упакованное(шифрованное) число канала N
5.4.12.4 Дешифратор дискретных переменных
Префикс ФБ: Дешифратор ДП
Полное название: Дешифратор дискретных переменных
Код: 112
Мультиканальность: да
Описание канала: Количество дешифруемых целых чисел
Минимальное количество каналов: 1
Максимальное количество каналов: 7
Назначение: Функциональный блок осуществляет распаковку дискретных значений для
дальнейшей их передачи в другие ФБ или по каналам связи. В пределах одного ФБ возможна
распаковка до 7 четырехбайтовых целых числа.
Описание: Каждый канал ФБ распаковывает одно целое четырехбайтовое число в 32
дискретных значения.
Таблица входов-выходов функционального блока «Дешифратор ДП»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Выход 1
Упакованное(шифрованное) число канала 1
- 256 -
Контроллеры
02
Integer
Выход 2
Упакованное(шифрованное) число канала 2
N
Integer
Выход N
Упакованное(шифрованное) число канала N
Выходы
01
Boolean
Дискрет1 1
1-ое дискретное значение канала 1
02
Boolean
Дискрет2 1
2-ое дискретное значение канала 1
32
Boolean
Дискрет32 1
32-ое дискретное значение канала 1
33
Boolean
Дискрет2 1
1-ое дискретное значение канала 2
34
Boolean
Дискрет2 2
2-ое дискретное значение канала 2
64
Boolean
Дискрет32 2
32-ое дискретное значение канала 2
32N
Boolean
Дискрет32 N
32-ое дискретное значение канала N
5.4.12.5 Упаковщик вещественных чисел
Префикс ФБ: Упаковщик ВЧ
Полное название: Упаковщик вещественных чисел
Код: 113
Мультиканальность: да
Описание канала: Количество пар вещественных чисел
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок предназначен для преобразования вещественных чисел
из стандартного четырехбайтового формата в двухбайтовый с фиксированной ценой
младшего разряда, а также объединения двух двухбайтовых вещественных чисел в
четырехбайтовое слово. Алгоритм используется для подготовки вещественных чисел к
передаче по интерфейсным каналам для уплотнения сообщений в случаях, если при передаче
не требуется высокая точность представления вещественных чисел.
Описание: Упакованное вещественное число имеет следующий формат:
15 разряд - знак числа;
12 - 0 разряды - мантисса числа;
14 - 13 разряды - цена младшего разряда мантиссы (точность представления числа) в
соответствии с таблицей:
Разряды 14-13
Цена
младшего
разряда
Диапазон числа
мантиссы
00
0 - ± 7.9999
0.0009765 (2-10)
01
± 8 - ± 135.99
0.015625 (2-6)
10
±136 - ± 1159.90
0.125 (2-3)
11
± 1160 - ± 3207.7
0.25 (2-2)
Формат упаковки ФБ выбирает автоматически, в зависимости от модуля входного
вещественного числа. Если модуль входного числа превышает величину 3207.7, то оно
ограничивается при упаковке этим значением. Каждое из вещественных чисел упаковывается
- 257 -
Контроллеры
независимо от парного ему значения.
Упакованные вещественные числа нельзя использовать в вычислительных операциях без их
предварительной распаковки (используется ФБ «Распаковщик ВЧ»).
ФБ может обрабатывать до 85 каналов, в каждом из которых возможна упаковка одного или
двух значений.
Таблица входов-выходов функционального блока «Упаковщик ВЧ»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Веществ1 1
1-ое вещественное число канала 1
02
Float
Веществ2 1
2-ое вещественное число канала 1
03
Float
Веществ1 2
1-ое вещественное число канала 2
04
Float
Веществ2 2
2-ое вещественное число канала 2
2N-1
Float
Веществ1 N
1-ое вещественное число канала N
2N
Float
Веществ2 N
2-ое вещественное число канала N
Выходы
01
Integer
Выход 1
Упакованное число канала 1
02
Integer
Выход 2
Упакованное число канала 2
N
Integer
Выход N
Упакованное число канала N
5.4.12.6 Распаковщик вещественных чисел
Префикс ФБ: Распаковщик ВЧ
Полное название: Распаковщик вещественных чисел
Код: 114
Мультиканальность: да
Описание канала: Количество распаковываемых вещественных чисел
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок осуществляет распаковку упакованных
алгоритмом
«Упаковщик ВЧ» вещественных чисел.
Описание: Функциональный блок может обрабатывать до 85 упакованных значений. Каждый
канал распаковывает одно четырехбайтовое число в два вещественных числа длиной 4 байта
каждое. Преобразование упакованного числа обратно правилам, определенным для ФБ
«Упаковщик ВЧ»
Таблица входов-выходов функционального блока «Распаковщик ВЧ»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Выход 1
Упакованное число канала 1
02
Integer
Выход 2
Упакованное число канала 2
N
Integer
Выход N
Упакованное число канала N
- 258 -
Контроллеры
Выходы
01
Float
Веществ1 1
1-ое вещественное число канала 1
02
Float
Веществ2 1
2-ое вещественное число канала 1
03
Float
Веществ1 2
1-ое вещественное число канала 2
04
Float
Веществ2 2
2-ое вещественное число канала 2
2N-1
Float
Веществ1 N
1-ое вещественное число канала N
2N
Float
Веществ2 N
2-ое вещественное число канала N
5.4.13 Энергоресурсы
Баланс текущих значений
Баланс накопленных значений
5.4.13.1 Баланс текущих значений
Префикс ФБ: БалансТекущих
Полное название: Анализатор баланса текущих значений (токи, мощности)
Код: 161
Мультиканальность: да
Описание канала: "Отдаваемые" (суммируемые) значения
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок предназначен для вычисления баланса - разности и
отношения - между введенной величиной и суммой отданных величин.
Описание: Возможное использование ФБ
- анализ баланса электрического тока на
распределительном устройстве
(РУ). На вход Прием подается введенная величина
(например ввод секции РУ), вход КТпр задает коэффициент трансформации вводной
величины. ФБ на выход ПриемПолный выдает произведение Приема и КТпр. На канальные
входа Отпуск подаются отдаваемые величины
(токи фидеров РУ), и также задаются
коэффициенты трансформации КТотп. ФБ суммирует величины по всем Отпускам с учетом их
КТотп, выдает сумму на выход ОтпускПолный. Также расчитываются абсолютный небаланс
как ПриемПолный-ОтпускПолный, и относительный небаланс как
(ПриемПолный-
ОтпускПолный)/ПриемПолный*100. В случае выхода относительного небаланса за заданную
величину УставкаОтнНебал на выход ПревышениеБаланса выдается логическая 1.
5.4.13.2 Баланс накопленных значений
Префикс ФБ: БалансНакопленных
Полное название: Анализатор баланса накопленных значений (энергия, показания)
Код: 162
Мультиканальность: да
Описание канала: "Отдаваемые" (суммируемые) значения
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок предназначен для вычисления баланса - разности и
отношения
- между введенной величиной и суммой отданных величин. Для расчетов
используются разность показаний - зафиксированного значения и текущего значения по вводу
и каждому каналу.
Описание: Функциональный блок похож на ФБ БалансТекущих. Различие заключается в том,
что для вычисления по каждому каналу и вводу используются не текущие мгновенные
значения, а разность значений между начальными значениями и текущими. Начальные
- 259 -
Контроллеры
значения фиксируются в памяти алгоритма по переднему фронту управляющего сигнала Пуск.
При нулевом (лог. 0) значении входа Пуск алгоритм не производит никаких расчетов, значения
выходов не меняются.
- 260 -
Контроллеры
5.5 Отладка и эмуляция
Для отладки алгоритмов обработки информации, закладываемых в контроллер, имеются
различные средства. В первую очередь это эмуляция работы исполнительной системы
непосредственно внутри инструментальной системы. Данный процесс инициируется
нажатием кнопки
на панели инструментов. В ответ инструментальная система
подготавливает бинарную конфигурацию, аналогичную той, что будет загружатся в
контроллер, и передает ее на исполнение версии исполнительной системы, скомпилированной
в виде библиотеки DLL. Данная библиотека производит анализ конфигурации, формирует все
внутренние массивы данных, и далее производит выполнение задача пользователя. А
инструментальная система отображает состояние входов-выдов ФБ.
Отладка с имитацией работы внутри среды разработки имеет два режима - без опроса
модулей ввода-вывода, и с опросом модулей.
В режиме без опроса модулей скорость выполнения программ пользователя не
привязывается к реальному времени, и выполнение происходит в режиме внутреннего
"вирутального" времени. Также в этом режиме нет никакой эмуляции на входах-выхода
модулей доступа к данных, но для имитации возможно их ручное изменение.
В режиме с опросом модулей внутри среды разработки фактически запускается полноценный
контроллер EnLogic, реализованный в виде DLL. Этот контроллер выполняет весь
функционал, аналогично реальному контроллеру - запускает задачи опроса модулей ввода-
вывода, задачи пользователя и пр. То есть при таком режиме отладки устройства,
подключенные к компьютеру по сети или COM-портам, будут опрашиваться в соответствии со
сформированной конфигурацией.
Другие варианты отладки заключаются в использовании виртуальных контроллеров:
Эмулятор контроллера
Контроллер в виде службы Windows
Для использования данных вариантов необходимо загрузить необходимую версию эмулятора
локально, или на удаленном компьютере. Связь между инструментальной системой и
эмулятором производится по протоколу TCP/IP, то есть необходимо правильно настроить ее
параметры на вкладке настройки контроллера. Для загрузки конфигурации есть две
управляющих кнопки - загрузка конфигурации
, и начать опрос
. Обычно достаточно
использовать только вторую кнопку, так как система перед началом опроса проверит, какая
конфигурация загружена в контроллер, и если она отличается, то предложит автоматически
загрузить новую. Но иногда возникает необходимость загрузить конфигурацию, и не начинать
сразу опрос, тогда для этого можно использовать первую кнопку.
При любом варианте отладки инструментальная система переходит в режим мониторинга
входов-выходов ФБ и модулей:
- 261 -
Контроллеры
Окно приложения в режиме отладки конфигурации контроллера
Для изменения состояния любого входа-выхода необходимо вызвать у него контекстное
меню.
5.5.1 Эмулятор контроллера
Данная версия исполнительной системы представляет собой приложение Windows. При
загрузке программа считывает из текущего каталога файл конфигурации config.bin, если
таковой существует, или загружает пустую конфигурацию по умолчанию. Связь с системой
программирования производится по протоколу TCP/IP. При необходимости программу можно
запустить в нескольких экземплярах для эмуляции одновременно нескольких контроллеров,
но для этого каждому экземпляру эмулятора необходимо задать свой номер порта UDP.
- 262 -
Контроллеры
Окно эмулятора контроллера EnLogic
По функциональности данная версия является аналогом исполнительной системы, только
работающей в среде Windows. Но эмулятор контроллера предназначен только для функций
отладки и тестирования. Для использования технологии контроллера SoftLogic на платформе
Windows необходимо применять промышленное решение в виде службы.
5.5.2 Служба Windows
Данная версия исполнительной системы представляет собой службу Windows. Ее удобно
использовать как для отладки, так и непосредственно для промышленной эксплуатации в
качестве исполнительной системы для платформы Win32.
Служба реализована в виде исполняемого файла EnLogicSvc.exe, который можно свободно
запускать из любого каталога. Управление службой осуществляется консольными командами
Windows. Для удобства созданы два командных файла:
EnLogicSvc_install.bat
- установка службы и ее запуск
EnLogicSvc_uninstall.bat - останов службы и ее удаление
Содержимое файла EnLogicSvc_install.bat:
EnLogicSvc.exe /install /silent
net start EnLogicSoftPLC
Содержимое файла EnLogicSvc_uninstall.bat:
net stop EnLogicSoftPLC
EnLogicSvc.exe /uninstall /silent
Служба устанавливается под именем EnLogicSoftPLC. При необходимости возможна
установка и запуск на одном компьютере нескольких служб EnLogic. В этом случае,
необходимо создать несколько копий файла EnLogicSvc.exe и разместить их в разных папках.
- 263 -
Контроллеры
Также необходимо инсталлировать службы под разными именами (вместо EnLogicSoftPLC) и
задавать разные порты (параметы UDPport и IEC104port). Настройки службы конфигурируются
в файле EnLogicSvc.ini:
[Main]
;Порт (30291)
;UDPport=30291
;Имя сервиса (EnLogicSoftPLC)
;NameSVC=EnLogicSoftPLC
;Приоритет процессса, в порядке убывания (NORMAL_PRIORITY_CLASS)
;Priority=REALTIME
;Priority=HIGH
;Priority=ABOVE_NORMAL
;Priority=NORMAL
;Priority=BELOW_NORMAL
;Priority=IDLE
ВНИМАНИЕ! Для избежания конфликтов при запуске на одном рабочем месте одновременно
эмулятора контроллера и службы для службы по умолчанию используется другой номер
служебного порта TCP/IP - 0х7653 (стандартное значение 0x7654).
Для создания конфигурации для службы рекомендуется использовать тип контроллера None-
target:
- 264 -
Контроллеры
5.6 Связь с верхним уровнем
Для получения данных от контроллера, работающего под управлением исполнительной
системы EnLogic, в различные SCADA-системы и системы телемеханики, существуют
механизмы:
Прямое использование в ОВЕН Телемеханика Лайт
Сервер OPC DA
МЭК 60870-5-104
Все механизмы для построения дерева контроллеров и тегов, и для получения настроек
параметров связи с контроллерами используют XML-файлы, формируемые системой
программирования в подкаталоге Cfg относительно файла конфигурации *.enl.
5.6.1 Экспорт имен тегов
Возможна настройка имен тегов, передаваемых из конфигурации контроллера в систему
верхнего уровня. Обмен настройками происходит через специальный XML-файл, создаваемый
при построении конфигурации контроллера -
CFG\[GUID контроллера].xml
Окно настройки экспорта имен тегов вызывается нажатием соответствующей кнопки на
вкладке настройки связи с контроллером:
Окно настройки экспорта тегов
Тег в ОВЕН Телемеханика Лайт имеет два поля для описания - Шифр и Наименование.
Алгоритм получения этих двух строк из XML-файла библиотекой выбора тегов, в зависимости
от режима экспорта:
1. По умолчанию
Шифр и Наименование поля паспорта, в порядке приоритета, заполняется из следующих
полей свойств канала ввода/вывода EnLogic (при пустом поле более приоритетной настройки,
значение берется из менее приоритетной настройки):
Для Шифра:
1. Комментарий (шифр пользовательский) (xml tag UserComment)
- 265 -
Контроллеры
2. Короткое имя (шифр) (xml tag ShortName)
Для Наименования:
1. Наименование (наименование пользовательское) (xml tag Naimen)
2. Описание (наименование) (xml tag Description)
3. Полный путь к каналу - в IDE этого поля нет, оно формируется как полный
путь к каналу разделенный точками (xml tag Name)
Таким образом, наличие в полях Комментарий(шифр) и Наименование каких-либо строк
(изначально, при добавлении объектов, они пусты) приведет к тому, что эти строки и будут
выступать в дальнейшем в качестве имени и комментария паспорта.
Режим иллюстрирует нижеприведенный рисунок.
Экспорт тегов в режиме по умолчанию
2. Полное имя канала
Режим полностью повторяет предыдущий режим (по умолчанию), только в поля Name и
Shortname попадает полный путь к каналу, разделенный точками.
3. По маске
Этот режим позволяет формировать и передавать библиотеке выбора паспортов сложные
конструкции, основанные на масках.
Шифр паспорта - (xml tag ShortName)
Наименование паспорта - (xml tag Name)
Доступные маски:
%M - Комментарий (шифр пользовательский)
%N - Короткое имя (шифр)
%S - Наименование (наименование пользовательское)
%С - Описание (наименование)
%MN - условный шифр (если задано поле "Комментарий (шифр пользовательский)", то его
значение, иначе "Короткое имя (шифр)")
%SC - условное наименование (если задано поле "Наименование (наименование
пользовательское)", то его значение, иначе "Описание (наименование)")
%O - имя объекта (модуль, ФБ), которому принадлежит канал
%T - имя задачи, которому принадлежит канал
%Z - комментарий задачи пользователя или протокола, которому принадлежит канал
%A - адрес модуля, которому принадлежит канал (для старого формата описания модулей)
%K - адрес параметра
%P - номер коммуникационного порта модуля, которому принадлежит канал (для старого
формата описания модулей)
%UC[№ свойства] - универсальное свойство канала
%UM[№ свойства] - универсальное свойство модуля, которому принадлежит канал
%UP[№ свойства] - универсальное свойство протокола, которому принадлежит канал
5.6.2 Прямой доступ
ОВЕН Телемеханика Лайт имеет прямую поддержку контроллеров EnLogic. Это означает что в
любом диалоге выбора параметров - для модуля визуализации, при настройке баз данных и
пр. входа-выхода модулей и ФБ контроллеров EnLogic отображаются непосредственно, и
- 266 -
Контроллеры
сразу доступны к использованию на верхнем уровне в ОВЕН Телемеханика Лайт.
Диалог выбора параметров EnLogic в ОВЕН Телемеханика Лайт
Передача данных от контроллеров EnLogic в ОВЕН Телемеханика Лайт может производится
по различным каналам связи, в соответствии с настройками свойств контроллера. При
включении в конфигурацию контроллера задачи МЭК доступ к контроллеру по каналу TCP/IP
осуществляется по протоколу МЭК 60870-5-104, а при использовании канала связи GSM -
специализированный протокол передачи сжатых пакетов данных, при этом данные в пакетах
идентифицируются по МЭК-адресам параметров EnLogic.
5.6.3 Сервер OPC DA
Для доступа к контроллерам с исполнительной системой EnLogic разработан сервер OPC DA
2, который можно использовать с любой SCADA-системой, поддерживающей этот интерфейс.
При загрузке OPC-сервер считывает из реестра путь к каталогу, из которого он будет
загружать необходимые XML-файлы для построения дерева тегов.
Исполняемый файл OPC-сервера находится в одном каталоге с инструментальной системой
EnLogic, и называется EnLogicOPC.exe. Регистрация OPC-сервера в системе происходит
автоматически при установке дистрибутива EnLogic или ОВЕН Телемеханика Лайт. Также ее
можно провести самостоятельно, запустив его с ключом /regsrv. Обратную операцию также
можно сделать вручную с помощью ключа /unregsrv. Также регистрация сервера возможна
через пункт меню в информационном окне сервера.
Когда OPC-сервер EnLogic запущен, он выводит свою иконку в панель "трей". Щелкнув по ней
левой кнопкой мыши, можно отобразить информационное окно, в котором будет показано, с
какой конфигурацией работает OPC-сервер, и отображено дерево тегов:
- 267 -
Контроллеры
Рабочее окно OPC-сервера EnLogic
Конфигурация EnLogic, с которой будет работать OPC-сервер, выбирается из данного
информационного окна. Эта настройка запоминается в реестре, и при следующем старте
сервер автоматически загружает указанную конфигурацию. В качестве конфигурации
необходимо указывать файл cfg.xml, формируемый при построении конфигурации в среде
разработки EnLogic.
OPC-сервер реализует полностью всю функциональность работы виртуального контроллера в
среде Windows, получение данных от реальных контроллеров по любым возможным каналам
связи. Для этих целей используется библиотека менеджера EnLogic EnLogicMngr.dll из
состава ОВЕН Телемеханика Лайт.
5.6.4 МЭК 60870-5-101/104
В исполнительной системе EnLogic реализована поддержка протокола МЭК 60870-5-104. Это
стандартный телемеханический протокол. Для систем телемеханики контроллер с EnLogic
представляет собой КП - контролируемый пункт. С точки зрения протокола TCP/IP контроллер
является сервером TCP, ожидающим входящие соединения по стандартному для МЭК-104
TCP-порту под номером 2404. Поддерживается балансный режим. Подробное описание
протокола содержится в разделе описания протокола КП МЭК 60870-5-104.
Также возможна организация передачи данных от контроллера по протоколу МЭК 60870-5-101.
Это реализуется с помощью добавления в контроллер задачи протокола обмена КП МЭК
60870-5-101.
- 268 -
Контроллеры
5.6.5 Канал связи GPRS/CSD
Добавить протокол -> Специальные -> GPRS / CSD:
Свойства протокола:
- 269 -

 

 

 

 

 

 

 

содержание      ..     2      3      4      5     ..