Организационный блок неисправностей стоек (OB86)
Операционная система CPU вызывает OB 86 в случаях, когда распознается неисправность стойки расширения, master-системы DP или станции у децентрализованной периферии (как при наступающем, так и при уходящем событии). Если OB 86 не был запрограммирован, а обнаруживается такая ошибка, то CPU переходит в состояние STOP. OB 86 можно запретить или отложить и вновь разрешить с помощью SFC 39 -42.
Локальные данные OB неисправностей стоек
Следующая таблица описывает временные (TEMP) переменные OB неисправностей стоек. В качестве имен переменных взяты имена по умолчанию OB86.
Переменная | Тип | Описание |
---|---|---|
OB86_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#38: уходящее событие B#16#39: наступающее событие |
OB86_FLT_ID | BYTE | Код ошибки: (возможные значения B#16#C1, B#16#C2, B#16#C3, B#16#C4, B#16#C5, B#16#C6, B#16#C7, B#16#C8) |
OB86_PRIORITY | BYTE | Класс приоритета: 26 (значение по умолчанию для режима RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: Номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB86_OB_NUMBR | BYTE | Номер OB (86) |
OB86_RESERVED_1 | BYTE | Резерв |
OB86_RESERVED_2 | BYTE | Резерв |
OB86_MDL_ADDR | WORD | Зависит от кода ошибки |
OB86_RACKS_FLTD | Array [0 ..31] of BOOL |
Зависит от кода ошибки |
OB86_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
Если Вам необходимо запрограммировать OB 86 в зависимости от кодов ошибок, то рекомендуется локальные переменные организовывать следующим образом:
Переменная | Тип |
---|---|
OB86_EV_CLASS | BYTE |
OB86_FLT_ID | BYTE |
OB86_PRIORITY | BYTE |
OB86_OB_NUMBR | BYTE |
OB86_RESERVED_1 | BYTE |
OB86_RESERVED_2 | BYTE |
OB86_MDL_ADDR | WORD |
OB86_Z23 | DWORD |
OB86_DATE_TIME | DATE_AND_TIME |
Переменные, содержимое которых зависит от кодов ошибок, имеют следующее значение:
Код ошибки | |
B#16#C1:
OB86_MDL_ADDR: |
Неисправность стойки расширения Логический базовый адрес IM Содержит по одному биту для каждой возможной стойки расширения: Бит: Бит 0: всегда 0 Бит 1: 1-я стойка расширения .... .... Бит 21: 21-я стойка расширения Бит 22 - 29 всегда 0 Бит 30: Неисправность по крайней мере одной стойки расширения в области SIMATIC S5 Бит 31: всегда 0 |
Значение: когда происходит событие, стойки расширения, обусловившие вызов OB86, индицируются как неисправные (соответствующие им биты устанавливаются). Стойки расширения, вышедшие из строя ранее, больше не индицируются. Когда неисправность устраняется, в коде ошибки сообщается о стойках расширения, вновь ставших активными (соответствующие им биты устанавливаются). | |
B#16#C2: OB86_MDL_ADDR: |
Восстановление стойки расширения (с расхождением между ожидаемой и фактической конфигурацией) Логический базовый адрес IM Содержит один бит для каждой возможной стойки расширения, см. код ошибки B#16#C1. Значение установленного бита (для соответствующей стойки расширения) • имеются модули с неправильным идентификатором типа • отсутствуют сконфигурированные модули • хотя бы один модуль неисправен. |
B#16#C3:
|
Децентрализованная периферия: неисправность master- системы. (Только наступающее событие ведет к старту OB 86 с кодом ошибки B#16#C3. Уходящее событие запускает OB86 с кодом ошибки B#16#C4 и классом события B#16#38. Восстановление любой slave-станции DP вызывает запуск OB86.) Логический базовый адрес ведущие DP-устройства. Идентификатор master-системы DP Биты 0 - 7: резерв Биты 8 - 15: идентификатор master-системы DP Биты 16 - 31: резерв |
B#16#C4: B#16#C5: OB86_MDL_ADDR: |
Выход из строя станции DP. Децентрализованная периферия: сбой станции DP. Логический базовый адрес ведущие DP-устройства. Адрес неисправного ведомые DP-устройства: Биты 0 - 7: номер станции DP Биты 8 - 15: идентификатор master-системы DP Биты 8 - 30: логический базовый адрес slave-устройства S7 или диагностический адрес стандартного ведомые DP-устройства Бит 31: идентификатор ввода/вывода |
B#16#C6:
|
Восстановление стойки расширения, но ошибка при назначении параметров модуля Логический базовый адрес IM Содержит один бит для каждой возможной стойки расширения: Бит 0: всегда 0 Бит 1: 1-я стойка расширения ..... ..... Бит 21 - 21-я стойка расширения Биты 22 - 30: резерв Бит 31: всегда 0 Значение установленного бита (в соответствующей стойке расширения): • Существуют модули с неправильным идентификатором типа • Существуют модули с неправильными или незаданными параметрами |
B#16#C7:
|
Восстановление станции DP, но ошибка при назначении параметров модуля Логический базовый адрес ведущие DP-устройства Адрес неисправного ведомые DP-устройства: Биты 0 - 7: номер станции DP Биты 8 - 15: идентификатор master-системы DP Биты 16 - 30: логический базовый адрес slave-устройства DP Бит 31: идентификатор ввода/вывода |
B#16#C8:
|
Восстановление станции DP, однако имеется расхождение между сконфигурированной и фактической конфигурацией Логический базовый адрес ведущие DP-устройства Адрес неисправного ведомые DP-устройства: Биты 0 - 7: номер станции DP Биты 8 - 15: идентификатор master-системы DP Биты 16 - 30: логический базовый адрес slave-устройства DP Бит 31: идентификатор ввода/вывода |
Организационный блок коммуникационных ошибок (OB87)
Операционная система CPU вызывает OB 87 в случаях, когда наступает событие, которое было вызвано коммуникационной ошибкой. Если OB 87 не был запрограммирован, то CPU при обнаружении такого события переходит в состояние STOP. OB коммуникационных ошибок можно запретить или отложить и вновь разрешить с помощью SFC 39 -42
Локальные данные OB87
Следующая таблица описывает временные (TEMP) переменные OB коммуникационных ошибок. В качестве имен переменных взяты имена по умолчанию OB87.
Переменная | Тип | Описание |
---|---|---|
OB87_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#35 |
OB87_FLT_ID | BYTE | Код ошибки: (возможные значения B#16#D2, B#16#D3, B#16#D4, B#16#D5, B#16#E1, B#16#E2, B#16#E3, B#16#E4, B#16#E5 или B#16#E6) |
OB87_PRIORITY | BYTE | Класс приоритета: 26 (значение по умолчанию для режима RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: Номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB87_OB_NUMBR | BYTE | Номер OB (87) |
OB87_RESERVED_1 | BYTE | Резерв |
OB87_RESERVED_2 | BYTE | Резерв |
OB87_RESERVED_3 | WORD | Зависит от кода ошибки |
OB87_RESERVED_4 | DWORD | Зависит от кода ошибки |
OB87_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
Переменные, зависящие от кода ошибок, имеют следующие значения:
Код ошибки | |
B#16#D2: B#16#D3: B#16#D4: B#16#D5: OB87_RESERVED_3: |
Передача диагностических записей в настоящее время невозможна. Синхронизационные сообщения не могут быть посланы (master). Недопустимый скачок времени из-за синхронизации часов. Ошибка при приеме времени синхронизации (slave). Не содержит дополнительной информации. Не содержит дополнительной информации. |
B#16#E1: B#16#E3: B#16#E4: OB87_RESERVED_3: |
Неверный идентификатор кадра при связи с помощью глобальных данных. Ошибка длины кадра при связи с помощью глобальных данных. Принят недопустимый номер пакета GD. старший байт: идентификатор интерфейса (0: K-шина, 1: MPI) младший байт: номер GD-контура Не содержит дополнительной информации. |
B#16#E2:OB87_RESERVED_3: |
Состояние пакета GD не может быть внесено в DB Номер DB старшее слово: Не содержит дополнительной информации. младшее слово: номер GD-контура (старший байт), номер пакета GD (младший байт) |
B#16#E5:OB87_RESERVED_3: |
Ошибка доступа к DB при обмене данными через коммуникационные функциональные блоки Зарезервировано для внутреннего использования CPU. старшее слово: Номер блока с вызвавшей ошибку командой MC7. младшее слово: Относительный адрес команды MC7, вызвавшей ошибку. |
Тип блока может быть считан из OB_87_RESERVED_1 (B#16#88: OB, B#16#8A: DB, B#16#8C: FC, B#16#8E: FB). | |
B#16#E6:OB87_RESERVED_3: |
Групповой статус GD не может быть занесен в DB. Номер DB. Не содержит дополнительной информации. |
Организационный блок фонового режима (OB90)
С помощью STEP 7 можно контролировать максимальное время цикла и гарантировать минимальное время цикла. Если время исполнения OB1, включая все вложенные прерывания и системные операции, оказывается меньше заданной вами минимальной длительности цикла, то операционная система реагирует следующим образом:
- Она вызывает OB фонового режима (если он имеется в CPU).
- Она задерживает следующий запуск OB1 (если в CPU отсутствует OB 90).
Принцип действия OB90
OB90 имеет самый низкий приоритет среди всех остальных OB. Он прерывается любой системной операцией и любым прерыванием и возобновляется только в том случае, если заданное минимальное время цикла еще не достигнуто. Исключение составляет обработка SFC и SFB, которые были запущены из OB90. Они исполняются с приоритетом OB1 и поэтому не прерываются OB1. Контроля длительности OB 90 не ведется. Программа пользователя в OB90 обрабатывается, начиная с первой команды, в следующих ситуациях:
- после теплого, холодного или горячего рестарта
- после удаления блока, исполняемого в OB90 (с помощью STEP 7)
- после загрузки OB 90 в CPU в режиме RUN
- по окончании фонового цикла.
В случае конфигураций, в которых нет большой разницы между минимальным временем цикла и контрольным временем цикла, вызовы SFC и SFB в фоновом ОВ могут привести к непредусмотренному превышению времени цикла.
Локальные данные OB90
Следующая таблица описывает временные (TEMP) OB 90. В качестве имен переменных взяты имена по умолчанию OB90.
Переменная | Тип | Описание |
---|---|---|
OB90_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#11: активен |
OB90_STRT_INF | BYTE | B#16#91: теплый рестарт/холодный рестарт/ горячий рестарт B#16#92: блок удален B#16#93: загрузка OB 90 в CPU в режиме RUN B#16#95: окончание фонового цикла |
OB90_PRIORITY | BYTE | Класс приоритета: 29 (соответствует приоритету 0.29) |
OB90_OB_NUMBR | BYTE | Номер OB (90) |
OB90_RESERVED_1 | BYTE | резерв |
OB90_RESERVED_2 | BYTE | резерв |
OB90_RESERVED_3 | INT | резерв |
OB90_RESERVED_4 | INT | резерв |
OB90_RESERVED_5 | INT | резерв |
OB90_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
<-- Предыдущая статья | Следующая статья --> |