Функциональный блок fb_Sys_Diag
Расположение: AbakPlcUtils.
Функциональный блок fb_Sys_Diag выполняет опрос тегов ПЛК из Shared_Memory и записывает результаты в глобальный список данных «abakplcutils.cpu_diagnose». Данный блок рекомендуется вызывать в отдельной задаче с частотой цикла 100 – 200 мс.
Входы:
1. NODE_BEGIN (BYTE) – Начальный номер модуля на CAN шине;
2. NODE_END (BYTE) – Конечный номер модуля на CAN шине;
3. MODUL_NUMBER (BYTE) – Количество установленных модулей на CAN шине;
4. CMD_Change_CPU (BOOL) – Команда: 0 – нет команды, 1 – переключить процессор.
Важно! Для корректной работы параметры NODE_BEGIN, NODE_END, MODUL_NUMBER должны находиться в диапазоне от 1 до 100 (включительно).
|
Важно! Параметры NODE_BEGIN, NODE_END, MODUL_NUMBER должны быть присвоены при вызове блока.
|
Важно! Если диагностика модулей не требуется, установите параметр NODE_BEGIN = 1, а параметр NODE_END = 0. В этом случае диагностика модулей выполняться не будет.
|
Результатом выполнения блока будет формирование глобального списка переменных «abakplcutils.cpu_diagnose», имеющего следующую структуру:
1. SERNUM (STRING) – серийный номер контроллера.
2. PLC_VERSION (STRING) – версия контроллера.
3. Power_Error (BOOL) – отказ одного из блоков питания.
4. RDCY_Error (BOOL) – отказ резервирования процессора.
5. CPU_Master (BOOL) – процессор – мастер для COM-портов.
6. IO_Module_Alarm BOOL) – отказ одного из модулей ввода-вывода.
7. IO_Module_Warning (BOOL) – предупреждение одного из модулей ввода-вывода.
8. CDS_PLCIdent (RDCY.Redundancy_Interfaces.PLC_IDENT) – идентификатор ПЛК в резервированной паре.
9. Interfases (udt_Interfaces) – состояние интерфейсов процессора. Представляет собой структуру Х, которая содержит следующие данные типа (BOOL):
-
CAN1_Good – Отказ CAN1;
-
CAN2_Good – Отказ CAN2;
-
ETH0_Link – Кабель ETH0;
-
ETH1_Link – Кабель ETH1;
-
ETH2_Link – Кабель ETH2;
-
ETH3_Link – Кабель ETH3;
-
ETH4_Link – Кабель ETH4;
-
COM1_Active – COM1 активен;
-
COM2_Active – COM2 активен;
-
COM3_Active – COM3 активен;
-
COM4_Active – COM4 активен;
-
COM5_Active – COM5 активен;
-
COM6_Active – COM6 активен;
-
COM7_Active – COM7 активен;
-
COM8_Active – COM8 активен;
-
COM9_Active – COM9 активен;
-
COM10_Active – COM10 активен;
-
COM11_Active – COM11 активен;
-
COM12_Active – COM12 активен.
10. IO_Modul (ARRAY[1..100] OF udt_IO_Modul_State) – массив состояний модулей ввода-вывода. Каждая ячейка массива соответствует одному устройству и является структурой со следующими полями:
-
Device_State (INT) – состояние устройств на CAN-шине(0 – INIT, 1 – RESET_COMM, 2 – RESET_APP, 3 – PRE_OPERATIONAL,
4 – STOPPED, 5 – OPERATIONAL, 6 – UNKNOWN, 7 – NOT_AVAIL); -
HardwareDiag (UINT) – Внутренняя диагностика по битам(0 – FAUT MEMORY, 1 – FAULT CHANEL, 2 – FAULT CAN1, 3 – FAULT CAN2,
4 – FAULT POWER1, 5 – FAULT POWER2); -
Fault (BOOL) – Отказ модуля: TRUE – FAULT;
-
Warning (BOOL) – Предупреждение модуля: TRUE – WARNING.
11. CPU_Load (REAL) – загрузка процессора, %.
12. CPU_Overload (REAL) – флаг «Перегрузка процессора».
13. Data_Time (udt_Data_Time) – дата и время ПЛК в виде структуры со следующими полями в формате (UINT):
-
YEAR – год (в ПЛК);
-
MONTH – месяц (в ПЛК);
-
DAY – число (в ПЛК);
-
HOUR – час (в ПЛК);
-
MINUTE – минуты (в ПЛК);
-
SECOND – секунды (в ПЛК).
14. com_port_state (ARRAY [1..24] OF BOOL) – активность COM-портов. Представлен массивом. Ячейка массива с номером [N] является статусом активности порта № «N».
15. CDS_RED_STATE (RDCY.Redundancy_Interfaces.STATE) – статус резервирования.
16. CDS_RED_ERROR (RDCY.Redundancy_Interfaces.ERROR) – код ошибки резервируемой пары.