system(21, <аргумент>)
Вызов функции system(21, <аргумент>) возвращает статистику обмена по шинам ST-BUS. В зависимости от значения <аргумента> позволяет получать количество отправленных/принятых пакетов для определенной шины ST-BUS или для определенного модуля ввода-вывода.
Для справки! К мастер-модулю, в зависимости от его аппаратной конфигурации, могут подключать несколько шин ST-BUS, каждая шина может состоять из одной или двух линий (резервированные, на случай, если одна выйдет из строя). К одной шине ST-BUS могут последовательно подключаться несколько модулей ввода-вывода.
![]() |
В качестве аргумента передается целое число, в битовой маске которого закодированы параметры запроса по правилам:
|
3 байт
|
2 байт
|
1 байт
|
0 байт
|
|
Номер линии BUSXXX
|
Номер модуля
|
Номер шины ST-BUS (1.. N)
|
Код запроса
|
Код запроса.
Обязательная часть аргумента (0 байт), может принимать значения:
Совместно с кодом запроса обязательно должен быть заполнен один из трех старших байтов, они являются взаимоисключающими с наивысшим приоритетом старшего байта.
|
Номер шины ST-BUS.
В 1 байте аргумента указывается номер шины ST-BUS:
В результате возвращается количество отправленных/принятых пакетов для всех модулей ввода-вывода, подключенных к указанной шине.
Пример формирования аргумента при необходимости на мастер-модуле M1201E получить количество ошибок по линии 2 (код запроса 6) шины ST-BUS 2:
![]() Примеры вызовов:
|
Номер модуля.
Во 2 байте аргумента указывается номер модуля ввода-вывода, а в результате возвращается количество отправленных/принятых пакетов для указанного модуля ввода-вывода. Если 2 байт принимает ненулевое значение, номер шины в 1 байте игнорируется.
Пример формирования аргумента при необходимости получения количества успешно принятых пакетов от модуля ввода-вывода №5 по линии 2 (код запроса 6):
![]() Примеры вызовов:
|
Номер линии.
В 3 байте указывается номер линии BUSXXX, а в результате возвращается количество отправленных/принятых пакетов для указанной линии на конкретном модуле ввода-вывода. При этом значения 1 и 2 битов игнорируются.
Пример формирования аргумента при необходимости получения количества ошибок по линии 2 (код запроса 6) линии BUS002:
![]() Примеры вызовов:
|




