Download Print this page

Advertisement

Quick Links

Model AD12-8
Product Manual
MANUAL NUMBER : 00650-014-4C

Advertisement

loading

Summary of Contents for ICS Advent AD12-8

  • Page 1 Model AD12-8 Product Manual MANUAL NUMBER : 00650-014-4C...
  • Page 2 Support Library. Thank you. The information in this document is provided for reference only. ICS Advent does not assume any liability arising from the application or use of the information or products described herein. This document may contain or reference information and products protected by copyrights or patents and does not convey any license under the patent rights of ICS Advent, nor the rights of others.
  • Page 3 This page intentionally left blank Page - iv...
  • Page 4: Limited Warranty

    The limited warranty is void if the product has been subjected to alteration, neglect, misuse, or abuse; if any repairs have been attempted by anyone other than ICS Advent or its authorized agent; or if the failure is caused by accident, acts of God, or other causes beyond the control of ICS Advent or the manufacturer.
  • Page 5: Return Procedure

    Limitation of Liability In no event shall ICS Advent be liable for any defect in hardware, software, loss, or inadequacy of data of any kind, or for any direct, indirect, incidental, or consequential damages in connection with or arising out of the performance or use of any product furnished hereunder.
  • Page 6 Use caution when servicing any electrical component. We have tried to identify the areas which may pose a Caution or Warning condition in this manual; however, ICS Advent does not claim to have covered all situations which might require the use of a Caution or Warning.
  • Page 7 This page intentionally left blank Page - viii...
  • Page 8 Table of Contents Chapter 1: Functional Description ................1-1 Analog Inputs ............................. 1-1 Input System Expansion ........................1-1 Discrete Digital I/O ..........................1-1 Reference Voltage Output ........................1-1 Counter/Timer ............................ 1-2 Interrupts ............................1-2 Utility Software ..........................1-2 Enhancements ..........................1-3 Specifications ............................
  • Page 9 Using the Setup Program to Set the Base Address ..............3-4 Installing the AD12-8 Card ........................3-4 Calibration and Test ........................... 3-5 Calibration Procedure ........................3-5 Chapter 4: Programming the AD12-8 ............... 4-1 AD12-8 Register Address Map ......................4-1 Register Definitions ..........................4-1 Control Registers ........................4-1 Status Register ...........................
  • Page 10 Task 16: High Speed Conversions, Single Point Address ............5-18 Task 17: High Speed Conversions, Multiple Point Addresses ............ 5-19 Summary of Error Codes ........................5-21 Chapter 6: AD12-8 Windows Driver Reference ............6-1 Driver Features ..........................6-1 Using the Driver ..........................6-1 Task Summary ..........................
  • Page 11 Hardware Triggered Strobe ......................8-7 Appendix A: Linearization ..................A-1 Appendix B: Cabling and Connector Information ..........B-1 AD12-8 Output Connector Pin Assignments ..................B-1 Appendix C: Basic Integer Variable Storage ............C-1 CE Declaration of Conformity Page - xii...
  • Page 12 List of Figures Figure 1-1: AD12-8 Block Diagram ......................1-4 Figure 3-1: Option Selection Map ......................3-1 Figure 3-2: Standard Base Address Assignments for PC and PC/XT Computers ........3-3 Figure 3-3: Base Address Example ......................3-4 List of Tables Table 2-1: Configuration File Example .......................
  • Page 16 S@A S@A WPGU WPGU PVUQVU !7DU ' 8CG ' T@ 6I6GPB 6HQG 8PIW@SU@S DIQVU TU6SU UHS @P8 96U6 7VAA@S PQ" PVUQVU 8CG T@G@8U 8US ! 8GP8F PVUQVU 8PIUSPG B6U@ 8GP8F B6U@ B6DI PVUQVU T@G@8U 9DBDU6G ' 7DU 9DBDU6G DIU@SSVQU G@W@G !&...
  • Page 23 Declaration: function InPortb(byval address as integer) as integer Declaration: function InPort(byval address as integer) as integer Declaration: function OutPortb(byval address as integer, byval value as integer) as integer...
  • Page 24 Declaration: function OutPort(byval address as integer, byval value as integer) as integer Declaration: function Peek(byval segment as integer, byval offset as integer) as integer Declaration: function Poke(byval segment as integer, byval offset as integer, byval value as integer) as integer...
  • Page 28 Cr‘à Shtr V†htr AA D‡r…hyà T’†‡r€ à à I‚‡Ã V†hiyr A AA 6Uà Ch…qà 9v†x !!& Bh€rà 8‚‡…‚y !&'!&A Qh…hyyryà Q‚…‡Ã GQU! !"'!"7 7ˆ†Ã H‚ˆ†r !@'!@A 6†’pu…‚‚ˆ†Ã 8‚€ €ˆvph‡v‚†Ã 8PH# !A'!AA 6†’pu…‚‚ˆ†Ã 8‚€ €ˆvph‡v‚†Ã 8PH! "" A Q…‚‡‚‡’ƒrà 8h…q "!"!A YUÃ...
  • Page 29 Cr‘à …rƒ…r†r‡h‡v‚ " 7vh…’à …rƒ…r†r‡h‡v‚ 8‚‰r…†v‚Ã €ˆy‡vƒyvr… Tv‡puà D9 6& 6" Tv‡puà †r‡‡vt...
  • Page 32 S@B DTU@Sà 699S@TT S@69à AVI8UDPI XSDU@à AVI8UDPI 76T@à 699S@TTà à  69à G‚Ã 7’‡r 'à iv‡Ã 9vtv‡hyà Pˆ‡ƒˆ‡ 76T@à 699S@TTà à 69à Cvtuà 7’‡r T‡h…‡Ã 69à 8‚‰r…†v‚ 76T@à 699S@TTà à ! Srhqà †‡h‡ˆ†Ã …rtv†‡r… X…v‡rà 8‚‡…‚yà Srtv†‡r…Ã Æ 76T@à 699S@TTà à " 'Ã...
  • Page 33 86(5 (2&...
  • Page 34 $' $'...
  • Page 35 6& 6& %&'...
  • Page 36 6& 6& )XQFWLRQ Q…‚t…h€Ã 8‚ˆ‡r…à  Q…‚t…h€Ã 8‚ˆ‡r…à Q…‚t…h€Ã 8‚ˆ‡r…à ! Srhqà 7hpxà 8‚€€hq 8‚ˆ‡r…à SrhqX…v‡rà Aˆp‡v‚ 8‚ˆ‡r…à Gh‡puà 8‚€€hq SrhqX…v‡rà GTà 7’‡r SrhqX…v‡rà HTà 7’‡r SrhqX…v‡rà GTà 7’‡rà ‡urÃ HTà 7’‡r 02'(...
  • Page 38 _asm push DS mov AX,ES mov DS,AX /* call driver as normal */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(status)); _asm pop DS...
  • Page 39 _asm _emit 0x1E _asm _emit 0x8E _asm _emit 0xD8 /* call driver as normal */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(status)); _asm _emit 0x1F {$L a12drv} type param_array = array[1..5] of integer; var params : param_array; task,status : integer; procedure a12drv(task:word; param:word; status:word);external; a12drv(ofs(task),ofs(params),ofs(status)); DIM TASK%, STAT%, PARAMS%(5)
  • Page 40 COMMON SHARED PARAM%() DECLARE SUB A12DRV(TASK%, BYVAL PARAM%, STAT%) CALL A12DRV(TASK%, VARPTR(PARAM%(1)), STAT%) LINK /Q A12DRV.OBJ,A12DRV.QLB,,BQLB45.LIB; [ENTER] QB /L A12DRV.QLB [ENTER] BC /o YOURPROG;[ENTER] LINK YOURPROG+A12DRV;[ENTER] 10 DIM TASK%, STAT%, PARAMS(5) 20 DRIVERSEG = &H5000 30 DEF SEG = DRIVERSEG...
  • Page 41 40 DRIVER = 0 50 BLOAD “a12drv.bin”,DRIVER 60 CALL a12drv(TASK%,PARAMS%(1),STATUS%)
  • Page 44 task,params[5],status; /* these are globally declared variables */ task = 0; params[0] = 1; /* manual initialization */ params[1] = 0x300; /* base address = 300 hex */ params[2] = 3; /* use IRQ3 */ params[3] = 5; /* voltage range is 5 volts */ params[4] = 1;...
  • Page 45 int task,params[5],status; /* these are globally declared variables */ task = 1; a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */...
  • Page 46 int task,params[5],status; /* these are globally declared variables */ task = 2; params[0] = 14; /* fetch gain code for point address 14*/ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */ int task,params[5],status; /* these are globally declared variables */ task = 3; params[0] = 6;...
  • Page 47 6U %Qà Pˆ‡ƒˆ‡Ã Shtrà Tv‡puà Tr‡‡vt† BhvÃ 8‚qr B !à PAA B !à PI B 6DIà 2à B 6DIà 2à $ B 6DIà 2à ! B 6DIà 2à B 6DIà 2à B 6DIà 2à $ " B 6DIà 2à $ B 6DIÃ...
  • Page 48 int task,params[5],status; /* these are globally declared variables */ task = 5; params[0] = 0; /* first point address in range*/ params[1] = 31; /* last point address in range, two AT16-PS */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */...
  • Page 49 int task,params[5],status; /* these are globally declared variables */ task =6; params[0] = 16; /* fetch data from point address */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */...
  • Page 50 int task,params[5],status; /* these are globally declared variables */ task = 7; a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */...
  • Page 51 int task,params[5],status; /* these are globally declared variables */ int datbuf[100],chnbuf[100]; /* these are globally declared variables */ task = 8; params[0] = FP_OFF(datbuf); /* pass offset of data buffer */ params[1] = FP_OFF(chnbuf); /* pass offset of point/gain buffer */ params[2] = 100;...
  • Page 53 int task,params[5],status; /* these are globally declared variables */ int datbuf[100],chnbuf[100]; /* these are globally declared variables */ task = 9; params[0] = 1; /* initiate interrupt scan */ params[1] = 100; /* do 100 conversions on this scan */ params[2] = FP_OFF(datbuf);...
  • Page 54 U8Ã U`Q@ B6DI B6DIÃ 8P9@ €WPGUT8PVIU        SU9Ã U`Q@ B6DI B6DIÃ 8P9@ €WPGUT8PVIU  ...
  • Page 55 int task,params[5],status; /* these are globally declared variables */ task = 10; linearize the passed value */ params[0] = 1; /* manual linearization subtask */ params[1] = ‘t’; /* for t type thermocouple */ params[2] = 1801;/* counts * 16 at gain of 200 */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status));...
  • Page 56 params[3] = 5000;/* upper range */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */ /* replicate the assignment for point address 22 to point addresses 23-40 */ params[0] = 4; /* replication subtask */ params[1] = 22; /* source point address to replicate */ params[2] = 23;...
  • Page 57 int task,params[5],status; /* these are globally declared variables */ task = 11; params[0] = 5; /* set settle time sub task */ params[1] = 50; /* settle time count of 50 */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */ int task,params[5],status; /* these are globally declared variables */ task = 12;...
  • Page 58 int task,params[5],status; /* these are globally declared variables */ task = 13; a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */ int task,params[5],status; /* these are globally declared variables */ task = 14; params[0] = 1; /* counter 1 */...
  • Page 59 params[1] = 3; /* counter mode 3, square wave generator */ params[2] = 100; /* counter load value, acts as divide by 100 */ aa16drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status)); /* call the driver */ int task,params[5],status; /* these are globally declared variables */ task = 15; params[0] = 1;...
  • Page 60 int task,params[7],status; /* these are globally declared variables */ int datbuf[100],chnbuf[100]; /* these are globally declared variables */ task = 16; params[0] = FP_OFF(datbuf); /* pass offset of data buffer */ params[1] = 100; /* number of conversions */ params[2] = 5; /* channel 5 on the first AT16-P */ a12drv(FP_OFF(&task),FP_OFF(params),FP_OFF(&status));...
  • Page 61 int task,params[5],status; /* these are globally declared variables */ int datbuf[100],chnbuf[100]; /* these are globally declared variables */ task = 16; params[0] = FP_OFF(datbuf); /* pass offset of data buffer */ params[1] = FP_OFF(chnbuf); /* pass offset of point/gain buffer */ params[2] = 100;...
  • Page 64 Declare Function AD128_Init Lib “c:\ad128s\vbwin\a12drv.dll” (ByVal config As Integer, ByVal BaseAddr As Integer, ByVal range As Integer, card As Integer) As Integer...
  • Page 67 6U %Qà Pˆ‡ƒˆ‡Ã Shtrà Tv‡puà Tr‡‡vt† BhvÃ 8‚qr B !à PAA B !à PI B 6DIà 2à B 6DIà 2à $ B 6DIà 2à ! B 6DIà 2à B 6DIà 2à B 6DIà 2à $ " B 6DIà 2à $ B 6DIÃ...
  • Page 68 U8Ã U`Q@ B6DI B6DIÃ 8P9@ €WPGUT8PVIU        SU9Ã U`Q@ B6DI B6DIÃ 8P9@ €WPGUT8PVIU  ...
  • Page 83 6& 6& %&'...
  • Page 84 6& 6& )XQFWLRQ Q…‚t…h€Ã 8‚ˆ‡r…à  Q…‚t…h€Ã 8‚ˆ‡r…à Q…‚t…h€Ã 8‚ˆ‡r…à ! Srhqà 7hpxà 8‚€€hq 8‚ˆ‡r…à SrhqX…v‡rà Aˆp‡v‚ 8‚ˆ‡r…à Gh‡puà 8‚€€hq SrhqX…v‡rà GTà 7’‡r SrhqX…v‡rà HTà 7’‡r SrhqX…v‡rà GTà 7’‡rà ‡urÃ HTà 7’‡r 02'(...
  • Page 85 outportb(BASEADDRESS + 7,0x30); /* counter 0, mode 0 */ outportb(BASEADDRESS + 4,0xff); /* counter 0 low load byte */ outportb(BASEADDRESS + 4,0xff); /* counter 0 high load byte */ outportb(BASEADDRESS + 7,0x30); /* counter 0, latch command */ /* read in both bytes of the latched value and combine into an integer */ value = inportb(BASEADDRESS + 4) + (inportb(BASEADDRESS + 4) * 256;...
  • Page 86 task = 14; /* counter setup mode task */ params[0] = 0; /* setup counter #0 */ params[1] = 2; /* set counter #0 mode to 2 */ params[2] = 0xffff; /* set counter #0 count to ffff hex (65535) */ a12drv(FP_OFF(task),FP_OFF(params),FP_OFF(status));...
  • Page 89 function InitIRQ (MyIRQ: Byte) : Boolean; stdcall;external 'Win32IRQ.dll' index 1; function DetectIRQ: Boolean; stdcall; external "Win32IRQ.dll"index 2; function SendEOI: Boolean; stdcall; external "Win32IRQ.dll" index 3; extern "c" _declspec (dllimport) bool pascal InitIRQ (unsigned char MyIRQ); extern "c" _declspec (dllimport) bool pascal DetectIRQ (void); extern "c"...
  • Page 91 I ; ...
  • Page 92       I [                I [   ...
  • Page 93 1$0( )81&7,21  !W98  !W98à Q‚r…à s…‚€Ã ‡urà 8‚€ƒˆ‡r…à 7ˆ† 8USà 8GF 8‚ˆ‡r…à à 8y‚px " GT7à 9vtv‡hyà Pˆ‡ƒˆ‡à thvÃ p‚‡…‚yà s‚…à 6U %Q VT@S 9vtv‡hyà Pˆ‡ƒˆ‡à V†r… 7v‡Ã à 9vtv‡hyà Pˆ‡ƒˆ‡à thvÃ p‚‡…‚yà s‚…à 6U %Q HT7à 9vtv‡hyà Pˆ‡ƒˆ‡à thvÃ p‚‡…‚yà s‚…à 6U %Q &...
  • Page 94 Cvtuà 7’‡r G‚Ã 7’‡r Iˆ€ir… 7& 7à " 7à 7& 7" 7à ! 7à "!&%&     "!&%'...
  • Page 95 The technical documentation required to demonstrate this product meets the requirements of the EMC Directive and the Low Voltage Directive has been compiled by ICS Advent and is available for inspection by the relevant enforcement authorities. The CE mark was first applied in 2000.