⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winconsys.h

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -