📄 winconsys.~h
字号:
#define DO_PLON_PTR CN_BIT_PTR+CT_MAX_CASE
#define DO_PLOFF_PTR DO_PLON_PTR+(DO_MAX_PLUS_BYTE)*8
#define DO_INIT_PTR DO_PLOFF_PTR+(DO_MAX_PLUS_BYTE)*8
#define DI_INIT_PTR DO_INIT_PTR+DD_MAX_BIT*3
/*
//-------------- Modbus I/O Address Mapping list --------------------
// Input Coil Mapping
unsigned char DI_BARE[DD_MAX_BYTE]; // 100001 - 100512
unsigned char DI_SOFT[DD_MAX_BYTE*2]; // 100513 - 101536
unsigned char DI_PLON[DI_MAX_PLUS_BYTE]; // 101537 - 103072
unsigned char DI_PLOFF[DI_MAX_PLUS_BYTE]; // 103073 - 104608
// Output Coil Mapping
unsigned char DO_BARE[DD_MAX_BYTE]; // 000001 - 000512
unsigned char DO_SOFT[DD_MAX_BYTE*2]; // 000513 - 001536
unsigned char AI_HH[ED_MAX_DD_BYTE*5]; // 001537 - 002176
unsigned char AI_H[ED_MAX_DD_BYTE*5]; // 002177 - 002816
unsigned char AI_L[ED_MAX_DD_BYTE*5]; // 002817 - 003456
unsigned char AI_LL[ED_MAX_DD_BYTE*5]; // 003457 - 004096
unsigned char AO_HH[ED_MAX_DD_BYTE*5]; // 004097 - 004736
unsigned char AO_H[ED_MAX_DD_BYTE*5]; // 004737 - 005376
unsigned char AO_L[ED_MAX_DD_BYTE*5]; // 005377 - 006016
unsigned char AO_LL[ED_MAX_DD_BYTE*5]; // 006017 - 006656
unsigned char TM_BIT[CT_MAX_DD_BYTE]; // 006657 - 006784
unsigned char CN_BIT[CT_MAX_DD_BYTE]; // 006785 - 006912
unsigned char DO_PLON[DO_MAX_PLUS_BYTE]; // 006913 - 013824
unsigned char DO_PLOFF[DO_MAX_PLUS_BYTE]; // 013825 - 020736
unsigned char DO_INIT[DD_MAX_BYTE*3]; // 020737 - 022272
unsigned char DI_INIT[DD_MAX_BYTE*3]; // 022273 - 023808
// Input Register Mapping, two addr. for one float
float AI_BARE[ED_MAX]; // 300001 - 300256
float AI_ENG[ED_MAX]; // 300257 - 300512
float AI_SOFT[ED_MAX*4]; // 300513 - 301536
// Holdingt Register Mapping, two addr. for one float
float AO_BARE[ED_MAX]; // 400001 - 400256
float AO_ENG[ED_MAX]; // 400257 - 400512
float AO_SOFT[ED_MAX*4]; // 400513 - 401536
float AI_RH[ED_MAX]; // 401537 - 401792
float AI_RL[ED_MAX]; // 401793 - 402048
float AO_RH[ED_MAX]; // 402049 - 402304
float AO_RL[ED_MAX]; // 402305 - 402560
float AI_BH[ED_MAX]; // 402561 - 402816
float AI_BL[ED_MAX]; // 402817 - 403072
float AO_BH[ED_MAX]; // 403073 - 403328
float AO_BL[ED_MAX]; // 403329 - 403584
float AI_FL[ED_MAX]; // 403585 - 403840
float AO_FL[ED_MAX]; // 403841 - 404096
float AI_HH[ED_MAX*5]; // 404097 - 405376
float AI_H[ED_MAX*5]; // 405377 - 406656
float AI_L[ED_MAX*5]; // 406657 - 407936
float AI_LL[ED_MAX*5]; // 407937 - 409216
float AI_DEAD[ED_MAX*5]; // 409217 - 410496
float AO_HH[ED_MAX*5]; // 410497 - 411776
float AO_H[ED_MAX*5]; // 411777 - 413056
float AO_L[ED_MAX*5]; // 413057 - 414336
float AO_LL[ED_MAX*5]; // 414337 - 415616
float AO_DEAD[ED_MAX*5]; // 415617 - 416896
float AO_INIT[ED_MAX*5]; // 416897 - 418176
float AI_INIT[ED_MAX*5]; // 418177 - 419456
short TM_PSET[CT_MAX_CASE]; // 419457 - 419584
short TM_CURR[CT_MAX_CASE]; // 419585 - 419712
short CN_PSET[CT_MAX_CASE]; // 419713 - 419840
short CN_CURR[CT_MAX_CASE]; // 419841 - 419968
//-------------- end of Mapping ------------------------------------
*/
// Parallel Slot I/O Module Define
#define I8040 1 // 32 channel DI
#define I8041 2 // 32 channel DO
#define I8042 3 // 16 DI and 16 DO
#define I8051 4 // 16 channel DI
#define I8052 5 // 8 channel DI
#define I8053 6 // 16 channel DI
#define I8054 7 // 8 DI and 8 DO
#define I8055 8 // 8 DI and 8 DO
#define I8056 9 // 16 channel DO
#define I8057 10 // 16 channel DO
#define I8058 11 // 8 channel DI
#define I8060 12 // 6 channel DO
#define I8063 13 // 4 DI and 4 DO
#define I8064 14 // 8 channel DO
#define I8065 15 // 8 channel DO
#define I8066 16 // 8 channel DO
#define I8068 17 // 8 channel DO
#define I8069 18 // 8 channel DO
#define I8017H 19 // 8 channel AI
#define I8024 20 // 4 channel AO
typedef struct _ICPDAS_IO_DEF
{
short mod_no; // Module define No.
short in_max; // Input channel no. 0 for empty channel
short out_max; // Output channel no. 0 for empty channel
} ICPDAS_IO_DEF, *PICPDAS_IO_DEF;
#define SLOT_MAX_CASE 7 // max. slot for WinCON 8000
typedef struct _PARAELLEL_IO
{
int mod_no; // I/O Module No. 0 is no use
int addr_di; // DI Modbus start address
int addr_do; // DO Modbus start address
int addr_ai; // AI Modbus start address
int addr_ao; // AO Modbus start address
int gain_ao; // for AO use
int gain_ai; // for AI use
} PARALLEL_IO, *PPARALLEL_IO;
//------------- Modbus Master Unit Define --------------------
#define MODBUS_MASTER_UNIT_MAX 100
typedef struct _MODBUS_UNIT // for modbus master driver
{
char active; // 1: active
char station; // slave station ID No.
char fun ; // function code
char spare1; // spare code
int words; // no. of request words/bits
int req_addr; // request start addr.
int save_addr; // Common variable Soft TAG Address
} MODBUS_UNIT, *pMODBUS_UNIT;
typedef struct _RS232C_PARA // comm. parameter which set by user
{
int portno; // COM Port No.
long baud;
char parity;
char data_bit;
char stop_bit;
char flow;
int timeout; // timer out check
int rtu_timeout;
} RS232C_PARA, *pRS232C_PARA;
//------------------ end of Modbus Master Unit define -----------
typedef struct _COMM_UNIT
{
short id;
short start_addr;
short words; // Register words or Coil point
short fun;
short flag; // 0: no use 1: use
} COMM_UNIT, *PCOMM_UNIT;
#define POLL_MAX_CASE 100
#define DEMO_SYS_TBL "DEMO8000.TBL"
#define WinCON8000 "ICPDAS WinCON8000"
#if defined (MAINPROGRAM)
ICPDAS_IO_DEF IO_DEF[20]=
{ {I8040, 32, 0}, {I8041, 0, 32}, {I8042, 16, 16}, {I8051, 16, 0},
{I8052, 8, 0}, {I8053, 16, 0}, {I8054, 8, 8}, {I8055, 8, 8}, {I8056, 0, 16},
{I8057, 0, 16}, {I8058, 8, 0}, {I8060, 0, 6}, {I8063, 4, 4}, {I8064, 0, 8},
{I8065, 0, 8}, {I8066, 0, 8}, {I8068, 0, 8}, {I8069, 0, 8},
{I8017H, 8, 0}, {I8024, 0, 4} };
PARALLEL_IO PARA_IO[SLOT_MAX_CASE];
REGISTER_TAG Reg; // online monitor TAG
COIL_TAG Coil; // online monitor TAG
COMM_UNIT POLL_UNIT[POLL_MAX_CASE];
short POLL_TOTAL; // total unit of active polling
short POLL_CURR; // current polling unit no.
COMM_UNIT CURR_UNIT; // current polling unit
MODBUS_UNIT MB_UNIT[MODBUS_MASTER_UNIT_MAX];
RS232C_PARA MB_PORT;
REGISTER_TAG Reg_Def; // for offline define TAG
COIL_TAG Coil_Def; // for offline define TAG
#else
extern ICPDAS_IO_DEF IO_DEF[20];
extern PARALLEL_IO PARA_IO[SLOT_MAX_CASE];
extern REGISTER_TAG Reg; // online monitor TAG
extern COIL_TAG Coil; // online monitor TAG
extern COMM_UNIT POLL_UNIT[POLL_MAX_CASE];
extern short POLL_TOTAL; // total unit of active polling
extern short POLL_CURR; // current polling unit no.
extern COMM_UNIT CURR_UNIT; // current polling unit
extern MODBUS_UNIT MB_UNIT[MODBUS_MASTER_UNIT_MAX];
extern RS232C_PARA MB_PORT;
extern REGISTER_TAG Reg_Def; // for offline define TAG
extern COIL_TAG Coil_Def; // for offline define TAG
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -