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...
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.
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 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 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à Shtrà Tvpuà Trvt Bhvà 8qr 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 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à Shtrà Tvpuà Trvt Bhvà 8qr 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 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.