Do you have a question about the 9099 and is the answer not in the manual?
Questions and answers
Summary of Contents for ICS ELECTRONICS 9099
Page 1
ELECTRONICS a division of Systems West Inc. MODEL 9009 and 9099 Ethernet Modbus Interfaces Instruction Manual...
Page 2
MODEL 9009 and 9099 Ethernet Modbus Interfaces Instruction Manual 9099 9009 ELECTRONICS division of Systems West Inc. 7034 Commerce Circle, Pleasanton, CA 94588 Phone 925.416.1000, Fax 925.416.0105 Publication Number 120217 Web Site http://www.icselect.com July 2017 Edition Rev 2...
The Model 9099 has been tested and found to comply with the limits for a Class A computing device pursuant to Subpart J of Part 15 of the FCC Rules and to comply with the EEC Standards EN 55022;...
Page 4
Contents General Information Product Description, Model Numbers, VXI-11 Conformance, Interface Specifications, Web Server, Configurable Functions and Default Settings, Indicators, Physical Specifications, Certifications and Accessories. Installation Shipment Verification, Installation Guide, Configuration Instructions, Serial Connections, 9009 Connections, Internal Jumper Settings and Rack Mounting Instructions. Operation Operation Description, Status Reporting Structure, IEEE-488.2 and SCPI Conformance, SCPI Commands, Modbus Commands,...
RS-485 signals. The Model 9009 is a PC board assembly with an Ethernet, GPIB and USB user interfaces. The Model 9099 is an enclosed unit that has an Ethernet user interface. Both units have a 9-pin connector with user se- lected RS-232 or RS-422/RS-485 signals for controlling Modbus RTU slave devices.
Page 6
It accepts 5 to 15 Vdc power. The Model 9099 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 9009 and 9099 models. Options for your unit may be found by comparing the list below to those listed on the program label on your unit. 90x9 - X General Model Number...
Page 8
15 client communication sockets limit. 1.4.4 Device Links and Locks The 9099 supports 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 9099 has only one instrument personality and the default name is inst0.
COMM Timeout User set period of 0 to 2 seconds. Releases socket and all associated resources if no activity occurred during the time period. 1.5.6 Port Usage TAbLE 1-1 9099 PORT USAGE Port Usage Protocols Notes Raw socket Configurable port#...
Page 10
4. The interface name defines the device type. Changing it may cause your ap- plication to stop working. 5. Setting Auto Disconnect on may cause your application to loose its connection to the 9099 if the application destroys all links.
Page 11
1.5.7 Protocols TCP/IP for VXI-11, HTTP and RPC communication UPD and TCP/IP for RPC Port Mapper commands Modbus TCP/IP for Modbus RTU conversion Raw Socket for telnet compatible IP packet communication 1.5.8 Raw Socket The 90x9's Raw Socket configuration is set to the following values: Port Sockets Echo...
1.6.1 HTML Pages The 9099's HTML pages conform to HTML version 4.01 or XHTML version 1.0. The WebServer serves the stored pages after substituting values for the variable placeholders. The variables are listed in Appendix 5. The standard pages are: 404.html...
Page 13
GPIb INTERFACE (9009 ONLY) 1.7.1 488.1 Capabilities The 9009's GPIB Bus interface meets the IEEE STD 488.1-1987 standard and has the following capabilities: SH1, AH1, T6, L3, SR1, PP0, DC1, RL0, DT0, C0 and E1/E2 drivers. 1.7.2 Address Ranges Primary addresses 0 - 30 1.7.3 buffers...
USb INTERFACE (9009 ONLY) 1.8.1 USb Driver Provides USB control through a virtual COM Port using the Microsoft's standard driver for Virtual COM Ports. 1.8.2 Supported Operating Systems Windows XP (SP2) or later, Vista Windows 7 Windows 8 Windows 10 1.8.3 Data Rates and Formats Baud Rate:...
Page 15
Rates Although Modbus RTU devices typically support only 9600 and 19200 baud, the 9099 is setable to the following baud rates. The 9099 selects the next higher standard rate when a nonstandard rate is entered. 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200 baud.
1.9.6 Alarm Inputs The 9099 has two TTL signal inputs with 10 kohm pullups to +5 Vdc. Input levels should be < 0.6 Vdc for low and > 1 Vdc for high. The signals are sampled at a > 1 kHz rate and reported in the Operational Register in the Status Reporting Structure.
1.10 PROGRAMMAbLE FUNCTIONS Table 1-3 lists the 9099 and 9009's programmable interface and Modbus func- tions that can be set by external commands and/or a web browser. PCB jumpers are factory set for RS-232 signals. TAbLE 1-3 FACTORY CONFIGURATION Command...
Page 18
1.11 INDICATORS The 9099 has eight LED indicators that 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. Off when IP address has unexpectedly changed.
Page 19
1.12 PHYSICAL 1.12.1 9009 board Assembly Size 5.5" L x 5.5" W x .5" H (13.97 cm L x 13.97 cm W x 1.24 cm H) (See Figure 1-1) Material PC Board - FR406 Flame resistant Fiberglass Components - RoHS compliant Construction Lead Free Weight...
Page 21
1.12.2 9099 Minibox 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-2) Material PC Board - FR406 Flame resistant Fiberglass Components - RoHS compliant Construction Lead Free Weight 3 lbs (1.4 kg) including adapter...
INTRODUCTION This section provides the user with directions for shipment verification, for install- ing and configuring the 9009 or 9099 and for connecting to its serial interface. All directions for the 9099 apply to the 9009 unless otherwise stated. UNPACKING When unpacking, check the unit for signs of shipping damage (damaged box, scratches, dents, etc.) If the unit is damaged or fails to meet specifications, notify...
Page 26
INSTALLATION GUIDES 2.4.1 9009 Installation Guide The following steps should be used as to setup and use the 9009. Review Section 2.9 to select or design the serial cable to the Modbus RTU Slave Device. Change the jumper positions on the 9009 as directed in Section 2.10 to match the selected signal type.
Page 27
Section 2.6 for setting the computer to communicate with the 9099. Use ICS’s VXI-11kybd program or a web browser to access the 9099 at its default IP of 192.168.0.254. See Section 2.6 for detailed instructions.
Page 28
9099 with Local or benchtop Connection Follow the directions in Section 2.6 for setting the computer to com- municate with the 9099. Use ICS’s VXI-11kybd program to access the 9099 at its default IP of 192.168.0.254. Send the 9009 an *IDN? query to readback its IDN message and to verify communication with the 9009.
Page 29
The Support CD ROM contains Keyboard, Utility and Example programs for ICS’s Interface Products. Interactive Keyboard programs are available for the 9009 and 9099’s Ethernet interface and for the 9009’s GPIB and USB Inter- faces. These programs let the user send simple commands and queries to the unit without having to write a program.
Page 30
Static lets the user set the 90’s IP Address, Net DHCP with Mask and Gateway IP values. DHCP enables the AutoIP 9099 to accept the IP values supplied by a DHCP Server or fallback to its AutoIP address of 169.254.90.99 if not connected to a DHCP Server.
If the 9009 or 9099 is being used in an isolated test system, just set the network settings to be similar to those used with the other instruments.
Page 32
2-wire RS-422/485 networks. Default is Off. Slave Device 0-255 Sets the address the 9099 will use to address the Address slave Modbus device. This value can also be set by the 9099’s Modbus ‘C’ command and by a Modbus TCP/IP packet during Modbus TCP/IP operation.
Page 33
Only enter the Slave Device Address and enable the Substitute Slave Address if you are doing Modbus TCP/IP operation and want the 9099 to substitute a different slave device address for the one in the program you will be running.
Page 34
SCPI commands in Table 3-3. Network setting changes can only be done with a web browser. Connect the 9009 or 9099 directly to your PC or indirectly through a switch as described in step 1 above and setup the PC as described in step 2 above.
Page 35
Figure 2-5 Confirmation Page Find and link to the 9009 or 9099 at its IP address (192.168.0.254). Link to inst0 if using ICS’s VXI-11kybd program. Do an *IDN? query to read the IDN message to verify communication to the 9009 or 9099. Select the appropriate SCPI command from the SCPI Command Tree in Table 3-3 for the parameter you want to query or change.
USING THE 9009’ GPIb INTERFACE The 9009 has a standard 24-pin GPIB connector with metric locking studs. The 9009’s GPIB Interface is factory set to primary address 4. As part of the self test at power turn-on time, the 9009 blinks a binary display of its GPIB address on is diagnostic LEDs.
USING THE 9009’ USb INTERFACE The 9009 has a standard USB ‘B’ connector. The 9009’s USB Interface requires that the Microsoft Virtual COM Port Driver be installed on your Windows PC. Supported operating systems are a Windows XP (SP2), Vista, or Windows 7 or 8 operating system.
Page 38
9009 and 9099 Serial Port The 9009 and 9099's serial port is a DTE (Data Terminal Equipment) interface on a 9-pin DE shell connector. The 9009 has a male connector, the 9099 has a female connector. The user selects RS-232 or RS-422/RS-485 signals by setting jumpers on the PC board and by using the SYST:COMM:SER:RS485 command to enable/disable tristating the Tx signal pair when not transmitting.
Page 39
Figure 2-7 shows the RS-232 connections to a Watlow F4T Temperature Controller. The serial communications module plugs into slot 6 on the back of the F4T. WATLOW 9099 Direct RS-232 Connections to a Watlow F4 Controller Temperature Chamber WATLOW F4...
Page 40
The 9099’s TX pair goes to each slave device’s RX input. Set jumpers W4 and W8 for RS-485 and move the W13 jumper to W7 FD position as directed in Table 2-3.
Page 41
9099 3.3V AC Power Tx/Rx- Tx/Rx+ Figure 2-8 9099 RS-485 Connections to an F4 Controller 9099 3.3V AC Power Tx/Rx- Tx/Rx+ Figure 2-9 9099 RS-485 Connection to an EZ-Zone Controller 9099 3.3V Watlow F4T Tx/Rx- Temperature Humidity 83.5 20.5 Tx/Rx+ 95.0...
2.10 9009 CONNECTIONS 2.10.1 Power Connections Power can be applied to the 9009 ether thorough a two screw terminal strip, P1, or through a friction lock connector, P2. Power can be regulated 5±0.2 Vdc or 5.5 to 15 Vdc at 400 mA. P2 is an AMP 640456-2 connector with male pins.
2.11 JUMPER SETTINGS The 9009 and 9099 have the same jumper designations and positions as shown in Table 2-3 and in Figures 2-11 and 2-12. The factory setting is for RS-232 operation. The SYST:COMM:SER:RS485 command is factory set to OFF (0).
Page 45
TAbLE 2-3 JUMPER SETTING TAbLE Jumper Function RS-232 RS-485 Setting Setting Factory use only. Leave in Run position Factory use only. Leave open Open Open Factory use only. Leave open Open Open Selects RS-232 or RS-485 signals. Selects RS-232 or RS-485 signals. Option Jumper.
Page 46
2.12 9099 RACK MOUNTING INSTRUCTIONS The Model 9099 is held in its rack mounting kit with a winged-'U' shaped bracket. Perform the following steps to install a 9099 in a rack mounting kit: Hold the 9099 at a 30 degree nose down angle and place the front bezel through the rack mount kit from the rear of the kit.
3.2.1 Overview The 9009 or the 9099 and the slave Modbus RTU devices connected to it can be controlled by VXI-11 commands via rpc calls, by Modbus TCP/IP commands, by a raw socket connection or by a web browser using the HTML pages. The 9009 board has two additional interfaces: GPIB and USB.
Page 48
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 9099 is sent a device_read request If the message is an acknowledgment message, there is no further action.
Page 49
OS. The 9099 provides a VXI-11 service as the server in the client-server relationship. The core channel link to interface inst0 in the 9099 is used for all commands and responses including 488.2, SCPI and Modbus commands. The 9099 does not have any additional interface personalities.
Page 50
Enter key. Using scripting with Raw Sockets is not recommended. While scripting does send messages to the 9099, it often closes the socket immediately after send- ing the message which blocks any replies and part of an echoed message (if echo is enabled).
Page 51
9099's Configuration page is enabled, the slave address in the TCP/IP packet is replaced with the 9099's current slave device address when creating the RTU packet. The 9099's slave device address can be set with a web browser or with the Modbus “C " command.
Page 52
The Control page provides current ESR and Modbus Error Register contents so the user can immediately tell if his commands caused an error. Any of the 9099 commands can be entered in the Device Command textbox and executed by clicking the Send button. Responses are automatically displayed in the Device Command window.
Page 53
The 9099's communication path to the Modbus RTU slave device is serial and requires that the user set the 9099 and the Modbus slave device to the same serial settings. Each Modbus device has its own address so that it can identify and respond to serial packets sent to its address.
488.2 STATUS REPORTING STRUCTURE The 9099 has multiple copies of 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 Reporting Structure by adding the Questionable and Operation registers. The Event and Status registers are controlled and queried with the IEEE-488.2 com-...
Page 56
Operation Complete has no meaning in the 9099. The Event Status Register is read and cleared with the *ESR? query and cleared with the *CLS command. Use the *ESE commands to set the Event Status...
Page 57
*CLS command. The Questionable Registers are queried with the SCPI STATUS branch commands. The 9099 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 58
STAT:OPER:COND? ‘quires the Operation Condition Register The 9099 can be set to monitor the Alarm inputs in the Operation Register and generate a Service Request (SRQ) when they change state. The follow- ing example sets the Operational Event register to monitor Alarm input #1 by capturing a negative transition on bit 1.
Page 59
The recommendation is to follow each query by reading the result. Testing the 9099's Output Queue's summary bit before addressing the device to talk is not necessary or desirable. 3.3.7 Status byte Register The 9099 generates a Service Request (SRQ) whenever any of the enabled bits in the Status Byte Register become true.
IEEE 488.2 compatible devices. The 9099 responds to these commands and to some optional common commands defined in the IEEE-488.2 Standard. Table 3-2 lists how the 9099 responds to these commands and describes their effect on the 9099 and its status reporting structures.
Page 61
ESE, SRE and SCPI Enable and Transition registers. *PSC 0 command clears the PSC flag, saves the ESE, SRE and the SCPI Transition and Enable register values and allows the 9099 to restore the saved register values and assert SRQ upon power turn-on. *PSC 1 command sets the PSC flag to 1 and enables the power-on clear of the saved registers.
Page 62
Reset output signal. Allow the 9099 300 ms to complete the *RST command. Saves current 9099 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 9099’s operation and a command error will be reported. Refer to Appendix A-1 for additional information about SCPI commands.
Page 64
TAbLE 3-2 SCPI COMMAND TREE Keyword Parameter Form Notes & Short Form Commands SYSTem System :COMMunicate :SERial :BAUD <numeric value> [9600] :PARity EVEN | ODD | [NONE] :BITS 7 | [8] :SBITs [1] | 2 :UPdate no value-command only :RS485 1(On) | 0(Off) [0] :RAW :PORT...
Page 65
TAbLE 3-2 SCPI COMMAND TREE (CONT'D) Keyword Parameter Form Notes & Short Form Commands Modus TCP/IP :MODbus :ESE :ESR? :SRE :STB? :OPERation Alarm Inputs, [:EVENt]? bits 0 and 1, 8 and 9 active (0) :CONDition? bits 0 and 1, 8 and 9 active (0) :ENABle bits 0 and 1, 8 and 9 active (0) :ENABLE?
Page 66
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 9099's Flash (with the *SAV command).
Page 67
Starts System Command Branch. :COMMunicate Identifies communication subsystem commands :SERial Identifies Serial Interface settings :BAUD 9600 Sets serial baud rate. Values for the 9099 are 1200 to 115200 baud. See 1.9.2. :PARity NONE Sets serial parity. Values = EVEN, ODD or NONE. :BITS Sets number of data bits per character.
Page 68
9009 is ready for the next command. Recom- mended for computer operation. Value is 1(On) | 0(Off). :ERRor? 0, “No Requests next entry in 9099's error error” queue. Error messages are: 0, “no error” -100, “Command error” -200, “Execution error”...
Page 69
TAbLE 3-3 SCPI COMMANDS AND QUERIES (CONTINUED) Keyword Default Description Value :MODbus Identifies Modbus TCP/IP Status Commands. :ESE Sets Modbus TCP/IP ESE register. Values are 0 to 255. :ESR? Queries Modbus TCP/IP ESR register. :SRE Sets Modbus TCP/IP SRE register. :STB? Queries Modbus TCP/IP register.
Page 70
(manufacturer, model code, serial number and product revision) . e.g. ICS Electronics, 9099, S/N 1509125, Rev 00.05 Ver 15.09.04 The word 'Model' may not be used in the IDN string. S/N is...
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 72
TAbLE 3-5 MODbUS COMMANDS CONT'D Syntax Meaning are 0 to 65535. Values for num are 1 to 64. Responses are RR[?] reg, num returned as signed 16-bit decimal or HEX values, +32767 continued to -32767, separated by commas. Output format selected with the Format command.
Page 73
TAbLE 3-5 MODbUS COMMANDS CONT'D Syntax Meaning L[?] w Loopback Command (code 0x08). Writes a 16-bit word, w, out to a Modbus device and returns a single response word to the GPIB bus. The question mark is optional for smart programs. Value for w is 0 to 65535.
Page 74
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 9099 during program debugging. See Section 3.10 for more information about the ErrorLog Utility.
Page 75
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 9099's COMM_Timeout setting. The background functions should not alter the state of the devices or of the interface.
VXI-11.3 instruments. You do have to be sure to keep the link to the 9099 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 77
The user should exit the Agilent Connection Expert after the device is found. Run ICS’s VXI-Error Log Utility if you experience unstable operation, program hangups or see the 9099’s ERR LED blinking often. Use the log to debug and modify your VISA program.
Page 78
IP address and is a placeholder for the 9099’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 9099 default IP address if no IP address was entered.
Page 79
The 9099's WebServer communicates thru port 80. If you write a program to open a socket to port 80 on the 9099 and send a single line containing the pa- rameter via the socket, it would be the same as having a browser communicate with the 9099.
Page 80
When done save the new values. Send “*SAV 0” ‘save the new configuration The *SAV 0 command will cause the 9099 to blink all but one of its LEDs. . 3.8.3 Setting the Modbus Device Address The Modbus device address in the 9099 is set with the 'C' command to match the address set in the desired Modbus device.
Page 81
3.8.4 Querying a Modbus Device The next step is to send a query to the 9099 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 82
32-bit result. An example is reading a process variable from Registers 20 (MSW) and 21 (LSW). The 9099 can be used to read each register individually or to read two successive registers. The commands are:...
Page 83
'reads registers 360 and 361 3.8.12 Setting Modbus Device Timeouts The D command sets the time that the 9099 waits to receive a response from the Modbus device. If the 9099 does not receive a response within the time period, it assumes that the Modbus device is not responding and sets the timeout error.
Page 84
3.8.13 Locking Setup Parameters Some of the 9099’s configuration parameters can be locked to prevent ac- cidental 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 85
Status Byte Register with a device_readstb? query. 3.8.15 Personalizing the Unit’s IDN Message The 9099'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 86
Select the 9099's IP address and press the Select and Create Link button. If the 9099 is not found, use the directions in Section 2.6 to review and correct your network connections to the 9099.
Page 87
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 88
A Red ‘Locked’ message is visible when the instrument is locked. Device Clear clears the 9099's serial buffers. The Device Trigger has no func- tion with Modbus slave devices. The Serial Poll button reads the instrument's Status Register and displays the results in the Device Response window.
3.10.2 Running the ErrorLog Utility To launch the ErrorLog utility, open an MSDOS window and navigate to the ICS Electronics VXI-11 Utilities folder. The ErrorLog utility requires a single command line parameter, which is the IP of the ICS VXI-11 device to be monitored.
Page 90
TAbLE 3-6 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 91
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.
This is not done by passing the 9009/9099 manual onto the end-user since it does not relate to the end product nor document how the end product is operated. In most cases the end-user needs directions for: Setting the product's Network (and or GPIB) Settings.
Page 93
LabVIEW VIs, etc. 3.11.5 Copyright Release OEM users of the 9009 or the 9099 Ethernet to Modbus RTU Interface are hereby given permission 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.
Page 94
This page left intentionally blank 3-48...
Theory of Operation INTRODUCTION This section describes the theory of operation of the 9009 and the 9099 Ethernet to Modbus RTU interfaces. The description of the 9099 applies to the 9009 unless otherwise stated. FUNCTIONAL DESCRIPTION The 9099 is a microprocessor based device that performs the VXI-11 service,...
Page 96
The other VXI-11.3 commands like Device Clear clears the serial buffers. Device Trigger has no affect on the 9099. The ReadSTB command causes the 9099 to respond as a GPIB device would to a Serial Poll.
DIAGRAM DESCRIPTION Figure 4-2 shows a block diagram of the 9099’s internal logic. The 9099 is made up of seven major elements, most of which are interconnected to the ARM9 microprocessor by a common data, address and control signal bus.
Page 98
The 9099's power supply is a switching regulator that converts a unregulated 9 to 32 volt DC input to +5 Vdc to run the 9099's internal logic chips. The +5 Vdc is down regulated to make 3.3 and 1.8 Vdc for the ARM processor and the supporting chips that run on 3.3 Vdc power.
Page 99
µP BUS GPIB GPIB INTFC Latch FLASH TCP/IP Diagnostic LEDs INTFC RS-232 ARM9 Processor LAN Reset RS-422/RS-485 INTFC 3.3V Unreg DC 3.3V 1.8V Figure 4-3 9009 block Diagram The GPIB interface uses industry standard GPIB bus transceivers and a 7210 type GPIB interface chip drive the GPIB bus with 5 Vdc signals.
INTRODUCTION This section describes the maintenance testing, troubleshooting, and repair procedures for ICS's Model 9009 and 9099 Ethernet to Modbus RTU Inter- faces. Any description or reference to the 9099 applies also to the 9009 unless otherwise noted. MAINTENANCE The 9009 and 9099 does not require periodic calibration and have no internal adjustments.
Page 102
Hardware failures after the unit has been properly installed and running can be isolated by substituting a known good unit in to the system. If the problem goes away, the fault lies with the removed board. Note the pin, signal or com- mand that fails and contact ICS for repair information.
SELF TEST ERROR CODES At power turn on, the 9099 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 104
No network messages received. Check network router and gateways for proper settings. Wrong settings. PC and 9099's network setting must be in the same IP B or C Bad Ethernet cable. Try a different cable. LAN LED off No network Check cable, switch or PC for proper operation.
Page 105
Wrong serial settings Check serial settings against modbus device settings. Wrong signal Check cable wiring against connections the 9099 manual. Check 9099 internal jumper settings for correct signals. RS-485 missing W11 and W12 not installed. network termination Install W11 and W12 jumpers.
Page 106
Auto-disconnect Check 9099 settings and drops socket set on turn Auto-disconnect off. connection COMM_Timeout 9099 not accessed for a long expired time period. Extend 9099 COMM_Timeout period or add a background keepalive functon to the client program. Modbus TCP/IP Socket closed for no response...
Page 107
TAbLE 5-2 TROUbLESHOOTING GUIDE Possible Symptom Fault Action or Check 9099 stops Using Agilent IO Agilent expects their responding Libraries instruments to disconnect when the link count goes to zero. Turn Auto-disconnect on for operation with Agilent VISA and programs.
Page 108
VXI-11 ERRORS The 9099'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.
Table 1-2 by holding the rear panel LAN Reset Button in for approximately 10 seconds. 1. Connect the supplied AC adapter to the 9099 and to an AC power outlet. Connect the 9009 to a sutible DC power source.
2. Connect the 9099 to a Windows PC as described in paragraph 2.6.1 and turn it on. 3. If the PC is already set to communicate with the 9099 skip this step. Else, disconnect the PC from your company network and change its Local Area Network setting to the 9099's static IP range as described in paragraph 2.6.1.
The Flash memory contents are held and restored to the system when power is applied to the unit. The 9099's flash contains one sector that holds user saved variables. The other sectors are used for the unit's firmware or are spare sec- tors for future program use.
REPAIR PROCEDURE Repair of the 9099 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 113
Appendix APPENDIX PAGE VXI-11 Introduction A1.1 IEEE 488.1 Bus A1.2 IEEE 488.2 Standard A1.3 SCPI Commands VXI-11 Protocol and Example Program A-11 A2.1 Sockets, Channels and Links A-11 A2.2 Auto-disconnect A-13 A2.3 Service Requests A-13 A2.4 Transferring Data A-14 A2.5 An Example VISA Program A-14 VXI-11 RPC Gen Information...
Page 114
VXI-11 Introduction The VXI-11 Standard was created as a way to control instruments over a TCP/IP network. 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 or 9065 Ethernet-to-GPIB Controller.
Page 115
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 116
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...
Page 117
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 118
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 119
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.
Page 120
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 121
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 122
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 123
VXI-11 PROTOCOL AND EXAMPLE PROGRAM This Appendix describes the VXI-11 Protocol, its applicability to ICS's 80xx series Interfaces and includes a C language VISA program. The VXI-11 protocol uses Remote Procedure Calls (RPC) that provides an invisible communication medium allowing the developer to concentrate on his program.
Page 124
TCP/IP socket communication is used when the client links to the unit. The 80xx and 90xx only supports 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.
COMM_Timeout can be set to a low period like 3-5 minutes for quick socket recovery when the user is first debugging a program and tends to breakout of the program without properly closing the sockets. Later, with a finished program, extend the time to hours to avoid prematurely closing the socket when not communicating with the unit.
A2.4 Transferring Data ICS's 80xx and 90xx Interfaces normally transfer small amounts of data so there are no data transfer problems. However, when reading, the user should not limit the amount of data in a read operation unless the Interface specifically allows it.
Page 127
a VISA alias. Otherwise use a fully qualified VISA resource. The VISA resource can be a GPIB, TCP/IP, or some other resource. If a Watlow temp response can be obtained, the response will be printed to the console. // Fully Qualified VISA Resource name examples: GPIB0::4::INSTR TCPIP::localhost::gpib0,4::INSTR // Notes:...
Page 128
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]); retval = 1;...
Page 129
VXI-11 RPC PROTOCOL The information about the RPC Protocol in Section C is reprinted from the VXI-11 Specification. Consult the VXI-11 Specification for more information about using the VXI-11 RPC Protocol. Definitions Channel A channel is a logical communication path. All client/server connections must have a Core Channel.
Page 130
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. In the summary section you will note several URL references for detailed RPC information.
Page 131
typedef long Device_Flags; /* Error types */ typedef long Device_ErrorCode; struct Device_Error { Device_ErrorCode error; struct Create_LinkParms { long clientId; /* implementation specific value */ bool lockDevice; /* attempt to lock the device */ unsigned long lock_timeout; /* time to wait on a lock */ string device<>;...
Page 132
opaque data<>; /* data.len and data.val */ struct Device_ReadStbResp { Device_ErrorCode error; /* error code */ unsigned char stb; /* the returned status byte */ struct Device_GenericParms { Device_Link lid; /* Device_Link id from connect call */ Device_Flags flags; /* flags with options */ unsigned long lock_timeout;...
Page 133
struct Device_DocmdResp { Device_ErrorCode error; /* returned status */ opaque data_out<>; /* returned data parameter */ program DEVICE_ASYNC{ version DEVICE_ASYNC_VERSION { Device_Error device_abort (Device_Link) = 1; } = 1; } = 0x0607B0; program DEVICE_CORE { version DEVICE_CORE_VERSION { Create_LinkResp create_link (Create_LinkParms) = 10; Device_WriteResp device_write (Device_WriteParms) = 11;...
Page 134
ICS CONFIGURATION RPC PROTOCOL The following document describes ICS's Configuration RPC Protocol. This information is supplied to enable a RPC programmer to configure ICS 80xx and 90xx devices with RPC commands. A4.1 INTRODUCTION This document defines the configuration interface to ICS devices (hereafter referred to as the Edevice).
Page 135
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 136
TAbLE b CONFIGURATION RPC MESSAGES Message Description 9099 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 137
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 138
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 139
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 140
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 141
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 142
C.5 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 143
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 144
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 145
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 146
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 147
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 148
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 149
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 150
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 151
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 152
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 153
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 154
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 155
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 156
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 157
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 158
C.21 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 159
C.22 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 160
C.23 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; opaque idn<>;...
Page 161
Refer to the ErrorLogger utility for the error value definitions. Error Meaning No error A-49...
Page 162
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. /* Action parameter values */ %#define ICS_READ %#define ICS_WRITE...
Page 163
/* 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 int action; unsigned int port; 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.
Page 164
struct Comm_Timeout_Resp { unsigned int error; unsigned int timeout; /* 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;...
Page 165
/* 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 function) and will need a netmask and gateway IP. struct Netmask_Parms { unsigned int action;...
Page 166
unsigned int action; unsigned int address; 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 167
struct Eos_8bit_Resp { unsigned int error; unsigned int eos8bit; /* 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;...
Page 168
/* 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 int error; /* The commit_config procedure is used to cause the current configuration * settings to be saved.
Page 170
HTML VARIAbLES The webserver in the 9009 and 9099 includes generic HTML pages for control- ling Watlow F4, EZ Zone and F4T Temperature Controllers. This appendix lists the HTML substitution variables (%xx%) and replacement parameters (xxsp) used on the pages and their respective Modbus registers. Register functions are given in the respective Watlow Controller manual.
Page 171
Variable Description Register Type %dout4on% Displays Output 4 On 2030 16-bit RW %dout4off% Displays Output 4 Off 2030 16-bit RW dout4 Radio Values 'On' and 'Off' 2030 16-bit RW %dout5on% Displays Output 5 On 2040 16-bit RW %dout5off% Displays Output 5 Off 2040 16-bit RW dout5 Radio Values 'On' and 'Off'...
Page 172
A5.3 F4T.html This page is for the Watlow F4T Controller. Temperature units are switched by writing to three F4T registers that set the units for the display, Modbus RTU and Ethernet interfaces. Temperature units are displayed by reading from just the display register Variable Description...
Page 173
Variable Description Register Type %F4dout7on% Displays Output 7 On 16826 16-bit RW %F4dout7off% Displays Output 7 Off 16826 16-bit RW F4dout7 Radio Values 'On' and 'Off' 16826 16-bit RW %F4dout8on% Displays Output 8 On 16828 16-bit RW %F4dout8off% Displays Output 8 Off 16828 16-bit RW F4dout8 Radio Values 'On' and 'Off'...
Need help?
Do you have a question about the 9099 and is the answer not in the manual?
Questions and answers