Организационный блок ошибок резервирования соединения (OB73)
OB ошибок резервирования соединения (OB73) существует только в встроенных программах версии 2.0.х для CPU417-4H.
Операционная система H CPU вызывает OB73, если происходит потеря резервирования в отказоустойчивой S7-системе связи. Если вновь происходит потеря резервирования (в других отказоустойчивых S7-каналах связи), то новые блоки ОВ73 не запускаются.
Запуск других OB73 не будет происходить до тех пор, пока не будет восстановлено резервирование для всех S7 соединений, в которых возникла неисправность.
CPU не перейдет в режим STOP, если происходит стартовое событие, а OB73 не запрограммирован.
Следующая таблица содержит временные переменные OB ошибок резервирования канала связи. Заданные по умолчанию имена OB73 были использованы как имена переменных.
Переменная | Тип | Характеристика |
OB73_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#73, B#16#72 |
OB73_FLT_ID | BYTE | Код ошибки (возможные значения: B#16#Е0) |
OB73_PRIORITY | BYTE | Назначенный класс приоритета: значение по умолчанию 25 |
OB73_OB_NUMBR | BYTE | Номер OB (73) |
OB73_RESERVED_1 | WORD | Резерв |
OB73_INFO_1 | WORD | (Не имеет значения для пользователя) |
OB73_INFO_2 | WORD | (Не имеет значения для пользователя) |
OB73_INFO_3 | WORD | (Не имеет значения для пользователя) |
OB73_DATE_TIME | DATE_AND_TIME | Дата и время вызова OB |
Следующая таблица показывает, какое событие привело к запуску OB73.
OB73_FLT_ID | Стартовое событие OB73 |
---|---|
B#16#Е0 | B#16#Е0 Потеря резервирования в удаленном (й) соединении / задаче |
Организационный блок ошибок времени (OB80)
Операционная система CPU S7-300 вызывает OB80, когда при обработке какого-либо OB возникает одна из следующих ошибок: превышение времени цикла, ошибка квитирования при исполнении OB, перевод часов вперед, так что пропускается время запуска OB. Если, например, стартовое событие для OB циклических прерываний возникает до того, как была закончена обработка предыдущего вызова, то операционная система вызывает OB80. Если OB 80 не был запрограммирован, то CPU переходит в состояние STOP. ОВ ошибок времени можно запретить или отложить и вновь разрешить с помощью SFC 39 - 42.
Если OB 80 в одном и том же цикле вызывается дважды из-за превышения времени цикла, то CPU переходит в состояние STOP. Вы можете этому воспрепятствовать вызовом SFC43 .RE_TRIGR. в подходящей точке программы.
Таблица ниже описывает временные переменные OB ошибок времени. Имена взяты по умолчанию для OB 80
Переменная | Тип | Описание |
---|---|---|
OB80_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#35 |
OB80_FLT_ID | BYTE | Код ошибки (возможные значения B#16#01, B#16#02, B#16#05, B#16#06, B#16#07) |
OB80_PRIORITY | BYTE | Класс приоритета: 26 (режим RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB80_OB_NUMBR | BYTE | Номер OB (80) |
OB80_RESERVED_1 | BYTE | Резерв |
OB80_RESERVED_2 | BYTE | Резерв |
OB80_ERROR_INFO | WORD | Информация об ошибке: зависит от кода ошибки |
OB80_ERR_EV_CLASS | BYTE | Класс события, которое вызвало ошибку |
OB80_ERR_EV_NUM | BYTE | Номер события, которое вызвало ошибку |
OB80_OB_PRIORITY | BYTE | Класс приоритета OB, который был активен, когда произошла ошибка |
OB80_OB_NUM | BYTE | Номер OB, который был активен, когда произошла ошибка |
OB80_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
Переменные, зависящие от кода ошибки, имеют следующие значения:
Код ошибки B#16#01 | Превышено время цикла. | |
OB80_ERROR_INFO: | Длительность последнего цикла (мс). | |
OB80_ERR_EV_CLASS: | Класс события, которое вызвало прерывание. | |
OB80_ERR_EV_NUM: | Номер события, которое вызвало прерывание. | |
OB80_OB_PRIORITY: | Класс приоритета, активный на момент прерывания. | |
Код ошибки | B#16#02 | Затребованный OB еще исполняется. |
B#16#07 | Переполнение буфера вызовов OB для текущего класса приоритета ( каждый запрос старта OB для класса приоритета заносится в соответствующий буфер вызовов OB; по завершении ОВ эта запись удаляется. Если же для некоторого класса приоритета количество вызовов OB превысило максимально допустимое число записей соответствующего буфера вызовов, то вызывается OB 80 с кодом ошибки B#16#07). | |
OB80_ERROR_INFO: | Соответствующая временная переменная запрошенного блока, определяемая с помощью OB80_ERR_EV_CLASS и OB80_ERR_EV_NUM. | |
OB80_ERR_EV_CLASS: | Класс события, вызвавшего прерывание. | |
OB80_ERR_EV_NUM: | Номер события, вызвавшего прерывание. | |
OB80_OB_PRIORITY: | Класс приоритета, активный на момент прерывания. | |
OB80_OB_NUM: | OB, активный на момент прерывания. | |
Код ошибки | B#16#05 | Истекшее прерывание по времени из-за перевода часов вперед. |
B#16#06 | Истекшее прерывание по времени после возвращения в RUN после HOLD. | |
OB80_ERROR_INFO | Бит 0 установлен | Для прерывания по времени №0 стартовая точка лежит в прошлом. |
Бит 7 установлен: | Для прерывания по времени №7 стартовая точка лежит в прошлом. | |
Биты 8 - 15: | не используются | |
OB80_ERR_EV_CLASS: | не используется | |
OB80_ERR_EV_NUM: | не используется | |
OB80_OB_PRIORITY: | не используется | |
OB80_OB_NUM: | не используется |
Организационный блок неисправностей источника питания (OB81)
Операционная система CPU S7-300 вызывает OB81, когда происходит событие, вызванное ошибкой или сбоем, связанным с источником питания (только для S7-400) или буферной батареей (при наступающем и при уходящем событии). В отличие от ОВ для других асинхронных ошибок CPU в данном случае не переходит в режим STOP, если OB 81 не был запрограммирован.OB неисправностей источника питания можно запретить или отложить и вновь разрешить с помощью SFC 39 - 42.
Таблица ниже описывает временные переменные OB неисправностей источника питания. В качестве имен переменных взяты имена по умолчанию OB81.
Переменная | Тип | Описание |
---|---|---|
OB81_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#38: наступающее событие B#16#39: уходящее событие |
OB81_FLT_ID | BYTE | Код ошибки: (возможные значения B#16#21, B#16#22, B#16#23, B#16#25, B#16#26, B#16#27, B#16#31, B#16#32, B#16#33) |
OB81_PRIORITY | BYTE | Класс приоритета: 26 (по умолчанию для режима RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: Номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB81_OB_NUMBR | BYTE | Номер OB (81) |
OB81_RESERVED_1 | BYTE | Резерв |
OB81_RESERVED_2 | BYTE | Резерв |
OB81_MDL_ADDR | INT | Резерв |
OB81_RESERVED_3 | BYTE | Имеет значение только для кодов ошибок B#16#31, B#16#32 и B#16#33 |
OB81_RESERVED_4 | BYTE | |
OB81_RESERVED_5 | BYTE | |
OB81_RESERVED_6 | BYTE | |
OB81_DATE_TIME | DATE_AND_TIME | Дата и время, когда OB был вызван. |
Переменные OB81_RESERVED_i, 3 =< i =< 6 указывают на стойки расширения, на которых возникла неисправность или произошло восстановление буферной батареи (код ошибки B#16#31), резервного напряжения (код ошибки B#16#32) или источника питания 24 В (код ошибки B#16#33). Следующая таблица показывает, какой бит какой стойке расширения соответствует в переменных OB81_RESERVED_i, 3 =< i =< 6
OB81_RESERVED_6 | OB81_RESERVED_5 | OB81_RESERVED_4 | OB81_RESERVED_3 | |
---|---|---|---|---|
Бит 0 | Резерв | 8-я стойка расширения | 16-я стойка расширения | Резерв |
Бит 1 | 1-я стойка расширения | 9-я стойка расширения | 17-я стойка расширения | Резерв |
Бит 2 | 2-я стойка расширения | 10-я стойка расширения | 18-я стойка расширения | Резерв |
Бит 3 | 3-я стойка расширения | 11-я стойка расширения | 19-я стойка расширения | Резерв |
Бит 4 | 4-я стойка расширения | 12-я стойка расширения | 20-я стойка расширения | Резерв |
Бит 5 | 5-я стойка расширения | 13-я стойка расширения | 21-я стойка расширения | Резерв |
Бит 6 | 6-я стойка расширения | 14-я стойка расширения | Резерв | Резерв |
Бит 7 | 7-я стойка расширения | 15-я стойка расширения | Резерв | Резерв |
Биты в переменной OB81_RESERVED_i имеют следующее значение (для соответствующих стоек расширения):
При наступлении события помечаются стойки расширения (устанавливаются соответствующие биты), у которых вышли из строя хотя бы одна буферная батарея, или резервное питание, или источник питания 24 В. Стойки расширения, у которых до этого хотя бы одна батарея, или резервное питание, или источник питания 24 В уже вышли из строя, более не индицируются.
Когда событие устраняется и резервирование восстанавливается по крайней мере на одной стойке расширения, то об этом сообщается (устанавливаются соответствующие биты).
Переменная OB81_FLT_ID имеет следующее значение:
B#16#21: | Хотя бы одна буферная батарея центральной стойки разрядилась / проблема устранена (BATTF) |
B#16#22: | Резервное напряжение в центральной стойке вышло из строя / проблема устранена (BAF) |
B#16#23: | Неисправность источника питания 24 В в центральной стойке / проблема устранена. |
B#16#25: | Хотя бы одна буферная батарея по крайней мере в одной резервной центральной стойке разрядилась / проблема устранена (BATTF) |
B#16#26: | Резервное напряжение по крайней мере в одной резервной центральной стойке вышло из строя/ проблема устранена (BAF) |
B#16#27: | Неисправность источника питания 24 В по крайней мере в одной резервной центральной стойке |
B#16#31: | Хотя бы одна буферная батарея по крайней мере в одной стойке расширения разрядилась/ проблема устранена (BATTF). |
B#16#32: | Резервное напряжение по крайней мере в одной стойке расширения вышло из строя/ проблема устранена (BAF) |
B#16#33: | Неисправность источника питания 24 В по крайней мере в одной стойке расширения / проблема устранена. |
Организационный блок диагностических прерываний (OB82)
Если модуль, обладающий диагностическими свойствами, которому Вы разрешили диагностические прерывания, распознает ошибку, он выдает на CPU запрос на диагностическое прерывание (как при наступающем, так и при уходящем событии). Затем операционная система вызывает OB82.
Организационный Блок 82 содержит в своих локальных переменных как логический базовый адрес, так и четырехбайтовую диагностическую информацию неисправного модуля (см. следующую таблицу).
Если OB 82 не был запрограммирован, то CPU переходит в состояние STOP.
OB диагностических прерываний можно запретить или отложить и вновь разрешить с помощью SFC 39 - 42.
Следующая таблица описывает временные переменные OB диагностических прерываний. В качестве имен переменных взяты имена по умолчанию OB82.
Переменная | Тип | Описание |
---|---|---|
OB82_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#38: уходящее событие B#16#39: наступающее событие |
OB82_FLT_ID | BYTE | Код ошибки (B#16#42) |
OB82_PRIORITY | BYTE | Класс приоритета: 26 (по умолчанию для режима RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: Номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB82_OB_NUMBR | BYTE | Номер OB (82) |
OB82_RESERVED_1 | BYTE | Резерв |
OB82_IO_FLAG | BYTE | Модуль ввода: B#16#54 Модуль вывода: B#16#55 |
OB82_MDL_ADDR | INT | Базовый логический адрес модуля, в котором произошел отказ. |
OB82_MDL_DEFECT | BOOL | Модуль неисправен |
OB82_INT_FAULT | BOOL | Внутренняя ошибка |
OB82_EXT_FAULT | BOOL | Внешняя ошибка |
OB82_PNT_INFO | BOOL | Ошибка канала |
OB82_EXT_VOLTAGE | BOOL | Внешнее питание вышло из строя |
OB82_FLD_CONNCTR | BOOL | Не вставлен фронт-штекер |
OB82_NO_CONFIG | BOOL | Модуль не сконфигурирован |
OB82_CONFIG_ERR | BOOL | Неверные параметры в модуле |
OB82_MDL_TYPE | BYTE | Биты 0 - 3: Класс модуля Бит 4: Имеется информация канала Бит 5: Имеется информация пользователя Бит 6: Диагностическое прерывание из-за замены Бит 7: Резерв |
OB82_SUB_MDL_ERR | BOOL | Субмодуль отсутствует или неисправен |
OB82_COMM_FAULT | BOOL | Неисправность связи |
OB82_MDL_STOP | BOOL | Рабочий режим (0: RUN, 1: STOP) |
OB82_WTCH_DOG_FLT | BOOL | Сработал контроль времени |
OB82_INT_PS_FLT | BOOL | Отказ внутреннего источника питания |
OB82_PRIM_BATT_FLT | BOOL | Разрядилась батарея |
OB82_BCKUP_BATT_FLT | BOOL | Выход из строя всего резервирования |
OB82_RESERVED_2 | BOOL | Резерв |
OB82_RACK_FLT | BOOL | Выход из строя стойки расширения |
OB82_PROC_FLT | BOOL | Выход из строя процессора |
OB82_EPROM_FLT | BOOL | Сбой СППЗУ |
OB82_RAM_FLT | BOOL | Сбой ОЗУ |
OB82_ADU_FLT | BOOL | Ошибка АЦП/ЦАП |
OB82_FUSE_FLT | BOOL | Выход из строя плавкого предохранителя |
OB82_HW_INTR_FLT | BOOL | Потеряно аппаратное прерывание |
OB82_RESERVED_3 | BOOL | Резерв |
OB82_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
Организационный блок снятия/установки модулей (OB83)
Установка и снятие модулей контролируется внутри системы каждую секунду. Чтобы установка или снятие модуля распознавались CPU, необходимо чтобы между установкой и снятием прошло как минимум две секунды.
Каждая установка или снятие сконфигурированного модуля в режимах RUN, STOP и STARTUP (не разрешено удаление в этих режимах для блоков питания, CPU, адаптерных модулей и IM) приводит к прерыванию снятия/установки. Это прерывание вызывает у соответствующего CPU запись в диагностический буфер и в список состояний системы. Кроме того, в режиме RUN осуществляется запуск OB снятия/установки. Если этот OB не был запрограммирован, то CPU переходит в состояние STOP.
OB снятия/установки можно запретить или отложить и вновь разрешить с помощью SFC 39 - 42.
Принцип действия OB83
При снятии сконфигурированного модуля в режиме RUN запускается OB83. Так как существование модулей контролируется только с интервалом в одну секунду, то сначала может быть обнаружена ошибка доступа при прямом обращении к модулю или обновлении образа процесса.
При установке модуля в сконфигурированный слот в режиме RUN операционная система проверяет соответствие вставленного модуля зарегистрированной конфигурации. Затем запускается OB 83 и при совпадении типов модулей осуществляется параметризация.
Таблица описывает временные переменные Организационного Блока снятия/установки. В качестве имен переменных взяты имена по умолчанию OB83.
Переменная | Тип | Описание |
OB83_EV_CLASS | BYTE | Класс события и идентификаторы: B#16#38: модуль установлен B#16#39: модуль снят или не реагирует |
OB83_FLT_ID | BYTE | Код ошибки (возможные значения B#16#61, B#16#63 или B#16#64) |
OB83_PRIORITY | BYTE | Класс приоритета: 26 (по умолчанию для режима RUN) или 28 (режим STARTUP) На резервном CPU H-системы в режиме LINK-UP, STARTUP или UPDATE: Биты 0 - 2: Номер стойки Бит 3: 0=резервный CPU, 1=основной CPU Биты 4 - 7: 1111 |
OB83_OB_NUMBR | BYTE | Номер OB (83) |
OB83_RESERVED_1 | BYTE | Резерв |
OB83_MDL_TD | BYTE | Область: B#16#54: периферийные входы (PI) B#16#55: периферийные выходы (PQ) |
OB83_MDL_ADDR | WORD | Логический базовый адрес соответствующего модуля |
OB83_RACK_NUM | WORD | Номер стойки или номер станции DP (младший байт) и идентификатор ведущей DP-системы (старший байт) |
OB83_MDL_TYPE | WORD | Тип соответствующего модуля (W#16#0005: аналоговый модуль, W#16#0008: функциональный модуль, W#16#000C: CP, W#16#000F: цифровой модуль) |
OB83_DATE_TIME | DATE_AND_TIME | Дата и время, когда был вызван OB |
Код ошибки B#16#61 | Модуль установлен, тип модуля верен (для класса событий B#16#38) Модуль снят или не реагирует (для класса событий B#16#39) |
OB83_MDL_TYPE | Фактический тип модуля |
Код ошибки B#16#63: | Модуль установлен, однако не верен тип модуля |
OB83_MDL_TYPE: | Фактический тип модуля |
Код ошибки B#16#64: | Модуль установлен, однако неисправен (не читается идентификатор типа) |
OB83_MDL_TYPE: | Заданный в конфигурации тип модуля |
Код ошибки B#16#65: | Модуль установлен, однако, имеется ошибка в назначении параметров модуля |
OB83_MDL_TYPE: | Фактический тип модуля |
<-- Предыдущая статья | Следующая статья --> |