Страница 1 из 1
Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 23 окт 2018, 17:22
Dao
Приветствую!
Подскажите, пожалуйста.
Есть конфигурация: S7-300, 2 rack (IM360 <->IM361), дискретные и аналоговые модули (на обоих). Step 7 5.5.
Есть задача максимально подробно диагностировать неисправности и ошибки процессора, модулей, коммуникационные ошибки, ошибки доступа.
Какие ещё могут быть ошибки (критические/неважные) ? Какие OB нужно обязательно добавить, а какие не нужны ?
САМОЕ ГЛАВНОЕ! Кто-нибудь может дать примеры на SCL обработки ошибок в блоках OB 82/83/86/121/122 (и других нужных) ?
Где что обрабатывается ? Какие есть ньюансы ?
Т.к. подобным пока не занимался, сложно собрать в кучу всю информацию. Помогите, пожалуйста))
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 14:36
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
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 15:30
Dao
Я там уже всё проштудировал и этот код видел))
Но всё-равно, спасибо огромное за помощь!
А ещё кто-нибудь поделиться кодом на SCL/STL для разных OB ? Очень мало примеров в интернете.
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 15:52
SMax
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 16:55
mr_Frodo
Нажмите F1 в библиотеке проекта при выделенном изучаемым блоке , будете приятно удивлены.
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 17:07
Dao
mr_Frodo писал(а):Нажмите F1 в библиотеке проекта при выделенном изучаемым блоке , будете приятно удивлены.
Хелпом я пользуюсь)) Спасибо.
А вот примеров там нет((
Если у вас есть, обработки ошибок (например OB82), поделитесь ?)) Или хотя бы подробную расшифровку временных переменных блока (в хелпе только расшифровка названий).
Пока наиболее подробное описание нашёл тут:
https://cache.industry.siemens.com/dl/f ... uch_en.pdf
Но и там лишь малая часть затронута.
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 окт 2018, 22:27
mr_Frodo
Это в принципе и есть основа, дальше ваша фантазия и здравый смысл должны доделать. Занавес.
Re: Обработка ошибок OB (OB82, 83,86, 121,122)
Добавлено: 24 ноя 2018, 13:02
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) ?
Можно это тоже как-то анализировать и как ?