Page 1
ELECTRONICS a division of Systems West Inc. MODEL 8099 Ethernet Modbus Interface Instruction Manual...
Page 2
MODEL 8099 Ethernet Modbus Interface Instruction Manual ELECTRONICS division of Systems West Inc. 7034 Commerce Circle, Pleasanton, CA 94588 Phone 925.416.1000, Fax 925.416.0105 Publication Number 120192 Web Site http://www.icselect.com November 2011 Edition Rev 2...
LIMITED WARRANTY Within 12 months of delivery, ICS Electronics will repair or replace this product, at our option, if any part is found to be defective in materials or workmanship (labor is included). Return this product to ICS Electronics, or other designated repair station, freight prepaid, for prompt repair or replacement.
Page 4
Block Diagram Description Maintenance, Troubleshooting and Repair Maintenance, Troubleshooting Guide, Selftest Error Codes, Reverting to Factory Settings, Updating Firmware, and Repair Information Appendices A1 IEEE-488.1, IEEE-488.2 and SCPI Descriptions A2 VXI-11 Concept A3 VXI-11 RPCgen Information A4 ICS RPC Configuration Commands Index...
RS-232 link to a single Modbus slave device or over a RS-485 network to one or multiple Modbus devices. Responses are checked and valid response data from a query is returned when the 8099 is next addressed to talk. The 8099 contains a number of advanced features that increase its flexibility and simplifies their use in system applications.
Page 6
8064 exceeds the LXI specification for a class C instrument because it is fully IEEE-488.2 compliant and specifies complete use of the VXI-11 protocol. The Model 8099 is packaged in a small Minibox™ metal case that is less than 1U in height (1.6 inches) The front panel contains the power switch and LEDs which indicate the unit's status.
MODEL SPECIFICATIONS The following specifications apply to all 8099 models. Options for your unit may be found by comparing the list below to those listed on the program label on your unit. 8099 - X General Model Number Option Codes...
Page 8
15 client communication sockets limit. 1.4.4 Device Links and Locks The 8099 support a maximum of 64 device links and 64 locks that can be used over multiple Core channels by one or more clients. 1.4.5 VXI-11 Interface Name The 8064 has only one instrument personality and the default name is inst0.
User enabled. Message sent if no activity for 120 minutes. 1.5.5 COMM Timeout User set period, 0 to 2 seconds, to release socket resources if no activity. 1.5.6 Port Usage TABLE 1-1 8099 PORT USAGE Port Usage Protocols Notes Internal WebServer Web Browser access RPC Port Mapper...
Page 10
Notes: 1. E = Ethernet Interface 2. Function definitions are described in Table 2-1 3. The 8099's MAC Address is factory set and is not user changeable. The MAC Address can be read with the VXI-11 Configuration Utility or with a web Browser.
The standard HTML pages conform to HTML version 4.01 or XHTML version 1.0. The required pages are needed for correct WebServer operation. User can redefine the other page names. The WebServer serves the stored pages after substituting values for the variable placeholders. The standard 8099 pages are: 404.html 404 Error Page (required page) 501.html...
Page 12
The 8099's asynchronous serial Modbus interface provides RS-232 single-ended and RS-485 (RS-422) differential signals with available internal termination network. Signals are selected by internal jumpers. The 8099 has a DB-25S connector on its rear panel. Signal pinouts conform to EIA RS-530 specifica- tion and are listed in Table 2-2.
Page 13
1.7.5 RS-422/RS-485 Specifications The 8099 has balanced RS-485 line drivers and receivers that provide RS-422 and RS-485 compatible signals. The line drivers and receivers are designed to operate with up to 1200 meters of twisted-pair cable. The transmitter can be set for continuous on operation or it can be tristated when not transmitting.
PROGRAMMABLE FUNCTIONS Table 1-3 lists the 8099's programmable serial interface and Modbus functions and their factory default settings. The 8099 is factory set for RS-232 signals. TABLE 1-3 FACTORY CONFIGURATION Command Functions Factory Setting :BAUD Sets transmit/receive baud rate 9600 #...
Page 15
INDICATORS The 8099 has eight front panel LEDs that normally display the following conditions: Indicates power on Indicates that the unit is ready and is connected to an active LAN. Blinks at user request to identify the unit. Indicates messages are being transferred between the unit and the LAN.
Page 17
1.10 PHYSICAL Size 7.45" L x 5.57" W x 1.52" H (18.92 cm L x 14.15 cm W x 3.86 cm H) (See Figure 1-1) Material PC Board - FR406 Flame resistant Fiberglass Components - RoHS compliant Construction Lead Free Weight 3 lbs (1.4 kg) including adapter Temperature...
Page 18
Meets limits for part 15, Class A of US FCC Docket 20780 and complies with EEC Standards EN 61000-6-4:2001, EN 61000-6-2:2001, EN 55024:2003, and EN 55022:2003. CE Certificate of Compliances reproduced in Figure 1-2. UL/CSA/VDE AC Wall adapter has applicable UL/CSA/VDE and CE approval. Figure 1-2 8099 Certificate of Compliance 1-14...
ICS Electronics or your local sales representative immediately. Also, call the carrier immediately and retain the shipping carton and packing material for the carrier’s inspection. ICS will make arrangements for the unit to be repaired or replaced without waiting for the claim against the carrier to be settled.
Page 22
QUICK INSTALLATION GUIDE The following steps should be used as to set up and use the 8099. New users should read Sections 2 and 3 before proceeding. IMPORTANT: A new module must be configured with your network settings before being connected to your network. Follow the direc- tions in Paragraph 2.5 to configure the module’s network parameters...
Page 23
RDY and LNK LEDs are on. Use ICS’s VXI-11 Keyboard Program (VXI11_kybd) to verify communication with the Modbus device(s). If you are going to rack mount the 8099, turn the unit off and discon- nect all cables from the unit. Follow the instructions in Section 2.9...
Page 24
Setting Choices Comments IP Address Mode Static or Static lets the user set the 8099’s IP Address, Net DHCP Mask and Gateway IP values. DHCP enables the 8099 to accept the IP values supplied by a DHCP Server. IP Address Any valid IP address setting.
Page 25
NETWORK AND SERIAL SETTINGS This paragraph configures the 8099 for operation on your network and allows you to set the serial parameters. When shipped, the 8099’s network settings are configured as shown in Table 1-2. Review Tables 1-2 and 2-1 with your network administrator and decide on which settings, if any, that need to be changed.
Page 26
Apply power to the 8099 and verify that it passes its selftest routine and that the PWR, RDY and LAN LEDs are on. Check your computer’s network settings to be sure its IP address is in the 192.168.0.xxx range so it can communicate with the card’s de- fault IP address.
Page 27
Figure 2-6 8099 Configuration Page Enter the new settings as desired. If you select DHCP for the TCP/IP Mode, the page blanks out the IP, Net and Gateway addresses as they will be supplied by your DHCP server. Enter the serial settings in the lower half of the page.
Page 28
Apply power to the 8099 and verify that it passes its selftest routine and that the PWR, RDY and LAN LEDs are on. Check your PC’s network settings to be sure its IP address is in the 192.168.0.xxx range so it can communicate with the card’s default IP...
Page 29
Click on the Find Server button. The program scans for all VXI-11 Services connected to the local LAN or to your PC. (The 8099 is an RPC server which provides a VXI-11 Service) The results are displayed in the Results box.
Page 30
Repeat step 8 for each configuration parameter. Figure 2-9 shows the VXI-11 Configuration Utility after all parameters have been entered for a Model 8099. Click the Redo From Start button if you need to start over or if you want to change any of the prior settings When done, the Save Configuration button is enabled if you changed...
SERIAL INTERFACE CONNECTIONS 2.6.1 8099 Serial Port The 8099's serial port is a DTE (Data Terminal Equipment) interface on a DB- 25S female connector. The connector has both RS-232 and RS-422/RS-485 signals in accordance with EIA-STD - RS-530. RS-232 and RS-422 (RS-485) signal selection is made by setting jumpers inside the 8099.
Page 32
8099’s SD and RD signal pairs have to be jumpered together in the cable connector as shown in Figure 2-11a. The 8099 has to be configured for RS-485 operation when used on a 2-12...
Page 33
The ON setting causes the unit to tristate its serial transmitter when not transmitting which free's the network so the Modbus can respond to the message. Also set the 8099’s internal W4-W6 jumpers to 422 for RS-422 and RS-485 signals as shown in section 2.7.
Page 34
Figure 2-11b shows how to use the 8099’s internal termination network by adding two jumpers to the basic RS-485 connection. Figure 2-12 shows an example of a single 8099 driving two Modbus devices over a RS-485 network. In Figure 2-12, the termination network uses 5 Vdc and ground provided by the Watlow F4 Temperature Controllers.
JUMPER SETTINGS The 8099 and has the following jumper positions as shown in Table 2-3 and in Figure 2-13 below. TABLE 2-3 8099 JUMPERS Jumper Function Factory Setting Restores digital IO default settings. See paragraph 5.5.2 Open Option Jumper. Not used in standard firmware...
Page 36
8099 RACK MOUNTING INSTRUCTIONS The Model 8099 is held in its rack mounting kit with a winged-'U' shaped bracket. Perform the following steps to install a 8099 in a rack mounting kit: Hold the 8099 at a 30 degree nose down angle and place the front bezel through the rack mount kit from the rear of the kit.
IEEE-488.2 and SCPI commands are used to setup and configure the 8099's IEEE-488.2 Status Reporting Structure and its Serial parameters. Any com- mands that end in a ‘?’ are a query and the 8099 responds by outputting the response to the client the next time it receives a device_read message. (similar...
Page 38
If the response packet is a valid response to a read command, the returned data is held and will be transmitted to the cli- ent the next time the 8099 is sent a device_read request If the message is an acknowledgment message, there is no further action.
488.2 STATUS REPORTING STRUCTURE The 8099 has the expanded IEEE-488.2 status reporting structure shown in Figure 3-1. The expanded status reporting structure conforms to the SCPI 1994.0 Specification and builds on the IEEE 488.2 Standard Status Report- ing Structure by adding the Questionable and Operation registers. The Event and Status registers are controlled and queried with the IEEE-488.2 common...
Page 41
The Modbus Error is included in the Event Status Register. Bit 6 is set when the Modbus Error Register is loaded with an error value. The 488.2 Operation Complete event has no meaning for the 8099. TABLE 3-1 ESR BIT DEFINITIONS Event...
Page 42
The Questionable Registers are queried with the SCPI STATUS branch com- mands. The 8099 can be set to monitor the bits in the Questionable Register and gener- ate a Service Request (SRQ) when they change state. The following example sets the Questionable Event register to monitor the CRC and Timeout bits by capturing a positive transition on bits 12 and 13.
Page 43
Output Queue clears its summary bit. The Output Queue is read by sending the 8099 a device_read message. If the Output Queue is not read before sending another query, its contents will be lost and an error reported.
Page 44
3.3.7 Saving the Enable and Transition Register Values When the PSC flag is set, the Enable and Transition Register values are cleared at power turn-on. The registers can only be saved and recalled at power turn-on by disabling the PSC flag. The *SAV command does not save these registers. Use the *PSC 0 command to disable the PSC flag and save the current Enable and Transition register values as shown in the example.
IEEE 488.2 compatible devices. The 8099 responds to these commands and to some optional common commands defined in the IEEE-488.2 Standard. Table 3-2 lists how the 8099 responds to these commands and describes their effect on the 8099 and its status reporting structure.
Page 46
Standard Event Command Status Register when all pending selected 8099 operations have been finished. *OPC? Operation Places an ASCII character 1 into the 8099's Complete Output Queue when all pending selected Query 8099 operations have been finished. *PSC<value>...
Page 47
Status Byte and ESR Register. Disables the trigger function and pulses the Reset output signal. Allow the 8099 100 ms and the 2303 150 ms to complete the *RST command. Saves current 8099 configuration in the F ash.
Table 3-4 lists the SCPI keywords and describes their functions in detail. Keywords other than those listed in the table or locked keywords will have no effect on the 8099’s operation and a command error will be reported. Refer to Appendix A-1 for additional information about SCPI commands.
Page 49
TABLE 3-2 SCPI COMMAND TREE Keyword Parameter Form Notes & Short Form Commands SYSTem System Address :COMMunicate :SERial :BAUD <numeric value> [9600] :PARity EVEN | ODD | [NONE] :BITS 7 | [8] :SBITs [1] | 2 :UPdate no value-command only :RS485 0|1 or OFF|ON [0] :ERRor?
Page 50
Keyword enclosed by [ ] - denotes optional use Only a configuration command that has one of its parameters enclosed by [ ] can change its parameter setting and have this setting stored in the 8099's E ROM (with the *SAV command).
Page 51
:COMMunicate Identifies communication subsystem com- mands :SERial Controls Serial Interface settings :BAUD 9600 Sets serial baud rate. Values for the 8099 are 50 to 115200 baud. :PARity NONE Sets serial parity. Values = EVEN, ODD or NONE. :BITS Sets number of data bits per character.
Page 52
TABLE 3-3 SCPI COMMANDS AND QUERIES (CONTINUED) Keyword Default Description Value :CONDition? Returns contents of the condition regis- associated with the command. :ENABle Sets the enable mask which allows the true conditions in the associated event register to be reported in the summary bit. :PTRansition #h7FFF Sets positive transition enable regis-...
Page 53
Sets user IDN message. String is up to 72 characters and consists of four fields (manufacturer, model code, serial num- ber and firmware revision) separated by commas. e.g. ICS Electronics, 8099, S/N 711012, Rev 00.00, Ver 07.11.01. :DATe <date> Saves IDN message and date. The save operation lights all the LEDs.
MODBUS COMMANDS The following commands are used to Control Modbus slave devices. These Modbus Commands should not be mixed or concatenated with IEEE-488.2 or SCPI commands. TABLE 3-5 MODBUS COMMANDS Syntax Meaning C addr Modbus Address Command. Sets Modbus slave device address for subsequent commands.
Page 55
TABLE 3-5 MODBUS COMMANDS CONT'D Syntax Meaning RR[?] reg, num Read Input Register Command (code 0x04). Reads one or multiple Modbus device registers. User speci- fies starting register reg and number of registers to be read num. The [?] is an optional symbol for smart programs.
Page 56
SCPI commands to avoid query errors or otherwise confusing the GPIB<->Modbus Interfaces. The [?] is an optional symbol for smart programs like ICS’s GPIBKybd program. These programs can recognize the command as a query and automatically read the...
Page 57
Test your commands with ICS's VXI-11 keyboard program before adding them to your program. (See Section 3.9 for VXI11_kybd directions). ICS also provides a Error Log Utility to read back soft errors from the 8099 during program debugging. See Section 3.10 for more information about the ErrorLog Utility.
Page 58
This function can be set to perform some RPC VXI-11 activity through the socket when nothing has been done for a period of time less than the 8099's COMM_Timeout setting. The background functions should not alter the state of the devices or of the interface.
Page 59
VXI-11.3 instruments. You do have to be sure to keep the link to the 8099 open since Agilent’s VISA will close the channel when the link count drops to zero. It also inserts non- VXI-11 commands in with valid commands while doing instrument discovery.
Page 60
IP address and is a placeholder for the 8099’s current IP address. The SICL_kybd program inserts the user supplied IP address from the comboBox, if the user had entered an address, or it uses the 8099 default IP address if no IP address was entered.
Page 61
Control Panel, run MAX first to define the TCP/IP Resource. Use LabVIEW version 8.5.1 or later, to minimize problems. The following steps will let you use MAX to link to the 8099. Run MAX. Right click on Devices and Interfaces in the left hand window and select Create New.
Page 62
The 8099's WebServer communicates thru port 80. If you write a program to open a socket to port 80 on the 8099 and send a single line containing the URL via the socket, it would be the same as having a browser communicate with the 8099.
Page 63
When done save the new values. Send “*SAV 0” ‘save the new configuration The *SAV 0 command will cause the 8099 to blink all but one of its LEDs. . 3.8.3 Setting the Modbus Device Address The Modbus device address in the 8099 is set with the 'C' command to match the address set in the desired Modbus device.
Page 64
3.8.4 Querying a Modbus Device The next step is to send a query to the 8099 and read back the response from the Modbus device. The R? command is the basic read command. With the Watlow F4 controller, register 0 is the Watlow Model number register. The ‘?’...
Page 65
32-bit result. An example is reading a process variable from Registers 20 (MSW) and 21 (LSW). The 8099 can be used to read each register individually or to read two successive registers. The commands are:...
Page 66
'reads registers 360 and 361 3.8.12 Setting Modbus Device Timeouts The D command sets the time that the 8099 waits to receive a response from the Modbus device. If the 8099 does not receive a response within the time period, it assumes that the Modbus device is not responding and sets the timeout error.
Page 67
3.8.13 Locking Setup Parameters All of the 8099’s configuration parameters can be locked to prevent accidental change by the end user. These lockable parameters are noted by a # symbol in Tables 1-3. Locked parameters cannot be queried or changed while locked.
Page 68
Status Byte Register with a device_readstbresp query. 3.8.15 Personalizing the Unit’s IDN Message The 8099's IDN message can be changed to personalize the unit, to identify the overall assembly as being from your company or to record product history or revision dates.
Page 69
Select the 8099's IP address and press the Select and Create Link button. If the 8099 is not found, use the directions in Section 2.5 to review and correct your network connections to the 8099.
Page 70
Figure 3-3 VXI-11 Keyboard Program Panel Note Some instruments have multiple instrument personalities. inst0 is nor- mally the main instrument and will normally, but not always, respond to an *IDN? query. At this point, you can communicate with the linked instrument just like a GPIB device.
Page 71
VXI11_kybd. (See Table 3-6 for a complete list or ICS's VXI-11 Errors.) The Interface Command buttons on the right let you send commands to a GPIB Controller (like ICS's Model 8065) and do not apply to the 8099. The Instrument Command buttons on the right let you Lock and Unlock the instrument.
Page 72
LEDs. A soft error is an error condition that is of momentary condition and will not prevent the device from normal operation. The occurrence of a soft error will cause the ICS VXI-11 device to momentary flicker the red ERR LED (typically 1/10th of a second). Multiple soft errors may extend the time the ERR LED is turned on.
Page 73
TABLE 3-7 ERRORLOG ERROR CODES Error Code Error Description VXI-11 Syntax Error GPIB Device Not Accessible Invalid VXI-11 Link ID VXI-11 Parameter Error Invalid VXI-11 Channel. Channel Not Established Invalid VXI-11 Operation Insufficient Resources (normally related to Link IDs or Locks) Device Locked By Another Link ID Device Not Locked I/O Timeout Error...
Page 74
The second way in which the ErrorLog may be of value is for client program debugging. Usually it is possible to single-step through a program, allowing the user to determine exactly which operation results in the error condition. Then the user can investigate the proper usage of the operation to prevent er- rors in the new program.
Page 75
This is not done by passing on the 8099 manual to the end-user since it does not relate to the end product. In most cases the end-user needs directions for: Setting the product's Network Settings.
Page 76
LabVIEW VIs, etc. 3.11.5 Copyright Release OEM users of the 8099 Ethernet to Parallel Interface are hereby given permis- sion to copy any portion of this manual, referenced ICS material and utility or example programs for the purpose of documenting systems, maintaining or enhancing sales of systems that incorporate ICS's interfaces.
The 8099 is a microprocessor based device that performs the VXI-11 service functions to control its Serial Interface from an IEEE-802.11 network. The 8099 is made up of seven major elements, most of which are interconnected to the microprocessor by a common data, address and control signal bus.
Figure 4-2 shows a block diagram of the 8099’s internal logic. The 8099 is a microprocessor based device that accepts commands from the TCP/IP network to control its digital outputs and to read digital inputs. The 8099 is made up of eight major elements, most of which are interconnected to the microprocessor by a common data, address and control signal bus.
Page 79
(Analogous when a GPIB device is addressed to talk) Messages that contain errors or Exception messages cause the 8099 to set bits in the Questionable Register and to place an error value in the Modbus Error Register. The 8099 contains a multilevel Status Byte Register and Event Register structure enables the 8099 to generate a Service Request when errors are detected.
Page 80
The 8099's power supply is a switching regulator that converts a unregulated 9 to 32 volt DC input to +5 Vdc to run the 8099's internal logic chips. The +5 Vdc is down regulated to make 3.3 Vdc for the ARM processor and support- ing chips that run on 3.3 Vdc power.
5.3.1 Self Test Errors Self Test errors occur at power turn-on time. The 8099 indicates self- test er- rors by blinking one or more of its LEDs at a 2 Hz rate. Refer to paragraph 5.4 for more information about the Self-Test Errors. The Self Test error codes and their most likely causes are listed in Table 5-1 5.3.2...
Page 82
If the problem goes away, the fault lies with the removed board. Note the pin or command that fails and contact ICS for repair information. See paragraph 5.5 for repair instructions. If the fault persists, check the wiring especially any flat ribbon cables for faulty or open connectors and the devices connected to the interface board for possible faults.
RDY LED Blinking All 8099 sockets or links used. Wait for the COMM timeout or power cycle the 8099 if you are the only client connected to the 8099. LAN LED on No network messages ACT LED never on received by the 8099.
Page 84
Fault Action or Check No Modbus Device Address Check C setting and device communication address setting. Wrong serial settings Check 8099 settings against modbus device settings. Wrong signal Check cable wiring against connections the 8099 manual. Check 8099 internal jumper settings for correct signals.
Page 85
8099 resources opening and closing links. Rewrite program to keep links open until program ends. COMM_Timeout 8099 not accessed for a long expired time period. Extend 8099 COMM_Timeout period or add a background keepalive functon to the client program.
SELF TEST ERROR CODES At power turn on, the 8099 conducts a selftest of its major components. The test takes about 5 seconds. During the selftest the PWR LED is on and the RDY LED is off. The network LAN and ACT LEDs may be on during selftest.
Page 87
VXI-11 ERRORS The 8099's ERR LED will blink when the unit detects a VXI-11 protocol or com- mand error. These can be a command not appropriate for a VXI-11.3 instrument. Sometimes these are intentionally sent like when the Agilent IO Connection Expert is looking for VXI-11.2 and VXI-11.3 devices on the network.
5.6.1 Factory Network Settings The 8099 can be reset to the default network settings listed in Table 1-3 at any time by holding the LAN Reset Button in for 5 seconds while applying power to the board. The TALK, LSTN and SRQ LEDs all blink on momentarily when the board is changed back to its default settings.
IP address and press the Select and Create Link button to link to your 8099. When you link to the 8099, the program will check its revision status to see if it is an 8099 and if it needs updating.
The Flash memory variable sector can be restored to factory settings by per- forming the following steps: Follow the steps in paragraph 5.6.1 to restore the network settings Use ICS's VXI11_kybd utility to link to the board. (See para 3.9) Send the board the following commands with all capital letters: CAL:DATE UNCAL...
Page 91
Remove the jumper. To reassemble the unit, slide the PC assembly back into its case and carefully guide the Power Switch through the front panel overlay. Replace the screws. Do not over-tighten the rear panel screws. Reconnect the power and Ethernet cables to the unit. Turn power on.
REPAIR PROCEDURE Repair of the 8099 is done by the user or by returning the unit to the factory or to your local distributor. Units in warranty should always be returned to the factory or else repaired only after receiving permission to do so from an ICS customer service representative.
Page 93
Transferring Data A-14 A2.5 An Example VISA Program A-14 VXI-11 RPC Gen Information A-17 A3-B Basic RPC Programming A-17 A3-C VXI-11 RPCL A-18 ICS Configuration RPC Protocol A-22 A4-B Configuration Protocol A-23 A4-C Detailed Configuration Messages A-26 A4-D RPCL Listing A-51...
Page 94
VXI-11 is the overall VXI-11 document and describes the network protocol. There are three sub-standards. VXI-11.1 is for a VXI chassis. The VXI-11.2 Standard is for an GPIB Instrument Gateway like ICS's Model 8065 Ethernet-to-GPIB Controller. VXI-11.3 describes the control of LAN instru- ments and applies to ICS's 80xx series Interfaces.
Page 95
VXI-11.3 Instruments are addressed by their IP addresses. They then are con- nected to by opening a socket connection to them. Finally a link is made to the Instrument Interface inside the VXI-11.3 Instrument. Each VXI-11.3 Instru- ment contains at least one Instrument Interface referred to as inst0. VXI-11.3 Instruments may have multiple Instrument Interfaces for sub-functions similar to the dual primary or secondary address capability in GPIB devices.
Page 96
Standard 7 6 5 4 3 2 1 0 Event Status Register *ESR? & & Queue & Not-Empty & & & & & Standard Output Queue Event Status Enable 7 6 5 4 3 2 1 0 Register *ESE <NRf> *ESE? read by Serial Poll Service...
A1.2 IEEE 488.2 STANDARD A1.2.1 IEEE 488.2 Message Formats The IEEE 488.2 Standard was established in 1987 to standardize message protocols, status reporting and define a set of common commands for use on the IEEE 488 bus. A VXI-11.3 TCP/IP-IEEE 488.2 Instrument Interface and its associated instrument follows all the requirements in IEEE 488.2 except where the difference between the TCP/IP-IEEE 488.2 Instrument Interface and IEEE 488.1 requires clarification.
Page 98
TABLE A-1 IEEE 488.2 COMMON COMMANDS Required common commands are: *CLS Clear Status Command *ESE Standard Event Status Enable Command *ESE? Standard Event Status Enable Query *ESR? Standard Event Status Register Query *IDN? Identification Query *OPC Operation Complete Command *OPC? Operation Complete Query *RST Reset Command *SRE...
Page 99
A1.2.3 IEEE 488.2 Common Commands The IEEE 488.2 Standard also mandated a list of required and optional Com- mon Commands that all 488.2 devices could support. All of the Common Commands start with an asterisk. Commands that end with a question mark are queries.
A1.3 SCPI COMMANDS A1.3.1 Introduction SCPI (Standard Commands for Programmable Instruments) builds on the programming syntax of 488.2 to give the programmer the capability handling a wide variety of instrument functions in a common manner. This gives all instruments of the same type a common "look and feel". SCPI commands use common command words defined in the SCPI specifica- tion.
Page 101
SYSTem:COMMunicate:SERial:BAUD 9600 <nl> 'Sets the baud rate SYST:COMM:SER:BAUD? <nl> 'Queries the current baud setting SYST:COMM:SER:BITS 8 <nl> 'Sets character format to 8 data bits Figure A-2 SCPI Command Examples Multiple SCPI commands may be concatenated together as a compound com- mand using semi colons as command separators.
Page 102
A1.3.3 Variables and Channel Lists SCPI variables are separated by a space from the last keyword in the SCPI com- mand. The variables can be numeric values, boolean values or ASCII strings. Numeric values are typically decimal numbers unless otherwise stated. When setting or querying register values, the decimal variable represents the sum of the binary bit weights for the bits with a logic '1' value.
Page 103
RPCgen utility. Refer to ICS's Application Notes APB80-3 for more informa- tion about RPC Programming. Java users can write RPC applications that run on nearly all computer platforms with the Java library from jGPIBenet project on SourceForge. Refer to ICS's Application Notes for detailed information on programming VXI-11 devices. A2.1...
Page 104
communication is used when the client links to the 80xx. The 80xx only sup- ports VXI-11 commands via TCP and not via UDP. The initial socket connection to an VXI-11 Instrument establishes the Core channel which can handle multiple device links and locks. The client can create an Abort channel to clear Core channel command hangups.
Page 105
This quickly exhausts all of a VXI-11 device's resources because of the operating system's lag in clos- ing sockets. To overcome this problem, ICS's 80xx series Interface have a Auto-disconnect function that can be enabled for use with Agilent IO libraries programs that expect this behavior.
Page 106
A2.4 Transferring Data ICS's 80xx Interfaces normally transfer small amounts of data so there are no data transfer problems. However, when reading, the user should not attempt to limit the amount of data in a read operation from an 80xx Interface unless the Interface specifically allows it.
Page 107
// Program: The purpose of this program is to perform a continuous temp query of a Watlow device using a VISA resource. Pass in the VISA resource name via the command line. The easiest is to use a VISA alias. Otherwise you need to use a fully qualified VISA resource.
Page 108
else for (;;) status = viWrite (devSession, “R? 100,1”, 8, &length); if (status != VI_SUCCESS) printf (“Unable to send a temp query to %s\n”, argv[1]); retval = 1; break; else status = viRead (devSession, result, sizeof(result), &length); if (status != VI_SUCCESS) printf (“Error reading the temp query response from %s\n”, argv[1]);...
Page 109
“rpcgen”. 2. Obtain the AB80-3 application note from the ICS website. Study this ap- plication note, but do understand that it is intended as an overview and is not detailed.
Page 110
VXI-11 RPCL An ONC RPC protocol is described using RPCL. This section contains the complete listing of the protocols for the core, abort , and interrupt channels. RULE C.1: A network instrument host SHALL implement the following RPCL con- structs. Core and Abort Channel Protocol /* Types */ typedef long Device_Link;...
Page 111
struct Device_WriteResp { Device_ErrorCode error; unsigned long size; /* Number of bytes written */ struct Device_ReadParms { Device_Link lid; /* link id from create_link */ unsigned long requestSize; /* Bytes requested */ unsigned long io_timeout; /* time to wait for I/O */ unsigned long lock_timeout;...
Page 112
struct Device_LockParms { Device_Link lid /* link id from create_link */ Device_Flags flags; /* Contains the waitlock flag */ unsigned long lock_timeout; /* time to wait to acquire lock */ struct Device_DocmdParms { Device_Link lid; /* link id from create_link */ Device_Flags flags;...
Page 114
Edevice, for the purposes of modifying the operational characteristics of the Edevice. Edevices are ICS products whose Model number is in the 80xx range. Note that not all commands are supported by all Edevices.
Page 115
A4.4 REFERENCES [1] IEEE Std 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation. [2] IEEE Std 488.2-1992, IEEE Standard Codes, Formats, Protocols, and Com- mon Commands For Use With IEEE Std 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation. [3] XDR: External Data Representation Standard, Request for Comments 1014, Sun Microsystems, DDN Network Information Center, SRI International, June, 1987.
Page 116
TABLE B CONFIGURATION RPC MESSAGES Message Description 8099 Reboot Req'd interface_name VXI-11 logical name rpc_port_number RPC TCP port core_port_number VXI-11 core TCP port abort_port_number VXI-11 abort TCP port config_port_number 5 configuration TCP port comm_timeout TCP timeout hostname Edevice TCP hostname...
Page 117
All configuration messages pertaining to actions shall respond with an RPC reply and then (if the status is No Error) execute the action. All Edevice configuration commands will reply with statuses corresponding to Error Codes as defined by the VXI-11 (section B.5.2). All Edevice configuration command data will use XDR encoding.
Page 118
interface_name The interface_name procedure is used to read/modify the current VXI-11 logi- cal interface name. struct Int_Name_Parms { unsigned action; unsigned length; opaque name<>; struct Int_Name_Resp { unsigned error; unsigned int length; opaque name<>; Int_Name_Resp interface_name (Int_Name_Parms) = 1; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 119
rpc_port_number The rpc_port_number procedure is used to read/modify the TCP port used by the RPC server. struct Rpc_Port_Parms { unsigned action; unsigned port; struct Rpc_Port_Resp { unsigned error; unsigned int port; Rpc_Port_Resp rpc_port_number (Rpc_Port_Parms) = 2; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 120
core_port_number The core_port_number procedure is used to read/modify the TCP port used by the VXI-11 core channel. struct Core_Port_Parms { unsigned action; unsigned port; struct Core_Port_Resp { unsigned error; unsigned int port; Core_Port_Resp core_port_number (Core_Port_Parms) = 3; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 121
abort_port_number The abort_port_number procedure is used to read/modify the TCP port used by the VXI-11 abort channel. struct Abort_Port_Parms { unsigned action; unsigned port; struct Abort_Port_Resp { unsigned error; unsigned int port; Abort_Port_Resp abort_port_number (Abort_Port_Parms) = 4; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 122
config_port_number The config_port_number procedure is used to read/modify the TCP port used by the Edevice configuration channel. struct Config_Port_Parms { unsigned action; unsigned port; struct Config_Port_Resp { unsigned error; unsigned int port; Config_Port_Resp config_port_number (Config_Port_Parms) = 5; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 123
comm_timeout The comm_timeout procedure is used to read/modify the TCP timeout value. An inactive TCP channel will be left open this length of time before being closed. A value of zero means no timeout checking. struct Comm_Timeout_Parms { unsigned action; unsigned timeout;...
Page 124
hostname The hostname procedure is used to read/modify the hostname used by the Ede- vice. The hostname is only applicable if a dynamic DNS service is available. struct Hostname_Parms { unsigned action; unsigned length; opaque name<>; struct Hostname_Resp { unsigned error;...
Page 125
static_ip_mode The static_ip_mode procedure is used to read/modify the static IP mode. If static_ip_mode is set TRUE, then the Edevice will use a static IP and will need a netmask and gateway IP. struct Static_IP_Parms { unsigned action; unsigned mode; struct Static_IP_Resp { unsigned error;...
Page 126
ip_number The ip_number procedure is used to read/modify the static IP number. If static_ip_mode is set TRUE, then the Edevice will use a static IP (see the static_ip_mode function) and will need a netmask and gateway IP. struct IP_Number_Parms { unsigned action;...
Page 127
C.10 netmask The netmask procedure is used to read/modify the netmask. If static_ip_mode is set TRUE, then the Edevice will use a static IP (see the static_ip_mode func- tion) and will need a netmask and gateway IP. struct Netmask_Parms { unsigned action;...
Page 128
C.11 gateway The gateway procedure is used to read/modify the gateway IP. If static_ip_mode is set TRUE, then the Edevice will use a static IP (see the static_ip_mode func- tion) and will need a netmask and gateway IP. struct Gateway_Parms { unsigned action;...
Page 129
C.12 keepalive The keepalive procedure is used to read/modify the keepalive value. If set to zero, then keepalives will not be used. If used, then this is the time (in seconds) of inactivity prior to a keepalive being sent. struct Keepalive_Parms { unsigned action;...
Page 130
C.13 gpib_address The gpib_address procedure is used to read/modify the Edevice GPIB bus address. struct Gpib_Addr_Parms { unsigned action; unsigned address; struct Gpib_Addr_Resp { unsigned error; unsigned address; Gpib_Addr_Resp gpib_address (Gpib_Addr_Parms) = 13; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 131
C.14 system_controller The system_controller procedure is used to read/modify the system controller mode. If the system controller mode is set TRUE, then the Edevice will initial- ize at boot time as the GPIB bus controller. struct Sys_Control_Parms { unsigned action; unsigned controller;...
Page 132
C.15 ren_mode The ren_mode procedure is used to read/modify the REN mode. If the REN mode is TRUE, then REN will be asserted at boot time. struct Ren_Parms { unsigned action; unsigned ren; struct Ren_Resp { unsigned error; unsigned ren; Ren_Resp ren_mode (Ren_Parms) = 15;...
Page 133
C.16 eos_8bit_mode The eos_8bit_mode procedure is used to read/modify the 8-bit EOS compare mode. If the 8-bit compare mode is TRUE, then EOS compare will be 8-bits. If 8-bit compare mode is FALSE, then EOS compare will be 7-bits. struct Eos_8bit_Parms { unsigned action;...
Page 134
The auto_eos_mode procedure is used to read/modify the automatic EOS on EOI mode. If the autoEos mode is TRUE, then an EOS character will be sent with EOI. struct Auto_Eos_Parms { unsigned action; unsigned autoEos; struct Auto_Eos_Resp { unsigned error; unsigned autoEos;...
Page 135
C.18 eos_active_mode The eos_active_mode procedure is used to read/modify the EOS active mode. If the EOS mode is TRUE, then an EOS character will terminate reads. struct Eos_Active_Parms { unsigned action; unsigned eosActive; struct Eos_Active_Resp { unsigned error; unsigned eosActive; EosActive_Resp eos_active_mode (Eos_Active_Parms) = 18;...
Page 136
C.19 eos_char The eos_char procedure is used to read/modify the EOS character. struct Eos_Char_Parms { unsigned action; unsigned eos; struct Eos_Char_Resp { unsigned error; unsigned eos; Eos_Char_Resp eos_char (Eos_Char_Parms) = 19; The action value determines whether the client wishes to execute a read of the current setting, or a modification of the current value.
Page 137
C.20 reload_config The reload_config procedure is used to cause a reload of the configuration settings. Any modified configuration settings will be restored to default settings. struct Reload_Config_Resp { unsigned error; Reload_Config_Resp reload_config (void) = 20; If the RPC message is of insufficient length to satisfy the required length, an error value of 1 is returned.
Page 138
C.21 reload_factory The reload_factory procedure is used to cause the Edevice to reset the default configuration back to factory loaded defaults. Any/all modifications to the default configuration are lost as a result. Note that dynamic in-memory configuration settings are not modified until a reload_config or reboot is executed. struct Reload_Factory_Resp { unsigned error;...
Page 139
C.22 commit_config The commit_config procedure is used to cause the current configuration set- tings to be saved. Any modified configuration settings now become default settings and will be reloaded as the default settings with either reload_config or a reboot. struct Commit_Config_Resp { unsigned int error;...
Page 140
C.23 Reboot The Reboot procedure is used to cause the Edevice to reboot. This causes all device links to be cleared, all connections closed, all resources released, and the default configuration to be loaded and used during initialization. struct reboot_Resp { unsigned int error;...
Page 141
C.24 idnReply The idnReply procedure is used to obtain a response similar to the GPIB *IDN? string. It contains the FW revision, the ICS product model number, and other miscellaneous information. struct Idn_Parms { struct Idn_Resp { unsigned int error;...
Page 142
C.25 errorLogger The errorLogger procedure is used to obtain the current contents of the error log. struct error_log_Parms { struct Error_Log_Resp { unsigned int error; unsigned int count; unsigned int errors[100]; error_log_Resp errorlogger (error_log_Parms) = 26; The error log will contain 100 entries. The count will signify how many are valid.
Page 143
RPCL Listing The following is a summary listing of ICS's EDevice Configuration RPC Messages. / * IP-note: 4-byte IP’s are packed into a 32 bit unsigned integer in * reverse network byte order. XDR integers are in host byte order.
Page 144
struct Core_Port_Resp { unsigned int error; unsigned int port; /* The abort_port_number procedure is used to read/modify the TCP port * used by the VXI-11 abort channel. struct Abort_Port_Parms { unsigned int action; unsigned int port; struct Abort_Port_Resp { unsigned int error; unsigned int port;...
Page 145
/* The hostname procedure is used to read/modify the hostname used by the * Edevice. The hostname is only applicable if a dynamic DNS service is * available. struct Hostname_Parms { unsigned int action; opaque name<>; struct Hostname_Resp { unsigned int error; opaque name<>;...
Page 146
struct Netmask_Parms { unsigned int action; unsigned int ip; /* see IP-note above */ struct Netmask_Resp { unsigned int error; unsigned int ip; /* see IP-note above */ /* The gateway procedure is used to read/modify the gateway IP. * If static_ip_mode is set TRUE, then the Edevice will use a static IP * (see the static_ip_mode function) and will need a netmask and gateway IP.
Page 147
struct Gpib_Addr_Resp { unsigned int error; unsigned int address; /* The system_controller procedure is used to read/modify the system * controller mode. If system controller mode is set to TRUE, then the * Edevice will initialize at boot time as the GPIB bus controller. struct Sys_Control_Parms { unsigned int action;...
Page 148
/* The auto_eos_mode procedure is used to read/modify the automatic EOS * on EOI mode. If the autoEos mode is TRUE, then an EOS character will * be sent wtih EOI. struct Auto_Eos_Parms { unsigned int action; unsigned int autoEos; struct Auto_Eos_Resp { unsigned int error;...
Page 149
Reboot_Resp { unsigned int error; /* The idn_string procedure is used to obtain a response similar to the GPIB * *IDN? string. It contains the FW revision, the ICS product model number, * and ohter miscellaneous information. struct Idn_Resp { unsigned int error;...
Page 153
IEEE 488 Message formats (IEEE 488.2) A-7 MAC Address 1-6 IEEE 488 Bus Description Maintenance 5-1 IEEE 488.1 A-2–A-3 MAX 3-25 IEEE 488 Interface maxRecvSize A-14 488.2 required status reporting Measurement & Automation capabilities A-4 Explorer 3-25 SCPI command structure and Memory Sanitizing Procedure 5-10 examples A-8 Modbus...
Page 154
SCPI conformance information RPC A-11 3-12 VXI-11 RPCL messages 3-33 Theory of 4-1 RPCL OS X A-11 ICS Edevices A-22 Outline Dimensions 1-12 VXI-11 Protocol A-17 Output Queue 3-7 RPCL Listing A-18 RPC Programming A-17 RPC Protocol 1-4, A-17, A-22 Physical Specifications 1-13...
Page 155
Conformance information 3-12 Error reporting A-10 UL/CSA/VDE STATus 3-15 Specifications 1-14 SCPI Commands A-8 Updating Firmware 5-9 Self Test Errors 5-1 Self Test Error Codes 5-6 Serial Interface 1-8 VISA Serial Settings 2-5 Agilent 3-23, 3-24 Serial Interface National Instruments 3-25 4899/4809 2-11 VISA Example Program A-14 Baud rates 1-8...
Page 156
This page intentionally left blank Index-6...
Need help?
Do you have a question about the 8099 and is the answer not in the manual?
Questions and answers