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

ПЛК / Децентрализованная периферия

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

Сообщение Dao » 23 окт 2018, 17:22

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

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

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

Сообщение SMax » 24 окт 2018, 14:36

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

Пример кода диагностики батареи S7 400 в блоке OB81, с сайта:
https://support.industry.siemens.com/cs/document/11499205/which-organization-blocks-do-you-need-for-error-handling-in-step-7-v5-5-?dti=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
SMax
Дилетант
 
Сообщения: 8
Зарегистрирован: 14 окт 2018, 09:28

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

Сообщение Dao » 24 окт 2018, 15:30

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

А ещё кто-нибудь поделиться кодом на SCL/STL для разных OB ? Очень мало примеров в интернете.
Dao
Профан
 
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59


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

Сообщение mr_Frodo » 24 окт 2018, 16:55

Нажмите F1 в библиотеке проекта при выделенном изучаемым блоке , будете приятно удивлены.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 453
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Dao » 24 окт 2018, 17:07

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


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

Пока наиболее подробное описание нашёл тут: https://cache.industry.siemens.com/dl/f ... uch_en.pdf
Но и там лишь малая часть затронута.
Dao
Профан
 
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59

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

Сообщение mr_Frodo » 24 окт 2018, 22:27

Это в принципе и есть основа, дальше ваша фантазия и здравый смысл должны доделать. Занавес.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 453
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Dao » 24 ноя 2018, 13:02

Различные ошибки на модулях я разобрал.
Но снова вопрос... когда отваливается вторая шина (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) ?
Можно это тоже как-то анализировать и как ?
Dao
Профан
 
Сообщения: 4
Зарегистрирован: 23 окт 2018, 16:59


Вернуться в LOGO! / S7-200 / S7-1200 / S7-300/ S7-400 / S7-1500 / ET200

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1