Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 1627

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Запись на выходы

Чтение входов

При чтении значения входов

При записи значения выходов

^

устанавливаются

устанавливаются

^ ^

принудительно.

принудительно.

^

-

^

t^

Обработка программы

а

Все прямые обращения к входам и

Цикл

1

выходам снабжаются принудитель-

но установленными значениями.

Ш

После обработки программы до 16

Выполнение

. ^ш

значений в памяти устанавливаются

принудительно.

самодиагностики CPU

Ч

Обработка коммуникационных

запросов

Все коммуникационные обращения (чтение/запись) устанавливаются принудительно.

Рис. 3.20

3.6. Устранение ошибок

CPU S7-200 подразделяет встречающиеся ошибки на серьезные (не­ исправимые) и незначительные (исправимые) ошибки. С помощью STEP 7-Micro/WIN 32 можно отобразить те коды ошибок, которые были порож­ дены встретившимися ошибками. На рис.3.21 показано диалоговое окно «CPU —> Information» [«CPU -> Информация»], в котором отображаются код и описание ошибки. Список кодов ошибок приведен в табл.3.5 - 3.7.

La^CPU Information

G^ner^ Ишгййюп \..Ьш. Ыш^ Мо<Ал1е СопНдигэЙол 1

ModdeBrofs

MacJufe О.

No ^rof

Htidufe 4:

Module 1;

N^з^ pTesent

Nodute 5:

Module 2

Not present

Module 6:

Module 3;

Not present

CPU £ггот^

a

No fatal erfttspf»$eiii '*'

NON'Fakaf:

0

NQ nonfatal errors presart.

i

f^ot present Hot ptfesertt

Not present

л

Используйте код и

описание ошибки для

устранения возможной

причины ошибки.

у

""1:Dote 1

Рис. 3.21

J.6.7. Реакция на серьезные ошибки

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

54


можно было запросить информацию о сбойной ситуации. Если CPU обна­ руживает серьезную ошибку, то он переходит в режим STOP, включает светодиодную индикацию серьезной ошибки (SF) и светодиодную инди­ кацию режима STOP и выключает выходы. CPU остается в этом режиме до тех пор, пока не будет устранена сбойная ситуация.

Если условие возникновения серьезной ошибки усхранено, то нужно снова запустить CPU. Для этого можно либо выключить и снова включить напряжение питания, либо перевести переключатель режимов работы из положения RUN или TERM в положение STOP. Новый пуск CPU стираег состояние ошибки и при запуске выполняется диагностика для того, чтобы проверить, устранена ли фактически серьезная ошибка. Если при этом об­ наруживается еще одна серьезная ошибка, то снова загорается светодиод­ ный индикатор CPU и тем самым указывается на то, что оишбка все еще имеет место. В противном случае CPU начинает свою нормальную работу.

Существует различные возможные сбойные ситуации, которые де­ лают CPU неспособным к коммуникации. В таких случаях нельзя отобра­ зить код ошибки CPU. Этот вид ошибки указывает чаще всего на неис­ правность аппаратуры, которая может быть устранена только путем ре­ монта CPU. Такие сбойные ситуации не мог>'т быть устранены только пу­ тем изменения программы или общего стирания памяти CPU.

Таблица 3.5

Код

Неисправимые (фатальные) ошибки

0000

Фага.1ьная ошибка не встретилась.

0001

Ошибка контрольной суммы в программе пользователя.

0002

Ошибка контрольной суммы в скомпилированной КОР—программе.

0003

Ошибка времени при контроле времени цикла.

0004

Отказ внутреннего EEPROM.

0005

Ошибка контрольной суммы внутреннего EEPROM в программе пользователя.

0006

