Обработка ошибок OB (OB82, 83,86, 121,122)

ПЛК / Децентрализованная периферия
Ответить
Dao
Профан
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59

Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение Dao »

Приветствую!

Подскажите, пожалуйста.
Есть конфигурация: S7-300, 2 rack (IM360 <->IM361), дискретные и аналоговые модули (на обоих). Step 7 5.5.
Есть задача максимально подробно диагностировать неисправности и ошибки процессора, модулей, коммуникационные ошибки, ошибки доступа.
Какие ещё могут быть ошибки (критические/неважные) ? Какие OB нужно обязательно добавить, а какие не нужны ?
САМОЕ ГЛАВНОЕ! Кто-нибудь может дать примеры на SCL обработки ошибок в блоках OB 82/83/86/121/122 (и других нужных) ?
Где что обрабатывается ? Какие есть ньюансы ?
Т.к. подобным пока не занимался, сложно собрать в кучу всю информацию. Помогите, пожалуйста))
У вас нет необходимых прав для просмотра вложений в этом сообщении.

SMax
Любитель
Сообщения: 32
Зарегистрирован: 14 окт 2018, 09:28

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение SMax »

Системные и стандартные функции для S7-300 и S7-400 (язык русский)
https://my-files.ru/v3zb3f

Пример кода диагностики батареи S7 400 в блоке OB81, с сайта:
https://support.industry.siemens.com/cs ... 0&lc=en-US

Изображение

И как это будет выглядеть на SCL:
Код на SCL
ORGANIZATION_BLOCK OB81

VAR_TEMP
OB81_EV_CLASS : BYTE;
OB81_FLT_ID : BYTE;
OB81_PRIORITY : BYTE;
OB81_OB_NUMBER : BYTE;
OB81_RESERVED_1 : BYTE;
OB81_RESERVED_2 : BYTE;
OB81_RACK_CPU : WORD;
OB81_RESERVED_3 : BYTE;
OB81_RESERVED_4 : BYTE;
OB81_RESERVED_5 : BYTE;
OB81_RESERVED_6 : BYTE;
OB81_DATE_TIME : DATE_AND_TIME;
END_VAR

(* Error of Battery, incoming event *)
%M81.1 := (OB81_FLT_ID = B#16#22);
%M81.2 := (OB81_EV_CLASS = B#16#39);
IF %M81.1 AND %M81.2 THEN
%M81.0 := TRUE;
END_IF;

(* Battery OK, outgoing event *)
%M81.6 := (OB81_EV_CLASS = B#16#38);
IF %M81.6 THEN
%M81.0 := FALSE;
END_IF;

END_ORGANIZATION_BLOCK

Dao
Профан
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение Dao »

Я там уже всё проштудировал и этот код видел))
Но всё-равно, спасибо огромное за помощь!

А ещё кто-нибудь поделиться кодом на SCL/STL для разных OB ? Очень мало примеров в интернете.

SMax
Любитель
Сообщения: 32
Зарегистрирован: 14 окт 2018, 09:28

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение SMax »

Может это? Там и пример программы есть:
https://support.industry.siemens.com/cs ... 0&lc=en-WW

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение mr_Frodo »

Нажмите F1 в библиотеке проекта при выделенном изучаемым блоке , будете приятно удивлены.
Вот моя подпись...

Dao
Профан
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение Dao »

mr_Frodo писал(а):Нажмите F1 в библиотеке проекта при выделенном изучаемым блоке , будете приятно удивлены.
:D
Хелпом я пользуюсь)) Спасибо.
А вот примеров там нет((
Если у вас есть, обработки ошибок (например OB82), поделитесь ?)) Или хотя бы подробную расшифровку временных переменных блока (в хелпе только расшифровка названий).

Пока наиболее подробное описание нашёл тут: https://cache.industry.siemens.com/dl/f ... uch_en.pdf
Но и там лишь малая часть затронута.

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение mr_Frodo »

Это в принципе и есть основа, дальше ваша фантазия и здравый смысл должны доделать. Занавес.
Вот моя подпись...

Dao
Профан
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59

Re: Обработка ошибок OB (OB82, 83,86, 121,122)

Сообщение Dao »

Различные ошибки на модулях я разобрал.
Но снова вопрос... когда отваливается вторая шина (Rack 1) для каждого модуля с неё в Diagnostic bufer появляется:

Parameter assignment error in CPU module parameters
Parameter: module type
Input address: 36 of the module with parameter assignment errors
Error type: configurable slot empty
Operating mode: STARTUP (warm restart)
External error, Incoming event

Где (в каком OB или SFC) и как можно достать это диагностическое сообщение и произвести какие-либо (какие пока неважно) операции если оно появилось ?

И ещё вопросик: если по горячему выключать питание у второй шины (Rack 1) то PLC уходит в STOP. Есть возможность его не останавливать, а продолжать работу с первой шиной (Rack 0) ?
Можно это тоже как-то анализировать и как ?

Ответить