📄 winconsys.h
字号:
#define AI_L_PTR ED_MAX*26
#define AI_LL_PTR ED_MAX*31
#define AI_DEAD_PTR ED_MAX*36
#define AO_HH_PTR ED_MAX*41
#define AO_H_PTR ED_MAX*46
#define AO_L_PTR ED_MAX*51
#define AO_LL_PTR ED_MAX*56
#define AO_DEAD_PTR ED_MAX*61
#define AO_INIT_PTR ED_MAX*66
#define AI_INIT_PTR ED_MAX*71
#define TM_PSET_PTR (ED_MAX*76)*2
#define TM_CURR_PTR TM_PSET_PTR+CT_MAX_CASE
#define CN_PSET_PTR TM_CURR_PTR+CT_MAX_CASE
#define CN_CURR_PTR CN_PSET_PTR+CT_MAX_CASE
// Digital TAG Input Coil 1xxxxx
#define DI_BARE_PTR 0
#define DI_SOFT_PTR DD_MAX_BIT
#define DI_PLON_PTR DD_MAX_BIT*3
#define DI_PLOFF_PTR DD_MAX_BIT*6
// Digital TAG Output Coil 0xxxxx
#define DO_BARE_PTR 0
#define DO_SOFT_PTR DD_MAX_BIT
#define AI_HH_BIT_PTR DD_MAX_BIT*3
#define AI_H_BIT_PTR AI_HH_BIT_PTR+ED_MAX*5
#define AI_L_BIT_PTR AI_H_BIT_PTR+ED_MAX*5
#define AI_LL_BIT_PTR AI_L_BIT_PTR+ED_MAX*5
#define AO_HH_BIT_PTR AI_LL_BIT_PTR+ED_MAX*5
#define AO_H_BIT_PTR AO_HH_BIT_PTR+ED_MAX*5
#define AO_L_BIT_PTR AO_H_BIT_PTR+ED_MAX*5
#define AO_LL_BIT_PTR AO_L_BIT_PTR+ED_MAX*5
#define TM_BIT_PTR AO_LL_BIT_PTR+ED_MAX*5
#define CN_BIT_PTR TM_BIT_PTR+CT_MAX_CASE
#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 ------------------------------------
*/
//------------- Modbus Master Unit Define --------------------
#define WinCON8000 "ICPDAS WinCON8000"
#define MODBUS_MASTER_UNIT_MAX 100
#define MIX_DISPLAY_CASE 10
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 -----------
//------------------ 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;
//-------------------- end of Parallel Slot I/O Module Define -----------
//------------ AO DO output Queue define ----------------------------------
#define DI_TYPE 1
#define DO_TYPE 2
#define AI_TYPE 3
#define AO_TYPE 4
#define AO_TYPE_ENG 5
typedef struct _AODO_OUTPUT
{
char type; // DO, AO type
char spare;
int addr; // Modbus DO or AD address
float val; // output data
} AODO_OUTPUT, *PAODO_OUTPUT;
#define QUEUE_SIZE sizeof(struct _AODO_OUTPUT)
#define QUEUE_MAX_CASE 1000
#define QUEUE_BUFFER_BYTE QUEUE_SIZE * QUEUE_MAX_CASE
//------------ end of AO DO output Queue define ----------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -