Структурированный текст: циклические операции, программы сложных расчетов, дополнения сложной логики.

Диаграммы функциональных блоков: контроль и аварийная сигнализация, управление двигателями и клапанами, аналоговое регулирование. Диаграммы функциональных последовательностей: управление пуском - остановом, управление периодическими процессами.

Информационное и программное обеспечение АСУТП.

Информационное обеспечение (ИО) – единая система классификации и кодирования технологической и технико-экономической информации, справочная и оперативная информация. ИО должно иметь структурную иерархическую организацию.

Программное обеспечение (ПО), состоящее из общего (стандартного) и специального. Общее программное обеспечение – организующие и транслирующие программы, библиотеки стандартных программ и т.д. Специальное программное обеспечение – программы контроля и управления, реализующие функции АСУ ТП.

Требования к стандартному ПО. Для реализации задач РСУ используется программное обеспечение, функционирующее в среде многозадачной операционной системы реального времени (ОС РВ).

Сетевые программные средства, обеспечивающие объединение подсистем управления, операторских станций и средств архивирования данных в единую систему, должны реализовывать загрузку и управление запуском задач, обеспечивать обмен между задачами и базами данных, и предоставлять доступ к периферийным устройствам.

Система управления должна иметь возможность оперативного конфигурирования прикладного программного обеспечения в процессе функционирования АСУТП.

Все ошибочные ситуации, возникающие при работе программ, должны диагностироваться, сопровождаться сообщениями, и не должны вызывать нарушений в работе СУ.

Прикладное программное обеспечение АСУТП должно обеспечить реализацию требуемых алгоритмов контроля, регулирования и защиты, отображения информации, сигнализации и архивирования данных.

Алгоритмы управления должны иметь возможность переконфигурирования, и реализовываться через библиотечные блочные структуры.

В состав стандартной библиотеки языка функциональных алгоритмических блоков программно-технического комплекса входят следующие алгоритмы:1. Аналоговый параметр.2. Задвижка.3. Переключатель1. Функциональный алгоритмический блок "Аналоговый параметр".Вид алгоритмического блока предоставлен на рис. 1. Данный алгоритмический блок предназначен для организации интерфейса между пользователем и аналоговыми параметрами технологического процесса путем отображения значений полученных от аналоговых датчиков на мнемосхеме АРМ, а так же сигнализации при выходе данных параметров за допустимые пределы.Рис. 1 Функциональный алгоритмический блок "Аналоговый параметр".Описание входных и выходных переменных, а также возможные принимаемые значения приведены в таблице 3 и таблице 4, соответственно:Таблица 3.
Входные переменные
Название сигнала Тип переменной Описание Значения сигналов
PS_input WORD Значение АЦП Значение АЦП, которое поступает на контроллер от модуля в шестнадцатеричном коде и затем преобразуется в реальное значение
PS_mode WORD Текущий режим Текущий режим
LG_sim_value REAL Значение при симуляции* Значение при симуляции, которая моет быть запущена для отладки. Выставляется вручную на входе блока.
PR_sample_time REAL Время между вызовами программы значение
PR_HA_value REAL Значение верхней аварийной границы значение
PR_HW_value REAL Значение верхней предупредительной границы значение
PR_LW_value REAL Значение нижней предупредительной границы значение
PR_LA_value REAL Значение нижней аварийной границы значение
PR_max REAL Шкала датчика максимум значение
PR_min REAL Шкала датчика минимум значение
PR_change REAL Изменение значение
PR_deadband REAL Гистерезис значение
HL_Set INT Режим, настройки, прочее  
HL_Command INT Команда 1 – включить симуляцию 2 – выключить симуляцию 3 –включить верхнюю аварийную границу 4 – выключить верхнюю аварийную границу 5 – включить верхнюю предупредительную границу 6 – выключить верхнюю предупредительную границу 7 – включить нижнюю предупредительную границу 8 – выключить нижнюю предупредительную границу 9 – включить нижнюю аварийную границу 10 – выключить нижнюю аварийную границу 11 – включить симуляцию качества 12 – выключить симуляцию качества
* - здесь и далее - Режим симуляции – режим, при котором управление командами и параметрами элемента производится программистом с CFC-схем. Значения выставляются вручную. Режим симуляции применяется для отладки и настройки программы и ее отдельных элементов без АРМ оператора.Таблица 4.
Выходные переменные
Название сигнала Тип переменной Описание Значения сигналов
HL_Mode INT Режим  
HL_STEP INT Состояние  
HL_Status WORD Статус 0* - симуляция; 1 - верхняя аварийная граница 2 - верхняя предупредительная граница 3 - нижняя предупредительная граница 4 – нижняя аварийная граница 5 – 0-20мА 6 – 4-20мА 7 – температурный датчик 8 – неисправность датчика
HL_Impact WORD Резерв не используется (резерв)
HL_Alarms DWORD Биты аварий 0 – нижняя аварийная граница 1 – нижняя предупредительная граница 2 – верхняя предупредительная граница 3 – верхняя аварийная граница 4 – неисправность датчика
PS_value REAL Значение сигнала значение
PS_current REAL Текущее значение
PS_quality BOOL Качество 0 - нет сигнала ; 1 - сигнал по качеству
LG_HA BOOL Верхняя аварийная граница 0 - нет сигнала ; 1 - верхняя аварийная граница
LG_HW BOOL Верхняя предупредительная граница 0 - нет сигнала ; 1 - верхняя предупредительная граница
LG_LW BOOL Нижняя предупредительная граница 0 - нет сигнала ; 1 - нижняя предупредительная граница
LG_LA BOOL Нижняя аварийная граница 0 - нет сигнала ; 1 - нижняя аварийная граница
       
