По просьбе наших посетителей, данный материал перенесен с сайта 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, есть вероятность что на настоящих контроллерах это работать не будет. Но к сожалению у меня нет возможности сейчас попробовать на живом контроллере.
Судя по тому, что вызвать можно только командой 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). Используется на оборудовании для металлообработки. Функция аппаратная.
Оцените статью!