-
ADAM-6000 Series Ethernet-based Data Acquisition and Control Modules User Manual
-
Copyright The documentation and the software included with this product are copyrighted 2009 by Advantech Co., Ltd. All rights are reserved. Advantech Co., Ltd. reserves the right to make improvements in the products described in this manual at any time without notice. No part of this manual may be reproduced, copied, translated or transmitted in any form or by any means without the prior written permission of Advantech Co., Ltd. Information provided in this manual is intended to be accurate and reliable.
-
Product Warranty (2 years) Advantech warrants to you, the original purchaser, that each of its products will be free from defects in materials and workmanship for two years from the date of purchase. This warranty does not apply to any products which have been repaired or altered by persons other than repair personnel authorized by Advantech, or which have been subject to misuse, abuse, accident or improper installation.
-
Technical Support and Assistance Step 1. Visit the Advantech web site at www.advantech.com/support where you can find the latest information about the product. Step 2. Contact your distributor, sales representative, or Advantech's customer service center for technical support if you need additional assistance. Please have the following information ready before you call: - Product name and serial number - Description of your peripheral attachments - Description of your software (OS, version, software, etc.
-
Chapter Chapter Chapter 1 Understanding Your System ......................... 2 1.1 Introduction ....................................................................... 2 1.2 Major Features................................................................... 3 Figure 1.1:ADAM-6000 System Architecture ............... 2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3 1.4 Specifications .................................................................... 5 Dimensions....................................
-
4.1.3 4.1.4 4.2 Digital I/O Modules ........................................................ 36 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 Chapter Figure 4.4:ADAM-6017 Digital Output Wiring .......... 27 ADAM-6018 ................................................................ 28 Figure 4.5:ADAM-6018 8-ch Thermocouple Input .... 28 Figure 4.6:ADAM-6018 Thermocouple Input Wiring 30 Figure 4.7:ADAM-6018 Digital Output Wiring .......... 31 ADAM-6024 ..........................................
-
5.3.2 5.3.3 5.3.4 5.4 5.5 5.6 Chapter Figure 5.1:ADAM.NET Utility Operation Window .... 63 Figure 5.2:ADAM.NET Utility Toolbar ...................... 66 Search ADAM-6000 Modules ..................................... 67 Figure 5.3:Access Control Setting ............................... 71 I/O Module Configuration .......................................... 72 Figure 5.4:Channel & GCL Configuration .................. 72 Figure 5.5:Channels Range Configuration Area .......... 73 Figure 5.
-
6.4.5 6.4.6 Chapter Universal I/O Command Set ...................................... 154 Digital Input/Output Command Set ........................... 164 7 Graphic Condition Logic(GCL)................. 170 7.1 7.2 Overview ....................................................................... 170 GCL Configuration Environment.................................. 171 7.3 Configure Four Stages of One Logic Rule.................... 176 Figure 7.1:GCL Configuration Environment ............. 171 Figure 7.
-
Figure 7.32:Ladder Diagram for Rising Edge ........... 210 Figure 7.33:GCL Logic for Rising Edge ................... 211 Figure 7.34:Time Chart for Falling Edge .................. 211 Figure 7.35:Ladder Diagram for Falling Edge .......... 212 Figure 7.36:GCL Logic for Falling Edge .................. 213 Figure 7.37:Time Chart for Sequence Control .......... 213 Figure 7.38:GCL Logic for Sequence Control .......... 214 Figure 7.39:GCL Logic for Event Trigger ................. 215 Figure 7.
-
C.3 Shielding........................................................................ 256 C.3.1 C.3.2 Cable Shield ............................................................... 256 Figure C.9:Single isolated cable ................................ 256 Figure C.10:Double isolated cable ............................. 257 System Shielding ....................................................... 258 Figure C.11:System Shielding ................................... 258 Figure C.
-
CHAPTER 1 2 Understanding Your System Sections include: • Introduction • Major Features • Specifications • Dimensions • LED Status
-
Chapter 1 Understanding Your System 1.1 Introduction ADAM-6000 Ethernet-based data acquisition and control modules provide I/O, data acquisitions, and networking in one module to build a costeffective, distributed monitoring and control solution for a wide variety of applications. Through standard Ethernet networking, ADAM-6000 retrieves I/O values from sensors, and can publish them as a real-time I/O values to networking nodes via LAN, Intranet, or Internet.
-
1.2 Major Features 1.2.1 Ethernet-enabled DA&C I/O Modules ADAM-6000 is based on popular Ethernet networking standards used in most business environments. Users can easily add ADAM-6000 I/O modules to existing Ethernet networks, or use ADAM-6000 modules in new Ethernet-enabled eManufacturing networks. ADAM-6000 modules feature a 10/100 Mbps Ethernet chip and support industrial popular Modbus/ TCP protocols over TCP/IP for data connection. ADAM-6000 also supports UDP protocol over Ethernet networking.
-
1.2.4 Remote Monitoring & Diagnosis Each ADAM-6000 module features a pre-built I/O module web page to display real-time I/O data values, alarms, and module status thru LAN or Internet. Through any Internet browser, users can monitor real-time I/O data values and alarms at local or remote sites. Then, the web-enabled monitoring system is completed immediately without any programming. 1.2.
-
1.3 Specifications Ethernet: Wired: 10/100 Base-T Wireless: 802.11b WLAN Wiring: UTP, category 5 or greater Bus Connection: RJ45 modular jack Comm. Protocol: Modbus/TCP on TCP/IP and UDP Data Transfer Rate: Up to 100 Mbps Unregulated 10 to 30 VDC Status Indicator: Power, CPU, Communication (Link, Collide, 10/100 Mbps, Tx, Rx) Case: ABS + PC with captive mounting hardware Screw Terminal Block: Accepts 0.5 mm 2 to 2.
-
1.4 Dimensions The following diagram show the dimensions of the l/O modules. (mm) Figure 1.2: ADAM-6000 Module Dimension 1.5 LED Status There are two LEDs on the ADAM-6000 I/O Series front panel. Each LED has two indicators to represent system status, as explained below: Figure 1.3: LED Indicators (1) Status: Red indicator. Blinks when ADAM-6000 module is running. (2) Link: Green indicator. On whenever the Ethernet is connected. (3) Speed: Red indicator. On when Ethernet speed is below 100 Mbps.
-
CHAPTER 2 2 Selecting Your Hardware Sections include: • Selecting an I/O Module • Selecting a Link Terminal & Cable • Selecting an Operator Interface
-
Chapter 2 Selecting Your Hardware 2.1 Selecting an I/O Module To organize an ADAM-6000 remote data acquisition & control system, you need to select I/O modules to interface the host PC with field devices or processes that you have previously determined. There are several things should be considered when you select the I/O modules.
-
. Table 2.1: I/O Selection Guidelines Choose this type of I/O module: For these types of field devices or operations (examples): Explanation: Discrete input module and block I/O module Selector switches, pushbuttons, Input modules sense photoelectric eyes, limit ON/OFF or OPENED/ switches, circuit breakers, prox- CLOSED signals.
-
Figure 2.1: Ethernet Terminal and Cable Connection Table 2.
-
2.3 Selecting an Operator Interface To complete your Data Acquisition and Control system, selecting the operator interface is necessary. Adopting the Modbus/TCP Protocol, ADAM-6000 I/O modules exhibit high ability in system integration for various applications.
-
ADAM-6000 Series User Manual 12
-
CHAPTER 3 2 Hardware Installation Guide Sections include: • Determining the Proper Environment • Mounting • Wiring & Connections
-
Chapter 3 Hardware Installation Guide 3.1 Determining the Proper Environment Prior to installing ADAM-6000 modules, please check the following. 3.1.1 Package Contents Unpack the shipped boxes and make sure that the contents include: • ADAM-6000 module with one bracket and DIN-rail adapter • ADAM-6000 module User Manual 3.1.2 System Requirements Host Computer • IBM PC compatible computer with 486 CPU (Pentium recommended) • Microsoft 95/98/2000/NT 4.
-
3.2 Mounting ADAM-6000 modules are designed as compact units and are allowed to be installed in the field site under the following methods. 3.2.1 Panel Mounting Each ADAM-6000 Module is packed with a plastic panel mounting bracket. Users can refer the dimensions of the bracket to configure an optimal placement in a panel or cabinet. Fix the bracket first, then, fix the ADAM-6000 module on the bracket. Figure 3.
-
Figure 3.2: Fix Module on theBracket 3.2.2 DIN-rail mounting The ADAM-6000 module can also be secured to the cabinet by using mounting rails. Fix the ADAM-6000 module with the DIN-rail adapter as Figure 3-3. Then secure it on the DIN-rail as Figure 3-4. If you mount the module on a rail, you should also consider using end brackets at each end of the rail. The end brackets help keep the modules from sliding horizontally along the rail.
-
Figure 3.
-
Figure 3.4: Secure Module to a DIN-rail 3.3 Wiring & Connections This section provides basic information on wiring the power supply, I/O units, and network connection. 3.3.1 Power Supply Wiring Although the ADAM-6000/TCP systems are designed for a standard industrial unregulated 24 VDC power supply, they accept any power unit that supplies within the range of +10 to +30 VDC.
-
Figure 3.5: ADAM-6000 Module Power Wiring We advise that the following standard colors (indicated on the modules) be used for power lines: +Vs (R) Red GND (B) Black 3.3.2 I/O Module Wiring The system uses a plug-in screw terminal block for the interface between I/O modules and field devices. The following information must be considered when connecting electrical devices to I/O modules. 1. The terminal block accepts wires from 0.5 mm to 2.5 mm. 2. Always use a continuous length of wire.
-
ADAM-6000 Series User Manual 20
-
CHAPTER 4 2 I/O Module Introduction Sections include: • Analog Input Modules • Digital I/O Modules • 16-ch Digital I/O w/ Counter
-
Chapter 4 I/O Module Introduction 4.1 Analog Input Modules Analog input modules use an A/D converter to convert sensor voltage, current, thermocouple or RTD signals into digital data. The digital data is then translated into engineering units. When prompted by the host computer, the data is sent through a standard 10/100 Base-T Ethernet or IEEE 802.11b WLAN. Users can read the current status via pre-built webpage or HMI software supported Modbus/TCP protocol.
-
0 ~ 200° C 0 ~ 400° C -200 ~ 200° C IEC RTD 100 ohms (= 0.0385 ) JIS RTD 100 ohms (= 0.0392 ) • Pt 1000: -40 ~ 160° C • Balco 500:-30 ~ 120° C • Ni 518: -80 ~ 100° C 0 ~ 100° C • Accuracy: ± 0.
-
Application Wiring Figure 4.1: ADAM-6015 RTD Input Wiring Assigning Addresses for ADAM-6015 Modules Based on the Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules you place in the system are defined by a simple rule. Please refer to Appendix B.2.1 to map the I/O address. 4.1.2 ADAM-6017 8-ch Analog Input with 2-ch Digital Output Module The ADAM-6017 is a 16-bit, 8-channel analog differential input module that provides programmable input ranges on all channels.
-
ADAM-6017 Specifications • Communication: 10/100 Base-T Ethernet • Supports Protocol: Modbus/TCP, TCP/IP, UDP, HTTP, ICMP and ARP • Supports Peer-to-Peer and GCL (Refer to Section 5.3.4 and Chapter 7) Analog Input: • Channels: 8 (differential) • Input Impedance: > 10M (voltage), 120 (current) • lnput Type: mV, V, mA • lnput Range: ±150mV, ±500mV, ±1 V, ±5V, ±10V, 0-20 mA, 4-20 mA • Accuracy: ±0.
-
• Operating Humidity: 20 ~ 95 % RH (non-condensing) • Storage Humidity: 0 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 70° C • Storage Temperature: -20 ~ 80° C Application Wiring Figure 4.2: ADAM-6017 Analog Input Wiring ADAM-6017 is built with a 120 resistor in each channel, users do not have to add any resistors in addition for current input measurement. Just adjust the jumper setting to choose the specific input type you need. Refer to Figure 4.
-
Figure 4.3: ADAM-6017 Analog Input Type Setting Figure 4.4: ADAM-6017 Digital Output Wiring Assigning Addresses in ADAM-6017 Modules Basing on Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules you place in the system are defined by a simple rule. Please refer to Appendix B.2.2 to map the I/O address.
-
4.1.3 ADAM-6018 Isolated Thermocouple Input with 8-ch Digital Output Module The ADAM-6018 is a 16-bit, 8-channel thermocouple input module that provides programmable input ranges on all channels. It accepts various Thermocouple inputs (Type J, K, T, E, R, S, B) and allows each analog channel to configure an individual range for several applications. In order to satisfy all plant needs in one module, ADAM-6018 has designed with 8 thermocouple input and 8 digital output channels. Figure 4.
-
Analog Input • Channels: 8 (differential) • Input Impedance: > 10 M • lnput Type: Thermocouple • Thermocouple Type Range: J Type: 0 ~ 760° C K Type: 0 ~ 1370° C T Type: -100 ~ 400° C E Type: 0 ~ 1000° C R Type: 500 ~ 1750° C S Type: 500 ~ 1750° C B Type: 500 ~ 1800° C • Accuracy: ±0.
-
General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 20 ~ 95% RH (non-condensing) • Storage Humidity: 0 ~ 95% RH (non-condensing) • Operating Temperature: -10 ~ 70° C • Storage Temperature: -20 ~ 80° C Application Wiring Figure 4.
-
Figure 4.7: ADAM-6018 Digital Output Wiring Assigning Addresses for ADAM-6018 Modules Based on the Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules you place in the system are defined by a simple rule. Please refer to Appendix B.2.3 to map the I/O address. 4.1.4 ADAM-6024 12-ch Isolated Universal Input/Output Module The ADAM-6024 is a 12-channel Universal Input/Output module. There are 6 analog input, 2 analog output, 2 digital input and 2 digital output channels.
-
Specifications • Communication: 10/100 Base-T Ethernet • Supports Protocol: Modbus/TCP, TCP/IP, UDP, HTTP, ICMP and ARP • Receives data from other modules with Peer-to-Peer and GCL function only and generates analog output signals (Refer to Section 5.3.4 and Chapter 7 for more detail about Peer-to-Peer and GCL ) Analog Input • Channels: 6 (differential) • Range: ±10 VDC, 0~20 mA, 4~20 mA • Input Impedance: >10 M • Accuracy: ±0.
-
Digital Input • Channels: 2 • Dry Contact: Logic level 0: close to GND Logic level 1: open • Wet Contact: Logic level 0: 0 ~ 3 VDC Logic level 1: 10 ~ 30 VDC Digital Output • Channels: 2 • Sink type: Open collector to 30 V, 100 mA (maximum) • Power Dissipation: 300 mW for each module General: • Built-in Watchdog Timer • Isolation Protection: 2000VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 4 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 20 ~ 95 % RH (non-condensing) • Stora
-
Jumper Settings Default Setting Output : Current Analog Input : Voltage Analog Figure 4.8: ADAM-6024 Jumper Settings Application Wiring Figure 4.
-
Figure 4.10: ADAM-6024 DI Wiring Figure 4.
-
Assigning Addresses for ADAM-6024 Modules Based on the Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules you place in the system are defined by a simple rule. Please refer to Appendix B.2.4 to map the I/O address. 4.2 Digital I/O Modules 4.2.1 ADAM-6050 18-ch Isolated Digital I/O Module The ADAM-6050 is a high-density I/O module built-in a 10/100 based-T interface for seamless Ethernet connectivity.
-
Digital Output • Channels: 6 • Sink type: Open Collector to 30 V, 100 mA (maximum load) • Supports 5 kHz pulse output • Supports high-to-low and low-to-high delay output General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 20 ~ 95 % RH (non-condensing) • Storage Humidity: 0 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 70° C • Storage Temperature: -20 ~ 80° C
-
Figure 4.13: ADAM-6050 Digital Output Wiring Assigning Addresses in ADAM-6050 Modules Basing on Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules you place in the system are defined by a simple rule. Please refer to Appendix B.2.5 to map the I/O address. All digital input channels in ADAM-6050 are allowed to use as 32-bit counters (Each counter is consisted of two addresses, Low word and High word). Users could configure the specific DI channels to be counters via Windows Utility.
-
ADAM-6051 Specifications • Communication: 10/100 Base-T Ethernet • Supports Protocol: Modbus/TCP, TCP/IP, UDP, HTTP, ICMP and ARP • Supports Peer-to-Peer and GCL (Refer to Section 5.3.
-
General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 20 ~ 95 % RH (non-condensing) • Storage Humidity: 0 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 70° C • Storage Temperature: -20 ~ 80° C Application Wiring Figure 4.
-
Figure 4.15: ADAM-6051 Counter (Frequency) Input Figure 4.
-
Assigning Addresses in ADAM-6051 Modules Based on Modbus/TCP standard, addresses of the I/O channels in ADAM-6000 modules are defined by a simple rule. Please refer to Appendix B.2.6 to map the I/O address. All digital input channels in ADAM-6051 are allowed to use as 32-bit counters (Each counter is two addresses, Low and High). Users could configure the specific DI channels to be counters via Windows Utility (Refer to Section 5.3). 4.2.
-
Digital Output • Channels: 8 • Source Type: 10 ~ 35 VDC, 1 A (per channel) • Supports 5 kHz pulse output • Supports high-to-low and low-to-high delay output General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 20 ~ 95 % RH (non-condensing) • Storage Humidity: 0 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 70° C • Storage Temperature: -20 ~ 80° C Application W
-
Figure 4.18: ADAM-6052 DI (Wet Contact) Wiring 10 ~ 30 VDC Load DI_COM DI GND DO_VCC DI 7 DO 0 DI 6 DO 1 DI 5 DO 2 DI 4 DO 3 DI 3 DO 4 DI 2 DO 5 DI 1 DO 6 DI 0 DO 7 DO_GND (R) +Vs RJ-45 (Ethernet) (B) GND Figure 4.
-
Assigning Addresses for ADAM-6052 Modules Based on Modbus/TCP, the addresses of the I/O channels in ADAM-6000 modules are defined by a simple rule. Please refer to Appendix B.2.7 to map the I/O address. All digital input channels in ADAM-6052 are allowed to use as 32-bit counters (Each counter is consisted of two addresses, Low word and High word). Users could configure the specific DI channels to be counters via Windows Utility. (Refer to Section 5.3) 4.2.
-
Relay Output • Channels: 6 (Form A) • Contact rating (Resistive):AC: 120 V @ 0.
-
Application Wiring Figure 4.20: ADAM-6060 Digital Input Wiring Figure 4.
-
Assigning Addresses in ADAM-6060 Modules Basied on Modbus/TCP standard, the addresses of the I/O channels in ADAM-6000 modules are defined by a simple rule. Refer to Appendix B.2.8 to map the I/O address. All digital input channels in ADAM-6060 are allowed to use as 32-bit counters (Each counter is consisted of two addresses, Low word and High word). Users could configure the specific DI channels to be counters via Windows Utility. (Refer to Section 5.3) 4.2.
-
Relay Output • Channels: 6 (Form A) • Contact rating (Resistive): AC: 250 V @ 5 A DC: 30 V @ 3 A • Breakdown voltage: 500 VAC (50/60 Hz) • Relay on time: 7 millisecond • Relay off time: 3 millisecond • Total switching time: 10 milliseconds • Insulation Resistance: 1 G minimum at 500 VDC • Maximum Switching Rate: 20 operations/minute (at rated load) • Electrical Endurance Typical 1 x 105 operations At 30 VDC / 3 A (Operating frequency 20 operations/minute) Typical 1 x 105 operations At 250 VAC / 3 A (Op
-
Application Wiring Figure 4.22: ADAM-6066 Digital Input Wiring Figure 4.
-
4.2.6 ADAM-6050W 18-ch Wireless Isolated Digital Input/Output Module ADAM-6050W is a high-density I/O module with a IEEE 802.11b wireless LAN interface for seamless Ethernet connectivity. It provides 12 digital input and 6 digital output channels with 2000 VDC isolation protection. All DI channels support input latch function for important signal handling. Meanwhile, the DI channels can be used as 3 kHz counter and frequency input channels.
-
General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 5 ~ 95 % RH (non-condensing) • Storage Humidity: 5 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 60° C • Storage Temperature: -20 ~ 80° C Application Wiring Figure 4.
-
Figure 4.25: ADAM-6050W Digital Output Wiring 4.2.7 ADAM-6051W 14-ch Wireless Isolated Digital Input/Output w/2-ch Counter Module ADAM-6051W is a high-density I/O module with an IEEE 802.11b wireless LAN interface for seamless Ethernet connectivity. It provides 12 digital inputs, 2 digital outputs, and 2 counter channels with 2000 VDC isolation protection. All of digital input channels support input latch functionality for important signal handling.
-
Digital Input • Channels: 12 • Dry Contact: Logic level 0: Close to Ground Logic level 1: Open • Wet Contact: Logic level 0: 0 ~ 3 VDC Logic level 1: 10 ~ 30 VDC • Supports 3 kHz counter input (32-bit + 1-bit) • Supports 3 kHz frequency input • Supports inverted DI status Counter Input • Channels: 2 (32-bit + 1-bit overflow) • Maximum count: 4,294,967,295 • Frequency range: 0.
-
General: • Built-in Watchdog Timer • Isolation Protection: 2000 VDC • Power Input: Unregulated 10 ~ 30 VDC • Power Consumption: 2.5 W @ 24 VDC • Power Reversal Protection • Operating Humidity: 5 ~ 95 % RH (non-condensing) • Storage Humidity: 5 ~ 95 % RH (non-condensing) • Operating Temperature: -10 ~ 60° C • Storage Temperature: -20 ~ 80° C Application Wiring Figure 4.
-
Figure 4.27: ADAM-6051W Counter (Frequency) Figure 4.
-
4.2.8 ADAM-6060W 6-ch Wireless Digital Input and 6-ch Relay Module ADAM-6060W is a high-density I/O module with a built-in IEEE802.11b wireless LAN interface for seamless Ethernet connectivity. With an Ethernet port and embedded web server, ADAM-6060W offers 6 relay (form A) outputs and 6 digital input channels. It supports contact ratings of AC 120V @ 0.5A, and DC 30V @ 1A. All the digital input channels support input latch functionality for critical handling.
-
Relay Output • Channels: 6 (Form A) • Contact rating (Resistive): AC: 120 V @ 0.
-
Figure 4.29: ADAM-6060W Digital Input Wiring L ~ 120 VAC, 30 VDC RL 0+ Iso. GND RL 0- RL 5- RL 1+ RL 5+ RL 1- DI 5 RL 2+ DI 4 RL 2- DI 3 RL 3+ DI 2 RL 3- DI 1 RL 4+ DI 0 RL 4N/A (R) +Vs Wireless LAN Antenna (B) GND Figure 4.
-
Note: Normal/Diag Switch At one side of ADAM-6000W modules (ADAM6050W, ADAM-6051W and ADAM-5060W), there is one Normal/Diag switch. When you set that switch to the “Diag” end for diagnostic mode, all related setting listed below will become default value: IP: 10.0.0.1 Password: 00000000 WEP: Off SSID: WLAN for Ad-hoc mode for Infrastructure mode Channel: 10 When you set that switch to “Normal” end for normal mode, you can set the setting listed above to the value you want.
-
CHAPTER 5 2 System Configuration Guide Sections include: • System Hardware Configuration • Install ADAM.NET Utility Software • ADAM.
-
Chapter 5 System Configuration Guide 5.1 System Hardware Configuration As we mentioned in Chapter 3-1, you will need following items to complete your system hardware configuration. 5.1.1 System Requirements Host Computer • IBM PC compatible computer with 486 CPU (Pentium recommended) • Microsoft 98/2000/XP/Vista or higher versions • At least 32 MB RAM • 20 MB of hard disk space available • VGA color monitor • 2x or higher speed CD-ROM • Mouse or other pointing devices • 10 or 100 Mbps Ethernet Card 5.1.
-
5.3 ADAM.NET Utility Overview The ADAM.NET Utility software offers a graphical interface that helps you configure the ADAM-6000 modules. It is also very convenient to test and monitor your remote data acquisition and control system. The following guidelines will give you some brief instructions on how to use this Utility. 5.3.1 ADAM.NET Utility Operation Window After you have successfully installed ADAM.NET Utility, there will be one shortcut icon on the desktop.
-
Menus The menus at the top of the operation window contain: File Menu: 1. Open Favorite Group - You can configure your favorite group and save the configuration into one file. Using this option, you can load your configuration file for favorite group. 2. Save Favorite Group - You can configure your favorite group and save the configuration into one file. Using this option, you can save your favorite group into one configuration file. 3.
-
6. Monitor Stream/ Adam5000 Event Data - ADAM-6000 modules support Data Stream function. You can define the Host (such as a PC) by IP. Then ADAM-6000 modules will periodically send its I/ O status to the Host. The IP and period to transfer data is configured in the Stream tab of Status Display area. The configuration tab will be introduced in Section 5.3.2. Note: When you enable GCL function, Data Stream function will automatically be disabled until you disable GLC function. 7.
-
Help Menu: 1. Check Up-to-Date on the Web - Choose this option, it will automatically connect to Advantech download website.You can download the latest utility there. 2. About Adam.NET Utility - Choose this option, you can see version of ADAM.NET Utility installed on your computer. Toolbar There are 7 graphical icons on the toolbar for 7 common used options of Menus. Figure 5.2 below shows definition for each graphical icon.
-
• Favorite Group You can define which devices listed in the three categories above into your personal favorite group. This will make you easier to find your interested modules. Right click on the ADAM device item under the Favorite Group item and you can select New >> Group to create a new group. After you create your own group, right click on your group and select New >> Adam device to add ADAM devices into your group. You can also select Diagnose connection to check the communication.
-
You can change the password later. After you type the correct password, the ADAM-6000 module is now under IP of your host PC. When you select the IP address of the ADAM-6000 modules you want use in Module Tree Display area, there will be 8 tabs appearing in the Status Display area for you to set up general configuration of that module. Refer to figure below. Once you have changed any configuration, remember to click related Apply or Apply Change button.
-
Network If necessary, you still can change IP Address, Subnet Address, and Default Gateway of selected ADAM-6000 module in this tab. The Host Idle (Timeout) text box is used for TCP connection timeout. The maximum number of TCP connections of one ADAM-6000 module is 8. Any application using TCP to communicate with the ADAM-6000 module will occupy at least one connection.
-
Password In this tab, you can set up password for selected ADAM-6000 module. You need to type current password in the Old password text box, and the new password in the New password and Verify password text box. There will be many configuration and operation action asking user to type password, so this can help to ensure safety. Note: The default password is 00000000 Firmware Advantech will continuously release new version of firmware to add or improve functionality of ADAM-6000 modules.
-
Access Control You can decide which computers or devices have the ability to control this ADAM-6000 module in this tab. Select the IP Address or MAC Address radio button to decide the identified method, and then click the Apply button. In the Security IP/MAC Setting area, you can direct type the IP or MAC address of the authorized computers or devices. Remember to click the Enable/Disable check box, meaning that IP or MAC address is selected. Take Figure 5.
-
5.3.3 I/O Module Configuration After you have completed all general configuration of ADAM-6000 module described in previous section, then you need to configure setting for input and output channel such as channel range, calibration and alarm. At the same time, you can see input channel value and set value of output channel in the Status Display area of utility. In the Module Tree Display area, click the item showing IP of the ADAM-6000 modules you want to use.
-
If you click the All Channel Configuration item, you can read analog input value or configure setting for all channels on the Status Display area. If you click the Individual Channel Configuration item, you can read AI values or configure setting for the specific channel you choose. Below, we will describe the All Channel Configuration and Individual Channel Configuration in more detail for ADAM-6000 I/O modules.
-
In order to remove the noise from the power supply, these analog input modules feature built-in filter. Two filters with different frequencies are provided to remove noise generated from different power supplies. The Integration Time Configuration area is under the Channels Range Configuration area. Refer to Figure 5.6 below. In the Integration Time Configuration area, you can select suitable filter in the Integration time combo box. After selecting appropriate filter, click the Apply button. Figure 5.
-
At the bottom of the Status Display area, you can see five tabs to see analog input value of all channels: 1. Channel Setting You can see the current value of analog input on this tab. (For ADAM6017 and ADAM-6018 modules, the value of digital input channel is also displayed on this tab.) Simply choose the check box of the channels you want to monitor and click the Apply button. Besides, you can see the graphical historical trend by clicking the Trend Log button. Refer to Figure 5.7 below.
-
2. Average Setting ADAM-6015, ADAM-6017 and ADAM-6018 modules feature averaging calculation function by its built-in processor. You can simply click the check boxes representing the channels in the Averaging channel setting area to decide which channels are used for averaging. For example, by Figure 5.8 below, five channels (channel 0, 1, 2, 3, and 4) are used for averaging. So you can see the average value of those five channels displayed by the Average text box. Figure 5.
-
5. Modbus (Min) ADAM-6015, ADAM-6017 and ADAM-6018 modules feature historical minimum value recording. You can see historical minimum analog input value in decimal, hexadecimal, and engineer unit for all related Modbus address. If you want to re-initialize the recording, click the buttons representing the channels you want to reset. Individual Channel Configuration You can see analog input value and configure setting for each channel.
-
ADAM-6015, 6017 and 6018 modules all feature built-in alarm function. At the lower part of the Status Display area, there are two tabs to configure the high alarm and low alarm for the selected channel: High alarm and Low alarm. When the analog input value is higher than the high alarm value, or lower than the low alarm value, the alarm condition occurs. Then the alarm status will be activated to logic high. For ADAM6015 module, ADAM.
-
• Universal Input and Output Module (ADAM-6024) All Channel Configuration ADAM-6024 module features analog input, analog output, digital input and digital output. Click the All Channel Configuration item. In the Status Display area, there will be two tabs: Input and Output. On the Input tab, there are still four parts on the Status Display area, which is the same as ADAM-6015, ADAM-6017 and ADAM-6018 module.
-
1. Channel Setting You can see the current value of analog input on this tab. Choose the check box of the analog input channels you want to monitor and click the Apply button. If the analog input value is out of the input range, you will see “Over(L)” in the analog input value text box. At the right side, you can see current digital input value by DI 0 and DI 1 LED display. You also can see the graphical historical trend of analog input channel by clicking the Trend Log button.
-
1. Channel Setting Similar to analog input configuration, you can set different range for each analog output channel. Select the channel number in the Channel index combo box, and then select the range in the Output range combo box. After selecting appropriate range, click the Apply button. At the bottom left-hand corner of the Output tab, you can define the analog output value by using the horizontal pointer slide or the Value to Output text box.
-
2. Modbus You can see current output value in decimal and hexadecimal for all related Modbus address. • Digital Input and Output Modules (ADAM-6050, ADAM-6051, ADAM-6052, ADAM-6060, ADAM6066, ADAM-6050W, ADAM-6051W, and ADAM-6060W) All Channel Configuration When you click the All Channel Configuration item in the Module Tree Display area, there will be two tabs: Channel Setting and Modbus. Take ADAM-6050 as example. Refer to Figure 5.12 below: Figure 5.12: ADAM-6050 Channel Setting 1.
-
When the communication between host PC and ADAM-6000 digital modules is broken, the digital output channel can generate a predefined value (this value is called fail safe value). You can enable or disable this function by click the Turn on WDT checked channel when WDT triggered check box. You can define the fail safe value by the WDT check box next to the DO status LED. After configure related setting, click the Apply WDT button. Take Figure 5.13 below as example. The fail safe value function is enabled.
-
Figure 5.14: Individual Channel Configuration: DI You can choose different mode for that digital input channel by choosing the DI mode combo box at top of Status Display area. (You should choose the appropriate mode depending on the hardware specification.) After you have chosen the mode, click the Apply mode button. There are a total of five possible DI modes you can choose: 1. DI Figure 5.14 is the image when you choose DI mode.
-
2. Counter When you choose Counter mode, one counter will count the pulse number of the digital signal from the selected channel, and then record the count number in the register. The image of the Status Display area looks similar as that of DI mode. At the bottom of the Status Display area, current count value of the selected channel is displayed by the Counter value text box. You can start or stop the counter to count by clicking the Star/Stop button next to the Counter value text box.
-
4. High to Low Latch When you choose High to Low Latch mode, once the digital input channel detects logic level changes from high to low, the logic status will be keep as logic low. The logic status will remain the logic low, until you clear latch manually. Then the logic status will back to logic high. The logic status can be seen by the Latch status LED display at the bottom of the Status Display area. You can clear latch by clicking the Clear latch button.
-
1. DO Figure 5.15 is the image when you choose DO mode. You can control the digital output value of the selected channel by the DO button. The current digital output value will be shown by the DO status LED display. 2. Pulse Output The pulse output is the same as PWR. After you choose the Pulse output mode, the selected digital output channel can generate continuous pulse train or finite pulses.
-
Delay Time At the moment that you write logic high to the digital output channel At the moment that you write logic low to the digital output channel Figure 5.16: Low to High Delay Output Mode 4. High to Low Delay When you choose High to Low delay mode, it is almost the same as choosing the DO mode. The only difference is that there will be certain time delay when the output value changes from logic high to logic low. Refer to Figure 5.17 below for its process.
-
5.3.4 Peer-to-Peer Function • What is Peer-to-Peer? When you want to send a signal from one module to another module, Peer-to-Peer is a perfect solution. With Peer-to-Peer function enabled, ADAM-6000 modules can actively update its input value to other devices such as PC or another ADAM-6000 module. One typical application is using a pair of ADAM-6000 modules. The value of input channel on one module will be automatically updated to output channel on another module.
-
2. Advanced Mode: For advanced mode, there will be multiple target devices to receive the data transferred from one ADAM-6000 module (Module A). For example, there can be several ADAM-6000 modules receiving data from the Module A. You can define different target devices (by different IP address) to each channel of module A.
-
As for when the data will be updated from one ADAM-6000 module to its target devices, there are also two options to choose: 1. Period Time Function: The value of the input channel will be updated to the target devices with the defined period. 2. Period Time Function + C.O.S (Change of Status) Function: The value of the input channel will still be updated to the target devices with the defined period. Moreover, when C.O.
-
Note: There will be uncertainty for network communication. Sometimes there might be packet lost when event occurs. This is the reason we Period Time function + C.O.S. function (no C.O.S. function only). When event occurs, even if the packet is lost, the data will be sent again when the next period reaches. This can help to make the system more reliable. • How to configure Peer-to-Peer functions As we have mentioned in section 5.3.
-
The Peer-to-Peer function is disabled by default. You can enable it and choose the basic mode or advanced mode by click the Basic or Advanced radio button in the Mode area. After you choose the mode, click the Apply button. ADAM-6000 modules features Peer-to-Peer and GCL function in the same hardware. (The GCL feature will be introduced in Chapter 7) However, only one of them can be enabled at one time.
-
Note: FSR represents "Full Scale Range" We have mentioned that there are two methods to transfer data from the ADAM-6000 (source) to the target device (destination): Period Time function or Period Time function + C.O.S. function. You can choose these two methods by click the Deviation Enable check box (for AI modules) or Enable Change of State check box (for digital modules). If this check box is not checked, the transfer method is Period Time function.
-
Figure 5.22: Building the Mapping Relationship • Advanced Mode Configuration When you choose the advanced mode, the Status Display area should look like the Figure 5.23 below. With advanced mode, each channel on the source ADAM-6000 module can be mapping to channel on different target devices. You can configure the mapping relation using the two block areas Source and Destination in the Advanced (One to Multi) area.
-
Figure 5.23: P-to-P Advanced Mode Configuration Below are the steps to define the mapping relationship: 1. Select the input channel by the Channel combo box in Source. 2. Use Period time numeric control, Deviation enable (C.O.S) check box (for analog modules) or Change of state (C.O.S) check box (for digital modules), and Deviation Rate numeric control in the Source area to define when to transfer the data for that channel. The configuration operation is similar to Basic mode. 3.
-
Note: The mapping setting is only restored in memory of your computer, and it will download to the target ADAM-6000 module after you click the Apply list button below the mapping table. It is not suggested to download the mapping configuration immediately if you only complete setting for one channel. 5. Repeat the step 1 to step 4 for another input channel. Continuously repeat the configuration until you have configured all the input channels which you want to create the mapping relationship.
-
Figure 5.24: Copy One Setting to Other Channels Choose the channel which provides the setting for other channels by the Channel combo box at the top of the dialog window. Then select channels which you want to copy setting to by clicking the Channel check box in the Copy to area. Using Figure 5.24 as an example, setting of channel 0 will copy to channel 1, 2, and 3. If you want to copy the setting to all channels, click the Select all check box. After selecting the channels, click the Config button.
-
5.4 ADAM-6000 Web Server ADAM-6000 I/O modules all features built-in web server. Remote computer or devices can monitor and control I/O status on ADAM-6000 modules remotely through web browser. There is default built-in web page on ADAM-6000 modules. You can modify the web page using Java Applet. Refer to Section 5.5 for more detail. To use your computer to browse the web page on ADAM-6000 module, you need to install Java Virtual Machine first.
-
• boolean ForceCoil(int CoilAddr, boolean IsTrunOn) This method is used for digital output of module channels. The parameter CoilAddr is integer data type and the coil address of the channel. IsTrueOn is the parameter used to indicate ON or OFF. If the method is successful, it will return true. • boolean ReadCoil(int StartingAddr, int NoOfPoint, byte ModBusRTU[]) This method is used for digital input of module channels. The parameter StartingAddr is the starting address of desired channel.
-
Java Applet Programming To create your own Web page, you have to follow some rules. There are two parts in this section. We start from the HTML file. Please refer below for the default HTML source code.
ADAM-6000 Ethernet-Enabled DA&C Modules
-
} The fragment is used to obtain the host IP value and check if it is null. To acquire the necessary parameter information from the index.html, you need to add the fragment below. public String[][] getParameterInfo() { String[][] pinfo = { {"HostIP", "String", ""}, }; return pinfo; } As for mouse/keyboard events and graphical user interface, they are beyond the scope of our discussion here and we will leave them to users. After you finish your program and compile, it should generate a couple of classes, e.
-
Start your ADAM utility, and open the Firmware tab in the Status Display area as shown below (Refer to Section 5.3.2). Then, tell the utility where the path is for the JAR and HTML files. In this case, they are ADAM6060.jar and index.html. Push button, and a confirmation window pops up. After you confirm, it will start processing. Figure 5.
-
5.6 Source Code of Java Applet Example import Adam.ModBus.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.io.*; import java.lang.
-
/**Get a parameter value*/ public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } /**Constructor*/ public Adam6060() { } /**Applet Initialization*/ public void init() { try { HostIP= getParameter("HostIP"); Adam6060Connection = new ModBus(HostIP); //create ADAM-6060 module object if (HostIP == "")//check the Host IP labAdamStatusForDIO.setText("Get Host IP is null !!"); else labAdamStatusForDIO.
-
palStatus.setBackground(Color.lightGray); palAdamStatus.setBackground(Color.lightGray); palStatus.setBounds(new Rectangle(42, 50, 409, 15 *2 + 0 * 2 + 77 + 152 + 33 )); pal1.setBounds(new Rectangle(12, 15 , 385, 77)); pal2.setBounds(new Rectangle(12, 15 + 77 + 0 , 385, 152)); palAdamStatus.setBounds(new Rectangle(12, 15 + 77+0*2+ 152, 385, 33)); palStatus.setLayout(null); pal1.setLayout(null); pal1.add(labStartAddress, null); pal1.add(txtStartAddress, null); pal1.add(labCount, null); pal1.
-
txtMsg.append ("Address:" + String.valueOf(lAddress) + " -> " + String.valueOf((int)ModBusRTU[i]) + "\n"); lAddress++; } } else { try { Adam6060Connection = new ModBus(HostIP); } catch(Exception eNet) { eNet.printStackTrace(); } palAdamStatus.setLayout(null); pal2.setLayout(null); pal2.add(txtMsg, null); txtMsg.setBounds(new Rectangle(15, 15, 355, 120)); Label1.setFont(new java.awt.Font("DialogInput", 3, 26)); Label1.setForeground(Color.blue); Label1.setText("ADAM-6060 DI/O Module"); Label1.
-
/**Applet Information Acquisition*/ public String getAppletInfo() { return "Applet Information"; } /**Get parameter info*/ public String[][] getParameterInfo() { String[][] pinfo = { {"HostIP", "String", ""}, }; return pinfo; } /**Main method: for the purpose of laying out the screen in local PC*/ public static void main(String[] args) { Adam6060 applet = new Adam6060(); applet.isStandalone = true; Frame frame; frame = new Frame() { protected void processWindowEvent(WindowEvent e) { super.
-
} /**Displayed Screen*/ class myFramPanel extends Panel { int panelType; Label labMassage = new Label(""); public myFramPanel() { //super(); } public myFramPanel(int myType) { //super(); panelType = myType; } public myFramPanel(int myType, String Msg, int msgTextLength) { //super(); panelType = myType; if (Msg != "") { labMassage.setText(Msg); this.setLayout(null); labMassage.setBounds(new Rectangle(20, 3, msgTextLength, 15)); } } this.
-
off = 4; g.setColor(Color.white); g.drawRect(0, 0, size.width - 1, size.height - 1); 1); g.setColor(Color.darkGray); g.drawLine(size.width - 1, 0, size.width - 1, size.height g.drawLine(0, size.height - 1, size.width - 1, size.height - 1);g.setColor(Color.black); g.setColor(Color.black); g.drawRect(off, off, size.width-2- off*2, size.height - 2 - off * 2); } else if (panelType == 2){ g.setColor(Color.white); g.drawRect(0, 0, size.width - 1, size.height - 1); 4); - 4); g.drawLine(size.width - 4, 2, size.
-
g.drawLine(size.width - 1, 0, size.width - 1, size.height g.drawLine(0, size.height - 1, size.width - 1, size.height - 1);g.setColor(Color.black); } else if (panelType == 3) { int off; off = 4; g.setColor(Color.white); g.drawRect(0, 0, size.width - 1, size.height - 1); 1); - 1); g.setColor(Color.darkGray); g.drawLine(size.width - 1, 0, size.width - 1, size.height g.drawLine(0, size.height - 1, size.width - 1, size.height g.setColor(Color.black); g.drawRect(off, off + 5, size.width-2- off*2, size.
-
CHAPTER 6 2 Planning Your Application Program Sections include: • Introduction • ADAM.
-
Chapter 6 Planning Your Application Program 6.1 Introduction After completing the system configuration, you can begin to plan the application program. This chapter introduces two programming tools for users to execute system data acquisition and control. The DLL drivers and command sets provide a friendly interface between your applications and ADAM-6000 I/O modules. 6.2 ADAM .NET Class Library Advantech ADAM .
-
In order to help you to be familiar with developing your application program in a short time, there are many built-in example programs in the path: Program Files\Advantech\ Adam.NET Class Library\VS2003\Samples for all ADAM-6000 modules. Simply opening these example programs, you can quickly get the idea how to write a program code to control ADAM-6000 modules.
-
After you complete the code modification, you can directly compile the program. Then you can execute the program to start the application. There are plenty of functions in ADAM. NET Class library, and help documentation is provided to let you understand more about these functions. You can launch the help documentation by clicking the Start button on the taskbar. Refer to the Figure 6.2 below. Figure 6.2: Launching ADAM .
-
6.3 ADAM-6000 Commands ADAM-6000 and ADAM-5000/TCP system accept a command/response form with the host computer. When systems are not transmitting they are in listen mode. The host issues a command to a system with a specified address and waits a certain amount of time for the system to respond. If no response arrives, a time-out aborts the sequence and returns control to the host.
-
6.3.2 Modbus Function Code Introductions To fullfill the programming requirement, there is a series of function code standard for users reference¦ Code (Hex) Name Usage 01 Read Coil Status Read Discrete Output Bit 02 Read Input Status Read Discrete Input Bit 03 Read Holding Registers 04 Read Input Registers Read 16-bit register. Used to read integer or floating point process data.
-
Response message format for function code 01: Command Body Station Address Function Code Byte Count Data Data Example: Coils number 2 and 7 are on, all others are off. 01 01 01 42 In the response the status of coils 1 to 8 is shown as the byte value 42 hex, equal to 0100 0010 binary. Function Code 02 The function code 02 is used to read the discrete inputs ON/OFF status of ADAM-6000 in a binary data format.
-
Function Code 03/04 The function code 03 or 04 is used to read the binary contents of input registers Request message format for function code 03 or 04: Command Body Station Address Function Code Start Address High Byte Start Address Low Byte Requested Number of Register High Byte Requested Number of Register Low Byte Example: Read Analog inputs #1 and #2 in addresses 40001 to 40002 as floating point value from ADAM-6017 module 01 04 00 01 00 02 Response message format for function code 03 or 04: Co
-
Example: Force coil 3 (address 00003) ON in ADAM-6000 module 01 05 00 03 FF 00 Response message format for function code 05: The normal response is an echo of the query, returned after the coil state has been forced. Command Body Station Address Function Code Coil Address High Byte Coil Address Low Byte Force Data High Byte Force Data Low Byte Function Code 06 Presets integer value into a single register.
-
Function Code 08 Echoes received query message. Message can be any length up to half the length of the data buffer minus 8 bytes.
-
Response message format for function code 08: The normal responses return the station address, function code, start address, and requested number of coil forced. Command Body Station Address Function Code Start Address High Byte Start Address Low Byte Requested Number of Coil High Byte Requested Number of Coil Low Byte Example: 01 0F 00 11 00 0A Function Code 16 (10 hex) Preset values into a sequence of holding registers.
-
6.4 ASCII Commands for ADAM-6000 Modules For users do not familiar to Modbus protocol, Advantech offers a function library as a protocol translator, integrating ASCII command into Modbus/TCP structure. Therefore, users familiar to ASCII command can access ADAM-6000 easily. Before explaining the structure of ASCII command packed with Modbus/TCP format. Lets see how to use an ASCII command and how many are available for your program. 6.4.
-
6.4.2 System Command Set Command Syntax Command Name Description $aaM Read Module Name Return the module name from a specified module $aaF Read Firmware Version Return the firmware version from a specified module #aaVdWrite GCL Internal bbbbdddddd Flags dd Write value(s) to GCL internal flag(s) on a specific ADAM-6000 module $aaVd Read all GCL internal flags' values from a specific ADAM-6000 module Note: Read GCL Internal Flags Command $aaM and $aaF support all ADAM6000 I/O modules.
-
Response !aa60bb(cr) if the command is valid. ?aa(cr) if an invalid operation was entered. There is no response if the module detects a syntax error, communication error or if the address does not exist. ! delimiter indicating a valid command was received. ? delimiter indicating the command was in-valid. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. bb (range 00-FF) represents the 2-character model number of an ADAM-6000 module.
-
Response !aa(version)(cr) if the command is valid. ?aa(cr) if an invalid operation was entered. There is no response if the module detects a syntax error, communication error or if the address does not exist. ! delimiter indicating a valid command was received. ? delimiter indicating the command was invalid. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (version) represents the firmware version of the module.
-
flag value(s). Each character represents 4 GCL internal flags’ values. (cr) is the terminating character, carriage return (0Dh) Response >aa(cr) if the command was valid. ?aa(cr) if an invalid command has been issued. There is no response if the module detects a syntax error or communication error or if the address does not exist. > delimiter indicating a valid command was received. ? delimiter indicating the command was invalid.
-
$aaVd Name Read GCL Internal Flags’ (Auxiliary Flags) Values Description This command reads all GCL internal flags’ values from the specific ADAM-6000 module. Refer to section 7.3.1 and 7.3.4 for definition of GCL internal flag. Syntax $aaVd(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave network address of the ADAM-6000 module. (Always 01) Vd is the GCL Internal Flag command.
-
6.4.
-
#aan Name Read Analog Input from Channel N Description Returns the input data from a specified analog input channel in a specified module. Syntax #aan(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) n (range 0-8) represents the specific channel you want to read the input data. (cr) is the terminating character, carriage return (0Dh). Response >(data)(cr) if the command is valid.
-
#aa Name Read Analog Input from All Channels Description Returns the input data from all analog input channels in a specified module. Syntax #aa(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) (cr) is the terminating character, carriage return (0Dh). Response >(data)(data)(data)(data)(data)(data)(data)(data)(data)(cr) if the command is valid. ?aa(cr) if an invalid operation was entered.
-
$aa0 Name Span Calibration Description Calibrates a specified module to correct for gain errors Syntax $aa0(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module which is to be calibrated. (Always 01) 0 represents the span calibration command. (cr) is the terminating character, carriage return (0Dh) Response !aa(cr) if the command is valid. ?aa(cr) if an invalid operation was entered.
-
$aa1 Name Zero Calibration Description Calibrates a specified module to correct for offset errors Syntax $aa1(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal Modbus address of the ADAM-6000 module which is to be calibrated. (Always 01) 1 represents the zero calibration command. (cr) is the terminating character, carriage return (0Dh) Response !aa(cr) if the command is valid. ?aa(cr) if an invalid operation was entered.
-
$aa6 Name Read Channel Enable/Disable Status Description Asks a specified module to return the Enable/Disable status of all analog input channels Syntax $aa6(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) 6 is the read channels status command. (cr) is the terminating character, carriage return (0Dh) Response !aamm(cr) if the command is valid. ?aa(cr) if an invalid operation was entered.
-
$aa5mm Name Set Channel Enable/Disable Status Description Set Enable/Disable status for all analog input channels Syntax $aa5mm(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module. (Always 01) 5 identifies the enable/disable channels command. mm (range 00-FF) are two hexadecimal characters. Each character is interpreted as 4 bits.
-
#aaMH Name Read Maximum Value Description Read the maximum values from all analog input channels in a specified analog module Syntax #aaMH(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module to be read. (Always 01) MH represents the read maximum value command. (cr) is the terminating character, carriage return (0Dh) Response >(data)(data)(data)(data)(data)(data)(data)(data)(data)(cr) if the command is valid.
-
#aaMHn Name Read Maximum Value from channel N Description Read the maximum value from a specific channel in a specified module Syntax #aaMHn(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module to be read. (Always 01) MH represents the read maximum value command. n (range 0-8) represents the specific channel you want to read the input data.
-
#aaML Name Read Minimum Value Description Read the minimum values from all analog input channels in a specified module Syntax #aaML(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module to be read. (Always 01) ML represents the read minimum value command. (cr) is the terminating character, carriage return (0Dh) Response >(data)(data)(data)(data)(data)(data)(data)(data)(data)(cr) if the command is valid.
-
#aaMLn Name Read Minimum Value from channel N Description Read the minimum value from a specific analog input channel in a specified module Syntax #aaMLn(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module to be read. (Always 01) ML represents the read minimum value command. n (range 0-8) represents the specific channel you want to read the input data.
-
#aaDnd Name Set Digital Output Description Set the digital output status in ADAM-6000 analog input module. Syntax #aaDnd(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module to be read. (Always 01) D represents the digital output setting command. n (range 0-1) represents the specific channel you want to set the output status.
-
$aaBnn Name Description Syntax Response Read Analog Input Range Code from Channel N Returns the range code from a specified analog input channel in a specified module. $aaBnn(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) B is the Analog Input Range Code command. nn (range 00-07) represents the specific channel you want to read the range code.
-
28 40 Pt 100 (=0.00392) 0~400° C 29 41 Pt 100 (=0.
-
Example command: $01B07(cr) response: !0112 Since the ADAM-6018 is used, we can know the range code of channel 7 is 12, meaning “Thermocouple R (500~1750° C)”. 6.4.
-
A is the Set Alarm Mode command. h indicates alarm types (H = High alarm, L = Low alarm) s indicates alarm modes (M = Momentary mode, L = Latching mode) (cr) represents terminating character, carriage return (0Dh) Response !aa(cr) if the command was valid ?aa(cr) if an invalid operation was entered. There is no response if the system detects a syntax error or communication error or if the address does not exist. ! delimiter indicating a valid command was received.
-
$aaCjAh Name Read Alarm Mode Description Returns the alarm mode for the specified channel in the specified ADAM-6000 module. Syntax $aaCjAh(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired channel j (j : 0 to 7). A is the Read Alarm Mode command.
-
$aaCjAhEs Name Enable/Disable Alarm Description Enables/Disables the High/Low alarm of the specified input channel in the addressed ADAM-6000 module Syntax $aaCjAhEs(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired channel j (j : 0 to 7). AhEs is the Set Alarm Mode command.
-
$aaCjCh Name Clear Latch Alarm Description Sets the High/Low alarm to OFF (no alarm) for the specified input channel in the addressed ADAM-6000 module Syntax $aaCjCh(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave network address of an ADAM-6000 module. (Always 01) Cj identifies the desired channel j (j : 0 to 7). Ch is the Clear Latch Alarm command.
-
$aaCjAhCCn Name Set Alarm Connection Description Connects the High/Low alarm of the specified input channel to interlock the specified digital output in the addressed ADAM-6000 module Syntax $aaCjAhCCn(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000/TCP module. (Always 01) Cj identifies the desired analog input channel j (j : 0 to 7). AhC is the Set Alarm Connection command.
-
$aaCjRhC Name Read Alarm Connection Description Returns the High/Low alarm limit output connection of a specified input channel in the addressed module Syntax $aaCjRhC(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired analog input channel j (j : 0 to 7). RhC is the Read Alarm Connection command.
-
$aaCjAhU Name Set Alarm Limit Description Sets the High/Low alarm limit value for the specified input channel of a specified ADAM-6000 module. Syntax $aaCjAhU(data)(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired analog input channel j (j : 0 to 7). AhU is the Set Alarm Limit command. h indicates alarm type (H = High alarm, L = Low alarm) (data) represents the desired alarm limit setting.
-
$aaCjRhU Name Read Alarm Limit Description Returns the High/Low alarm limit value for the specified input channel in the addressed ADAM-6000 module Syntax $aaCjRhU(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired analog input channel j (j : 0 to 7). RhU is the Read Alarm Limit command.
-
$aaCjS Name Read Alarm Status Description Reads whether an alarm occurred to the specified input channel in the specified ADAM-6000 module Syntax $aaCjS(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. (Always 01) Cj identifies the desired analog input channel j (j : 0 to 7). S is the Read Alarm Status command.
-
6.4.
-
Response Example $aa6 Name Description Syntax Response 3-0. A value of 0 means the channel is disabled, while a value of 1 means the channel is enabled. (cr) is the terminating character, carriage return (0Dh) !aa(cr) if the command is valid. ?aa(cr) if an invalid operation was entered. There is no response if the module detects a syntax error or communication error or if the address does not exist. ! delimiter indicating a valid command was received. ? delimiter indicating the command was invalid.
-
? delimiter indicating the command was invalid. aa (range 00-FF) represents the 2-character hexadecimal slave address of an ADAM-6000 module. mm are two hexadecimal values. Each value is interpreted as 4 bits. The first 4-bit value represents the status of channels 5-4, the second 4 bits represents the status of channels 3-0. A value of 0 means the channel is disabled, while a value of 1 means the channel is enabled.
-
#aacc Name Description Syntax Response Example $aaDcc Name Description Syntax Read AI Value from One Channel Returns the input data from a specified analog input channel in a specified module. #aacc(cr) # is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) cc (range 00-05) represents the specific channel you want to read the input data. (cr) is the terminating character, carriage return (0Dh).
-
Response !aahhh(cr) if the command is valid. ?aa(cr) if an invalid operation was entered. There is no response if the module detects a syntax error or communication error or if the address does not exist. ! delimiter indicating a valid command was received. ? delimiter indicating the command was invalid. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate.
-
communication error or if the address does not exist. ! delimiter indicating a valid command was received. ? delimiter indicating the command was invalid. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) (cr) is the terminating character, carriage return (0Dh). Example #aaccdd.
-
Example $aa7 Name Description Syntax Response Example #aaccdd Name Description Syntax command: #010105.555(cr) response: >(cr) Value for analog output channel 1 of the ADAM-6024 module at address 01h is set with a value +05.555. Read DI Channel Status This command requests that the specified module return the status of its digital input channels. $aa7(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave network address of the ADAM-6000 module.
-
# is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave network address of the ADAM-6000 module. (Always 01) cc is used to indicate which channel(s) you want to set. Writing to all channels (byte): Both characters should be equal to zero. Writing to a single channel (bit): First character is 1. Second character indicates channel number (00-01). dd is the hexadecimal representation of the digital output value(s).
-
$aaBnn Name Description Syntax Response Read Analog Input Range Code from Channel N Returns the range code from a specified analog input channel in a specified module. $aaBnn(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) B is the Analog Input Range Code command. nn (range 00-07) represents the specific channel you want to read the range code.
-
$aaCnn Name Read Analog Output Range Code from Channel N Description Returns the range code from a specified analog output channel in a specified module. Syntax $aaCnn(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) C is the Analog Output Range Code command. nn (range 00-07) represents the specific channel you want to read the range code.
-
Example command: $01C01(cr) response: !0102 We can know the range code of channel 1 is 02, meaning “0~10 V”. 6.4.
-
? delimiter indicating the command was invalid. aa (range 00-FF) represents the 2-character hexadecimal slave network address of an ADAM-6000 module. (data) a 2-character hexadecimal value representing the values of the digital input module. (cr) is the terminating character, carriage return (0Dh) Example command: $016(cr) response: !01000FFD(cr) The command asks the specific module at address 01h to return the values of all channels.
-
from 0h to Fh. (data) is the hexadecimal representation of the DO value(s). When writing to a single channel (bit) The first character is always 0. The value of the second character is either 0 or 1. When writing to all channels (byte) 2 or 4-characters are significant. The digital equivalent of these hexadecimal characters represent the channels’ values. Response >(cr) if the command was valid. ?aa(cr) if an invalid command has been issued.
-
$aaJCFFFFssmm Name Read DI Channel Counter Value Description Returns the counter value from specified DI channels in a specified module. Syntax $aaJCFFFFssmm(cr) $ is a delimiter character. aa (range 00-FF) represents the 2-character hexadecimal slave address of the ADAM-6000 module you want to interrogate. (Always 01) JCFFFF is the Digital Input Channel Counter Value command. ss (range 00-07) represents the specific start channel you want to read the counter value.
-
That module return the count value 0000000A(h) from channel 12 and 00000001(h) from channel 13.
-
CHAPTER 7 2 Graphic Condition Logic (GCL) Sections include: • Overview • GCL Configuration Environment • Four Stages of One Logic Rule • Logic Cascade and Feedback • Logic and Online Monitoring • Typical Application with GCL
-
Chapter 7 Graphic Condition Logic(GCL) 7.1 Overview In a traditional control and data acquisition system, there must be one controller to manage the system. Remote I/O modules like the ADAM6000 modules, only acquire data from sensors, or generate signal to control other devices or equipment.
-
7.2 GCL Configuration Environment As we have mentioned in Section 5.3.3, when you click the item list representing the ADAM-6000 module in the Module Tree Display area, there will be two item lists appearing below: All Channel Configuration and GCL Configuration list item. You can configure all GCL related setting by clicking the GCL Configuration item list. For the two features Peer-to-Peer and GCL, only one of them can be enable at one time.
-
At the top of the Status Display area is the GCL Menu area. Refer to the table below to see function for each graphical icon on the menu: Icon Function Description Current Status This icon shows current GCL status. The status represented in the Icon cell is the Disable, Programming and Running mode (From top to button) Note: You cannot enable Peer-to-Peer/Data Stream function and GCL function at the same time.
-
Below the GCL Menu area is the Logic Rule Set area. There are 16 logic rules available on one ADAM-6000 module, so you can see 16 logic rule icons here. Simply click the logic rule icon to configure that rule. For example, if you want to configure rule 12, just click the logic rule icon with text “Rule 12” below. The text background color of the selected logic rule icon will become green. At the bottom of the Status Display area is the Individual Logic Rule Configuration area.
-
Input Condition Stage Logic Stage Execution Stage Option Description Condition Section NoOperation No Opeartion N/A 7.3.
-
Output Stage Option Description Section NoOperation No Opeartion 7.3.4 AO Local or remote AO channel value DO Local or remote DO channel value DI_Counter Local or remote counter input channel setting DO_Pulse Local or remote pulse output channel setting Timer Local internal Timer setting AuxFlag Local or remote internal Flag value RemoteMessage Remote message Counter Local internal counter setting 7.3 Configure Four Stages of One Logic Rule 7.3.
-
The Input Condition stage is a logic condition decision for the input data. The decision result will be logic True or False, sending to the Logic stage for logic operation. Take analog input mode as example, you can define the condition as if the analog input value is greater than a specific value (the limit). So when the input value becomes greater than the limit, the input stage will transfer True to the Logic stage. Otherwise, it will transfer False to the Logic stage.
-
1. After you choose AI as input mode, select the channel by the Channel combo box. 2. In the Operation area, you can define the input condition operation. Select the analog input type by the Type combo box. There are two input types you can choose for analog input: If you select ChannelValue, the current value of the selected analog input channel is used as input for condition.
-
physical unit value (we call it engineer unit value) and there is linear relationship between the voltage (or current) value and the engineer unit value. For example, the current and the engineer unit value have linear relationship as shown below: Pressure (kg/cm2) Pressure (kg/cm2) = 0.625 x [ Current (mA) – 4 ] 10 Current (mA) 4 20 Figure 7.4: Engineer Unit and Current Value ADAM-6000 analog input module features Scaling function to convert the voltage (or current) value to the engineer unit value.
-
Figure 7.5: Scaling Function of Analog Input Mode Local Digital Input Channel (DI) After you choose DI as input mode, select the channel by the Channel combo box. The value of the selected digital input channel will directly be the input of condition. If the value of the selected digital input channel is logic high, the condition result is logic True. If the value is logic low, the condition result is logic False.
-
Local Frequncy Input Channel (DI_Frequency) After you choose DI_Frequency as input mode, select the channel by the Channel combo box. The frequency value of the frequency input channel will directly be the input of condition. Like the Counter Input condition, select the appropriate condition for that input channel by the Condition combo box and the Value text box. The condition will compare the frequency value read from the frequency input channel and the value set by the Value text box.
-
Note: You can use other program applications to read or write internal flags through ASCII command or Modbus/TCP address. Refer to section 6.4.2 and Appendix B.2. Local Digital Output Channel (DO) After you choose DO as input mode, select the channel by the Channel combo box. The value of the selected digital output channel will directly be the input of condition.
-
7.3.2 Logic Stage When you click the Logic stage icon, you should see a dialog window similar to Figure 7.6 below. Figure 7.6: Logic Stage Configuration For each logic rule, there will be at most three input conditions passing logic True or False values to the Logic stage here. You can choose four logic operations by the Type combo box: AND, OR, NAND, NOR. The logic operation will process the input logic values, and generate a logic result value to the next Execution stage.
-
OR Input Condition 1 Input Condition 2 Logic value to the Execution Stage F F F F T T T F T T T T NAND (not AND) Input Condition 1 Input Condition 2 Logic value to the Execution Stage F F T F T T T F T T T F NOR (not OR) Input Condition 1 Input Condition 2 Logic value to the Execution Stage F F T F T F T F F T T F 183 Chapter 7
-
7.3.3 Execution Stage When you click the Execution stage icon, you should see a dialog window similar to Figure 7.7 below. There are two possible execution setting you can choose by the Type combo box in the Operation area: Execution Period (Execution_Period) and Send to Next Rule (SendToNextRule). After you choose the appropriate execution setting, click the OK button. The Execution stage icon will change its pattern to present current execution setting condition.
-
Note: If you choose Full speed in the Execution Period combo box, the execution speed will be as fast as possible. There might be network communication traffic problem when the output is on another module, since the execution speed is too fast that too many network packets are transferred on the Ethernet. Note: When you want to use ADAM.NET Utility to configure one ADAM6000 module which is already running its GCL rules, remember to stop the GCL logic rules first.
-
If you click the next logic rule icon, you will find one of the input condition become previous logic rule. Refer to Figure 7.9. Therefore, the logic result value from the previous logic rule (in this example, logic rule 1) will be one of logic input value of current logic rule (in this example, logic rule 2). This makes the two neighbor logic rules combined together. We call it Logic Cascade. Using this method for Logic Cascade, only the two neighbor logic rules can be combined together.
-
Figure 7.10: Output Stage Configuration You need to decide the target device for the output by the Destination combo box. You can choose Local, meaning the output is on the same module, or another remote module by its IP address. Select the appropriate IP address listed in the combo box. The IP addresses are defined in the IP table and you can click the IP Table button to configure.
-
Note: When your output destination is not Local, meaning there will be communication between the specific ADAM-6000 module to its target device, remember to use Ethernet switch to connect the ADAM-6000 module with its target device. Do not use an Ethernet hub. This can prevent data packet collision. After you decide the target device, then you can choose the output action by the Operation Type combo box. The default setting is NoOperation, meaning there is no output action.
-
Digital Output (DO) Below are the steps to configure digital output: 1. Choose correct model name by the Target module combo box in the Operation area. If the Destination is Local, you don't need to choose the model name. 2. Define to generate True or False digital output signal for the true action (When the logic result value passed from Execution stage is logic True) by the True Action combo box. 3.
-
Pulse Output (DO_Pulse) Below are the steps to configure pulse output: 1. Choose correct model name by the Target module combo box in the Operation area. 2. Define what action (continuous generate pulse train by Continue, stop pulse generation by Stop, or only generate finite number of pulse by Num of pulse) will be taken for the true action (When the logic result value passed from Execution stage is logic True) from the True Action combo box. 3.
-
Local or Remote Internal Flag (AuxFlag) You can assign the logic result value from the Execution stage, to local or remote internal flag. Select the appropriate internal flag by the Index combo box. Define what value you want to assign to the internal flag for the true action (When the logic result value passed from Execution stage is logic True) by the True Action combo box.
-
Figure 7.11: Remote Message Output Note: The total message sent out will include Device Description, the logic rule number which sends this message, the message index, module IP, module name and all I/O status. Local Internal Counter Setting (Counter) Below are the steps to configure internal counter setting: 1.
-
2. The false action (When the logic result value passed from Execution stage is logic False) is displayed by the False Action text box and will automatically be set according to the true action. The false action will be opposite to the true action. Refer to the table below to see the relationship between true action and false action. 3. Define which counter channel is responsible to take the defined action by the Channel combo box. 4. Click the OK button to complete the configuration.
-
Internal Flag Assign True value to flag Assign False value to flag Assign False value to flag Assign True value to flag Remote Message Send message to target device Do nothing Internal Counter Setting (Counter) Increase 1 count to counter Do nothing Reset counter 7.4 Internal Flag for Logic Cascade and Feedback 7.4.1 Logic Cascade Using internal flag as interface, you can combine different logic together to form a new single logic rule which can play more complex logic architecture.
-
Figure 7.12: Architecture of Local Logic Cascade In order to implement this logic architecture, we need to use three logic rule and two internal flag to achieve this. Refer to Figure 7.13 ~ 7.15 below for how to configure the three logic rules.
-
Mode: Analog Channel: 0 Condition: >= Value: 3.00 Mode: Analog Destination: Local Channel: 0 Operation Type: AuxFlag Condition: <= True Action: True Value: 5.00 Index: 0 Figure 7.13: Configuration of Logic Rule 1 Mode: Analog Channel: 1 Condition: >= Value: 3.00 Mode: Analog Destination: Local Channel: 1 Operation Type: AuxFlag Condition: <= True Action: True Value: 5.00 Index: 1 Figure 7.
-
Mode: AuxFlag Index: 0 Condition: True Mode: AuxFlag Destination: Local Index: 1 Operation Type: DO Condition: True True Action: True Channel: 0 Figure 7.15: Configuration of Logic Rule 3 We use the logic rule 1 to check if AI channel 0 value of the ADAM-6017 is within 3 ~ 5 Volt. Logic rule 2 is used to check if AI channel 1 value is within 3 ~ 5 Volt. The comparison result of logic rule 1 and 2 is assigned to internal flag 0 and 1.
-
Figure 7.16: Distributed Logic Cascade Figure 7.
-
Mode: Analog Channel: 1 Condition: >= Value: 3.00 Logic Rule 2 on Module B (IP: 196.168.3.20) Mode: Analog Destination: 196.168.3.30 (IP of Module C) Channel: 1 Operation Type: AuxFlag Condition: <= True Action: True Value: 5.00 Index: 1 Figure 7.18: Configuration of Logic Rule 2 Mode: AuxFlag Index: 0 Condition: True Logic Rule 3 on Module B (IP: 196.168.3.30) Mode: AuxFlag Destination: Local Index: 1 Operation Type: DO Condition: True True Action: True Channel: 0 Figure 7.
-
7.4.2 Feedback When you choose the same internal flag for the input condition and output of one single logic rule, the logic rule has logic feedback ability. Refer to Figure 7.20 below. In this example, one input condition and one output are dedicated to the same internal flag 0 (AuxFlag 0). So the output value in current execution will become the input of the next execution. This gives this logic rule feedback ability. Figure 7.20: Building Logic Feedback 7.
-
Current Input Value The yellow dot means the execution flow has reached this stage Figure 7.21: Online Monitoring Function Note: When you use Internal Flags (AuxFlag) as the inputs of GCL logic rules, you can dynamically change the flag values in the online monitoring window of ADAM.NET Utility. Simply double click the input icons represented the internal flag, and you can see the flag values change from True to False, or from False to True.
-
GCL Rule Execution Sequence There are 16 logic rules on one ADAM-6000 module. Refer to the figure 7.22 below to see the execution flow for one cycle. You can see there are 3 groups for one cycle: Input Condition + Logic, Execution, and Output. All the Input Condition + Logic stages of rules which are enabled will execute sequentially first. Then, all the Execution stages of rules which are enabled will be executed in sequence.
-
GCL Execution and Data Transfer Performance 1. Local Output Condition: Running 1 logic rule on one ADAM-6050 module Processing time: < 1 milliseconds (Processing time includes hardware input delay time, 1 logic rule execution time and hardware output delay time) If multiple logic rules are used, the processing time can be estimated by equation below: • logic rule number n 16 Approximate Processing Time (for one cycle) = 600 + n*370 ( s) 2.
-
Figure 7.23: Ladder Diagram for On/Off Control Now, we can use GCL logic to achieve the same control operation. Two logic rules are used. The complete logic architecture is shown by Figure 7.24 below: Figure 7.24: GCL Logic for On/Off Control After you load the example project file, you can find that it uses rule 1 and rule 2. One output of rule 1 and one input of rule 2 are assigned to the same internal flag: Flag 0.
-
DI 0 DO 0 DO 1 t1 DO 2 t2 DO 3 t3 DO 4 t4 DO 5 t5 T0 Time Figure 7.25: Time Chart for Sequence Control (Turns On in Sequence and Remains On) In the example project, DI 0 is used as a trigger to start the sequential control action. Therefore, when DI 0 becomes logic high (at the moment T0), DO 0 will become logic high immediately. Then, DO1 ~ DO5 will sequentially be activated to logic high after a specific time interval. You can decide the time interval t1 ~ t5 (They can be different values).
-
Rule 1 If DI 0 = True AND Set DO 0 =True Start Timer 0 Rule 2 If Timer ≧ 5 second AND Set DO 1 =True Rule 3 If Timer ≧ 10 second AND Set DO 2 =True Rule 4 If Timer ≧ 15 second AND Set DO 3 =True Rule 5 If Timer ≧ 20 second AND Set DO 4 =True Rule 6 If Timer ≧ 25 second AND Set DO 5 =True Figure 7.26: GCL Logic for Sequence Control (Turns On in Sequence and Remains On) 4.
-
DI 0 DI 1 DI 2 DI 3 DI 4 DI 5 DI 6 DI 7 DI 8 DI 9 DI 10 DI 11 DO 0 Time Figure 7.27: Time Chart for 12 DI to 1 DO You can simply implement one AND logic operator to achieve this control system. However, since one logic rule only has three inputs, we need to use Logic Cascade function to have 12 inputs. There are two ways to achieve Logic Cascade: • Select SendtoNextRule in Execution Stage of one logic rule. It will combine this logic rule to the next logic rule. (Refer to Section 7.3.
-
Rule 1 DI 0 DI 1 DI 2 Rule 2 Rule 3 DI 3 DI 5 AND AND AND DI 4 Rule 4 DI 7 DI 6 Rule 5 DI 9 AND DI 8 Rule 6 DI 11 AND AND DO 0 DI 10 Figure 7.28: GCL Logic for 12 DI to 1 DO 5. Flicker Flicker is commonly used in automation control application. Typical example is we want to make the alarm flashing, controlled by digital output. This application requires a continuous pulse train by a digital output channel and we can decide the period of the pulse train.
-
We need to use 1 Internal Flag (Flag 0) and 2 logic rules for the Flicker application described above. In logic rule 1, the value of Flag 0 is inverted (By choosing NAND in the Logic stage) periodically. (Here, it is 0.5 second) The period is defined by the Execution_Period in the Execution Stage. (Refer to the Section 7.3.3) The status of DO 0 is controlled by Flag 0 in logic rule 2, so DO 0 will change every 0.5 second. The GCL logic rule architecture is shown by Figure 7.
-
You can see that DO 0 will only be triggered when rising edge of DI 0 occurs. In the example project we provide, the DO status will remain logic high for 1 second. Then it will back to logic low. When PLC is used for this kind of application, the ladder diagram will look similar to Figure 7.32 below: DI 0 ( [ T0 ≧ 1 ] DI 0 T0 ) (Flag0) Flag0 (DO 0 ) Figure 7.
-
Rule 1 If DI 0 = True AND Start Timer 0 Rule 2 If Timer 0 ≧ 1 s AND Set Flag 0 = True Rule 3 If DI 0 = True AND Set DO 0 = True If Flag 0 = False Figure 7.33: GCL Logic for Rising Edge 7. Falling Edge For Falling Edge application, the DO value will be activated to logic high, when DI value is changing from logic high to logic low (it is socalled falling edge). But the DO value won’t continuously remain logic high.
-
You can see the DO 0 will only be triggered when falling edge of DI 0 occurs. In the example project we provide, the DO status will remain logic high for 1 second. Then it will back to logic low. When PLC is used for this kind of application, the ladder diagram will look similar to Figure 7.35 below: DI 0 ( [ T0 ≧ 1 ] DI 0 T0 ) (Flag0) Flag0 (DO 0 ) Figure 7.
-
Rule 1 If DI 0 = False AND Start Timer 0 Rule 2 If Timer 0 ≧ 1 s AND Set Flag 0 = True Rule 3 If DI 0 = False AND Set DO 0 = True If Flag 0 = False Figure 7.36: GCL Logic for Falling Edge 8. Sequential Control (Turn On and Off in Sequence Continuously) This type of automation application is similar to the 3rd application we have introduced. They are both sequential control applications. For example 3, DO channel will keep its value after it is turned on.
-
In order to implement this kind of application, 9 logic rules, 1 Internal Counter (Counter 0) and 1 Internal Flag (Flag 0) are used. In the example project we provide, logic rule 1 and 8 are used to create the time base. By logic rule 8, Flag 0 value will change every 0.5 second. In logic rule 1, once the Flag 0 value is logic high, the Counter 0 will increase 1 unit. So every 1 second, Counter 0 will increase 1 unit, making Counter 0 the time base. Logic rules 9 ~ 14 are used to control DO 0 ~ 5.
-
9. DI Event Trigger (Only Occurs Once) We can simply use GCL to perform Event trigger. For this kind of application, a DI channel is used to trigger some action. So, the input condition of GCL logic rule will be if the DI value is logic True, and output of the rule can be some desired action, such as sending remote message. When the DI value becomes logic True, the input condition is satisfied. The GCL logic rule will send message continuously until the DI value backs to logic False.
-
ADAM-6000 Series User Manual 216
-
A APPENDIX 2 Design Worksheets
-
Appendix A Design Worksheets An organized system configuration will lead to efficient performance and reduce engineer effort. This Appendix provides the necessary worksheet, helping users to configure their DA&C system in order. Follow these working steps to build up your system relational document: 1. Asking questions and getting answers for your control strategy.
-
3. Mapping the I/O data base into ADAM-6000 I/O modules. 1) In column A, note the TCP IP addresses for individual function areas. 2) In column B, list the I/O module’s product number. 3) In column C, enter the max # of I/O points available per module. 4) In column D, total the number of the I/O point you need. 5) In column E, calculate the total # of these modules that you will need. 6) In column F, enter the # of spare modules needed for future expansion.
-
ADAM-6000 IP Address Table A.3: Table for Programming I/O Type Channel Number I/O Address Tag Name Equipment & Description These several worksheets are very useful to hardware wiring and software integration, please make copies to establish your own system configuration documentation.
-
B APPENDIX 2 Data Formats & I/O Range
-
Appendix B Data Formats and I/O Range B.1 ADAM-6000 Commands Data Formats ADAM-6000 and ADAM-5000/TCP system accept a command/response form with the host computer. When systems are not transmitting they are in listen mode. The host issues a command to a system with a specified address and waits a certain amount of time for the system to respond. If no response arrives, a time-out aborts the sequence and returns control to the host.
-
Figure B.1: Request Comment Structure And the response should be: Figure B.
-
B.1.2 Modbus Function Code Introductions To full-fill the programming requirement, there is a series of function code standard for user’s reference… Table B.1: Response Comment Structure Code (Hex) Name Usage 01 Read Coil Status Read Discrete Output Bit 02 Read Input Status Read Discrete Input Bit 03 Read Holding Registers 04 Read Input Registers Read 16-bit register. Used to read integer or floating point process data.
-
Response message format for function code 01: Command Body Station Address Function Code Byte Count Data Data … Example: Coils number 2 and 7 are on, all others are off. 01 01 01 42 In the response the status of coils 1 to 8 is shown as the byte value 42 hex, equal to 0100 0010 binary. Function Code 02 The function code 02 is used to read the discrete input’s ON/OFF status of ADAM-6000 in a binary data format.
-
Function Code 03/04 The function code 03 or 04 is used to read the binary contents of input registers Request message format for function code 03 or 04: Command Body Station Function Start Address Start Address Requested Number Requested Number Address Code High Byte Low Byte of Register High Byte of Register Low Byte Example: Read Analog inputs #1 and #2 in addresses 40001 to 40002 as floating point value from ADAM-6017 module 01 04 00 01 00 02 Response message format for function code 03 or 04: Command B
-
Response message format for function code 05: The normal response is an echo of the query, returned after the coil state has been forced. Command Body Station Address Function Code Coil Address High Byte Coil Address Low Byte Force Data High Byte Force Data Low Byte Function Code 06 Presets integer value into a single register.
-
Function Code 08 Echoes received query message. Message can be any length up to half the length of the data buffer minus 8 bytes.
-
Response message format for function code 08: The normal responses return the station address, function code, start address, and requested number of coil forced. Command Body Station Function Start Address Start Address Requested Number Requested Number Address Code High Byte Low Byte of Coil High Byte of Coil Low Byte Example: 01 0F 00 11 00 0A Function Code 16 (10 hex) Preset values into a sequence of holding registers.
-
B.2 ADAM-6000 I/O Modbus Mapping Table B.2.1 ADAM-6015 7-ch RTD Input Module Address Channel Description 0X 00101 0 Reset Historical Max. Value 00102 1 Reset Historical Max. Value 00103 2 Reset Historical Max. Value 00104 3 Reset Historical Max. Value 00105 4 Reset Historical Max. Value 00106 5 Reset Historical Max. Value 00107 6 Reset Historical Max. Value 00108 Reserved 00109 Average Reset Historical Ch 0~6 Max.
-
Address Channel Description 0X 00123 2 Burnout Flag1 00124 3 Burnout Flag1 00125 4 Burnout Flag1 00126 5 Burnout Flag1 00127 6 Burnout Flag1 00131 0 00132 1 00133 00134 00135 00136 00137 00138 00139 00141 00142 00143 00144 00145 00146 00147 00148 00149 Attribute Address 4X Channel Description Read 40023 2 Historical Min. AI Value Read 40024 3 Historical Min. AI Value Read 40025 4 Historical Min. AI Value Read 40026 5 Historical Min. AI Value Read 40027 6 Historical Min.
-
Remarks: 1. When channel cannot detect RTD signal, this bit register will be 1. 2. User can configure High alarm value in the ADAM.NET utility. When AI value is higher than High alarm value, this bit will be 1. 3. User can configure the Low alarm value in the ADAM.NET utility. When AI value is lower than the Low alarm value, this bit will be 1. B.2.
-
Address 0X 00118 00119 Channel Description Attribute Address Channel Description Attribute 4X Read 7 Reset Historical R/W 40018 7 Historical Min. Value Max. AI Value Read Average Reset Historical R/W 40019 Average Historical Ch 0 ~ 7 Min. Value Ch 0 ~ 7 Max.
-
Remarks: 1. User can configure the High alarm value in the ADAM.NET utility. When AI value is higher than the High alarm, this bit will be 1. 2. Users can configure the Low alarm value in the ADAM.NET utility. When AI value is lower than the Low alarm, this bit will be 1. B.2.
-
Address Channel Description 0X 00117 6 Reset Historical Min. Value 00118 7 Reset Historical Min. Value 00119 Average Reset Historical Ch 0 ~ 7 Min. Value Attribute R/W R/W R/W Address 4X Chan Description nel 40017 6 Historical Max. AI Value 40018 7 Historical Max. AI Value 40019 Aver- Historical Max.
-
Remarks: 1. When the specific channel cannot detect Thermocouple signal, this bit register will be 1. 2. User can configure the High alarm value in the ADAM.NET utility. When AI value is higher than High alarm value, this bit will be 1. 3. User can configure the Low alarm value in the ADAM.NET utility. When AI value is lower than the Low alarm value, this bit will be 1. B.2.
-
B.2.
-
Address Ch Description 0X 00053 5 Counter Start(1)/ Stop(0) 00054 Clear Counter(1) 00055 Clear Overflow3 00056 DI Latch Status4 Attribute Address 4X 00057 R/W 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 6 7 8 9 10 11 Counter Start(1)/ Stop(0) Clear Counter(1) Clear Overflow3 DI Latch Status4 Counter Start(1)/ Stop(0) Clear Counter(1) Clear Overflow3 DI Latch Status4 Counter Start(1)/ Stop(0) Clear Counte
-
4. When DI channel is configured as “High to low latch” or “Low to high latch”, this bit will be 1 if the latch condition occurs. After that, value of this bit will keep 1 until user writes 0 to this bit (clear the latch status). 5. Decide how many pulses will be generated. When user writes 0 to this bit, it will continuously generate pulse. 6. During the pulse generation, user can use this bit to generate more pulses. For example, “Absolute pulse” is set as 100.
-
Address Ch Description Attribute 0X R/W 00033 0 Counter Start(1)/ Stop(0) 00034 Clear Coun- Write ter(1) 00035 Clear R/W Overflow3 R/W 00036 DI Latch Status4 R/W 00037 1 Counter Start(1)/ Stop(0) 00038 Clear Coun- Write ter(1) 00039 Clear R/W Overflow3 R/W 00040 DI Latch Status4 R/W 00041 2 Counter Start(1)/ Stop(0) 00042 Clear Coun- Write ter(1) 00043 Clear R/W Overflow3 R/W 00044 DI Latch Status4 R/W 00045 3 Counter Start(1)/ Stop(0) 00046 Clear Coun- Write ter(1) 00047 Clear R/W Overflow3 R/W 00048 DI La
-
Address Ch Description Attribute 0X 00056 5 DI Latch R/W Status4 R/W 00057 6 Counter Start(1)/ Stop(0) 00058 Clear Coun- Write ter(1) 00059 Clear R/W Overflow3 R/W 00060 DI Latch Status4 R/W 00061 7 Counter Start(1)/ Stop(0) 00062 Clear Coun- Write ter(1) 00063 Clear R/W Overflow3 R/W 00064 DI Latch Status4 R/W 00065 8 Counter Start(1)/ Stop(0) 00066 Clear Coun- Write ter(1) 00067 Clear R/W Overflow3 R/W 00068 DI Latch Status4 R/W 00069 9 Counter Start(1)/ Stop(0) 00070 Clear Coun- Write ter(1) 00071 Clear
-
Address Cha Description Attribute 0X nnel 00079 11 Clear R/W Overflow3 R/W 00080 DI Latch Status4 R/W 00081 127 Counter Start(1)/ Stop(0) 00082 Clear Coun- Write ter(1) 00083 Clear R/W Overflow3 R/W 00084 DI Latch Status4 R/W 00085 137 Counter Start(1)/ Stop(0) 00086 Clear Coun- Write ter(1) 00087 Clear R/W Overflow3 R/W 00088 DI Latch Status4 Address Chan Description 4X nel Attribute Remarks: 1.
-
B.2.
-
Address Ch Description 0X 00047 3 Clear Overflow3 00048 DI Latch Status4 00049 4 Counter Start(1)/ Stop(0) 00050 Clear Counter(1) 00051 Clear Overflow3 00052 DI Latch Status4 00053 5 Counter Start(1)/ Stop(0) 00054 Clear Counter(1) 00055 Clear Overflow3 00056 DI Latch Status4 00057 6 Counter Start(1)/ Stop(0) 00058 Clear Counter(1) 00059 Clear Overflow3 00060 DI Latch Status4 00061 7 Counter Start(1)/ Stop(0) 00062 Clear Counter(1) 00063 Clear Overflow3 00064 DI Latch Status4 Attribute Address 4X Ch Des
-
4. When DI channel is configured as “High to low latch” or “Low to high latch”, this bit will be 1 if the latch condition occurs. After that, value of this bit will keep 1 until user writes 0 to this bit (clear the latch status). 5. Decide how many pulses will be generated. When user writes 0 to this bit, it will continuously generate pulse. 6. During the pulse generation, user can use this bit to generate more pulses. For example, “Absolute pulse” is set as 100.
-
Address Ch Description Attribute 0X R/W 00041 2 Counter Start(1)/ Stop(0) 00042 Clear Coun- Write ter(1) 00043 Clear R/W Overflow3 R/W 00044 DI Latch Status4 R/W 00045 3 Counter Start(1)/ Stop(0) 00046 Clear Coun- Write ter(1) 00047 Clear R/W Overflow3 R/W 00048 DI Latch Status4 R/W 00049 4 Counter Start(1)/ Stop(0) 00050 Clear Coun- Write ter(1) 00051 Clear R/W Overflow3 R/W 00052 DI Latch Status4 R/W 00053 5 Counter Start(1)/ Stop(0) 00054 Clear Coun- Write ter(1) 00055 Clear R/W Overflow3 R/W 00056 DI La
-
that, value of this bit will keep 1 until user writes 0 to this bit (clear the latch status). 5. Decide how many pulses will be generated. When user writes 0 to this bit, it will continuously generate pulse. 6. During the pulse generation, user can use this bit to generate more pulses. For example, “Absolute pulse” is set as 100. During its generation, user can set “Incremental pulse” as 10. After the 100 pulses are generated, the extra 10 pulses will continue to be generated. 7.
-
ADAM-6000 Series User Manual 248
-
C APPENDIX 2 Grounding Reference
-
Appendix C Grounding Reference C.1 Field Grounding and Shielding Application Overview Unfortunately, it’s impossible to finish a system integration task at one time. We always meet some trouble in the field. A communication network or system isn’t stable, induced noise or equipment is damaged or there are storms. However, the most usual issue is just simply improper wiring, ie, grounding and shielding.
-
C.2 Grounding C.2.1 The ‘Earth’ for Reference Figure C.1: Think of the Earth as a Ground. As you know, the EARTH cannot be conductive. However, all build- ings lie on, or in, the EARTH. Steel, concrete and associated cables (such as lighting arresters) and power system were connected to EARTH. Think of them as resistors. All of those infinite parallel resistors make the EARTH as a single reference point.
-
C.2.2 The ‘Frame Ground’ and ‘Grounding Bar’ Figure C.2: Grounding Bar Grounding is one of the most important issues for our system. Just like Frame Ground of the computer, this signal offers a reference point of the electronic circuit inside the computer. If we want to communicate with this computer, both Signal Ground and Frame Ground should be connected to make a reference point of each other’s electronic circuit.
-
C.2.3 Normal Mode and Common Mode Have you ever tried to measure the voltage between a live circuit and a concrete floor? How about the voltage between neutral and a concrete floor? You will get nonsense values. ‘Hot’ and ‘Neutral’ are just relational signals: you will get 110VAC or 220VAC by measuring these signals. Normal mode and common mode just show you that the Frame Ground is the most important reference signal for all the systems and equipments. Figure C.4: Normal and Common Mode.
-
C.2.4 Wire impedance Figure C.5: High Voltage Transmission • What’s the purpose of high voltage transmission? We have all seen high voltage transmission towers. The power plant raises the voltage while generating the power, then a local power station steps down the voltage. What is the purpose of high voltage transmission wires ? According to the energy formula, P = V * I, the current is reduced when the voltage is raised. As you know, each cable has impedance because of the metal it is made of.
-
Figure C.6: Wire Impedance C.2.5 Single Point Grounding Figure C.7: Single Point Grounding (1) • What’s Single Point Grounding? Maybe you have had an unpleasant experience while taking a hot shower in Winter. Someone turns on a hot water faucet somewhere else. You will be impressed with the cold water! The bottom diagram above shows an example of how devices will influence each other with swift load change. For example, normally we turn on all the four hydrants for testing.
-
Figure C.8: Single point grounding (2) The above diagram shows you that a single point grounding system will be a more stable system. If you use thin cable for powering these devices, the end device will actually get lower power. The thin cable will consume the energy. C.3 Shielding C.3.1 Cable Shield Figure C.
-
• Single isolated cable The diagram shows the structure of an isolated cable. You see the isolated layer which is spiraled Aluminum foil to cover the wires. This spiraled structure makes a layer for shielding the cables from external noise. Figure C.10: Double isolated cable • Double isolated cable Figure 10 is an example of a double isolated cable. The first isolating layer of spiraled aluminum foil covers the conductors.
-
C.3.2 System Shielding Figure C.11: System Shielding • Never stripping too much of the plastic cable cover. This is improper and can destroy the characteristics of the Shielded-Twisted-Pair cable. Besides, the bare wire shield easily conducts the noise. • Cascade these shields together by soldering. Please refer to following page for further detailed explanation. • Connect the shield to Frame Ground of DC power supply to force the conducted noise to flow to the frame ground of the DC power supply.
-
Figure C.12: The characteristic of the cable • The characteristic of the cable Don’t strip off too much insulation for soldering. This could change the effectiveness of the Shielded-TwistedPair cable and open a path to introduce unwanted noise. Figure C.13: System Shielding (1) • Shield connection (1) If you break into a cable, you might get in a hurry to achieve your goal. As in all electronic circuits, a signal will use the path of least resis- tance.
-
Figure C.14: System Shielding (2) • Shield connection (2) The previous diagram shows you that the fill soldering just makes an easier way for the signal. C.4 Noise Reduction Techniques • Isolate noise sources in shielded enclosures. • Place sensitive equipment in shielded enclosure and away from computer equipment. • Use separate grounds between noise sources and signals. • Keep ground/signal leads as short as possible. • Use Twisted and Shielded signal leads.
-
• Use noise reduction filters if necessary. (TVS, etc) • You can also refer to FIPS 94 Standard. FIPS 94 recommends that the computer system should be placed closer to its power source to eliminate load-induced common mode noise. Figure C.15: Noise Reduction Techniques C.
-
ADAM-6000 Series User Manual 262