* - здесь и далее – для переменных типа WORD и DWORD порядковый номер бита. 2. Функциональный алгоритмический блок "ЗАДВИЖКА".Вид алгоритмического блока предоставлен на рис. 2. Данный алгоритмический блок предназначен для управления электрифицированной арматурой и анализа её состояния.Рис. 2 Функциональный алгоритмический блок "ЗАДВИЖКА".Описание входных и выходных переменных, а также возможные принимаемые значения приведены в таблице 5 и таблице 6, соответственно:Таблица 5.
Входные переменные
Название сигнала Тип переменной Опсиание Значения сигналов
PS_opened BOOL Концевой выключатель открытия 1 – нет сигнала концевого выключателя открытия; 0 – есть сигнал концевого выключателя открытия
PS_closed BOOL Концевой выключатель закрытия 1 – нет сигнала концевого выключателя закрытия; 0 – есть сигнал концевого выключателя закрытия
PS_opened_q BOOL Качество сигнала концевого выключателя открытия 0 –диагностика сигнала концевого выключателя открытия – нормальное качество сигнала; 1 – диагностика сигнала концевого выключателя открытия – плохое качество сигнала
PS_closed_q BOOL Качество сигнала концевого выключателя закрытия 0 –диагностика сигнала концевого выключателя закрытия – нормальное качество сигнала; 1 – диагностика сигнала концевого выключателя закрытия – плохое качество сигнала
PP_pr_open BOOL Защита запрет открытия 0 – открытие разрешено; 1 – открытие запрещено
PP_pr_close BOOL Защита запрет закрытия 0 – закрытие разрешено; 1 – закрытие запрещено
PP_pr_stop BOOL Защита запрет стоп 0 - останов разрешен; 1 - останов запрещен
PP_open BOOL Защита открыть 0 - защита не активна; 1 - открытие от защиты
PP_close BOOL Защита закрыть 0 - защита не активна; 1 - закрытие от защиты
PP_stop BOOL Защита остановить 0 - защита не активна; 1 - стоп от защиты
LG_in WORD Управление от логики (ФГУ) 0 - включить; 1 - закрыть; 2 - открыть; 3 - стоп
LG_on BOOL Включить автоматический режим (ФГУ) 0 - выключен; 1 - включен
LG_open BOOL Открыть от логики (от ФГУ) 0 - нет действия; 1 - открыть от логики
LG_close BOOL Закрыть от логики (от ФГУ) 0 - нет действия; 1 - закрыть от логики
LG_stop BOOL Стоп от логики (от ФГУ) 0 - нет действия; 1 - стоп от логики
LC_on BOOL Включить местный режим 0 - нет действия; 1 - включить местный режим
LC_open BOOL По месту открыть 0 - нет действия; 1 - по месту открыть
LC_close BOOL По месту закрыть 0 - нет действия; 1 - по месту закрыть
LC_stop BOOL По месту стоп 0 - нет действия; 1 - по месту стоп
PR_sample_time REAL Время между вызовами программы значение в секундах
PR_time_open_tr REAL Время размыкания с концевого выключателя при открытии (время, за которое пропадает сигнал наличия концевого выключателя) значение в секундах
PR_time_open REAL Время открытия значение в секундах
PR_time_close_tr REAL Время размыкания концевого выключателя при закрытии (время, за которое пропадает сигнал наличия концевого выключателя) значение в секундах
PR_time_close REAL Время закрытия значение в секундах
HL_Set INT Режим, настройки, прочее 1 - ремонт; 2 - местный; 3 - автомат; 4 - дистанционный; 10 - квитирование; 11 - включить диагностику; 12 - выключить диагностику; 99 - автонастройка
HL_Command INT Команда 101 - открыть; 102-закрыть; 103 - стоп
Таблица 6.
Выходные переменные
Название сигнала Тип переменной Опсиание Значения сигналов
HL_Mode INT Режим 1 - ремонт; 2 - местный; 3 - автомат; 4 - дистанционный
HL_STEP INT Состояние 1 - открыта; 2 - размыкание концевого выключателя открытия; 3 - закрывается; 4 - закрыта; 5 - размыкание концевого выключателя закрытия; 6 - открывается; 7 - промежуточное; 8 - схема разобрана*
HL_Status WORD Статус 0 - диагностика; 14 – воздействие защит 15 – воздействие ФГУ
HL_Impact WORD Резерв не используется (резерв)
HL_Alarms DWORD Биты аварий 0 - превышен интервал ожидания размыкания концевого выключателя открытия; 1 - превышен интервал ожидания замыкания концевого выключателя открытия; 2 - превышен интервал ожидания размыкания концевого выключателя закрытия; 3 - превышен интервал ожидания замыкания концевого выключателя закрытия; 4 - несанкционированный сход концевого выключателя открытия; 5 - несанкционированное открытие; 6 - несанкционированный сход концевого выключателя закрытия; 7 - несанкционированное закрытие;
LG_output WORD Логика выход (выход ФГУ) 0 - блок доступен для логики; 1 - закрыт; 2 – недоступен для управления; 3 – открыт
PS_open BOOL Открыть 0 - нет действия; 1 - открыть
PS_close BOOL Закрыть 0 - нет действия; 1 - закрыть
PS_stop BOOL Стоп 0 - нет действия; 1 - стоп
PP_opened BOOL Открыто 0 - нет сигнала; 1 - открыто
PP_closed BOOL Закрыто 0 - нет сигнала; 1 - закрыто
* - Состояние «Разобран» выводится для запорной арматуры и задвижек в том случае, если на них отсутствует питание. 3. Функциональный алгоритмический блок "ПЕРЕКЛЮЧАТЕЛЬ".Вид алгоритмического блока предоставлен на рис. 3. Данный алгоритмический блок предназначен для управления переключателем и отображения его параметров.Рис. 3 Функциональный алгоритмический блок "ПЕРЕКЛЮЧАТЕЛЬ".Описание входных и выходных переменных, а также возможные принимаемые значения приведены в таблице 7 и таблице 8, соответственно:Таблица 7
Входные переменные
Название сигнала Тип переменной Опсиание Значения сигналов
PS_on BOOL Включено 0 - включено; 1 - выключено
PS_off BOOL Выключено 0 - выключено; 1 - включено
PS_connect BOOL Схема собрана (Есть питание) 0 - схема собрана; 1 - схема разобрана
PS_IA REAL Ток A с ячейки питания значение
PS_IB REAL Ток B с ячейки питания значение
PS_IC REAL Ток C с ячейки питания значение
PS_mode BOOL Испытательное/рабочее положение 0 - испытательное; 1 - рабочее
PS_cart BOOL Тележка вкачена 0 - не вкачена; 1 - вкачена
PS_pp_fault BOOL Неисправность защит 0 - защита исправна; 1 - защита неисправна
PS_pp_on BOOL Срабатывание защит 0 - защита не активна; 1 - защита сработала
PS_IA_Q BOOL Качество сигнала 0 - нормальное качество; 1 – плохое качество сигнала
PS_IB_Q BOOL Качество сигнала 0 - нормальное качество; 1 - плохое качество сигнала
PS_IC_Q BOOL Качество сигнала 0 – нормальное качество; 1 - плохое качество сигнала
PP_pr_on BOOL Запрет включения от защиты 0 - защита не активна; 1 - защита активна
PP_pr_off BOOL Запрет отключения от защиты 0 - защита не активна; 1 - защита активна
PP_on BOOL Включить от защиты 0 - нет действия; 1 – включение от защиты
PP_off BOOL Выключить от защиты 0 - нет действия; 1 – выключение от защиты
LG_on BOOL Автоматический режим (управление от ФГУ) 0 - выключено; 1 - включено
LG_f_on BOOL Автоматика включить (от ФГУ) 0 - нет действия; 1 - включить автоматический режим
LG_f_off BOOL Автоматика выключить (от ФГУ) 0 - нет действия; 1 - выключить автоматический режим
LC_on BOOL Местный режим (Управление по месту) 0 - выключено; 1 - включено
LC_f_on BOOL На месте включить (по месту) 0 - нет действия; 1 - включить местный режим
LC_f_off BOOL На месте выключить (по месту) 0 - нет действия; 1 - выключить местный режим
PR_time_on REAL Таймаут (задержка) на включение значение в секундах
PR_time_off REAL Таймаут (задержка) на отключение значение в секундах
HL_Set INT Режим, настройки, прочее 1 - ремонт; 2 - местный; 3 - автомат; 4 - дистанционный; 10 - квитирование; 11 - включить диагностику; 12 - выключить диагностику; 99 - автонастройка
HL_Command INT Команда 101 - включить; 102-выключить;
Таблица 8
Выходные переменные
Название сигнала Тип переменной Опсиание Значения сигналов
HL_Mode INT Режим 1 - ремонт; 2 - местный; 3 - автомат; 4 - дистанционный
HL_STEP INT Состояние 1 – тележка вкачена; 2 – необходим включение; 3 – включение; 4 - включено; 5 – выключение; 6 – рабочее положение; 7 - выключено; 10 - схема разобрана;  
HL_Status WORD Статус 0 – статус диагностики; 14 – воздействие защит
HL_Impact WORD Резерв не используется (резерв)
HL_Alarms DWORD Биты аварий 0 – несанкционированное включение 1 – превышен интервал ожидания включения 2 – несанкционированное выключение 3 – превышен интервал ожидания выключения 4 – сработала защита 5 – пришел сигнал «испытательное положение» во время работы 6 – пришел сигнал «рабочее положение» во время испытания 7 – неопределенное состояние
PS_turn_on BOOL Включить 0 - нет действия; 1 - включить
PS_turn_off BOOL Выключить 0 - нет действия; 1 - выключить
LG_output WORD Логика выход (выход ФГУ) 0 – блок доступен для управления 1 - включен 2 – блок недоступен для управления

Выбор языка определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.

Язык ST является текстовым языком высокого уровня и очень сильно напоминает Паскаль:

Листинг 5. Пример программы на языке ST

IF Voltage>220 THEN

Current:=Current - 10; (*Если V>220 В, то уменьшить ток на 10*)

ELSE

Current:=50; Speed:= ON;(*Установить ток 50А и включить мотор*)

END_IF;

 

Несмотря на это, ST имеет много отличий от языка Паскаль и разработан специально для программирования ПЛК. Он содержит множество конструкций для присвоения значений переменным, для вызова функций и функциональных блоков, для написания выражений условных переходов, выбора операторов, для построения итерационных процессов. Этот язык предназначен в основном для выполнения сложных математических вычислений, описания сложных функций, функциональных блоков и программ.