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

📄 driver.pas

📁 温度恒温控制,与PLC,工控板通讯,实现炉字过程控制.
💻 PAS
📖 第 1 页 / 共 5 页
字号:
 PA_MODE_COUNT_SRC_FOUT_3	   =	$0700;
 PA_MODE_COUNT_SRC_GATE_N_M1       =    $0C00;
 PA_MODE_GATE_SRC_GATE_NO	   =	$0000;
 PA_MODE_GATE_SRC_OUT_N_M1	   =	$1000;
 PA_MODE_GATE_SRC_GATE_N	   =	$2000;
 PA_MODE_GATE_SRC_GATE_N_M1	   =	$3000;
 PA_MODE_GATE_POSITIVE   	   =	$0000;
 PA_MODE_GATE_NEGATIVE	           =    $4000;

{ Counter Mode }
 MODE_A   =       $0000;
 MODE_B   =       $0000;
 MODE_C   =       $8000;
 MODE_D   =       $0010;
 MODE_E   =       $0010;
 MODE_F   =       $8010;
 MODE_G   =       $0020;
 MODE_H   =       $0020;
 MODE_I   =       $8020;
 MODE_J   =       $0030;
 MODE_K   =       $0030;
 MODE_L   =       $8030;
 MODE_O   =       $8040;
 MODE_R   =       $8050;
 MODE_U   =       $8060;
 MODE_X   =       $8070;

{ define the FOUT register parameter}
 PA_FOUT_SRC_EXTER_CLK	=    $0000;
 PA_FOUT_SRC_CLK_N	=    $0100;
 PA_FOUT_SRC_FOUT_N_M1	=    $0200;
 PA_FOUT_SRC_CLK_10MHZ	=    $0300;
 PA_FOUT_SRC_CLK_1MHZ	=    $0400;
 PA_FOUT_SRC_CLK_100KHZ	=    $0500;
 PA_FOUT_SRC_CLK_10KHZ	=    $0600;
 PA_FOUT_SRC_CLK_1KHZ	=    $0700;
 {define for USB4751 FOUT}
 PA_FOUT_SRC_CLK_20MHZ	=    $0800;
 PA_FOUT_SRC_CLK_5MHZ	=    $0900;
{ --------------------------- V2.0b -------------------------------------- }

{ ************************************************************************ }
{   define event type for interrupt and DMA transfer                       }
{ ************************************************************************ }
  ADS_EVT_INTERRUPT  =  $01;   { interrupt }
  ADS_EVT_BUFCHANGE  =  $02;   { buffer change }
  ADS_EVT_TERMINATED =  $04;   { termination }
  ADS_EVT_OVERRUN    =  $08;   { overrun }
  ADS_EVT_WATCHDOG   =  $10;   { watchdog actived }
  ADS_EVT_CHGSTATE   =  $20;   { change state event }
  ADS_EVT_ALARM      =  $40;   { alarm event }
  ADS_EVT_PORT0      =  $80;   { port 0 event }
  ADS_EVT_PORT1      = $100;   { port 1 event }
  ADS_EVT_PATTERNMATCH    = $200;  { Pattern Match for DI }
  ADS_EVT_COUNTER    = $201;   { Persudo event for COUNTERMATCH and COUNTEROVERFLOW }
  ADS_EVT_COUNTERMATCH    = $202;  { Counter Match setting NO. for DI }
  ADS_EVT_COUNTEROVERFLOW = $203;  { Counter Overflow for DI }
  ADS_EVT_STATUSCHANGE    = $204;  { Status Change for DI }
  ADS_EVT_FILTER     = $205;   { Filter Event }
{ --------------------------- V2.2 -------------------------------------- }
  ADS_EVT_WATCHDOG_OVERRUN = $206;   { Watchdong Event }
{ --------------------------- V2.2 -------------------------------------- }

  ADS_EVT_DEVREMOVED = $400;  { for USB device }

