uint16 hinstance, /* "xxx" is the name of the function block
*/
/* logical number of the instance */
str_data *data, /* data: pointer to the instance data structure
*/
str_arg *arg /* pointer to the calling parameters structure
*/
)
{
}
Аргумент “hinstance” - это логический номер экземпляра. Он резервируется ISaGRAF для внутренних операций и не должен использоваться для программирования службы. Аргумент “data” - это дальний указатель на структуру данных связанных с экземпляром. Аргумент “arg” это дальний указатель на структуру, которая содержит значения параметров вызова. Программист должен использовать идентификаторы, определенные в “C” заголовке функционального блока для доступа к полям структуры “arg”.
Алгоритм “активизации” обрабатывает параметры вызова (сохраненные в структуре “arg”) и изменяет поля структуры “data”.
Следующий пример показывает службу активизации функционального блока TRIG (определение переднего фронта):
/* definitions stored in the function block "C" header */
typedef struct { /* calling parameters */
T_BOO _clk; /* trigger input */
} str_arg;
#define CLK (arg->_clk)
/* function block instance data structure */
typedef struct {
T_BOO prev_state; /* previous state of the trigger input */
T_BOO edge_detect; /* edge value: image of return param */