Только строки напечатанные жирным шрифтом
прототип: 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;
Содержание Назад Вперед