XP8600 and XP8900 Users Manual Copyright Trademarks ® ® ® Notice to Users Company Address Z-World, Inc.
Page 3
ABLE OF ONTENTS About This Manual XP8600 Chapter 1: Overview Chapter 2: Getting Started Chapter 3: I/O Configurations Chapter 4: Software Reference XP8600/XP8900 Table of Contents s iii...
Page 4
XP8900 Chapter 5: Overview Chapter 6: Getting Started Chapter 7: I/O Configurations Chapter 8: Software Reference APPENDICES Appendix A: PLCBus iv s Table of Contents XP8600/XP8900...
Page 5
Appendix B: Specifications Appendix C: Connecting and Mounting Multiple Boards Appendix D: Simulated PLCBus Connections Index XP8600/XP8900 Table of Contents s v...
Page 6
Blank vi s Table of Contents XP8600/XP8900...
Assumptions The C Programming Language C: A Reference Manual Z180 MPU User's Manual Z180 Serial Communication Controllers Z80 Microprocessor Family User's Manual Intel386 EX Embedded Microprocessor Users Manual Intel386 SX Microprocessor Programmers Reference Manual XP8600/XP8900 About This Manual s vii...
Page 8
Real-Time Clock Serial Interface Board SRAM Static Random Access Memory UART Universal Asynchronous Receiver Transmitter Icons Table 2. Icons Icon Meaning Icon Meaning Note Refer to or see Please contact Caution High Voltage Factory Default viii s About This Manual XP8600/XP8900...
< > Angle brackets occasionally enclose classes of terms. a | b | c A vertical bar indicates that a choice should be made from among the items listed. Pin Number 1 Pin 1 Measurements XP8600/XP8900 About This Manual s ix...
Page 10
Blank x s About This Manual XP8600/XP8900...
ETTING TARTED HAPTER XP8600 Getting Started s 15...
Page 16
XP8600 Components The XP8600 boards offer two channels of 12-bit digital-to-analog conver- sion outputs. Figure 2-1 illustrates the basic layout and orientation of components, headers, and connectors. (J4) Power +15 V (Z1) Op-Amps Figure 2-1. XP8600 Board Layout 16 s Getting Started...
Page 17
Connecting Expansion Boards to a Z-World Controller Controller PLCBus Port Pin 1 XP8600 Controller With PLCBus Figure 2-2. Connecting XP8600 Expansion Board to Controller PLCBus XP8600 Getting Started s 17...
Page 18
Setting Expansion Board Addresses 18 s Getting Started XP8600...
Address Target Board int plcXP86Init( int Addr ) Operate Target Board int plcXP86Out( int Addr, unsigned int oValue ) Sample Program XP8600 Software Reference s 31...
Page 32
(i = 0; i <= 7; ++i) { if (plcXP86Init(i)==-1) { // do a read to locate the board printf("board %d is not located\n\n",i); else { printf("Board %d is located \n",i); plcXP86Out(i*2,0x0ffff); printf("\n"); hitwd(); Dynamic C Technical Reference 32 s Software Reference XP8600...
int plcdac_addr( int bd ) void plc_fdac1( int dac_value ) void plc_sdac1( int dac_value ) void plc_fdac2( int dac_value ) void plc_sdac2( int dac_value ) void dac_latch1() void dac_latch2() void dac_init() XP8600 Software Reference s 33...
Page 34
Sample Program Materials Required Ω Instructions +24 V V 1 2 3 4 5 6 7 8 Figure 4-1. XP8600 Wago Connector H1 34 s Software Reference XP8600...
Page 35
// delay after reset // Locate XP8600s; save highest addr found for( log_addr=0; log_addr<64; log_addr++ ){ if( find_dac(log_addr) ) hi_addr = log_addr; // Set PLCBus to XP8600, initialize DAC set12adr( plcdac_addr(hi_addr) ); dac_init(); // initialize both channels // Increment Voltages on Channels out 1 and 2 while(1){ for( i=0;...
Page 36
Compile COMPILE <CTRL-Z> Dynamic C Technical Reference Functions in PBUS _ LG.LIB int DAC _ Board_Addr( int bd ) void write _ DAC1( int val ) 36 s Software Reference XP8600...
Page 37
void write _ DAC2( int val ) void latch _ DAC1() void latch _ DAC2() void Init _ DAC() void Set _ DAC1( int val ) void Set _ DAC2( int val ) Functions in Other Libraries XP8600 Software Reference s 37...
Page 45
Connecting Expansion Boards to a Z-World Controller Controller PLCBus Port Pin 1 Op-Amps XP8900 Controller With PLCBus Figure 6-2. Connecting XP8600 Expansion Board to Controller PLCBus XP8900 Getting Started s 45...
Page 46
Setting Expansion Board Addresses 46 s Getting Started XP8900...
Page 47
Figure 6-3. P3 Jumper Settings for XP8900 Series PLCBus Addresses Power XP8900 Getting Started s 47...
OFTWARE EFERENCE HAPTER XP8900 Software Reference s 53...
Page 54
Expansion Board Addresses XP8900 Series 54 s Software Reference XP8900...
Page 55
XP8900 Series Software Dynamic C Libraries Table 8-1. Dynamic C Libraries Required by Z-World Controllers for XP8900 Series Expansion Boards Library Needed Controller All controllers EZIOCMMN.LIB All controllers EZIOPBDV.LIB BL1000 EZIOTGPL.LIB BL1100 EZIOLGPL.LIB BL1400, BL1500 EZIOMGPL.LIB BL1200, BL1600, PK2100, PK2200 EZIOPLC.LIB...
Page 56
Using Digital-to-Analog Converter Boards Reset Boards on PLCBus VdInit() void plcBusReset() void eioPlcRstWait() 56 s Software Reference XP8900...
Page 57
long int eioErrorCode Address Target Board int plcXP89Init( int Addr ) void main(void){ plcBusReset(); // reset the PLCBus if(plcXP89Init(4)){ } else { XP8900 Software Reference s 57...
Page 58
Operate Target Board int plcXP89Sw( int Addr, int state ) int plcXP89Out( int Addr, unsigned int oValue ) 8*board _ number + channel _ number board_number board_number channel_number channel_number plcXP89Out(42,2048) // make channel 2 on board 5 output about 0 V 58 s Software Reference XP8900...
Page 59
Table 8-2. Summary of Basic XP8900 Series Function Calls Function Description plcXP89Init Disables everything, leaves output of 0 V for all channels plcXP89Sw Enables voltage reference so the output will be at the voltage level specified by plcXP89Out plcXP89Out Sets all channels to midpoint or other acceptable value (the output experiences a slight jump as channels are being set;...
Page 60
int plcXP89RdCalib( int chan, struct _ eioAdcCalib *pCalib ) 8*board_number + channel_number plcXP89RdCalib(32,&cinfo) // read calib info of channel 0 of XP8900 // XP8900 Series board 4 into cinfo int eioAdcMakeCoeff( struct _eioAdcCalib *cnvrsn, unsigned d1, unsigned d2, float f1, float f2 ) eioAdcMakeCoeff(&cinfo,96,4000,9.97,-10.33) // the actual value at quantized value 96 is 9.97 V // the actual value at quantized value 4000 is -10.03 V...
Page 61
long eioAdcDigitize( float f, struct _ eioAdcCalib *pCalib ) L=eioAdcDigitize(2.54,&cinfo); // L will contain the digitized value to output // to D/A converter device given the // calibration coefficients in cinfo so that // the output is about 2.54 of some real units XP8900 Software Reference s 61...
Page 62
Sample Program Compile COMPILE <CTRL-Z> Technical Reference 62 s Software Reference XP8900...
Page 63
XP89_1.C #use eziocmmn.lib /* #use ezioplc.lib // for BL1200, BL1600, PK2100, PK2200 */ /* #use eziotgpl.lib // for BL1000 */ /* #use eziolqpl.lib // for BL1100 */ /* #use eziomgpl.lib // for Bl1400 & BL1500 */ /* #use eziobl17.lib // for BL1700 */ /* #use ezioplc2.lib // for BL1700 */ main() { auto int i;...
Page 68
Table A-1. Z-World PLCBus Expansion Devices Device Description Exp-A/D12 Eight channels of 12-bit A/D converters SE1100 Four SPDT relays for use with all Z-World controllers XP8100 Series 32 digital inputs/outputs “Universal Input/Output Board” XP8200 —16 universal inputs, 6 high-current digital outputs...
Page 69
Yellow wire on top PLCBus Header Note position of connector relative to pin 1. From OP6000 KLB Interface Card Header J2 Pin 1 Figure A-2. OP6000 Connection to PLCBus Header PLCBus s 69 XP8600/XP8900...
Page 70
Read data, another BUSRD1 BUSRD2 Spare, or read data Read this register to BUSRESET reset the PLCBus First address nibble BUSADR0 or byte Second address BUSADR1 nibble or byte Third address nibble BUSADR2 or byte BUSWR Write data 70 s PLCBus XP8600/XP8900...
Page 71
1 1 0 1 8 bits × 3 xxxx1101 xxxxxxxx xxxxxxxx x x x x 1 1 1 0 8 bits × 1 xxxx1110 x x x x 1 1 1 1 8 bits × 1 xxxx1111 PLCBus s 71 XP8600/XP8900...
Page 72
128 × 4 = 512 input bits 000j 10xj xxxj analog input modules, 128 registers 000j 11xj xxxj 128 spare registers (customer) 001j xxxj xxxj 512 spare registers (Z-World) controlled by board jumper controlled by PAL 72 s PLCBus XP8600/XP8900...
Page 73
8-Bit Devices XP8700 and XP8800 Expansion Bus Software Table A-5. Dynamic C PLCBus Libraries Used by Z-World Controllers Library Needed Controller All controllers DRIVERS.LIB BL1000 EZIOTGPL.LIB BL1100 EZIOLGPL.LIB BL1400, BL1500 EZIOMGPL.LIB BL1200, BL1600, PK2100, PK2200, ZB4100 EZIOPLC.LIB BL1700 EZIOPLC2.LIB BL1000 PBUS_TG.LIB...
Page 75
void set4adr( int adr ) char _eioReadD0( ) char _eioReadD1( ) char _eioReadD2( ) char read12data( int adr ) PLCBus s 75 XP8600/XP8900...
Page 76
char read4data( int adr ) void _eioWriteWR( char ch) void write12data( int adr, char dat ) void write4data( int address, char data ) void set24adr( long address ) 76 s PLCBus XP8600/XP8900...
Page 77
void set8adr( long address ) int read24data0( long address ) int read8data0( long address ) void write24data( long address, char data ) void write8data( long address, char data ) PLCBus s 77 XP8600/XP8900...
PECIFICATIONS PPENDIX Specifications s 79 XP8600/XP8900...
Page 80
XP8600 Hardware Specifications Table B-1. XP8600 Specifications 2.835" × 3.525" × 0.75" Board Size (72 mm × 90 mm × 19 mm) Operating Temperature Range -40°C to +70°C Humidity 5% to 95%, noncondensing Power (quiescent, no output) 24 V DC, 30 mA...
Page 81
0.125 typ 0.187 dia, 4x (3.2) (4.7) 3.525 (90) Figure B-1. XP8600 Board Dimensions Specifications s 81 XP8600/XP8900...
Page 82
Outputs 8 D/A channels (4 channels for XP8910), bipolar voltage output 0 V to ±10 V, can source/sink up to 2 mA per channel on internal power (up to 7 mA per channel with user-supplied rails) 82 s Specifications XP8600/XP8900...
Page 83
0.15 typ 0.187 dia, 4x (3.8) (4.7) (102) Figure B-2. XP8900 Board Dimensions Specifications s 83 XP8600/XP8900...
Page 84
Blank 84 s Specifications XP8600/XP8900...
ONNECTING AND PPENDIX OUNTING ULTIPLE OARDS XP8600/XP8900 Connecting and Mounting Multiple Boards s 85...
Page 86
Connecting Multiple Boards EPROM Z180 XP8600 XP8400 Controller Figure C-1. Example of Daisy Chain Connections Do not twist the ribbon cable or mount the expansion boards upside down! 86 s Connecting and Mounting Multiple Boards XP8600/XP8900...
Page 87
Relay 3 Relay 3 Relay 4 Relay 4 Relay 6 Relay 6 Relay 5 Relay 5 Relay 7 Relay 7 Z180 Controller Figure C-2. Use of Y Cable to Connect Multiple Expansion Boards XP8600/XP8900 Connecting and Mounting Multiple Boards s 87...
Page 88
Mounting Expansion Boards Bus Connectors Controller Modular PC Expansion Boards Board Holders DIN Rail Figure C-3. Mounting Expansion Boards on DIN Rail 88 s Connecting and Mounting Multiple Boards XP8600/XP8900...
Page 90
PLCBus Signal Signal PB0 (J9:17) PB1 (J9:15) PB2 (J9:13) PB3 (J9:11) PB4 (J9:9) PB5 (J9:7) PLCBus PB6 (J9:5) Connector PB7 (J9:3) /STBX +5 V (J9:1) +5 V Figure D-1. Connecting BL1000 to Expansion Boards 90 s Simulated PLCBus Connections XP8600/XP8900...
Page 91
Signal Signal PA0 (J10:1) /STBX PA1 (J10:3) PA2 (J10:5) PA3 (J10:7) PA4 (J10:9) PA5 (J10:11) PLCBus PA6 (J10:13) Connector PA7 (J10:15) +5 V (J010:1) +5 V Figure D-2. Connecting BL1100 to Expansion Boards BL1300 XP8600/XP8900 Simulated PLCBus Connections s 91...
Page 92
BL1400 and BL1500 Table D-1. PIO Header to PLCBus Signal Map BL1400/BL1500 Expansion Board Header H3 Pin PIO Port Signal Header P1/P2 Pin PLCBus Signal +5 V +5 V /STBX 92 s Simulated PLCBus Connections XP8600/XP8900...