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

📄 winconsys.~h

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