ISaGRAF. Version 3.4

         

Только строки напечатанные жирным шрифтом


прототип:          sample (count, reset_command, maximum_value);

                           max_detect := SAMPLE.Q;

                           count_result := SAMPLE.CV;

Интерфейс функционального блока:



Заголовок функционального блока:

/* function block interface - name: SAMPLE */

/* определение стандартных типов ISaGRAF  */

typedef long  T_BOO;

typedef long  T_ANA;

typedef float T_REAL;

typedef long  T_TMR;

typedef char  *T_MSG;

/* определение структуры параметров вызова */

typedef struct {

   T_BOO  _cu;

   T_BOO  _r;

   T_ANA  _pv;

} str_arg;

/* идентификаторы использующиеся для доступа к параметрам вызова*/

#define CU                                           (arg->_cu)

#define R                                              (arg->_r)

#define PV                                            (arg->_pv)

/* логические номера возвращаемых параметров */

#define FBLPNO_Q                            0

#define FBLPNO_CV                         1

/* end of file */

Исходный текст функционального блока:

( Только строки напечатанные жирным шрифтом вводятся программистом)

/* function block - name: SAMPLE */

#include <tasy0def.h>                       /* требуется для определения типов */

#include <grfb0255.h>                       /* заголовок*/

/* definition of the structure which contains the data for one instance */

typedef struct {

             T_BOO overflow;                  /* true:counting value >= programmed value */

             T_ANA value;                         /* counting current value */

} str_data;

/* initialization service: requires memory for instance data */

word FBINIT_sample (uint16 hinstance)

{

             return (sizeof (str_data));

}

/* activation service: up-counting algorithm */

void FBACT_sample (uint16 hinstance, str_data *data, str_arg *arg)

{

             if (R) data->value = 0;


Содержание  Назад  Вперед