Аппаратный сбой ошибка памяти сработал сторожевой таймер ошибка программы ошибка периферии
Memory Management – это ошибка, появление которой сопровождается перезагрузкой компьютера и отображением синего экрана смерти (BSoD – Blue Screen of Death). Она возникает из-за конфликта ядра операционной системы с пользовательским приложением или драйвером оборудования. Сбой имеет некритичный характер, поэтому устранить его можно своими силами. Но это займёт время, которое уйдёт на перебирание возможных причин появления ошибки.
Причины возникновения
У появления синего экрана смерти с ошибкой Memory Management может быть несколько причин:
- Переполненный жёсткий диск.
- Повреждение системных файлов.
- Вредоносное ПО (вирусы, эксплойты, трояны).
- Неправильная настройка схемы электропитания (если ошибка появляется на ноутбуке).
- Проблемы в работе оперативной памяти.
- Отсутствие или повреждение драйверов устройств.
Способы устранения ошибки Memory Management
Выбор способа устранения зависит от того, что стало причиной возникновения ошибки. Как мы уже поняли, влиять могут разные факторы. Найти источник проблемы можно только опытным путём, проверяя системные параметры.
Очистка жёсткого диска
Первым делом проверяем состояние постоянной памяти. Если на диске не осталось места, то Windows 10 не гарантирует стабильную работу. Посмотреть доступный объём памяти можно через «Этот компьютер». Особое внимание уделяем диску, на котором хранятся файлы Windows 10. Остальные разделы могут быть заполнены пользовательскими файлами, на производительность системы это не повлияет.
Если мы видим, что системный раздел переполнен, то нужно удалить с него лишние файлы. Считается, что для нормальной работы свободным должно быть не менее 10% объёма. Если пользовательских данных на диске нет (фотографий, видео, музыки), то у нас остаётся один вариант – воспользоваться функцией очистки. Она доступна на вкладке «Общие» в свойствах диска.
Функция очистки диска выберет только те данные, которые можно удалить без вреда для системы. Поэтому спокойно ждём завершения сканирования, удаляем всё лишнее и проверяем работоспособность Windows 10. Вместе со стандартной функцией очистки можно использовать возможности приложения CCleaner – это поможет поддерживать на дисках порядок.
Сканирование системных файлов
Кроме отсутствия свободного места на диске причиной возникновения ошибки может быть повреждение системных файлов. Для проверки их работоспособности в составе Windows есть стандартное средство, которое можно вызвать через командную строку.
- Вызываем окно поиска Windows (можно использовать сочетание клавиш Win+S).
- Находим командную строку. Щёлкаем по ней правой кнопкой и выбираем запуск от имени администратора.
3. Пишем в появившейся консоли sfc /scannow и жмем Enter.
Проверка на вирусы
Если с постоянной памятью всё в порядке, но ошибка Memory Management всё равно появляется, нужно проверить систему на вирусы. Самый простой способ сделать это – скачать бесплатную утилиту Dr.Web Cureit. Дальше всё просто:
- Запускаем скачанное приложение.
- Нажимаем кнопку «Проверить».
- Ждём окончания сканирования.
- Смотрим результат проверки и при обнаружении вредоносного ПО нажимаем «Обезвредить».
Если на компьютере нет антивируса, то Dr.Web Cureit! станет отличным инструментом для периодической проверки системы. Главное перед каждым сканированием скачивать его с официального сайта, так как база вредоносного ПО постоянно обновляется.
Настройка схемы электропитания
Если ошибка появляется на ноутбуке, то следует проверить настройки электропитания. Возможно, одному из подключенных устройств не хватает питания, поэтому оно начинает работать некорректно и вызывает синий экран смерти .
- Открываем «Параметры» через меню «Пуск» или с помощью сочетания клавиш Win+I.
- Переходим в раздел «Система».
- Заходим в раздел «Питание и спящий режим».
- Нажимаем на ссылку «Дополнительные параметры питания».
5. Проверяем, чтобы была установлена сбалансированная схема питания.
Этот тип питания обеспечивает правильное соотношение производительности ноутбука и экономии энергии, в результате чего все устройства работают без ошибок.
Проверка оперативной памяти
Сбои, вызывающие BSoD с ошибкой Memory Management, могут возникать также по причине неполадок в работе оперативной памяти. Неисправности могут иметь как программный, так и аппаратный характер. Чтобы обнаружить их, для начала используем встроенный инструмент проверки ОЗУ. См. также: как протестировать оперативную память на ошибки в Windows 10 .
- Запускаем поисковую строку Windows 10.
- Находим утилиту «Диагностика проблем оперативной памяти».
- Выбираем режим проверки: моментальная перезагрузка или диагностика при следующем включении.
После проверки появится отчёт о состоянии памяти. Если в нём нет информации об ошибках, то это ещё не значит, что всё в порядке. Для уверенности используем ещё одну утилиту, но уже от сторонних разработчиков – Memtest86. Она выполняет такую же проверку ОЗУ, только предоставляет больше информации.
Причиной сбоя могут быть также аппаратные неисправности в планках оперативной памяти или конфликт между оборудованием от разных производителей. Чтобы убедиться в их работоспособности, вытащите все планки, а затем вставьте их обратно по очереди, наблюдая, как будет функционировать система.
Работа с драйверами оборудования
Если с постоянной и оперативной памятью всё в порядке, на жёстком диске есть свободное место и нет вирусов, настройки электропитания выставлены верно, но ошибка всё равно появляется, то нужно обратить внимание на подключенные устройства и их драйверы.
Если Windows 10 стала уходить в BSoD после подключения нового оборудования, то необходимо отключить его и убедиться в совместимости с системой. Если ошибка появилась после обновления драйвера устройства, следует откатиться к предыдущей версии программного обеспечения. Для этого мы:
- Заходим в «Диспетчер устройств» (можно найти через контекстное меню Win+X или поиск Windows).
- Щелкаем правой кнопкой по драйверу, который недавно обновляли, и переходим в его свойства.
- Открываем вкладку «Драйвер», нажимаем кнопку «Откатить» и подтверждаем действие. Причину можно выбрать любую – например, что предыдущая версия была более производительной.
Иногда причиной ошибки становится обратная ситуация – устаревший драйвер оборудования, больше не совместимый с системой. В «Диспетчере устройств» он выделяется восклицательным знаком. В таком случае необходимо обновить программное обеспечение устройства. Самый надёжный способ – скачивание последней версии драйвера с официального сайта производителя. Например, если нужно обновить драйвер видеокарты, то мы идём на сайт производителя, находим ПО модели, скачиваем и устанавливаем последнюю версию.
Перечисленные способы должны помочь обнаружить и устранить ошибку. Ничего сложного в их применении нет – главное чётко следовать инструкциям.
Контроллер удалённого канала успешно прошёл самодиагностику.
Channel горит
Индикация передачи данных по каналу.
ACTIVE горит
Индикация активного модуля.
STBY горит
Индикация модуля в режиме ожидания.
RBU GOOD горит
Индикация сохранности данных модуля.
COMGOOD горит
Коммуникации HBU в порядке.
Simatic TI575
Состояние светодиода
Описание
PCG горит
Отсутствуют ошибки CPU.
RUN горит
Модуль в режиме RUN.
RUN мигает
Аналоги в режиме RUN, дискреты в режиме PROG
BAT горит
Батарейка установлена и не разряжена ниже 2.4В.
BAT мигает
Батарейка разряжена.
WDT горит
Сработал сторожевой таймер.
MOB горит
CPU является активным VME мастером на шине.
SYF горит
Проводится самодиагностика после подачи питания либо сбой CPU.
S5 PLC: S5-90U, S5-95U, S5-95F; S5-100U: (CPU100, CPU102, CPU103)
Состояние светодиода при положении переключателя "Run"
Описание
RUN зеленый горит, однако ПЛК функционирует неправильно
Ошибка в программе либо сбой входов/выходов. Провести процедуру проверки аппаратной части согласно руководству по ПЛК.
STOP красный горит
Неработоспособность ПЛК. Для детальной диагностики необходимо подключение программатора.
STOP красный мигает
Ошибка во время загрузки или сохранения программы.
BATTERY OFF / LOW горит
Батарейка либо отсутствует, либо установлена неправильно, либо разрядилась ниже 2.8 В.
Блоки питания S5 PS
Состояние светодиода PS
Описание
POWER SUPPLY OK зеленый горит
Питание в норме.
VOLTAGE LOW красный горит
Напряжение на выходе снизилось до недопустимого уровня.
FAN FAULT красный горит
BATT. LOW (BATTERY LOW) желтый горит
Батарейка либо отсутствует, либо установлена неправильно, либо разрядилась ниже 2.7В.
Simatic S5-115U PLC: CPU941, CPU942
Состояние светодиода
Описание
RN зеленый горит
ПЛК в режиме RUN.
ST красный горит
После подачи питания - запуск CPU. Всё время - ПЛК в режиме STOP, либо неисправность CPU при команде RUN.
ST красный мигает
Аппаратный сбой, ошибка в программе.
Simatic S5-115U PLC: CPU943, CPU944
Состояние светодиода
Описание
RN зеленый горит
ПЛК в режиме RUN.
ST красный горит
ПЛК в режиме STOP, либо неисправность CPU при команде RUN.
QVZ (QV) красный горит
Задержка квитирования. ПЛК в режиме STOP.
ZYK (ZY) красный горит
Сработал сторожевой таймер. ПЛК в режиме STOP.
BASP (BA) красный горит
Блокированы дискретные выходы. ПЛК в режиме запуска или STOP.
QVZ (QV), ZYK (ZY), BASP (BA) мигают
ST красный мигает
Аппаратный сбой, ошибка памяти.
Simatic S5-115U PLC: CPU945
Состояние светодиода
Описание
RN зеленый горит
ПЛК в режиме RUN.
ST красный горит
ПЛК в режиме STOP, либо неисправность CPU при команде RUN.
QVZ красный горит
Задержка квитирования. ПЛК в режиме STOP.
ZYK красный горит
Сработал сторожевой таймер. ПЛК в режиме STOP.
BASP красный горит
Блокированы дискретные выходы. ПЛК в режиме запуска или STOP.
STOP красный медленно мигает
STOP красный быстро мигает
Необходим общий перезапуск.
Simatic S5-135U PLC: S-processor CPU921, R-processor CPU922, CPU928
Состояние светодиода
Описание
RUN зеленый горит
ПЛК в режиме RUN.
STOP красный горит
ПЛК в режиме STOP, либо неисправность CPU при команде RUN.
QVZ, ADF красный горит
Задержка квитирования - не отвечает какой-то из периферийных модулей. ПЛК в режиме STOP.
ZYK красный горит
Сработал сторожевой таймер. ПЛК в режиме STOP.
BASP красный горит
Блокированы дискретные выходы. ПЛК в режиме запуска или STOP.
STOP красный медленно мигает
Ошибка в программа либо произошла запрограммированная остановка CPU.
STOP красный быстро мигает
Необходим общий перезапуск, нет модуля памяти либо управляющая программа утеряна.
Simatic S5-150U PLC: Central unit 924, 925, 926, 927
(6ES5 924-3SA11, 6ES5 925-3SA11, 6ES5 926-3SA11, 6ES5 927-ЗSA11)
Состояниесветодиода
Описание
BETRIEB зеленый горит
ПЛК в режиме RUN.
STOP красный горит
ПЛК в режиме STOP.
NEUSTART ERFODALE желтый горит
Необходим общий перезапуск.
Simatic S5-155U PLC: CPU948
Состояние светодиода
Описание
RUN зеленый горит
ПЛК в режиме RUN.
STOP красный горит
ПЛК в режиме STOP.
SYS FAULT красный горит
QVZ, ADF красный горит
Задержка квитирования - не отвечает какой-то из периферийных модулей. ПЛК в режиме STOP.
ZYK красный горит
Сработал сторожевой таймер. ПЛК в режиме STOP.
BASP красный горит
Блокированы дискретные выходы. ПЛК в режиме запуска или STOP.
INIT красный горит
Индикация самодиагностики короткое время после подачи питания. Индикация системных сбоев при свечении во время работы.
SI1, SI2 красные горят
Передача данных невозможна по соответствующему порту. Внутренний сбой.
STOP красный медленно мигает
Ошибка в программа либо произошла запрограммированная остановка CPU.
STOP красный быстро мигает
Необходим общий перезапуск, нет модуля памяти либо управляющая программа утеряна.
S7-200: CPU212, CPU214, CPU215, CPU216, CPU221, CPU222, CPU224
Состояние светодиода
Описание
RUN зеленый горит
ПЛК в режиме RUN.
STOP красный горит
ПЛК в режиме STOP.
SF (SF/DIAG) горит красным
Аппаратный сбой, ошибка памяти, сработал сторожевой таймер, ошибка программы.
SF (SF/DIAG) горит жёлтым
Диагностика либо режим форсирования.
Simatic S7-1200 PLC: CPU 1211C, CPU1212C, CPU1214C
Состояние светодиода
Описание
STOP/RUN горит зелёным
ПЛК в режиме RUN.
STOP/RUN горит оранжевым
ПЛК в режиме STOP.
MAINT желтый мигает, STOP/RUN горит оранжевым
Необходимо извлечь карту памяти.
STOP/RUN мигает
Загрузка, самодиагностика, обновление прошивки
ERROR красный мигает
ERROR красный горит
MAINT желтый горит
Запрос на обслуживание (необходим сброс памяти).
STOP/RUN, ERROR, MAINT мигают
Тест светодиодов либо сбой прошивки.
Состояние светодиода
Описание
SF красный горит
Аппаратный сбой, ошибка памяти, сработал сторожевой таймер, ошибка программы, ошибка периферии.
BAT F красный горит
Батарейка либо отсутствует, либо установлена неправильно, либо разрядилась.
BF красный горит
Ошибка шины на интерфейсе DP.
BF1, BF2, BF3
Ошибка шины на интерфейсе 1, 2, 3.
SF DP, BUS F красные горят или мигают
Аппаратный сбой шины, заданы разные скорости обмена, неверная конфигурация, нерабочая станция, slave-устройство не отвечает.
DC 5V зеленый горит
Питание +5В в порядке.
FRCE жёлтый горит
ПЛК в режиме форсирования.
RUN зеленый горит
ПЛК в режиме RUN.
STOP жёлтый горит
ПЛК в режиме STOP.
STOP жёлтый мигает
Требуется общее стирание CPU.
Simatic S7-400 PLC: CPU 412-1, CPU412-2 DP, CPU413-1, CPU413-2 DP,
CPU414-1, CPU414-2 DP, CPU414-3 DP, CPU416-1, CPU416-2 DP,
CPU416-3 DP, CPU417-4
Аппаратный сбой, ошибка контрольной суммы, ошибка в управляющей программе, сработал сторожевой таймер.
Mitsubishi Melsec-A PLC: A0J2CPU
Состояние светодиода
Описание
PWR горит
Внутреннее напряжение +5В в пределах нормы.
RUN не горит
ПЛК в режиме STOP
RUN мигает
Обнаружена ошибка в результате самодиагностики либо проведена процедура очистки промежуточной памяти.
RUN горит
ПЛК в режиме RUN
Mitsubishi Melsec-A PLC: A1SCPU, A2SCPU, A2ASCPU,
A1SJHCPU, A1SHCPU, A2SHCPU
Состояние светодиода
Описание
RUN не горит
ПЛК в режиме STOP либо нет питания
RUN мигает
Обнаружена ошибка в результате самодиагностики либо проведена процедура очистки промежуточной памяти.
RUN горит
ПЛК в режиме RUN
ERROR горит
Обнаружена ошибка в результате самодиагностики.
ERROR мигает
Индикатор (F) включен в результате выполнения программы.
Mitsubishi Melsec-A/Q PLC: Q2ACPU(S1), Q3ACPU, Q4ACPU
Состояние светодиода
Описание
RUN горит
CPU в режиме RUN.
RUN не горит
CPU в режиме STOP.
RUN мигает
При переводе переключателя режима работы CPU в положение "Run", если до этого запись программы была произведена в режиме STOP.
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
USER горит
Инструкцией CHK выявлена ошибка либо состояние светодиода задаётся в программе пользователя.
USER мигает
Выполнение очистки защёлки.
BAT. ALARM горит
Понижение напряжения батарейки CPU или батарейки карты памяти.
BOOT горит
Операция загрузки завершена .
Описание
MAIN CPU DOWN
END NOT EXECUTE
Не выполнена инструкция END.
RAM ERROR
OPE. CIRCUIT ERR.
Ошибка рабочей цепи.
FUSE BREAK OFF
I/O INT. ERROR
Ошибка размещения вх/вых.
SP. UNIT DOWN
Ошибка модуля специальной функции.
CONTROL-BUS ERR.
Ошибка шины управления.
AC DOWN
Перебой в питании.
BATTERY ERROR
UNIT VERIFY ERR.
Ошибка проверки модуля вх/вых.
SP. UNIT LAY. ERR.
Ошибка размещения модуля специальной функции.
SP. UNIT ERROR
Ошибка модуля специальной функции.
MISSING PARA.
BOOT ERROR
ICM. OPE ERROR
Ошибка работы карты памяти.
FILE SET ERROR
Ошибка установки файла.
FILE OPE. ERROR
Ошибка доступа к файлу.
CAN'T EXE. PRG.
Невозможно исполнить инструкцию.
PARAMETER ERROR
Ошибка установки параметра.
LINK PARA. ERROR
Ошибка параметра связи.
SFC PARA. ERROR
Ошибка параметра SFC.
INSTR CODE ERR.
Проверка кода инструкций
MISSING END INS.
Отсутствует инструкция END.
CAN'T SET (P)
Ошибка установки указателя.
CAN'T SET (I)
Ошибка установки указателя.
OPERATION ERROR
Ошибка проверки работы.
FOR-NEXT ERROR
Ошибка конфигурации инструкции FOR-NEXT
CAN'T EXECUTE (P)
Ошибка конфигурации инструкции CALL-RET
CAN'T EXECUTE (I)
Ошибка прерывания программы.
INST. FORMAT ERR.
Невозможно выполнить инструкцию.
EXTEND INST. ERR.
Ошибка расширенной функции.
SFCP. CODE ERROR
Ошибка конфигурации программы SFC.
CAN'T SET (BL)
Ошибка конфигурации блока SFC.
CAN'T SET (S)
Ошибка конфигурации шага SFC.
SFCP. FORMAT ERROR
Синтаксическа ошибка SFC.
SFCP. OPE. ERROR
Ошибка проверки работоспособности SFC.
SFCP. EXE. ERROR
Ошибка исполнения программы SFC.
BLOCK EXE. ERROR
Ошибка исполнения блока SFC.
STEP EXE. ERROR
Ошибка исполнения шага SFC.
WDT ERROR
Сработал сторожевой таймер.
PRG. TIME OVER
Вышло время программы.
F****
Проверка системным битом.
Проверка инструкцией CHK.
Mitsubishi Melsec-FX PLC: FX0, FX0N, FX0S
Состояние светодиода
Описание
PROG E мигает
Ошибка в управляющей программе
Power ON, POWER не горит
Нет питания или мощности питания недостаточно
CPU-E горит
Обнаружена ошибка в результате самодиагностики
RUN горит
ПЛК в режиме RUN
Mitsubishi Melsec-FX PLC: FX1S, FX1N
Состояние светодиода
Описание
POWER горит
ERROR горит
Ошибка кассеты памяти, ошибка в управляющей программе, сработал сторожевой таймер.
RUN горит
ПЛК в режиме RUN
Mitsubishi Melsec-FX PLC: FX2N
Состояние светодиода
Описание
POWER не горит
Нет питания или мощности питания недостаточно, перегорел внутренний предохранитель.
BATT.V горит
Батарейка разряжена!
PROG.V / CPU.E горит
Ошибка карты памяти, сработал сторожевой таймер.
PROG.V / CPU.E мигает
Проблема с управляющей программой. Возможна она утеряна.
Mitsubishi Melsec-FX PLC: FX2NC
Состояние светодиода
Описание
POWER не горит
Нет питания или мощности питания недостаточно
BATT горит
Батарейка разряжена!
ERROR горит
Ошибка карты памяти, сработал сторожевой таймер.
ERROR мигает
Ошибка в управляющей программе, сработал сторожевой таймер.
Mitsubishi Melsec-FX PLC: FX3G, FX3U, FX3UC
Состояние светодиода
Описание
POW (POWER) горит
POW (POWER) мигает
Питание подано не соответствующее, внешие подключения выполнены неверно, внутренняя ошибка CPU.
RUN горит
ПЛК в режиме RUN
ALM горит
Дополнительная батарейка разряжена.
BAT (BATT) горит
Внутренняя батарейка разряжена!
ERR (ERROR) горит
Аппаратный сбой, сработал сторожевой таймер.
ERR (ERROR) мигает
Ошибка в управляющей программе
Mitsubishi Melsec-Q PLC Basic CPU: Q00JCPU, Q00CPU, Q01CPU
Состояние светодиода
Описание
POWER горит
Внутреннее напряжение +5В в пределах нормы.
RUN горит
CPU в режиме RUN.
RUN не горит
CPU в режиме STOP.
RUN мигает
При переводе переключателя режима работы CPU в положение "Run", если до этого запись программы или параметров была произведена в режиме STOP.
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP либо состояние светодиода задано в программе пользователя.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
Mitsubishi Melsec-Q PLC C-controller: Q06СCPU-V-H01
Состояние светодиода
Описание
RUN горит
Модуль С-контроллера в режиме RUN. Разрешены запись в буфер и работа выходов Y
RUN не горит
Модуль С-контроллера в режиме STOP. Запись в буфер и работа выходов Y заблокированы.
RUN мигает
Исполняется файл скрипта "STARTUP.CMD"
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP либо состояние светодиода задано в программе пользователя.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
MODE горит
Нормальный рабочий режим (VxWorks в работе)
MODE не горит
Аппаратный сбой либо идёт перезагрузка.
MODE мигает
USER
Cостояние светодиода задаётся в программе пользователя.
CF CARD горит
Вставлена карта памяти Compact Flash.
CF CARD не горит
Карта памяти Compact Flash вынута.
CF CARD мигает
Карта памяти Compact Flash отключена переключателем RESET/SELECT.
CH2 SD/RD
Индикация передачи данных по интерфейсу RS-232 CH2.
100M горит
Подключение при 100M.
100M не горит
Подключение при 10M.
SD/RD
Индикация передачи данных по интерфейсу 10BASE-T/100BASE-TX CH1.
Mitsubishi Melsec-Q PLC Universal CPU: Q00UCPU,
Q00UJCPU, Q01UCPU, Q02UCPU, Q03UD(E)CPU
Состояние светодиода
Описание
POWER горит
Внутреннее напряжение +5В в пределах нормы.
RUN горит
CPU в режиме RUN.
RUN не горит
CPU в режиме STOP. Ошибки отсутствуют.
RUN мигает
При переводе переключателя режима работы CPU в положение "Run", если до этого запись программы или параметров была произведена в режиме STOP.
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
MODE горит
MODE не горит
Производится тестирование исполнительных устройств либо режим форсирования внешних I/O.
USER
Cостояние светодиода задаётся в программе пользователя.
BAT мигает желтым
Понижение напряжения батарейки CPU.
BAT мигает зелёным
Завершено создание резервной копии данных в ROM защёлкой резерва данных.
BAT горит зелёным 5 сек.
Завершено восстановление данных из резервной копии в ROM защёлкой резерва данных.
Mitsubishi Melsec-Q PLC High-performance CPU: Q02(H)CPU,
Q06HCPU, Q12HCPU, Q25HCPU;Q12PHCPU, Q25PHCPU;
Mitsubishi Melsec-Q PLC Redundant CPU: Q12PRHCPU, Q25PRHCPU
Состояние светодиода
Описание
RUN горит
CPU в режиме RUN.
RUN не горит
CPU в режиме STOP.
RUN мигает
При переводе переключателя режима работы CPU в положение "Run", если до этого запись программы или параметров была произведена в режиме STOP.
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP, исключая ошибку батарейки.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP. "ERR" мигает одновременно с "BOOT", если успешно произведена автоматическая запись в ROM
MODE горит зелёным
MODE горит оранжевым
MODE мигает
Режим форсирования внешних I/O.
USER горит
Инструкцией CHK выявлена ошибка либо состояние светодиода задаётся в программе пользователя.
USER мигает
Выполнение очистки защёлки.
BAT горит
Понижение напряжения батарейки CPU или батарейки карты памяти.
BOOT горит
Начало операции загрузки.
BOOT мигает
"ERR" мигает одновременно с "BOOT", если успешно произведена автоматическая запись в ROM.
Mitsubishi Melsec-Q PLC Motion CPU: Q170MCPU,
Q172DCPU, Q173DCPU
Состояние светодиода
Описание
RUN горит
CPU в режиме RUN.
RUN не горит
CPU в режиме STOP.
RUN мигает
Сбой при записи параметров или программы.
ERR горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP.
ERR мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
MODE зелёный горит
USER горит
Инструкцией CHK выявлена ошибка либо состояние светодиода задаётся в программе пользователя.
USER мигает
Выполнение очистки защёлки.
BAT горит желтым
Понижение напряжения батарейки карты памяти.
BAT горит зелёным
Завершена загрузка резервной копии данных в ROM защёлкой резерва данных.
BAT горит зелёным 5 сек.
Завершено создание резервной копии данных в ROM защёлкой резерва данных.
BOOT горит
Начало операции загрузки.
Mitsubishi Melsec-QS PLC Safety CPU: QS001CPU
Состояние светодиода
Описание
ALIVE зелёный не горит
Ошибка сторожевого таймера.
RUN зелёный горит
CPU в режиме RUN.
RUN зелёный не горит
CPU в режиме STOP.
RUN зелёный мигает
При переводе переключателя режима работы CPU в положение "Run", если до этого запись программы или параметров была произведена в режиме STOP.
ERR красный горит
Обнаружена ошибка в результате самодиагностики, не переводящая CPU в режим STOP, исключая ошибку батарейки.
ERR красный мигает
Обнаружена ошибка в результате самодиагностики, переводящая CPU в режим STOP.
TEST жёлтый горит
TEST жёлтый не горит
TEST жёлтый мигает
Было произведено переключение из режима TEST в режим SAFETY. Светодиод потухнет после перезагрузки.
Бывают ситуации, когда по тем или иным причинам, программа в микроконтроллере может зависнуть и устройство перестанет нормально функционировать. В этой ситуации поможет только сброс устройства вручную. Но это не всегда бывает возможно. Поэтому и был придуман сторожевой таймер, который может произвести сброс микроконтроллера.
Сторожевой таймер (контрольный таймер, англ. Watchdog timer — букв. «сторожевой пёс») — аппаратно реализованная схема контроля над зависанием системы. Представляет собой таймер, который периодически сбрасывается контролируемой системой. Если сброса не произошло в течение некоторого интервала времени, происходит принудительная перезагрузка системы. В некоторых случаях сторожевой таймер может посылать системе сигнал на перезагрузку («мягкая» перезагрузка), в других же — перезагрузка происходит аппаратно (замыканием сигнального провода RST или подобного ему).
Этот таймер тикает сам по себе, независимо от основной программы. Суть такова: в основной программе через определенные промежутки, вставляется код, который сбрасывает этот таймер. Когда таймер постоянно сбрасывается, то программа спокойно выполняется. Но, если его не сбросить, значит кусок кода основной программы не выполнился и завис, в этом случае таймер досчитает до определенного значения и сбросит полностью микроконтроллер. Программа начнет выполняться с самого сначала.
Характеристики сторожевого таймера:
- Отдельный генератор тактовых импульсов (128 кГц)
- Прерывания и возможность сброса системы
- Выбор режима генерации сброса от 16 миллисекунд до 8 секунд
- Режим защиты от сбоев при отключении только программированием fuse
Сторожевой таймер имеет всего один регистр** WDTCSR**.
Бит WDIF (7) - флаг поступления прерывания от сторожевого таймера (1 - если поступило прерывание (сбрасывается записью 1 во флаг)).
Бит WDIE (6) - разрешение прерывания от сторожевого таймера при записи в него 1.
Бит WDCE (4) - разрешение изменения режима работы сторожевого таймера (перед изменением режима работы или предделителя необходимо записать 1).
Бит WDE (3) - разрешение сброса системы сторожевым таймером при записи в него 1.
Бит WDP3 (5) и биты WDP2-WDP0 (2 - 0) управляют временем, через которое произойдет сброс или поступит прерывание от сторожевого таймера:
- 0000 - 2048 циклов (16 мс)
- 0001 - 4096 циклов (32 мс)
- 0010 - 8192 цикла (64 мс)
- 0011 - 16384 цикла (0.125 с)
- 0100 - 32768 циклов (0.25 с)
- 0101 - 65536 циклов (0.5 с)
- 0110 - 131072 цикла (1 с)
- 0111 - 262144 цикла (2 с)
- 1000 - 524288 циклов (4 с)
- 1001 - 1048576 циклов (8 с)
- 1010 - 1111 - резерв
Стоит также отметить, что при режиме работы (сброс и прерывание) сначала выполняется прерывание, а затем сброс. И если Fuse бит WDTON установлен в 0, в независимости от битов WDE и WDIE регистра WDTCR таймер будет сбрасывать систему по истечении времени на которое он настроен.
Также для сброса системы сторожевым таймером необходимо в бит WDRF (3) регистра MCUSR записать 1 (сбрасывается в 0 принудительно или по включению питания микроконтроллера).
Программирование сторожевого таймера
Для работы со сторожевым таймером для начала необходимо подключить библиотеку " wdt.h " в которой описаны все основные команды для работы со сторожевым таймером. Пример программы №1 будет включать сторожевой таймер, который в свою очередь будет сбрасывать микроконтроллер каждые 4 секунды. Пример программы №2 будет иметь более расширенный функционал: если микроконтроллер перестал отвечать, то он будет сброшен; если же он работает нормально, то при поступлении прерывания от сторожевого таймера каждые 8 секунд сторожевой таймер будет сбрасываться и начинать отсчет времени сначала. Это позволит контролировать работу устройства на протяжении всего времени.
Пример программы №1:
int main(void)
wdt_enable(WDTO_4S); //включаем сторожевой таймер со сбросом через 4 секунды
while(1); //любая пользовательская программа
>
Пример программы №2:
int main(void)
sei(); //разрешаем глобальные прерывания
wdt_enable(WDTO_8S); //включаем сторожевой таймер со сбросом через 4 секунды
WDTCSR = 1
while(1); //любая пользовательская программа
>
Параметры функции wdt_enable() обуславливают время сброса сторожевого таймера:
Данный таймер есть у всех AVR микроконтроллеров, даже у малыша ATtiny10 . У которого изменению режима работы Сторожевого таймера посвящен один из всего трех его фьюзов WDTON . Как работать с фьюзами на Тини10 я рассказывал в отдельной статье " Изменение фьюзов на ATtiny10 ".
Что такое Сторожевой таймер (Watchdog)?
Основное назначение Сторожевой таймера – предотвратить зависание микроконтроллера в процессе выполнения программы. Т.е. мы запускаем данный таймер и если в течение установленного нами интервала времени счетчик Watchdog не будет перезапущен, то уже будет перезагружен сам микроконтроллер. Но на самом деле возможности Сторожевой таймера больше, чем просто перезагружать микроконтроллер. О чем мы и поговорим далее.
Сторожевой таймер обладает собственным тактовым генератором, отдельным от основного тактового генератора микроконтроллера. Обычно частотой 128 кГц.
Здесь и далее я буду рассматривать даташит на ATtiny13 . Но информация из данного ролика актуальна, с небольшими поправками о которых я расскажу далее, и для других AVR микроконтроллеров.
Управляет всеми режимами работы Сторожевого таймера всего один регистр Watchdog Timer Control Register (WDTCR) состоящий из одного байта с набором конфигурационных бит.
Биты WDE и WDTIE определяют режим работы Watchdog. Вернее к какому результату приведет срабатывание Сторожевого таймера. В размещенной ниже таблице, в которой указано, как данные биты настраиваются:
Если WDE и WDTIE по нулям – у нас Сторожевой таймер остановлен.
Присваивая единицу WDTIE мы определяем, что результатом работы сторожевого таймера будет срабатывание прерывания.
А WDE равный единице, будет означать, что результатом работы сторожевого таймера будет Reset, т.е. перезагрузка микроконтроллера.
Если же обоим битам WDE и WDTIE присвоена единица, то у нас сработает и прерывание и Reset. Т.е. сначала сработает прерывание, а затем микроконтроллер перезапустится. Т.е. в этом случаем мы можем сохранить какую-то важную информацию, полученную в ходе работы скетча или код ошибки, например в EEPROM памяти, а затем перезагрузить микроконтроллер.
Это всё при условии, что у нас фьюз бит WDTON равен единице. Т.е. вспоминаем особенность фьюзов, о которой я рассказывал в статье " Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR ", единица означает, что данный фьюз, не установлен. Если же установить фьюз WDTON, то неважно, как у нас заданы биты WDE и WDTIE , срабатывание Сторожевого таймера будет приводить только к перезагрузке микроконтроллера.
Бит WDTIF работает когда Watchdog настроен на Прерывание. И микроконтроллер сам с ним работает и очищает, когда прерывание выполнено.
Бит WDCE временно разрешает изменение параметров работы сторожевого таймера. Т.е. прежде, чем изменить режим работы Watchdog мы должны записать в этот бит единицу, а затем изменить нужный нам параметр. Через 4 такта данный параметр будет аппаратно сброшен на 0.
И биты WDP0, WDP1, WDP2 и WDP3 устанавливают количество тактов, прежде чем наступит срабатывание Сторожевого таймера. Ниже расположена таблица, где указано, какие значения мы можем установить данным битам и какое получить количество циклом до срабатывания Watchdog и сколько это примерно в миллисекундах и секундах.
Значение можно задать от 16 мс до 8 секунд. И следует учитывать, что это время указано при напряжении питания в 5В. Т.к. частота внутреннего кварцевого генератора зависит от напряжения и снижается при его понижении.
Очень важной особенностью является то, что имена конфигурационных бит, имя регистра таймера Watchdog и возможные варианты его работы отличаются у разных микроконтроллеров!
В этой статье, я привожу пример для ATtiny13.
А вот для ATtiny25/45/85 название регистра WDTCR совпадает с ATtiny13
А вот конфигурационного бита, отвечающего за включение прерывания, по срабатыванию счетчика Watchdog отличается. Он здесь WDIE , в отличие от WDTIE на ATtiny13.
А вот у ATmega328 отличается от ATtiny13 и название бита, связанного с прерыванием по Watchdog и название регистра. Тут он WDTCSR , т.е. с буквой "S" перед "R".
У ATtiny2313 , о котором я рассказывал в отдельной статье " Микроконтроллер ATtiny2313. Обзор, программирование, сравнение с другими микроконтроллерами ", имена и бита и регистра точно такие же, как у ATmega328.
А вот, например, у ATmega8 регистр именуется так же, как и у ATtiny13 WDTCR , но нет возможности инициировать Прерывание по срабатыванию Сторожевого таймера. Только перезагрузку микроконтроллера (Reset).
И максимальное время которое мы можем установить до срабатывания сторожевого таймера составляет чуть больше 2х секунд.
Так что учитывайте такие особенности при работе с разными микроконтроллерами!
Watchdog и перезагрузка микроконтроллера (Reset)
Для того, чтобы настроить срабатывание Watchdog на перезагрузку микроконтроллера, нам нужно вначале разрешить изменение таймера Watchdog, а далее сконфигурировать его на перезагрузку микроконтроллера и указать время работы (вернее число тактов) таймера Watchdog, после которого он перезапустит микроконтроллер:
В конце статьи есть ссылка на скетч с демонстрационным примером, а так же видео с подробным разбором всех скетчей и результатом их работы.
Watchdog и прерывание (Interrupt)
Чтобы настроить срабатывание Watchdog на вызов, нам, как и в прошлом случае, нужно вначале разрешить изменение таймера Watchdog, а далее записать единицу в конфигурационный бит WDTIE :
После срабатывание Watchdog будет вызвано прерывание и исполнен код, записанный в соответствующий блок:
Watchdog и прерывание (Interrupt)+перезагрузка (Reset)
В данном случаем, если мы зададим единицу и биту WDE и биту WDTIE вначале сработает прерывание, а затем микроконтроллер будет перезагружен:
Т.е. здесь у нас может быть заложено включение подачи сигнала, звукового или светового, что у нас произошел сбой в работе устройства. Или можем записать код ошибки или значения переменных, полученных при работе скетче в энергонезависимую память. А после, микроконтроллер перезагрузится.
Вся информация из статью наглядно показана в размещенном ниже видео:
Ссылки на скетчи:
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Читайте также: