Summary of Contents for Addi-Data ADDIALOG PA 3110
Page 1
Technical support: +49 (0)7223 / 9493-0 Technical description ADDIALOG PA 3110 Analog input and output channels 9th edition 04/1999...
Page 2
Read carefully this licence before using the standard software. The right for using this software is given to the customer, if he/she agrees to the conditions of this licence. - this software can only be used for configuring ADDI-DATA boards. - copying the software is forbidden (except for archiving/ saving data and for replacing defective data carriers).
Page 3
W A R N I N G In case of improper handling and if the board is not used for the purpose it is intended for: people may be the board, PC and the environment injured peripheral devices may be may be damaged polluted...
Page 4
Declaration of Conformity This declaration is valid for the following product: ADDIALOG PA 3110 Analog inputs and outputs, 12/14 bits optically isolated It is made by ADDI-DATA GmbH Meß- und Steuerungstechnik Dieselstraße 3 D-77833 Ottersweier in sole responsibility and is valid on the understanding that the product is competently installed, used and maintained, according to the respective security regulations as well as to the manufacturer's instructions regarding its intended use.
Table of contents PA 3110 INTENDED PURPOSE OF THE BOARD ..........1 Limits of use....................2 USER ....................3 Qualification ....................3 Personal protection ..................3 HANDLING THE BOARD ..............4 TECHNICAL DATA................5 Electromagnetic compatibility (EMC) ............. 5 Physical set-up of the board ................5 Options......................
Page 6
PA 3110 Table of contents CONNECTING THE PERIPHERAL............24 Connection principle ................... 24 Connector pin assignment ................24 Connection examples .................. 26 FUNCTIONS ..................28 Analog output channels ................28 Analog input channels ................. 28 Time-multiplex system .................. 29 SOFTWARE EXAMPLES..............31 Initialisation....................31 9.1.1 Initialisation of the PA 3110 under DOS and Windows 3.11 ........31 a) Flow chart......................31 b) Example in C for DOS and Windows 3.11............32...
Page 7
Table of contents PA 3110 9.4.2 Cyclic conversion with DMA without delay............49 a) Flow chart..................... 49 b) Example in C for DOS ................... 50 c) Example in C for Windows 3.1x..............51 d) Example in C for Windows NT / 95 (asynchronous mode)......52 e) Example in C for Windows NT / 95 (synchronous mode) .......
Page 8
Figures and tables PA 3110 Figures Fig. 3-1: Wrong handling......................4 Fig. 3-2: Correct handling.......................4 Fig. 5-1: Component scheme....................10 Fig. 5-2: Jumper location and settings at delivery ..............11 Fig. 6-1: DIP switches......................14 Fig. 6-2: Slot types .........................15 Fig. 6-3: Opening the blister pack..................15 Fig.
Technical description Chapter 1 PA 3110 INTENDED PURPOSE OF THE BOARD The PA 3110 board is the interface between an industrial process and a personal computer (PC). It is to be used in a free ISA slot. The PC is to comply with the EU directive 89/336/EEC and the specifications for EMC protection.
PA 3110 Technical description Chapter 1 Limits of use Our boards are not to be used for securing emergency stop functions. The emergency stop functions are to be secured separately. This securing must not be influenced by the board or the PC. WARNING! The EMC tests have been carried out in a specific appliance configuration.
Technical description Chapter 2 PA 3110 USER Qualification Only persons trained in electronics are entitled to perform the following: installation, • use, • maintenance. • Personal protection Consider the country-specific regulations about the prevention of accidents • electrical and mechanical installations •...
Technical description Chapter 4 PA 3110 TECHNICAL DATA Electromagnetic compatibility (EMC) The board has been subjected to EMC tests in an accredited laboratory. The board complies as follows with the limit values set by the norms EN50082-2, EN55011, EN55022: True value Set value ESD..............
PA 3110 Technical description Chapter 4 Options SF, DF: Precision filter for the analog input channels Precision current inputs 0-20 mA or 4-20 mA Remark: with a current range of 4-20 mA, the accuracy is altered Versions The board PA 3110 is available in the following versions: Version Analog input channels Analog output channels...
Page 15
Technical description Chapter 4 PA 3110 Analog input channels: Number of analog input channels: ....16/8 SE/diff. for PA 3110-16x 8/4 SE/diff. for PA3110-8x Analog resolution: ........... 14-bit, 1 among 16383 Max. sampling rate (for 1 channel): ....100 kHz Data transfer: ...........
Page 16
PA 3110 Technical description Chapter 4 Selectable gain: ..........through PGA 1, 2, 5, 10 (selectable by software) System noise: ........... Bipolar: Gain x1:± 1/2 LSB Gain x2:± 1/2 LSB Gain x10:± 2 LSB Unipolar: Gain x1:± 1/2 LSB Gain x2:± 1/2 LSB Gain x10:±...
Page 17
Technical description Chapter 4 PA 3110 Analog output channels (continued): Monotony: ............12-bit Offset error: ............. ± 3 mV max. Unipolar ± 20 mV max. Bipolar Gain error: ............± 0.2 % of FSR max. Galvanic separation to the PC: ......500 VDC min. Voltage after Reset: .........
Technical description Chapter 5 PA 3110 Jumper settings 5.2.1 Jumper location and settings at delivery Fig. 5-2: Jumper location and settings at delivery...
PA 3110 Technical description Chapter 5 5.2.2 Jumper settings Table 5-1: Jumper settings Jumper Settings Functions Settings at delivery Level after reset - Output channels 5 to 8 0 V (in unipolar mode) -10 V (in bipolar mode) Level after reset - Output channels 5 to 8 Not set 5 V (in unipolar mode) 0 V (in bipolar mode)
You will find additional information to these different steps in the sections 6.1 to 6.5. IMPORTANT! You have installed already one or more ADDI-DATA boards in your PC, and you wish to install an additional board? Proceed as if you wished to install one single board.
Technical description Chapter 6 PA 3110 Base address WARNING! If the base address set is wrong, the board and/or the PC may be damaged. Before installing the board The base address is set at delivery on the address 0300H. Check, that •...
Technical description Chapter 6 PA 3110 Inserting the board IMPORTANT! Please observe the safety instructions. 6.2.1 Opening the PC Switch off your PC and all the units connected to the PC. • Pull the PC mains plug from the socket. •...
Technical description Chapter 6 PA 3110 6.2.3 Inserting the board Discharge yourself from electrostatic charges • • • • Insert the board vertically into the chosen slot. • • • • Fig. 6-4: Inserting the board Secure the board to the rear of the PC housing with the screw •...
You can download the latest version of the ADDIREG program from the Internet: http://www.addi-data.de http://www.addi-data.com The CD also contains standard software for the ADDI-DATA boards: - 16-bit for MS-DOS and Windows 3.11 - 32-bit for Windows NT/95. 6.3.1 Software installation under MS-DOS and Windows 3.11 - Copy the contents of PA3110\16bit on a disk.
ADDIREG program. 6.4.1 Program description IMPORTANT! Insert the ADDI-DATA boards to be registered before starting the ADDIREG program. If the board is not inserted, the user cannot test the registration. Once the program is called up, the following dialog box appears.
Page 27
The base address selected with the ADDIREG program must correspond to the one set through DIP-switches. Access: Selection of the access mode for the ADDI-DATA digital boards. Access in 8-bit or 16-bit. PCI bus / slot: Used PCI slot. If the board is no PCI board, the message "NO" is displayed.
Technical description Chapter 6 PA 3110 DMA name: When the board supports 2 DMA channels, you can select which DMA channel is to be changed. DMA channel: Selection of the used DMA channel. Buttons: Edit Selection of the highlighted board with the different parameters set in the text boxes. Click on "Edit"...
Technical description Chapter 6 PA 3110 Default: Sets the standard parameters of the board. More information: You can change the board specific parameters like the identifier string, the COM number, the operating mode of a communication board, etc... If your board does not support this information, you cannot activate this button. Save: Saves the parameters and registers the board.
Technical description Chapter 6 PA 3110 If the test has been successfully completed you can quit the ADDIREG program. The board is initialised with the set parameters and can now be operated. In case the registration data is to be modified, it is necessary to boot your PC again. A message asks you to do so.
PA 3110 6.4.5 Software downloads from the Internet You can download the latest version of the device driver for the PA 3110 board. http://www.addi-data.de. or http://www.addi-data.com If you have any questions, do not hesitate to send us an e-mail to info@addi-data.de...
PA 3110 Technical description Chapter 8 FUNCTIONS Analog output channels The board has 4 or 8 analog output channels. They are set to a defined level after Power-ON Reset. Update of the channels 1- 16-bit write commands on I/O addresses 2- dummy read A bit of the Status Register indicates whether all channels are ready for updating.
Technical description Chapter 8 PA 3110 The scan list allows to acquire data in different ways: - 1 channel after the other through software trigger (each channel must be triggered), - All channels at once through software trigger, - through Timer0: the list is handled cyclically, - through Timer0 &...
PA 3110 Technical description Chapter 8 The following table (without guarantee) gives indications for setting the variable ui_ConvertTiming. The optimum time depends on your system and can only be established through experiments. Table 8-1: Direct conversion (software controlled) R of the ui_ConvertTiming signal source <100R...
Technical description Chapter 9 PA 3110 SOFTWARE EXAMPLES Initialisation 9.1.1 Initialisation of the PA 3110 under DOS and Windows 3.11 a) Flow chart Initialisation Begin If Windows program then i_PA3110_InitCompiler i_PA3110_SetBoardInformation Initialisation OK ? (return value = 0 ?) Initialisation Initialisation Error...
Technical description Chapter 9 PA 3110 b) Example in C for DOS and Windows 3.11 int Initialisation(unsigned char *pb_BoardHandle) #ifdef _Windows i_PA3110_InitCompiler (DLL_COMPILER_C); #endif if(i_PA3110_SetBoardInformation (0x390, // IRQ3 pb_BoardHandle) == 0) return (0); /* OK */ else return (-1); /* ERROR */...
Technical description Chapter 9 PA 3110 9.1.2 Initialisation of the PA 3110 under Windows NT / 95 a) Flow chart Initialisation Begin If Windows program then i_PA3110_InitCompiler Initialisation OK ? (return value = 0 ?) i_PA3110_SetBoardInformationWin32 Initialisation OK ? (return value = 0 ?) Initialisation Initialisation Error...
Technical description Chapter 9 PA 3110 c) Example in C for Windows NT / 95 int Initialisation(unsigned char *pb_BoardHandle) if (i_PA3110_InitCompiler (DLL_COMPILER_C) == 0) if(i_PA3110_SetBoardInformationWin32 (“PA3110-00“, pb_BoardHandle) == 0) return (0); /* OK */ else return (-1); /* ERROR */ else return (-1);...
Technical description Chapter 9 PA 3110 Interrupt 9.2.1 Interrupt routine under DOS and Windows 3.11 a) Flow chart for DOS, Windows 3.11 and Windows NT / 95 (asynchronous mode) Interrupt routine Begin Interrupt mask End of conversion(EOC). Interrupt mask = 1 Save buffer Conversion driven by timer is...
Technical description Chapter 9 PA 3110 b) Example in C for DOS and Windows 3.11 unsigned int ui_SaveArray [16]; /* Global buffer unsigned int ui_TimerIntCpt = 0; /* Timer interrupt counter */ unsigned char b_ReceiveInterrupt = 0; /* Interrupt flag _VOID_ v_InterruptRoutine (BYTE_ b_BoardHandle, BYTE_ b_InterruptMask, PUINT_ pui_ValueArray) unsigned int ui_Cpt;...
Technical description Chapter 9 PA 3110 c) Example in C for Windows NT / 95 (Asynchronous mode) unsigned int ui_SaveArray [16]; /* Global Buffer */ unsigned int ui_TimerIntCpt = 0; /* Timer interrupt counter */ unsigned char b_ReceiveInterrupt = 0; /* Interrupt flag */ _VOID_ v_InterruptRoutine ( BYTE_ b_BoardHandle, BYTE_ b_InterruptMask, PUINT_ pui_ValueArray, BYTE_ b_UserCallingMode,...
Technical description Chapter 9 PA 3110 d) Flow chart for Windows NT / 95 (synchronous mode) Interrupt routine Begin i_PA3110_KRNL_Write1AnalogValue Interrupt mask End of conversion(EOC). Interrupt mask = 1 Save buffer Conversion driven by timer is Interrupt mask = 2 completed.
Technical description Chapter 9 PA 3110 e) Example in C for Windows NT / 95 (synchronous mode) typedef struct unsigned int ui_SaveArray [16]; /* Global Buffer */ unsigned int ui_TimerIntCpt ; /* Timer interrupt counter */ unsigned char b_ReceiveInterrupt ; /* Interrupt flag */ }str_UserStruct;...
Technical description Chapter 9 PA 3110 Direct conversion of analog inputs 9.3.1 Testing one analog input a) Flow chart Test 1 analog input Begin Initialisation Return value = 0 i_PA3110_Read1AnalogInput i_PA3110_CloseBoardHandle Test 1 analog input...
Technical description Chapter 9 PA 3110 b) Example in C void main (void) unsigned char b_BoardHandle; unsigned int ui_ReadValue; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_Read1AnalogInput (b_BoardHandle, PA3110_CHANNEL_0, PA3110_1_GAIN, PA3110_UNIPOLAR, PA3110_DISABLE, &ui_ReadValue) == 0) printf (“ui_ReadValue = %u“, ui_ReadValue); else printf (“Read value error“);...
Technical description Chapter 9 PA 3110 9.3.2 Testing all analog inputs a) Flow chart Test all analog inputs Begin Initialisation Return value = 0 i_PA3110_ReadMoreAnalogInput i_PA3110_CloseBoardHandle Test all analog inputs...
Technical description Chapter 9 PA 3110 Cyclic conversion of the analog inputs 9.4.1 Cyclic conversion without DMA and delay a) Flow chart Test cyclic conversion without DMA Begin Initialisation Wait for interrupt Read Value Return value = 0 i_PA3110_StopAnalogInputAcquisition i_PA3110_SetBoardIntRoutineXX Return value = 0 i_PA3110_ClearAnalogInputAcquisition i_PA3110_InitAnalogInputAcquisition...
Technical description Chapter 9 PA 3110 b) Example in C for DOS void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineDos(b_BoardHandle, v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 c) Example in c for Windows 3.1x void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin16(b_BoardHandle, v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 d) Example in C for Windows NT / 95 (asynchronous mode) void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32(b_BoardHandle, ASYNCHRONOUS_MODE, 0,NULL,v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 e) Example in C for Windows NT / 95 (synchronous mode) void main(void) int i_Cpt; unsigned char b_Gain [4];unsigned char b_Polar [4];unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32(b_BoardHandle,SYNCHRONOUS_MODE, sizeof(str_UserStruct), (void **) &ps_GlobalUserStruct, v_InterruptRoutine) == 0)
Technical description Chapter 9 PA 3110 9.4.2 Cyclic conversion with DMA without delay a) Flow chart Test cyclic conversion with DMA Begin Initialisation Wait for interrupt Read Value Return value = 0 i_PA3110_StopAnalogInputAcquisition i_PA3110_SetBoardIntRoutineXX Return value = 0 i_PA3110_ClearAnalogInputAcquisition i_PA3110_InitAnalogInputAcquisition i_PA3110_ResetBoardIntRoutine Return value = 0 i_PA3110_CloseBoardHandle...
Technical description Chapter 9 PA 3110 b) Example in C for DOS void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineDos(b_BoardHandle, v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 c) Example in C for Windows 3.1x void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin16(b_BoardHandle, v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 d) Example in C for Windows NT / 95 (asynchronous mode) void main(void) int i_Cpt; unsigned char b_Gain [4]; unsigned char b_Polar [4]; unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32(b_BoardHandleASYNCHRONOUS_MODE,0,NULL, v_InterruptRoutine) == 0) b_Channel[0] = PA3110_CHANNEL_0;...
Technical description Chapter 9 PA 3110 e) Example in C for Windows NT / 95 (synchronous mode) void main(void) int i_Cpt; unsigned char b_Gain [4];unsigned char b_Polar [4];unsigned char b_Channel [4]; unsigned char b_BoardHandle; if (Initialisation(&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32(b_BoardHandle,SYNCHRONOUS_MODE, sizeof(str_UserStruct), (void **) &GlobalUserStruct, v_InterruptRoutine) == 0)
Technical description Chapter 9 PA 3110 Analog output channels 8.5.1 Testing one analog output channel a) Flow chart Test 1 analog output Begin Initialisation Return value = 0 i_PA3110_Write1AnalogValue i_PA3110_CloseBoardHandle Test 1 analog output...
Technical description Chapter 9 PA 3110 b) Example in C void main (void) unsigned char b_BoardHandle; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_WriteAnalogValue (b_BoardHandle, 4095) == 0) printf (“Write test OK“); else printf (“Write value error“); i_PA3110_CloseBoardHandle (b_BoardHandle); else printf (“Initialisation error“);...
Technical description Chapter 9 PA 3110 9.5.2 Testing several analog output channels a) Flow chart Test several analog outputs Begin Initialisation Return value = 0 i_PA3110_WriteMoreAnalogValue i_PA3110_CloseBoardHandle Test several analog outputs...
Technical description Chapter 9 PA 3110 Timer 9.6.1 Testing the timer interrupt a) Flow chart Test timer interrupt Begin Return value = 0 Initialisation Wait for timer Return value = 0 interrupt i_PA3110_SetBoardIntRoutineXXX i_PA3110_StopTimerWatchdog Return value = 0 i_PA3110_InitTimerWatchdog i_PA3110_ResetBoardIntRoutine Return value = 0 i_PA3110_StartTimerWatchdog i_PA3110_CloseBoardHandle...
Technical description Chapter 9 PA 3110 b) Example in C for DOS void main (void) unsigned char b_BoardHandle; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineDOS (b_BoardHandle, v_InterruptRoutine) == 0) ui_TimerIntCpt = 0; if (i_PA3110_InitTimerWatchdog (b_BoardHandle, PA3110_TIMER, 1000, PA3110_ENABLE) == 0) if (i_PA3110_StartTimerWatchdog (b_BoardHandle) == 0) while (ui_TimerIntCpt == 0);...
Technical description Chapter 9 PA 3110 c) Example in C for Windows 3.1x void main (void) unsigned char b_BoardHandle; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin16 (b_BoardHandle, v_InterruptRoutine) == 0) ui_TimerIntCpt = 0; if (i_PA3110_InitTimerWatchdog (b_BoardHandle, PA3110_TIMER, 1000, PA3110_ENABLE) == 0) if (i_PA3110_StartTimerWatchdog (b_BoardHandle) == 0) while (ui_TimerIntCpt == 0);...
Technical description Chapter 9 PA 3110 d) Example in C for Windows NT / 95 (asynchronous mode) void main (void) unsigned char b_BoardHandle; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32 (b_BoardHandle,PA3110_ASYNCHRONOUS_MODE, 0,NULL,v_InterruptRoutine) == 0) ui_TimerIntCpt = 0; if (i_PA3110_InitTimerWatchdog (b_BoardHandle, PA3110_TIMER, 1000, PA3110_ENABLE) == 0) if (i_PA3110_StartTimerWatchdog (b_BoardHandle) == 0) while (ui_TimerIntCpt == 0);...
Technical description Chapter 9 PA 3110 e) Example in C for Windows NT / 95 (synchronous mode) void main (void) unsigned char b_BoardHandle; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_SetBoardIntRoutineWin32 (b_BoardHandle,PA3110_SYNCHRONOUS_MODE, sizeof(str_UserStruct),(void **) &ps_GlobalUserStruct,v_InterruptRoutine) == 0) ps_GlobalUserStruct->ui_TimerIntCpt = 0; if (i_PA3110_InitTimerWatchdog (b_BoardHandle, PA3110_TIMER, 1000, PA3110_ENABLE) == 0) if (i_PA3110_StartTimerWatchdog (b_BoardHandle) == 0)
Technical description Chapter 9 PA 3110 9.6.2 Testing the watchdog a) Flow chart Test watchdog Begin Loop Initialisation i_PA3110_ReadWatchdogStatus Return value = 0 i_PA3110_InitTimerWatchdog Loop until status = 0 Return value = 0 i_PA3110_StopTimerWatchdog i_PA3110_StartTimerWatchdog Return value = 0 i_PA3110_CloseBoardHandle i_PA3110_Write1AnalogValue Test watchdog...
Technical description Chapter 9 PA 3110 b) example in C void main (void) unsigned char b_BoardHandle; unsigned char b_WatchdogSatus; if (Initialisation (&b_BoardHandle) == 0) if (i_PA3110_InitTimerWatchdog (b_BoardHandle, PA3110_WATCHDOG, 1000, PA3110_DISABLE) == 0) if (i_PA3110_StartTimerWatchdog (b_BoardHandle) == 0) i_PA3110_Write1AnalogValue (b_BoardHandle, 1, PA3110_UNIPOLAR, 8192); i_PA3110_ReadWatchdogStatus (b_BoardHandle, &b_WatchdogSatus);...
INDEX PA 3110 INDEX error analysis 23 ADDIREG changing the configuration 22 jumpers removing 22 location 11 settings at delivery 11 adressing see base address limit values 6–9 base address 14 energy requirements 6 board options 6 handling 4 insert 16 intended prupose 1 close 16 physical set-up 5...
Need help?
Do you have a question about the ADDIALOG PA 3110 and is the answer not in the manual?
Questions and answers