{ ************************************************************************ }
{    define event name by device number                                    }
{ ************************************************************************ }
  ADS_EVT_INTERRUPT_NAME  = 'ADS_EVT_INTERRUPT';
  ADS_EVT_BUFCHANGE_NAME  = 'ADS_EVT_BUFCHANGE';
  ADS_EVT_TERMINATED_NAME = 'ADS_EVT_TERMINATED';
  ADS_EVT_OVERRUN_NAME    = 'ADS_EVT_OVERRUN';
  ADS_EVT_WATCHDOG_NAME   = 'ADS_EVT_WATCHDOG';
  ADS_EVT_CHGSTATE_NAME   = 'ADS_EVT_CHGSTATE';
  ADS_EVT_ALARM_NAME      = 'ADS_EVT_ALARM';
  ADS_EVT_PATTERNMATCH_NAME    = 'ADS_EVT_PATTERNMATCH';
  ADS_EVT_COUNTERMATCH_NAME    = 'ADS_EVT_COUNTERMATCH';
  ADS_EVT_COUNTEROVERFLOW_NAME = 'ADS_EVT_COUNTEROVERFLOW';
  ADS_EVT_STATUSCHANGE_NAME    = 'ADS_EVT_STATUSCHANGE';
{ --------------------------- V2.2 -------------------------------------- }
 ADS_EVT_WATCHDOG_OVERRUN_NAME    = 'ADS_EVT_WATCHDOG_OVERRUN';
{ --------------------------- V2.2 -------------------------------------- }

{ ************************************************************************ }
{    define FIFO size                                                      }
{ ************************************************************************ }
  FIFO_SIZE         =  512;     { 1K FIFO size (512* 2byte/each data) }

