Переводим S7-PLC в режим DEFECTIVE программно

По просьбе наших посетителей, данный материал перенесен с сайта plc4good.org.ua, в связи с полной его потерей. Всё возражения принимаются через форму обратной связи.

plc4good.org.ua/view_post.php?id=120

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

Упоминание об этих функциях я нашел только в одном месте – документации на S7-PLCSIM V5.2. Там они вскользь упоминаются как используемые для поддержки дублированных H и F систем. Причем нет описания ни параметров этих функций, ни даже для чего предназначена каждая из них.

Вот эти несколько слов в оригинале:
Support for Fault-Tolerant Systems
S7-PLCSIM supports downloading the following blocks required by the S7400H CPU, and the FSystem I/O (fault-tolerant system).
SDB99, SFC65091, SFC65092, SFC65093, SFC65094, SFC65095, SFC65096, SFB65098,SFC65099, SFC65103, and SFC65102

Попробуем вызвать какую-нибудь из них, например SFC65099. Используем PLCSIM, есть вероятность что на настоящих контроллерах это работать не будет. Но к сожалению у меня нет возможности сейчас попробовать на живом контроллере.

SFC65099

Судя по тому, что вызвать можно только командой UC, параметры передаются через аккумуляторы.

Загружаем функцию.

Лампочки на контроллере начинают моргать.

 

В диагностическом буфере появляется событие 16#4550: DEFECTIVE. Internal system error.

Тут-же в помощи по событию, написано что нужно убедиться что это не механическая проблема, вытянув и вставив модуль назад, и если после доставания батарейки и подачи питания ситуация повторится – выкинуть его :).

Описание события по кнопке ‘Help on Event’

Попробуем выключить питание и включить снова.

Получается что теперь без сброса памяти через MRES, запустить контроллер не получится

Тесты показали тот же результат в PLCSIM на 300,400 серии и что самое интересно и на H системе.
В итоге получается, что всего лишь одной строчкой можно не только остановить PLC но и выполнить на нем сброс памяти (потому, что без него контроллер не запустится). Если у персонала не будет под рукой программатора и актуальной версии софта это выльется в большие проблемы. В свете таких вещей как stuxnet это выглядит немного грустно.

Все еще требуется подтверждение на реальном железе.

Комментарии к материалу

Добавлен: sever Дата: 2012-07-27

А при чем здесь UC к передаче данных через аккумулятор? Ведь это же просто вызов в любом случае, или нет?

Добавлен: komatic Дата: 2012-07-27

2sever, UC конечно просто вызов, вывод о том что параметры передаются через аккумулятор был сделан еще и по такому найденому куску кода
L DW#16#12345678 //ACCU3 – Additional Info 2/3 (Z2/3)
L DW#16#1234ABCD //ACCU2 – DatID 1/2, Additional Info 1 (Z1)
PUSH
L DW#16#40501D3F //ACCU1 – EventID, Task priority, PK (Z0),
UC SFC65507

Добавлен: ART Дата: 2012-10-04

Проверка на железе показала что это не работает.
Просто блок не льётся в ЦПУ =).

Добавлен: komatic Дата: 2012-10-07

2ART на какой серии и версии прошивки пробовали?

Добавлен: ART Дата: 2012-10-08

Step 5.5 SP2
CPU-3142DP V2.0.8

Добавлен: Al-dr Дата: 2012-12-19

Step7 5.5 SP2 HF1
CPU 416-2DP v5.1.1
Блок в CPU льется, но ругается на отсутствие SFC в контроллере.

Добавлен: komatic Дата: 2012-12-19

Похоже догадка не подтвердилась на реальном железе, в принципе это тоже хорошо.

Добавлен: protiven Дата: 2017-01-17

SFC65507, например используется в PLC с опцией ‘T’ Technology (Например, S7-317T). Используется на оборудовании для металлообработки. Функция аппаратная.

0 0 голоса

Оцените статью!

guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии