Приложение
Программирование в Step7 Lite V.2.0
A-74 A5E00142284-01
Область кода
Ниже Вы найдете OB1, содержащий пример пользовательской программы
на языке Список операторов.
STL (Сегмент 1) Комментарий
AN M 255.0
JNB m001
CALL SFC 36
PRGFLT_SET_MASK :=DW#16#C
ACCFLT_SET_MASK :=DW#16#0
RET_VAL :=MW 100
PRGFLT_MASKED :=MD 10
ACCFLT_MASKED :=MD 14
m001: A BR
S M 255.0
//Бит не сохраняемой памяти M 255.0
(только во время первой обработки = 0)
//SFC36 MSK_FLT (маскирование синхронных
ошибок)
//Бит 2 = Бит 3 = 1 (маскирвоаны BLFL и
BLFS)
//Все биты=0 (ошибки доступа не
маскируются)
//Возвращаемое значение
//Выводит текущий фильтр ошибок
программы в MD10
//Выводит текущий фильтр ошибок доступа
в MD14
//Устанавливает M255.0, если
маскирование успешно
STL (Сегмент 2) Комментарий
CALL SFC 36
PRGFLT_SET_MASK :=DW#16#0
ACCFLT_SET_MASK :=DW#16#8
RET_VAL :=MW 102
PRGFLT_MASKED :=MD 20
ACCFLT_MASKED :=MD 24
//SFC36 MSK_FLT (маскирование синхронных
ошибок)
//Все биты=0 (дальнейшие программные
ошибки не маскируются)
//Bit 3 = 1 (маскируются ошибки доступа
для записи)
//Возвращаемое значение
//Выводит текущий фильтр программных
ошибок в MD20
//Выводит текущий фильтр ошибок доступа
в MD24
STL (Сегмент 3) Комментарий
AN M 27.3
BEC
//Завершить блок, если ошибка доступа
для записи (бит 3 в ACCFLT_MASKED) не
маскирована
STL (Сегмент 4) Комментарий
L B#16#0
T PQB 16
//Доступ для записи (со значением 0) в
PQB 16
STL (Сегмент 5) Комментарий
CALL SFC 38
PRGFLT_QUERY :=DW#16#0
ACCFLT_QUERY :=DW#16#8
RET_VAL :=MW 104
PRGFLT_CLR :=MD 30
ACCFLT_CLR :=MD 34
A BR
A M 37.3
NOT
= M 0.0
//SFC38 READ_ERR (запрос синхронных
ошибок)
//Все биты =0 (программные ошибки не
запрашиваются)
//Бит 3 = 1 (запрашивается ошибка
доступа для записи)
Возвращаемое значение
//Вывод текущего фильтра программной
ошибки в MD30
//Вывод текущего фильтра ошибок доступа
в MD34
//Ошибок не было и ошибки доступа для
записи не обнаружено.
//Инвертировать RLO
M 0.0=1, если присутствует PQB 16