step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

Маскирование синхронных ошибок

Синхронные ошибки - это ошибки программирования и доступа. Такие ошибки происходят в результате программирования с неправильными адресными областями, номерами или неправильными адресами. При маскировании синхронных ошибок  получается следующее:

Маскирование синхронных ошибок выполняется посредством вызова SFC36 "MSK_FLT".

Демаскирование ошибок означает отмену предварительно установленной маски и очистку соответствующего бита в регистре состояний событий текущего класса приоритета. Маскирование отменяется следующим образом:

Если ошибка происходит после того, как она была демаскирована, то операционная система запускает соответствующий OB ошибок. Вы можете запрограммировать OB121 для реагирования на ошибки программирования и OB122 для реагирования на ошибки доступа.

Можно использовать SFC38 "READ_ERR", чтобы считывать произошедшие замаскированные ошибки.

Обратите внимание: В S7-300 (кроме CPU 318), независимо от того, замаскирована ошибка или демаскирована, она вводится в диагностический буфер, и светится светодиод групповой ошибки CPU.

Обработка ошибок в общем случае

Если в программе пользователя происходят ошибки программирования и доступа, то можно реагировать на них разными способами:

 

Фильтры

Синхронные ошибки ставятся в соответствие конкретной битовой комбинации, известной как фильтр ошибок (маска). Этот фильтр ошибок находится также во входных и выходных параметрах SFC 36, 37 и 38. Синхронные ошибки делятся на ошибки программирования и ошибки доступа, которые Вы можете маскировать, используя два фильтра ошибок. Фильтры ошибок иллюстрируются на следующих рисунках.

 

Фильтр ошибок программирования

Рисунок ниже показывает битовую комбинацию фильтра ошибок программирования. Фильтр ошибок программирования расположен в параметрах PRGFLT_...

Примечание
Биты 29 ("SFC не загружен").и 31 ("SFB не загружен") в старшем слове фильтра для ошибок программирования применимы только для S7-400 и CPU 318.

Несущественные биты

На вышеприведенном рисунке x означает...

входные параметры для SFC36, 37, 38 = "0"
выходные параметры для SFC36, 37

для SFC38

 

= "1" для S7-300
= "0" для S7-400
= "0"

Фильтр ошибок доступа для всех CPU

На рисунке ниже показана битовая комбинация фильтра ошибок доступа для всех CPU, кроме CPU417 и CPU 417H. Фильтр ошибок доступа находится в параметрах ACCFLT_ ...

Несущественные биты

На вышеприведенном рисунке x означает...

входные параметры для SFC36, 37, 38 = "0"
выходные параметры для SFC36, 37

для SFC38

 

= "1" для S7-300
= "0" для S7-400 и CPU318
= "0"

Фильтр ошибок доступа для CPU 417 и CPU 417H

Следующий рисунок показывает битовую комбинацию фильтра ошибок доступа в CPU417 и CPU 417H. Фильтр ошибок доступа находится в параметрах ACCFLT_...

Несущественные биты

На вышеприведенном рисунке x означает...

входные параметры для SFC36, 37, 38 = "0"
выходные параметры для SFC36, 37
для SFC38
= "0"
= "0"

Пример для CPU 31x (кроме CPU 318)

Следующий рисунок показывает младшее слово фильтра ошибок доступа со всеми маскированными ошибками для всех CPU, кроме CPU 417 и CPU 417H:

Пример для CPU 417 и CPU 417H

Следующая схема показывает, как выглядит младшее слово фильтра ошибок доступа со всеми маскированными ошибками для CPU 417 и CPU 417H

Младшее слово фильтра ошибок программирования

В таблице перечислены ошибки, поставленные в соответствие младшему слову фильтра ошибок программирования. Таблица показывает также возможные причины ошибок.