{ ************************************************************************ }
{   Function ID Definition                                                 }
{ ************************************************************************ }
  FID_DeviceOpen              =   0;
  FID_DeviceClose             =   1;
  FID_DeviceGetFeatures       =   2;
  FID_AIConfig                =   3;
  FID_AIGetConfig             =   4;
  FID_AIBinaryIn              =   5;
  FID_AIScale                 =   6;
  FID_AIVoltageIn             =   7;
  FID_AIVoltageInExp          =   8;
  FID_MAIConfig               =   9;
  FID_MAIBinaryIn             =  10;
  FID_MAIVoltageIn            =  11;
  FID_MAIVoltageInExp         =  12;
  FID_TCMuxRead               =  13;
  FID_AOConfig                =  14;
  FID_AOBinaryOut             =  15;
  FID_AOVoltageOut            =  16;
  FID_AOScale                 =  17;
  FID_DioSetPortMode          =  18;
  FID_DioGetConfig            =  19;
  FID_DioReadPortByte         =  20;
  FID_DioWritePortByte        =  21;
  FID_DioReadBit              =  22;
  FID_DioWriteBit             =  23;
  FID_DioGetCurrentDOByte     =  24;
  FID_DioGetCurrentDOBit      =  25;
  FID_WritePortByte           =  26;
  FID_WritePortWord           =  27;
  FID_ReadPortByte            =  28;
  FID_ReadPortWord            =  29;
  FID_CounterEventStart       =  30;
  FID_CounterEventRead        =  31;
  FID_CounterFreqStart        =  32;
  FID_CounterFreqRead         =  33;
  FID_CounterPulseStart       =  34;
  FID_CounterReset            =  35;
  FID_QCounterConfig          =  36;
  FID_QCounterConfigSys       =  37;
  FID_QCounterStart           =  38;
  FID_QCounterRead            =  39;
  FID_AlarmConfig             =  40;
  FID_AlarmEnable             =  41;
  FID_AlarmCheck              =  42;
  FID_AlarmReset              =  43;
  FID_COMOpen                 =  44;
  FID_COMConfig               =  45;
  FID_COMClose                =  46;
  FID_COMRead                 =  47;
  FID_COMWrite232             =  48;
  FID_COMWrite485             =  49;
  FID_COMWrite85              =  50;
  FID_COMInit                 =  51;
  FID_COMLock                 =  52;
  FID_COMUnlock               =  53;
  FID_WDTEnable               =  54;
  FID_WDTRefresh              =  55;
  FID_WDTReset                =  56;
  FID_FAIIntStart             =  57;
  FID_FAIIntScanStart         =  58;
  FID_FAIDmaStart             =  59;
  FID_FAIDmaScanStart         =  60;
  FID_FAIDualDmaStart         =  61;
  FID_FAIDualDmaScanStart     =  62;
  FID_FAICheck                =  63;
  FID_FAITransfer             =  64;
  FID_FAIStop                 =  65;
  FID_FAIWatchdogConfig       =  66;
  FID_FAIIntWatchdogStart     =  67;
  FID_FAIDmaWatchdogStart     =  68;
  FID_FAIWatchdogCheck        =  69;
  FID_FAOIntStart             =  70;
  FID_FAODmaStart             =  71;
  FID_FAOScale                =  72;
  FID_FAOLoad                 =  73;
  FID_FAOCheck                =  74;
  FID_FAOStop                 =  75;
  FID_ClearOverrun            =  76;
  FID_EnableEvent             =  77;
  FID_CheckEvent              =  78;
  FID_AllocateDMABuffer       =  79;
  FID_FreeDMABuffer           =  80;
  FID_EnableCANEvent          =  81;
  FID_GetCANEventData         =  82;
  FID_TimerCountSetting       =  83;
  FID_CounterPWMSetting       =  84;
  FID_CounterPWMEnable        =  85;
  FID_DioTimerSetting         =  86;
  FID_EnableEventEx           =  87;
  FID_DICounterReset          =  88;
  FID_FDITransfer             =  89;
  FID_EnableSyncAO            =  90;
  FID_WriteSyncAO             =  91;
  FID_AOCurrentOut            =  92;
  FID_ADAMCounterSetHWConfig  =  93;
  FID_ADAMCounterGetHWConfig  =  94;
  FID_ADAMAISetHWConfig	      =  95;	
  FID_ADAMAIGetHWConfig	      =  96;
  FID_ADAMAOSetHWConfig	      =  97;
  FID_ADAMAOGetHWConfig	      =  98;
  FID_GetFIFOSize             =  99;
  FID_PWMStartRead	      =  100;
  FID_FAIDmaExStart           =  101;
  FID_FAOWaveFormStart	      =  102; 	
  
  { --------------------------- V2.0b -------------------------------- }
  FID_FreqOutStart            =  104;
  FID_FreqOutReset            =  105;
  FID_CounterConfig           =  106;
  FID_DeviceGetParam          =  107;
  { --------------------------- V2.0b -------------------------------- }

  { --------------------------- V2.0c -------------------------------- }
  FID_DeviceSetProperty = 108;   {PCI-1755}
  FID_DeviceGetProperty = 109;   {PCI-1755}
  FID_WritePortDword    = 110;   {PCI-1755}
  FID_ReadPortDword     = 111;   {PCI-1755}
  FID_FDIStart          = 112;   {PCI-1755}
  FID_FDICheck          = 113;   {PCI-1755}
  FID_FDIStop           = 114;   {PCI-1755}
  FID_FDOStart          = 115;   {PCI-1755}
  FID_FDOCheck          = 116;   {PCI-1755}
  FID_FDOStop           = 117;   {PCI-1755}
  FID_ClearFlag         = 118;   {PCI-1755}
  { --------------------------- V2.0c -------------------------------- }
  { --------------------------- V2.2 -------------------------------- }
  FID_WatchdogStart     = 119;    {PCI-1758}
  FID_WatchdogFeed      = 120;    {PCI-1758}
  FID_WatchdogStop      = 121;    {PCI-1758}
  { --------------------------- V2.2 -------------------------------- }

  { --------------------------- V2.2C -------------------------------- }
  FID_DioReadPortWord   = 122;    
  FID_DioWritePortWord  = 123;    
  FID_DioReadPortDword  = 124;    
  FID_DioWritePortDword = 125;    
  FID_DioGetCurrentDOWord  = 126; 
  FID_DioGetCurrentDODword = 127; 
  FID_FAODmaExStart        = 128;
  FID_FAITerminate = 129;
  FID_FAOTerminate = 130;
  { --------------------------- V2.2C -------------------------------- }
  
  FID_DioEnableEventAndSpecifyDiPorts = 131;
  FID_DioDisableEvent                 = 132;
  FID_DioGetLatestEventDiPortsState   = 133;
  FID_DioReadDiPorts                  = 134;
  FID_DioWriteDoPorts                 = 135;
  FID_DioGetCurrentDoPortsState       = 136;

  FID_FAOCheckEx                      = 137;

  FID_DioEnableEventAndSpecifyEventCounter  = 138;
  FID_CntrEnableEventAndSpecifyEventCounter = 139;
  FID_CntrGetLatestEventCounterValue        = 140;
  FID_CntrDisableEvent                      = 141;

  FID_CustomerDataRead                      = 142;
  FID_CustomerDataWrite                     = 143;
