Добавил:
nickolai_oreschenko
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:УТС 7 семестр / МПС курсовик
.txtКИП
Аналоговые
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 семестр