1

Библиотека SysLibCallback.lib

Данная библиотека позволяет активировать пользовательские функции обратного вызова для событий системы исполнения. Она содержит функции SysCallbackRegister и SysCallbackUnregister.

Обе функции имеют тип BOOL и возвращают TRUE, если соответствующая функция обратного вызова успешно зарегистрирована или отключена, соответственно. Функции выполняются синхронно.

Прототип функции обратного вызова должен выглядеть так:

FUNCTION Callback : DWORD

VAR_INPUT

dwEvent:DWORD; // (* Событие *)

dwFilter:DWORD; // (* Фильтр *)

dwOwner:DWORD; // (* Источник *)

END_VAR

 

Внимание:  в целевых платформах RISC и Motorola 68K имя функции обратного вызова должны начинаться с „callback“!

 

Библиотечные функции SysCallbackRegister и SysCallbackUnregister имеют одинаковый набор параметров:

 

Входные 

переменные

Тип данных Описание
iPOUIndex INT POU индекс функции обратного вызова, может быть получен при помощи оператора INDEXOF(<имя функции >).
Event RTS_EVENT Событие в системе исполнения, по которому должна вызываться callback-функция. Определяется значением перечисления RTS_EVENT, определенного в данной библиотеке (см. ниже).

 

Перечисление RTS_EVENT определено следующим образом:

TYPE RTS_EVENT :

(

EVENT_ALL,
(* Общие события *)
EVENT_START,
EVENT_STOP,
EVENT_BEFORE_RESET,
EVENT_AFTER_RESET,
EVENT_SHUTDOWN,
(* Исключения системы исполнения *)
EVENT_EXCPT_CYCLETIME_OVERFLOW, (* Переполнение времени цикла *)
EVENT_EXCPT_WATCHDOG, (* Сработал программный сторожевой таймер МЭК задачи *)
EVENT_EXCPT_HARDWARE_WATCHDOG, (* Сработал аппаратный сторожевой таймер. Фатальная ошибка. *)
EVENT_EXCPT_FIELDBUS, (* Ошибка Fieldbus *)
EVENT_EXCPT_IOUPDATE, (* Ошибка обновления входов-выходов *)
(*Исключения выполнения *)
EVENT_EXCPT_ILLEGAL_INSTRUCTION, (* Недопустимая инструкция *)
EVENT_EXCPT_ACCESS_VIOLATION, (* Ошибка доступа *)
EVENT_EXCPT_PRIV_INSTRUCTION, (* Привилегированная операция *)
EVENT_EXCPT_IN_PAGE_ERROR, (* Ошибочная страница *)
EVENT_EXCPT_STACK_OVERFLOW, (* Переполнение стека *)
EVENT_EXCPT_MISALIGNMENT, (* Ошибка размещения по типу данных *)
EVENT_EXCPT_ARRAYBOUNDS, (* Выход за границы массива *)
EVENT_EXCPT_DIVIDEBYZERO, (* Деление на 0 *)
EVENT_EXCPT_OVERFLOW, (* Переполнение *)
EVENT_EXCPT_NONCONTINUABLE, (* Авария системы, продолжение работы невозможно *)
EVENT_EXCPT_NO_FPU_AVAILABLE, (* Мат. сопроцессор (FPU) недоступен *)
EVENT_EXCPT_FPU_ERROR, (* FPU: Неопределенная ошибка *)
EVENT_EXCPT_FPU_DENORMAL_OPERAND, (* FPU: Ошибочный операнд *)
EVENT_EXCPT_FPU_DIVIDEBYZERO, (* FPU: Деление на 0 *)
EVENT_EXCPT_FPU_INVALID_OPERATION, (* FPU: Ошибочная операция *)
EVENT_EXCPT_FPU_OVERFLOW, (* FPU: Переполнение*)
EVENT_EXCPT_FPU_STACK_CHECK, (* FPU: Перегрузка стека *)
(* События входов-выходов *)
EVENT_AFTER_READING_INPUTS,
EVENT_BEFORE_WRITING_OUTPUTS,
(* Прочие события *)
EVENT_TIMER, (* Прерывание по таймеру*)
EVENT_DEBUG_LOOP, (* Отладка по точке останова *)
(* Онлайн сервисы *)
EVENT_ONLINE_SERVICES_BEGIN := 500,
EVENT_LOGIN,
EVENT_CUSTOM_SERVICES,
(* Прерывания *)
EVENT_INT_0:=1000,
EVENT_INT_1,
EVENT_INT_2,
EVENT_INT_3,
EVENT_INT_4,
EVENT_INT_5,
EVENT_INT_6,
EVENT_INT_7,
EVENT_INT_8,
EVENT_INT_9,
EVENT_INT_10,
EVENT_INT_11,
EVENT_INT_12,
EVENT_INT_13,
EVENT_INT_14,
EVENT_INT_15,
EVENT_INT_255:=1255,
EVENT_MAX

);

END_TYPE

 

    Раздел: CDS_LIB Метки: , ,

    1 комметарий к "Библиотека SysLibCallback.lib"

    1. Evgen:

      Не совсем понятно все равно как работать с этими системными событиями. Можете объяснить. К примеру есть проект, в нем есть POU (PLC_PRG) необходимо к этому POU создать событие «Стоп»

    Оставить комментарий

    Отправить сообщение

    CoDeSys GSM/GPRS модем Lectus OPC MasterSCADA Modbus MX110 Omron OPC-сервер owen owen logic PLC Configuration PROFIBUS s-200 SCADA scada системы siemens siemens plc SIMATIC Simplight SMS step7 TRACE MODE Динамизация ИП-320 МЭК 1131–3 ОВЕН ОВЕН ПЛК ОВЕН ПЧВ ПЛК ПЛК ОВЕН ПР 110 Панель оператора Программируемое реле Частотный преобразователь библиотека в CoDeSys визуализация диспетчеризация конфигурация панели программирование ПЛК серия NS сименс плк частотник частотное управление язык CFC язык ST
    .