Type
{ ************************************************************************ }
{   define gain listing                                                    }
{ ************************************************************************ }
 GAINLIST = Record
  usGainCde   : Smallint;
  fMaxGainVal : Single;
  fMinGainVal : Single;
  szGainStr   : array [0..15] of char;
 End;

{ ************************************************************************ }
{   Define hardware board(device) features.                                }
{                                                                          }
{   Note: definition for dwPermutaion member                               }
{                                                                          }
{          Bit 0: Software AI                                              }
{          Bit 1: DMA AI                                                   }
{          Bit 2: Interrupt AI                                             }
{          Bit 3: Condition AI                                             }
{          Bit 4: Software AO                                              }
{          Bit 5: DMA AO                                                   }
{          Bit 6: Interrupt AO                                             }
{          Bit 7: Condition AO                                             }
{          Bit 8: Software DI                                              }
{          Bit 9: DMA DI                                                   }
{          Bit 10: Interrupt DI                                            }
{          Bit 11: Condition DI                                            }
{          Bit 12: Software DO                                             }
{          Bit 13: DMA DO                                                  }
{          Bit 14: Interrupt DO                                            }
{          Bit 15: Condition DO                                            }
{          Bit 16: High Gain                                               }
{          Bit 17: Auto Channel Scan                                       }
{          Bit 18: Pacer Trigger                                           }
{          Bit 19: External Trigger                                        }
{          Bit 20: Down Counter                                            }
{          Bit 21: Dual DMA                                                }
{          Bit 22: Monitoring                                              }
{          Bit 23: QCounter                                                }
{                                                                          }
{ ************************************************************************ }
 DEVFEATURES= Record
    szDriverVer : array[0..7] of char;                      { device driver version }
    szDriverName: array[0..MAX_DRIVER_NAME_LEN-1] of char;  { device driver name    }
    dwBoardID      : Longint;    { board ID                              }
    usMaxAIDiffChl : Smallint;    { Max. number of differential channel   }
    usMaxAISiglChl : Smallint;    { Max. number of single-end channel     }
    usMaxAOChl     : Smallint;    { Max. number of D/A channel            }
    usMaxDOChl     : Smallint;    { Max. number of digital out channel    }
    usMaxDIChl     : Smallint;    { Max. number of digital input channel  }
    usDIOPort      : Smallint;    { specifies if programmable or not      }
    usMaxTimerChl  : Smallint;    { Max. number of Counter/Timer channel  }
    usMaxAlarmChl  : Smallint;    { Max number of  alram channel          }
    usNumADBit     : Smallint;    { number of bits for A/D converter      }
    usNumADByte    : Smallint;    { A/D channel width in bytes.           }
    usNumDABit     : Smallint;    { number of bits for D/A converter.     }
    usNumDAByte    : Smallint;    { D/A channel width in bytes.           }
    usNumGain      : Smallint;    { Max. number of gain code              }
    glGainList    : array[0..15] of GAINLIST;   { Gain listing }
    dwPermutation : array [0..3] of Longint;    { Permutation }
 End;

{ ************************************************************************ }
{    AOSET Definition                                                      }
{ ************************************************************************ }
 AOSET = Record
    usAOSource : Smallint;     { 0-internal, 1-external }
    fAOMaxVol  : Single;      { maximum output voltage }
    fAOMinVol  : Single;      { minimum output voltage }
    fAOMaxCur  : Single;      { maximum output voltage } 
    fAOMinCur  : Single;      { minimum output voltage }
    
 End;

 AORANGESET = Record
    usGainCount: Smallint;
    usAOSource : Smallint;     { 0-internal, 1-external }
    usAOType   : Smallint;     { 0-voltage, 1-current   }
    usChan     : Smallint;     
    fAOMax     : Single;       { maximum output } 
    fAOMin     : Single;       { minimum output }    
 End;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -