Руководство по программированию, создание бл оков дл я PCS 7
1-32 A5E00122559-01
В следующем примере приведено описание ALARM_8P:
//**************************************************************************************
// Область объявлений: параметры блока
//**************************************************************************************
....
// Свободно определяемые вспомогательные значения ALARM_8P
AUX_PR05 {S7_visible := 'false'} : ANY; // 5 вспомогательное значение
AUX_PR06 {S7_visible := 'false'} : ANY; // 6 вспомогательное значение
AUX_PR07 {S7_visible := 'false'} : ANY; // 7 вспомогательное значение
AUX_PR08 {S7_visible := 'false'} : ANY; // 8 вспомогательное значение
AUX_PR09 {S7_visible := 'false'} : ANY; // 9 вспомогательное значение
AUX_PR10 {S7_visible := 'false'} : ANY; // 10 вспомогательное значение
....
//**************************************************************************************
// Область объявлений: статические переменные
//**************************************************************************************
....
//**************************************************************************************
// Область объявлений множества экземпляров
//**************************************************************************************
OP_A_LIM_1: OP_A_LIM; // Блок операторского управления 1
ALARM_8P_1: ALARM_8P; // Создание максимум 8 сообщений с 10 вспомогат. значениями
...
//**************************************************************************************
// Сообщения ALARM_8P
//**************************************************************************************
// Переменные типа STRING не должны быть связаны с вспомог. значениями ALARM8_P
// и передаются как массив байт
FOR DUMMY := 1 TO 16
DO
sbyBA_NA[DUMMY] := 0; //Удаление массива по умолчанию
END_FOR;
DUMMY := BLKMOV (SRCBLK:= BA_NA,DSTBLK:=sbyBA_NA);
swSTEP_NO := STEP_NO; // Номер шага Batch (в соотв. с в/в вспом. знач. ALARM_8P)
sdBA_ID := BA_ID; // Batch ID (в соотв. с в/в вспом. значений ALARM_8P)
ALARM_8P_1(EN_R := TRUE, // Обновить выход ACK_STATE
ID := 16#EEEE, // Канал данных для сообщений (всегда 16#EEEE)
EV_ID:= EV_ID, // Количество сообщений > 0
SIG_1:= M_SUP_AH AND QH_ALM, // Набл. сигнал 1 -> сообщ. верх. аварийной уставки
SIG_2:= M_SUP_AL AND QL_ALM, // Набл. сигнал 2 -> сообщ. нижн. аварийной уставки
SIG_3:= 0, // Наблюдаемый сигнал 3 -> нет сообщений
SIG_4:= 0, // Наблюдаемый сигнал 4
SIG_5:= 0, // Наблюдаемый сигнал 5
SIG_6:= 0, // Наблюдаемый сигнал 6
SIG_7:= 0, // Наблюдаемый сигнал 7
SIG_8:= 0, // Наблюдаемый сигнал 8
SD_1 := sbyBA_NA, // Вспомогательное значение 1
SD_2 := swSTEP_NO, // Вспомогательное значение 2
SD_3 := sdBA_ID, // Вспомогательное значение 3
SD_4 := PV_IN, // Вспомогательное значение 4
SD_5 := AUX_PR05, // Вспомогательное значение 5
SD_6 := AUX_PR06, // Вспомогательное значение 6
SD_7 := AUX_PR07, // Вспомогательное значение 7
SD_8 := AUX_PR08, // Вспомогательное значение 8
SD_9 := AUX_PR09, // Вспомогательное значение 9
SD_10:= AUX_PR10); // Вспомогательное значение 10
QMSG_ERR := ALARM_8P_1.ERROR; // Параметр состояния ERROR
MSG_STAT := ALARM_8P_1.STATUS; // Параметр состояния STATUS
MSG_ACK := ALARM_8P_1.ACK_STATE; // Текущее состояние подтверждения ОС
....