Вызов функции system(44, <аргумент>) используется для чтения ошибок. Вызывать функцию необходимо в конце цикла, так как системный вызов возвращает ошибки, накопленные в текущем цикле работы.
Список аргументов:
Аргумент
Типы возвращаемых ошибок
1
Ошибки зеркализации
3
Ошибки драйвера
4
Ошибки выполнения приложения
5
Ошибки питания, температуры
6
Глобальные флаги ошибок
7
Глобальные флаги (диагностическая плата)
8
Код перезапуска
9
Режим работы исполнительной системы
10
Положение DIP переключателей (битовая маска)
11
Состояние дискретных выходов (битовая маска)
12
Состояние дискретных входов (битовая маска)
Ошибки зеркализации [битовая маска].
Вызов функции system(44, 1) возвращает целое число с закодированными в его битовой маске ошибками зеркализации. Задействованы 14 младших битов, при возникновении ошибки соответствующий бит принимает значение TRUE.
Номер бита
Краткое описание ошибки
0
Не задан режим резервирования
1
Несоответствие режимов резервирования
2
Ошибка контрольной суммы
3
Несоответствие размера данных
4
Несоответствие версии приложения
5
Несоответствие состава переменных
6
Несоответствие состава ф.блоков
7
Несоответствие состава файлов
8
Ошибка записи файла
9
Ошибка чтения файла
10
Установлена блокировка
11
Ошибка инициализации задачи связи
12
Ошибка запроса (несоответствие фрейма, таймаут, и др.)
13
Неверно задан IP-адрес
Ошибки драйвера [целое число].
Вызов функции system(44, 3) возвращает код ошибки драйвера в виде целого числа.
Код ошибки
Краткое описание ошибки
0
Нет ошибок
1
Ошибка доступа к разделяемой памяти
2
Ошибка доступа к семафору
3
Ошибка доступа к памяти устройства
4
Ошибка драйвера
5
PIC не отвечает
6
Несуществующий указатель
7
Некорректный режим работы PIC
8
Несоответствие количества переданных и принятых пакетов
9
Ошибочная команда
10
Ошибочное состояние мастера
11
Ошибка обработчика прерывания мастера
Ошибки выполнения приложения [битовая маска].
Вызов функции system(44, 4) возвращает целое число с закодированными в его битовой маске ошибками выполнения приложения. Задействованы 6 младших битов, при возникновении ошибки соответствующий бит принимает значение TRUE.
Номер бита
Краткое описание ошибки
0
Целочисленное деление на ноль
1
Переполнение при преобразовании FPU в целое
2
FPU: деление на ноль
3
FPU: неверный формат
4
FPU: переполнение в плюс бесконечность
5
FPU: переполнение в минус бесконечность
Ошибки питания, температуры [битовая маска].
Вызов функции system(44, 5) возвращает целое число с закодированными в его битовой маске ошибками питания или температуры. Задействованы 6 младших битов, в случае ошибки соответствующий бит принимает значение TRUE.
Номер бита
Краткое описание ошибки
0
Напряжение питания 1 ниже нормы
1
Напряжение питания 1 выше нормы
2
Напряжение питания 2 ниже нормы
3
Напряжение питания 2 выше нормы
4
Зарезервирован, не используется
5
Превышение допустимой температуры
Глобальные флаги ошибок [битовая маска].
Вызов функции system(44, 6) возвращает целое число с закодированными в его битовой маске глобальными флагами ошибок. Задействованы 9 младших битов, при возникновении ошибки соответствующий бит принимает значение TRUE.
Номер бита
Краткое описание ошибки
0
Наличие ошибок модулей
1
Наличие ошибок каналов
2
Наличие ошибок мастера
3
Наличие ошибок зеркализации
4
Наличие ошибок конфигурации
5
Наличие ошибок последовательных линий
6
Наличие ошибок линий ethernet
7
Наличие ошибок ST-BUS.
Отслеживание данного бита позволяет контролировать обмен с модулями ввода-вывода по шине ST-BUS: true - имеются ошибки, false - ошибок нет.
При резервировании процессорной части на резервном мастер-модуле отслеживание 7 бита позволяет контролировать обмен основного мастера с модулями ввода-вывода. Если нарушается линия зеркализации по Ethernet, но присутствует обмен по шине ST-BUS, резервный мастер-модуль остается в состоянии “Резервный”.
На резервном мастере флаг выставляется, если в течение времени Watchdog резервным мастер-модулем не зафиксирован корректный обмен по ST-BUS.
Вызов функции system(44, 7) возвращает целое число с закодированными в его битовой маске флагами диагностической платы. Задействованы все 32 бита, при возникновении ошибки соответствующий бит принимает значение TRUE.
Номер бита
Краткое описание ошибки
0
Наличие динамических ошибок выполнения приложения (runtime)
1
Ненулевой код запуска/обнаружен сброс модуля
2
Приложение находится в режиме отладки
3
Напряжение питания вышло из заданного диапазона (+аккумуляторы)
4
Температура окружающей среды вышла из заданного диапазона
5
Наличие аппаратных ошибок работы модулей
6
Наличие ошибок конфигурации модулей
7
Наличие аппаратных ошибок работы юнитов
8
Наличие ошибок чтения метрологических констант
9
Наличие ошибок внешних цепей юнитов
10
Наличие ошибок шины ST-BUS.
Отслеживание данного бита позволяет контролировать обмен с модулями ввода-вывода по шине ST-BUS: true - имеются ошибки, false - ошибок нет.
При резервировании процессорной части на резервном мастер-модуле отслеживание 10 бита позволяет контролировать обмен основного мастера с модулями ввода-вывода. Если нарушается линия зеркализации по Ethernet, но присутствует обмен по шине ST-BUS, резервный мастер-модуль остается в состоянии “Резервный”.
На резервном мастере флаг выставляется, если в течение времени Watchdog резервным мастер-модулем не зафиксирован корректный обмен по ST-BUS.
11
Наличие ошибок внешних коммуникаций
12
Наличие ошибок внутренних коммуникаций
13
Наличие ошибок горячего резервирования
14
DIP MODE 1 (switch) холодный старт
15
DIP MODE 2 (switch) запрет запуска исполнительной системы
16
DIP MODE 3 (switch) начальный статус "Основной"/"Резервный"
17
DIP MODE 4 (switch) резерв
18
DIP MODE 5 (switch) резерв
19
DIP MODE 6 (switch) технологический режим
20
RUN-STOP (switch) состояние переключателя RUN/STOP
21
Текущий статус "Основной"/"Резервный"
22
Напряжение литиевой батареи ниже 2.5В
23
Наличие аппаратных ошибок мастера
24
Наличие ошибок обмена с модулями
25
Состояние дискретного выхода DO-1
26
Состояние дискретного выхода DO-2
27
Состояние дискретного выхода DO-3
28
Состояние дискретного входа DI-1
29
Состояние дискретного входа DI-2
30
Состояние дискретного входа DI-3
31
Состояние дискретного входа DI-4
Код перезапуска [целое число].
Вызов функции system(44, 8) возвращает код перезапуска мастер-модуля (целое число).
Код
Краткое описание
0
Нормальный режим работы (загрузка приложения или сброс)
1
Нормальное включение питания
2
Остановка переключателем STOP
3
Остановка внешним запросом
5
Остановка из-за ошибки приложения
16
Перезапуск по питанию
17
Перезапуск по Watchdog
32
Остановка из-за внутренней ошибки
Режим работы исполнительной системы [битовая маска].
Вызов функции system(44, 9) возвращает целое число с закодированным в его битовой маске режимом работы исполнительной системы. Задействованы младшие 6 битов.
Номер бита
Краткое описание ошибки
0
Приложение в рабочем режиме
1
Обрабатывается предыдущий запрос
2
Приложение в режиме пошаговой отладки / ошибка запуска
3
Приложение остановлено / RUN/STOP=STOP
4
Запрет автозапуска приложения
5
Мастер-модуль/приложение в "резервном" режиме
Положение DIP переключателей [битовая маска].
Вызов функции system(44, 10) возвращает целое число, в битовой маске которого закодированы фактические положения DIP переключателей, размещенных на корпусе мастер-модуля.
Например, для мастер-модуля М1201Е с отключенным режимом автозапуска (включен DIP-переключатель №2) и сетевыми настройками по умолчанию (включен DIP-переключатель №4) возвращается 1010 = 10102:
Состояние дискретных выходов [битовая маска].
Вызов функции system(44, 11) возвращает целое число, в битовой маске которого закодированы состояния всех дискретных выходов на мастер-модуле.
Количество дискретных выходов зависит от модели мастер-модуля и описано в руководстве по эксплуатации на конкретное устройство. Для чтения состояния одного дискретного выхода используйте вызов функции system(31, ...).
Состояние дискретных входов [битовая маска].
Вызов функции system(44, 12) возвращает целое число, в битовой маске которого закодированы состояния всех дискретных входов на мастер-модуле.
Количество дискретных входов зависит от модели мастер-модуля и описано в руководстве по эксплуатации на конкретное устройство. Для чтения состояния одного дискретного входа используйте вызов функции system(31, ...).