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

УТС Грудяева / 9091_Боброва_лаб_6

.docx
Скачиваний:
0
Добавлен:
07.08.2024
Размер:
96.81 Кб
Скачать

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

ОТЧЕТ

по лабораторной работе №6 по дисциплине «Проектирование распределенных систем управления»

Тема: «Разработка программы преобразования аналогового сигнала»

Студентка гр. 9091 Боброва Н.Ю.

Преподаватель Грудяева Е.С.

Санкт-Петербург

2024

Цель работы

Получение навыков разработки программного блока FB.

Содержание работы

  1. Добавим в таблицу символов блок данных и функциональный блок:

  1. Редактируем файл 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 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 ANO

STRUCT

FC_N9 : INT;

FC_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;

DGO.MP2_1_ST:=0;

DGO.MP2_2_ST:=0;

DGO.MP2_3_ST:=0;

DGO.KRL1_ST:=0;

DGO.KRL2_ST:=0;

DGO.KRL3_ST:=0;

DGO.N7_ST:=0;

DGO.N8_ST:=0;

DGO.N9_ST:=0;

DGO.N10_ST:=0;

DGO.Z4_1_OP:=0;

DGO.Z4_1_CL:=0;

DGO.Z4_2_OP:=0;

DGO.Z4_2_CL:=0;

DGO.Z4_3_OP:=0;

DGO.Z4_3_CL:=0;

END_IF;

END_FUNCTION

FUNCTION_BLOCK ConvaAI

VAR_TEMP

// Temporary Variables

END_VAR

VAR_INPUT

RawValue : INT;

minSens, maxSens : REAL;

minEl, maxEl : REAL;

END_VAR

VAR_OUTPUT

SensorValue : REAL;

EUValue : REAL

;

END_VAR

SensorValue := INT_TO_REAL(RawValue);

EUValue := ((SensorValue / 27648.0) * (maxSens-minSens)) + minSens;

END_FUNCTION_BLOCK

ORGANIZATION_BLOCK OB1

VAR_TEMP

// Reserved

info : ARRAY[0..19] OF BYTE;

// Temporary Variables

END_VAR

// Statement

Read_in();

Write_out();

ConvaAI.DB11(RawValue := "I_P_af_N10"

,minSens := 0.0

,maxSens := 100.0 );

ConvaAI.DB12(RawValue := "I_P_af_N9"

,minSens := 0.0

,maxSens := 100.0 );

ConvaAI.DB13(RawValue := "I_P_af_N8"

,minSens := 0.0

,maxSens := 100.0 );

ConvaAI.DB14(RawValue := "I_P_af_N7"

,minSens := 0.0

,maxSens := 100.0 );

ConvaAI.DB15(RawValue := "I_L_in_BR"

,minSens := 0.0

,maxSens := 100.0 );

END_ORGANIZATION_BLOCK

  1. Запускаем симулятор, VAT-таблицу

Вывод:

В данной лабораторной работе были вызваны экземпляры этого блока для каждого из пяти сигналов с привязкой к отдельным блокам данных

Соседние файлы в папке УТС Грудяева