Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УТС 7 семестр / МПС курсовик

.txt
Скачиваний:
6
Добавлен:
08.08.2022
Размер:
9.51 Кб
Скачать

КИП
Аналоговые
PH - INT - 1-14 (кислотность)
Rh - INT - +-1500 мВ (REDOX - окислительно восстановительный потенциал)

Дискретные
Level_HH - BOOL - верхний аварийный
Level_H - BOOL - верхний предупред.
Level_L - BOOL - нижний предупред
Level_LL - BOOL - нижний аварийный

P_HH - BOOL - аварийно высокое давление на выкиде насоса CP1
P_LL - BOOL - аварийно низкое давление на выкиде насоса CP1
FlowIndic - BOOL - датчик потока воздуха


Устройства.

CP1 - циркуяционный насос
DP1`- дозирующий насос
DP2 - дозирующий насос
MV1 - задвижка слива промывочного раствора
FV1 - клапан подачи чистой воды
FAN - подача загрязненного воздуха


CP1
Запуск
FAN - подача воздуха включена.
FlowIndic = 1 - поток воздуха достиг нужного уровня
промывочный раствор в емкости сруббера - присутствует( Level_H&Level_LL&Level_L = 1)
P_HH = 0

Останов
FAN_work = 0 - подачи воздуха нет
FlowIndic = 0 - поток воздуха не достиг нужного значения
Level_H&Level_LL&Level_L = 0 - нет раствора
P_LL = 1 - через NN сек поле запуска. (защита от "сухого хода"+ от негерметичности)
P_HH = 1

DP1 -
Запуск
FAN - подача воздуха включена.
FlowIndic = 1 - поток воздуха достиг нужного уровня
промывочный раствор в емкости сруббера - присутствует( Level_H&Level_LL&Level_L = 1)
PH < PH_LowLimit (8.2 - заводское значение по умолчанию)
CP1_work = 1 (циркуляционный насос работает)

Останов
FAN_work = 0 - подачи воздуха нет
FlowIndic = 0 - поток воздуха не достиг нужного значения
Level_H&Level_LL&Level_L = 0 - нет раствора
PH > PH_WorkLimit (8.25 - заводское значение по умолчанию)
CP1_work = 0 (циркуляционный насос работает)
WorkTime1timeDP1 >= MaxOneTimeFeedDP1

DP2 -
Запуск
FAN - подача воздуха включена.
FlowIndic = 1 - поток воздуха достиг нужного уровня
промывочный раствор в емкости сруббера - присутствует( Level_H&Level_LL&Level_L = 1)
RH > RH_HighLimit (630 мВ - заводское значение по умолчанию)
CP1_work = 1 (циркуляционный насос работает)

Останов
FAN_work = 0 - подачи воздуха нет
FlowIndic = 0 - поток воздуха не достиг нужного значения
Level_H&Level_LL&Level_L = 0 - нет раствора
RH < PH_LowLimit (625 мВ - заводское значение по умолчанию)
CP1_work = 0 (циркуляционный насос работает)
WorkTime1timeDP2 >= MaxOneTimeFeedDP2

FV1
Открытие
FAN - подача воздуха включена.
FlowIndic = 1 - поток воздуха достиг нужного уровня
промывочный раствор в емкости сруббера - не присутствует( Level_H&Level_LL&Level_L = 0)
MV1 = задвижка слива раствора в очистные - закрыта
Закрытие
FAN_work = 0 - подачи воздуха нет
FlowIndic = 0 - поток воздуха не достиг нужного значения
Level_H&Level_LL&Level_L = 1 - есть раствора
MV1 = задвижка слива раствора в очистные - открыта

MV1
Открытие
FAN - подача воздуха включена.
FlowIndic = 1 - поток воздуха достиг нужного уровня
промывочный раствор в емкости сруббера - присутствует( Level_H&Level_LL&Level_L = 1)
FullWorkTime_CP1 >=MaxWashTimeCP1 или FullFeedTime_DP? >= MaxFeedTime_DP?

Закрытие
(FAN_work = 0 - подачи воздуха нет
FlowIndic = 0 - поток воздуха не достиг нужного значения)???
Level_H&Level_LL&Level_L = 0 - нет раствора


Счетчик времени работы насосов
DP1 и DP2
FullFeedTime_DP1 - время работы насоса до замены промывочного раствора
WorkTime1timeDP2 - время работы при единочной подаче раствора
CP1 - время работы до замены раствора



Типы устройств
мотор - dp1 dp2 cp1 fan
клапан - FV1
задвижка - MV1

структуры данных

motor_data_type
{
Work:BOOL; //- работа(двигатель включен)
Ready:BOOL; // — готовность
Local:BOOL; // - Местный режим(упр. С местного пульта)
Remote:BOOL; // - Дистанционный — упр. Из системы АСУ
alarm_stop_button_pressed:BOOL; //аварийный стоп
Start:BOOL; // — запуск
Stop:BOOL; // — останов
Time2start:UDINT; // - Время запуска - ?? сек
Time2stop:UDINT; // - Время останова - ?? сек
com_oper:UINT; // - команда оператора устройству
Status:UINT; // - слово состояния
Error:UINT; // - ошибка
}
valve_data_type
{
ESD_stop:BOOL; //- аварийный стоп
Opened:BOOL; //- открыта
Closed:BOOL; //- закрыта
Closing:BOOL; //- закрывается
Opening:BOOL; //- открывается
Ready:BOOL; //- готова к работе
TermalTrip:BOOL; //- сработала защита по перегреву двигателя
TorqueTrip:BOOL; // - сработала защита по моменту на валу
Remote:BOOL; // - режим удаленного управления
Local:BOOL; // - режим местного управления
CCMCCW:BOOL; // - вращение вала против часовой стрелкие
CCMCW:BOOL; // - вращение вала по часовой стрелке
Open:BOOL; // - управляющий выход "открыть"
Close:BOOL; // - управляющий выход "закрыть"
Stop:BOOL; // - управляющий выход "стоп"
com_oper:UINT; // - команда оператора устройству
Status:UINT; // - слово состояния
Error:UINT; // - ошибка
}

solval_data_type
{
ESD_stop:BOOL; //- аварийный стоп
Opened:BOOL; //- открыта
Closed:BOOL; //- закрыта
Ready:BOOL; //- готова к работе
Remote:BOOL; // - режим удаленного управления
Local:BOOL; // - режим местного управления
OpenClose:BOOL; // - управляющий выход "открыть"
com_oper:UINT; // - команда оператора устройству
Status:UINT; // - слово состояния
Error:UINT; // - ошибка
}

переменные
motors:array [0..3] of motor_data_type;

fan:motor_data_type; //
CP1:motor_data_type; //- циркуяционный насос
DP1:motor_data_type; // - дозирующий насос
DP2:motor_data_type; // - дозирующий насос
MV1:valve_data_type; // - задвижка слива промывочного раствора
FV1:solval_data_type; // - клапан подачи чистой воды
FAN:motor_data_type; // - подача загрязненного воздуха

Level_HH:BOOL; // - верхний аварийный
Level_H:BOOL; // - верхний предупред.
Level_L:BOOL; // - BOOL - нижний предупред
Level_LL:BOOL; // - нижний аварийный
P_HH:BOOL; // - BOOL - аварийно высокое давление на выкиде насоса CP1
P_LL:BOOL; //BOOL - аварийно низкое давление на выкиде насоса CP1
FlowIndic:BOOL; // - датчик потока воздуха
PH:INT;
RH:INT;



(*
fan.com_oper = 1 - команда на устройство
FV1.com_oper = 2

loop i = 0 to 3 do
motors[i].com_oper=1
endloop

*)


if <Условия пуска/открытия> then
<команда открытия/пуска> (*CP1.com_oper = 1 *)
else if <Условия останова/закрытия> then
<команда закрытия останова>
(*CP1.com_oper = 2*)
endif

<вызов управляющего функционалного блока>
(*motor(adr(CP1))*)
Соседние файлы в папке УТС 7 семестр