Ошибка контрольной суммы внутреннего EEPROM в [тараметрах конфигурации.

0007

Ошибка контрольной суммы EEPROM в принудительно установленных данных.

0008

Ошибка контрольной суммы EEPROM в значениях по умолчанию в таблице выходов.

0009

Ошибка контрольной суммы внутреннего EEPROM в данных пользователя, DB1.

ОООА

Отказ модуля памяти.

ОООВ

Ошибка контрольной суммы модуля памяти в программе пользователя. Сообщение

об этой ошибка появляется, когда модуль памяти пуст (не содержит программу).

ОООС

Ошибка контрольной суммы модуля памяти в параметрах конфигурации.

000D

Ошибка контрольной суммы модуля памяти в принудительно установленных данных.

ОООЕ

Ошибка контрольной суммы модуля памяти в значениях по умолчанию в таблице

выходов.

000F

Ошибка контрольной суммы модуля памяти в данных пользова1еля, DB1.

0010

Внутренняя ошибка программного обеспечения.

ООН

Ошибка косвенной адресации сравнивающего контакта.

0012

Недопустимое значение в сравнивающем контакте.

0013

Неподходящий модуль памяти для данного CPU.

55


3.6.2, Устранение незначительных ошибок

Незначительные ошибки могут частично ограничивать работу CPU. Однако CPU и далее в состоянии обрабатывать программу и актуализиро­ вать входы и выходы. Можно с помощью STEP 7-Micro/WIN 32 отобра­ зить коды ошибок, которые были порождены незначительными ошибками (см. рис.3.21). Есть три основные группы незначительных ошибок:

1) Ошибки этапа выполнения: все незначительные ошибки, которые обнаруживаются в режиме RUN, отмечаются в специальных маркерах. Программа может контролировать и анализировать эти специальные мар­ керы.

При пуске CPU счрггывает конфигурацию входов и выходов и сохра­ няет эту информацию в памяти системных данных и в специальных марке­ рах. При нормальной работе состояние входов и выходов регулярно об­ новляется и запоминается в специальных маркерах. Если CPU обнаружи­ вает различия в конфигурации входов и выходов, то он устанавливаег в байте ошибок модуля бит индикации измененной конфигурации. Модуль расширения не акгуа1шзируется до тех пор, пока этот бит не будет сбро­ шен. Чтобы CPU мог сбросить этот бит, необходимо снова согласовать входы и выходы модуля с конфигурацией входов и выходов, записанной в памяти системных данных.

2)Ошибки при компиляции программы: CPU компилирует програм­ му при ее загрузке. Если CPU обнаруживает, что программа нарушает не­ которое правило компиляции, то он прерывает процесс загрузки и генери­ рует код ошибки. (Ecjm программа уже была загружена в CPU, то эта про­ грамма имеется еще в EEPROM и она не теряется). После исправления программы можно загружать ее снова.

3)Ошибки программирования на этапе выполнения: сбойная ситуа­ ция может возникнуть во время исполнения программы. Например, кос­ венный указатель адреса, который при компиляции программы был дейст­ вительным, во время обработки программы может быть изменен таким об­ разом, что будет указывать на адрес вне допустимой области. Это рассмат­ ривается как ошибка программирования на этапе выполнения. Используя диaJЮгoвoe окно «CPU -> Information» [«CPU -^ Информация»] (см. рис.3.21), можно установить, какой вид ошибки встретился.

CPU не переходит в STOP, когда обнаруживается незначительная ошибка. Он отмечает эти события в специальных маркерах (SM) и про­ должает обработку программы. Однако можно написать программу таким образом, что при появлении незначительной ошибки происходит принуди­ тельный переход в режим работы STOP. На рис.3.22 показан сегмент про­ граммы, которая контролирует специальный маркер. Операция переводит CPU в режим работы STOP, когда обнаруживается ошибка ввода/ вывода.

56


Таблииа 3.6

Код

Ошибки во время выполнения (не фатальные ошибки)

0000

Ошибок нет.

0001

Блок HSC разблокирован перед обработкой блока HDEF.

0002

Назначение прерывания входу, который уже был поставлен в соответствие HSC.

0003

Назначение HSC входам, которые уже были поставлены в соответствие входному

прерыванию.

0004

Попытка выполнения одной из операций ENI, DIS1 или HDEF в программе обработки

прерываний.

0005

Попытка выполнения второго HSC с тем же самым номером до завершения