ОшибкаID
события
(W#16#...)
Ошибка происходит ...
 Ошибка преобразования BCD  2521 ... когда преобразуемое значение не является числом в двоично-десятичном коде (например, 5E8)
 Ошибка длины области при чтении  2522 ... когда используется адрес, который не находится полностью в пределах возможной адресной области. Пример: нужно прочитать MW 320, хотя область памяти имеет длину только 256 байтов.
Ошибка длины области при записи
 2523  ... когда используется адрес, который не находится полностью в пределах возможной адресной области. Пример: нужно записать значение в MW 320, хотя область памяти имеет длину только 256 байтов.
 Ошибка области при чтении  2524 ... когда для адреса задан неправильный идентификатор области при использовании косвенной межсегментной
адресации.
Пример:  правильно: LAR1 P#E 12.0
                               L W[AR1, P#0.0]
неправильно: LAR1 P#12.0
                     L W[AR1, P#0.0] Для этой операции выводится сообщение об ошибке длины области.
 Ошибка области при записи  2525  ... когда для адреса задан неправильный идентификатор области при использовании косвенной межсегментной
адресации.
Пример: правильно: LAR1 P#E 12.0
                              T W[AR1, P#0.0]
неправильно: LAR1 P#12.0
                     T W[AR1, P#0.0] Для этой операции выводится сообщение об ошибке длины области.
 Ошибка номера таймера  2526 ... когда происходит обращение к несуществующему таймеру.
Пример: SP T [MW 0], где MW 0 = 129; должен запускаться таймер 129, хотя имеются только 128 доступных таймеров.
 Ошибка номера счетчика  2527  ... когда происходит обращение к несуществующему счетчику.
Пример: CU C [MW 0], где MW 0 = 600; должно происходить обращение к счетчику 600 , хотя имеются только 512 доступных счетчиков (CPU 416-D).
 Ошибка выравнивания при чтении  2528 ... когда адрес байта, слова или двойного слова указан с адресом бита ≠ 0.
Пример: правильно: LAR1 P#M12.0
                              L B[AR1, P#0.0]
неправильно: LAR1 P#M12.4
                     L B[AR1, P#0.0]
 Ошибка выравнивания при записи  2529  ... когда адрес байта, слова или двойного слова указан с адресом бита ≠ 0.
Пример: правильно: LAR1 P#M12.0
                              T B[AR1, P#0.0]
неправильно: LAR1 P#M12.4
                     T B[AR1, P#0.0]

Старшее слово фильтра ошибок программирования

В следующей таблице перечислены ошибки, поставленные в соответствие старшему слову фильтра ошибок программирования. Перечисляются также возможные причины ошибок.

ОшибкаID
события
(W#16#...)
Ошибка происходит ...
Ошибка записи в блок данных 2530
... когда блок данных, в который должна производиться запись, доступен только для чтения.
Ошибка записи в экземпляр блок данных 2531
... когда экземпляр блок данных, в который должна производиться запись, доступен только для чтения.
Ошибка номера блока DB 2532
... когда должен открываться блок данных с номером, превышающим максимальный разрешенный номер.
Ошибка номера блока DI 2533
... когда должен открываться экземпляр блок данных с номером, превышающим максимальный разрешенный номер.
Ошибка номера блока FC 2534
... когда вызывается функция с номером, превышающим максимальный разрешенный номер.
Ошибка номера блока FB 2535
... когда вызывается функциональный блок с номером, превышающим максимальный разрешенный номер.
DB не загружен 253A
... когда открываемый блок данных не загружен.
FC не загружен 253C
... когда вызываемая функция не загружена.
SFC не существует 253D
... когда вызываемая системная функция не существует
FB не загружен 253E ... когда вызываемый функциональный блок не загружен
SFB не существует 253F
... когда вызываемый системный/ стандартный функциональный блок не существует.

Ошибки доступа

В следующей таблице перечислены ошибки, поставленные в соответствие фильтру ошибок доступа во всех CPU. Перечисляются также возможные причины ошибок.

 

ОшибкаID
события
(W#16#...)
Ошибка происходит ...
Ошибка доступа к входам/выходам при чтении 2942
... когда адресу в области входов/выходов не назначен сигнальный модуль
или
... когда обращение к этой области входов/выходов не подтверждается в течение выбранного контрольного времени модуля (таймаута).
Ошибка доступа к входам/выходам при записи 2943
... когда адресу в области входов/выходов не назначен сигнальный модуль
или
... когда обращение к этой области входов/выходов не подтверждается в течение выбранного контрольного времени модуля (таймаута).

 

<-- Предыдущая статья   Следующая статья -->
сделано djoni политика конфидициальности Rambler's Top100