
УТС Грудяева / 9091_Боброва_лаб_5
.docxМИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
ОТЧЕТ
по лабораторной работе №5 по дисциплине «Проектирование распределенных систем управления»
Тема: «Конфигурирование входных и выходных данных контроллера»
Студентка гр. 9091 Боброва Н.Ю.
Преподаватель Грудяева Е.С.
Санкт-Петербург
2024
Цель работы
Ознакомление с принципом работы входных и выходных модулей.
Содержание работы
1. Использование области ввода и вывода, запись переменных и блоков в таблицу символов.
2. Программирование блока OB1 на языке SCL.
3. Загрузка аппаратной конфигурации в PLC. Подтверждение отсутствия ошибок на PLC и модуле расширения.
№ Варианта |
2 |
Создание таблицы символов
Создание блоков данных
Создаем файл SCL и программируем блоки
Код программы
DATA_BLOCK DGI
STRUCT
N2_CRS : BOOL;
N3_ON : BOOL;
N3_CRS : BOOL;
N4_ON : BOOL;
N4_CRS : BOOL;
N1_AF : BOOL;
N2_AF : BOOL;
N3_AF : BOOL;
N3_F : BOOL;
MP1_ON : BOOL;
MP1_CRS : BOOL;
F3_ON : BOOL;
F4_ON : BOOL;
F3_F4_PR : BOOL;
F3_F4_CRS : BOOL;
ND2_CRS : BOOL;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK DGO
STRUCT
MP2_1_ST : BOOL;
MP2_2_ST : BOOL;
MP2_3_ST : BOOL;
KRL1_ST : BOOL;
KRL2_ST : BOOL;
KRL3_ST : BOOL;
N7_ST : BOOL;
N8_ST : BOOL;
N9_ST : BOOL;
N10_ST : BOOL;
Z4_1_OP : BOOL;
Z4_1_CL : BOOL;
Z4_2_OP : BOOL;
Z4_2_CL : BOOL;
Z4_3_OP : BOOL;
Z4_3_CL : BOOL;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK ANO
STRUCT
FC_N9 : INT;
FC_N10 : INT;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK ANI
STRUCT
L_in_BR : INT;
P_af_N7 : INT;
P_af_N8 : INT;
P_af_N9 : INT;
P_af_N10 : INT;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK SYS
STRUCT
Read_perm : BOOL;
Write_perm :BOOL;
END_STRUCT
BEGIN
END_DATA_BLOCK
FUNCTION Read_in : VOID
VAR_TEMP
END_VAR
IF SYS.Read_perm THEN
DGI.N2_CRS := I_N2_CRS;
DGI.N3_ON := I_N3_ON;
DGI.N3_CRS := I_N3_CRS;
DGI.N4_ON := I_N4_ON;
DGI.N4_CRS := I_N4_CRS;
DGI.N1_AF := I_N1_AF;
DGI.N2_AF := I_N2_AF;
DGI.N3_AF:=I_N3_AF;
DGI.N3_F := I_N3_F;
DGI.MP1_ON := I_MP1_ON;
DGI.MP1_CRS := I_MP1_CRS;
DGI.F3_ON := I_F3_ON;
DGI.F4_ON := I_F4_ON;
DGI.F3_F4_PR := I_F3_F4_PR;
DGI.F3_F4_CRS := I_F3_F4_CRS;
DGI.ND2_CRS := I_ND2_CRS;
ANI.L_in_BR:=I_L_in_BR;
ANI.P_af_N7:=I_P_af_N7;
ANI.P_af_N8:=I_P_af_N8;
ANI.P_af_N9:=I_P_af_N9;
ANI.P_af_N10:=I_P_af_N10;
END_IF;
END_FUNCTION
FUNCTION Write_out : VOID
VAR_TEMP
END_VAR
IF SYS.write_perm THEN
I_MP2_1_ST:=DGO.MP2_1_ST;
I_MP2_2_ST:=DGO.MP2_2_ST;
I_MP2_3_ST:=DGO.MP2_3_ST;
I_KRL1_ST:=DGO.KRL1_ST;
I_KRL2_ST:=DGO.KRL2_ST;
I_KRL3_ST:=DGO.KRL3_ST;
I_N7_ST:=DGO.N7_ST;
I_N8_ST:=DGO.N8_ST;
I_N9_ST:=DGO.N9_ST;
I_N10_ST:=DGO.N10_ST;
I_Z4_1_OP:=DGO.Z4_1_OP;
I_Z4_1_CL:=DGO.Z4_1_CL;
I_Z4_2_OP:=DGO.Z4_2_OP;
I_Z4_2_CL:=DGO.Z4_2_CL;
I_Z4_3_OP:=DGO.Z4_3_OP;
I_Z4_3_CL:=DGO.Z4_3_CL;
I_FC_N9:=ANO.FC_N9;
I_FC_N10:=ANO.FC_N10;
ELSE
I_MP2_1_ST:=0;
I_MP2_2_ST:=0;
I_MP2_3_ST:=0;
I_KRL1_ST:=0;
I_KRL2_ST:=0;
I_KRL3_ST:=0;
I_N7_ST:=0;
I_N8_ST:=0;
I_N9_ST:=0;
I_N10_ST:=0;
I_Z4_1_OP:=0;
I_Z4_1_CL:=0;
I_Z4_2_OP:=0;
I_Z4_2_CL:=0;
I_Z4_3_OP:=0;
I_Z4_3_CL:=0;
I_FC_N9:=0;
I_FC_N10:=0;
END_IF;
END_FUNCTION
ORGANIZATION_BLOCK OB1
VAR_TEMP
// Reserved
info : ARRAY[0..19] OF BYTE;
// Temporary Variables
END_VAR
// Statement
Read_in();
Write_out();
END_ORGANIZATION_BLOCK
Загрузка аппаратной конфигурации
Ошибок не обнаружено
Создаем VAT-таблицу
При включении I 122.0 ничего не произошло
При включении I 122.0 и write_perm включилось DB1.DBX 0.0
При включении Write_perm и DB2.BDX 0.0 включился Q 122.0, это значит, что логика программы правильная
Вывод:
Промежуточное чтение и запись данных из областей ввода обусловлено возможностью перехода на локальное управление. Блок данных выступает буфером обмена между информацией, снимаемой с датчиков и операционной системой контроллера. В результате появляется возможность осуществлять проверку корректности данных и производить их дополнительную обработку.