первого HSC (HSC в программе обработки прерываний конфликтует с HSC

в главной программе).

0006

Ошибка косвенной адресации.

0007

Ошибка в данных для операции TODW (запись в часы реального времени).

0008

Превышение максимальной глубины вложения подпрограмм.

0009

Обработка другой операции ХМТ в то время, когда отправитель активен.

ОООА

Попытка нового определения HSC с помощью второй операции HDEF для того же

самого HSC.

0091

Ошибка области (вместе с адресной информацией): Проверьте области операндов.

0092

Ошибка в счетном поле операции (вместе со счетной информацией):

Проверьте максимальное счетное значение.

0094

Ошибка области при записи в энергонезависимую память

(вместе с адресной информацией).

Таблица 3.7

Код

Ошибки компиляции (не фатальные ошибки)

0080

Транслируемая программа слишком велика: Сократите программу.

0081

Выход за нижнюю границу стека: Разделите сегмент на несколько сегментов.

0082

Недопустимая операция: Проверьте мнемонику операции.

0083

Отсутствует MEND или недопустимая операция в главной программе: Введите опе­

рацию MEND или удалите недопустимую операцию.

0084

Резервный.

0085

Отсутствует FOR: Добавьте операцию FOR или удалите операцию NEXT.

0086

Отсутствует NEXT: Добавьте операцию NEXT или удалите операцию FOR.

0087

Отсутствует метка перехода (LBL, INT, SBR): Добавьте соответствующую метку пе­

рехода.

0088

Отсутствует RET или недопустимая операция в подпрограмме: Введите операцию

RET в конце подпрограммы или удалите недопустимую операцию.

0089

Отсутствует RE11 или недопустимая операция в программе обработки прерываний:

Введите операцию RETI в конце программы обработки прерываний или удалите

недопустимую операцию.

008А

Резервный.

008В

Дублированная область SCR.

008С

Дублированная метка перехода (LBL, INT, SBR): Переименуйте одну из меток

перехода.

008D

Недопустимая метка перехода (LBL, INT, SBR): Обеспечьте, чтобы не превышалось

допустимое количество меток перехода.

57


Код

Ошибки компиляции (не фатальные ошибки)

0090

Недопустимые параметры: Проверьте, являются ли допустимыми параметры опера­

ции.

0091

Ошибка области (вместе с адресной информацией): Проверьте области операндов.

0092

Ошибка в счетном поле операции (вместе со счетной информацией): Проверьте мак-

0093

симальное счетное значение.

Превышение глубины вложения FOR/NEXT.

0095

Отсутствует операция LSCR (загрузка реле шагового управления).

0096

Отсутствует операция SCRE (завершение реле шагового управления) или недопус­

тимая операция перед SCRE.

|;;Щ:11Ш111111ш11

I^te^

"""^

I Program Control

Network 5

i\F^'% ^^ли Происходит ошибка БЕ ода/выв ода ва

(SM5.0), то пережив состояние STOP.

SM5.0

— <jyp)

I

(STOP)

^

-nm

Рис. 3.22

3.7. Контрольные вопросы и задания

3.1.Прямая адресация области памяти в CPU.

1) Как происходит адресация области отображения процесса на вхо­ дах, на выходах к биту, байту, слову и двойному слову?

Как происходит адресация памяти переменных, маркеров, специаль­ ных маркеров и шагового реле управления к биту, байту, слову и двойному слову?

2)Чем отличается обращение к области памяти таймера, счетчика, быстрого счетчика и аккумулятора от обращение к области памяти пере­ менной?

3)Что означают сигналы I, V, Q, М SM Т С AIAQ АС и НС?

4)Какой формат переменных имеет таймер и каков диапазон их зна­

чений?

5)Какой формат переменных имеет счетчик и каков диапазон их значений?

6)Соберите схему с рис.3.1 и рис.3.2. Измените значения переменных таймера и счетчика, посмотрите что это дает. Объясните работу этих схем.

7) Какие диапазоны значений принимают сигналы I, V, Q, М, SM, Т, С, AI, AQ, АС и НС для процессора CPU-214?

58