# NuDAM-6100 Series User’s Manual

Data Acquisition Modules

Manual Rev.: 1.0

Revision Date: November 23, 2020

Part Number: 50-12126-1000

# Preface

# Copyright

Copyright © 2020 ADLINK Technology, Inc. This document contains proprietary information protected by copyright. All rights are reserved. No part of this manual may be reproduced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.

# Disclaimer

The information in this document is subject to change without prior notice in order to improve reliability, design, and function and does not represent a commitment on the part of the manufacturer. In no event will the manufacturer be liable for direct, indirect, special, incidental, or consequential damages arising out of the use or inability to use the product or documentation, even if advised of the possibility of such damages.

# Environmental Responsibility

ADLINK is committed to fulfill its social responsibility to global environmental preservation through compliance with the European Union's Restriction of Hazardous Substances (RoHS) directive and Waste Electrical and Electronic Equipment (WEEE) directive. Environmental protection is a top priority for ADLINK. We have enforced measures to ensure that our products, manufacturing processes, components, and raw materials have as little impact on the environment as possible. When products are at their end of life, our customers are encouraged to dispose of them in accordance with the product disposal and/or recovery programs prescribed by their nation or company.

![Symbol of a trash bin crossed with a diagonal line and a horizontal bar below (no text or labels)](.nudam-6100-50-12126-1000-10/8d0dde23c6df63ef35c7b5d0bd3d55e333b2601ff15c23b3acb8731d7f82f2bf.jpg)

Battery Labels (for products with battery)

![Symbol of a trash bin crossed out by two diagonal lines (no text or numbers present)](.nudam-6100-50-12126-1000-10/64618d664da76a2f4805cc3ef7e440441208df36fa9ec1a298055e881a33784f.jpg)

![Li-ion](.nudam-6100-50-12126-1000-10/2db6e47a2b3577a553dc22fd3ba1618e159b182475341d5dd48f2ea18dd84b36.jpg)

![RECYCLE\nRBRC\nLi-ion\n1.800.822.8837](.nudam-6100-50-12126-1000-10/020837e79642d81bfe42e7a395d4674347f210407da463f5cb4b23cae91143d3.jpg)

![廢電池請回收](.nudam-6100-50-12126-1000-10/5d3217b3c7d48074a11b3934a1ea6eef570e118e3e77fe4aa78590891421b6eb.jpg)

# California Proposition 65 Warning

![A yellow triangular warning sign with a thick black border featuring a black exclamation point in the center.](.nudam-6100-50-12126-1000-10/40bfc97f8036107ab7be2c8086a162cbc548a6a37f97c8484d813ae5864af321.jpg)

WARNING: This product can expose you to chemicals including acrylamide, arsenic, benzene, cadmium, Tris(1,3-dichloro-2-propyl)phosphate (TDCPP), 1,4-Dioxane, formaldehyde, lead, DEHP, styrene, DINP, BBP, PVC, and vinyl materials, which are known to the State of California to cause cancer, and acrylamide, benzene, cadmium, lead, mercury, phthalates, toluene, DEHP, DIDP, DnHP,

DBP, BBP, PVC, and vinyl materials, which are known to the State of California to cause birth defects or other reproductive harm. For more information go to www.P65Warnings.ca.gov.

# Trademarks

Product names mentioned herein are used for identification purposes only and may be trademarks and/or registered trademarks of their respective companies.

Revision History

<table><tr><td>Revision</td><td>Description</td><td>Date</td><td>By</td></tr><tr><td>1.0</td><td>Initial release</td><td>2020-11-23</td><td>JC</td></tr></table>

# Table of Contents

# Preface .....

# List of Figures ....

# 1. Introduction...

1.1. Overview..
1.2. Module Compatibility ..
1.3. Communication and Programming ......
1.4. Common Specifications for the NuDAM-6100 I/O Series ..

# 2. About NuDAM DIO Modules ..........

2.1. Outline .. 3
2.2. Dimensions. .3
2.3. Summary of Modules.. 5
2.4. Block Diagrams.... .6
2.5. Wire Connections . .8
2.6. Specifications... .11

# 3. Installation.... .15

3.1. Setting Up a NuDAM Network .. . 15
3.2. Host Computer.... . 15
3.3. Power Supply.... .15
3.4. Communication Wiring.. .. 16
3.5. NuDAM Utility Software . .. 16
3.6. NuDAM Isolated RS-232/RS485 Converter (Optional).. .. 16
3.7. Initializing a Module . .16
3.8. Initialization Procedure ... .17
3.9. Changing the protocol from ASCII to Modbus-RTU.. .17
3.10. Install a New NuDAM on an Existing Network.. . 17
3.11. NuDAM DIO Module Configuration Tables (ND-6150 & ND-6160).. ... 17
3.12. NuDAM AI Module Configuration Tables (ND-6117).. . 18
3.13. NuDAM AO Module Configuration Table (ND-6124).. .20

# 4. NuDAM-6100 Utility Guide ....... .22

4.1. NuDAM-6100 I/O Utility Overview ... .22
4.2. Main Menu.. . 22
4.3. Function Menu. .23
4.4. Module Setup.. . 23
4.5. NuDAM-6100 Utility Runtime Error... .24

# 5. ASCII Protocol Command Sets . .25

5.1. Introduction. . 25
5.2. Format of NuDAM ASCII Commands. . 25
5.3. Command Responses . .. 26
5.4. ND-6150 & ND-6160 Command Sets.. ..26
5.5. ND-6117 Command Sets.. .. 55
5.6. ND-6124 Command Sets.. .64

# 6. Modbus RTU Protocol Command Sets.... ..91

6.1. Introduction .. .. 91
6.2. Modbus Data Model.. .. 91
6.3. Modbus Function Code Definitions... ..91
6.4. Modbus Standard Register Designation. .. 92
6.5. Modbus Address Mapping Tables (ND-6150 and ND-6160) ..... .. 92
6.6. Modbus Address Mapping Tables (ND-6117) .. .. 99
6.7. Modbus Address Mapping Tables (ND-6124) ... .. 101

# Appendix A: INIT Pin (Switch) Operation.............. .......108

# Appendix B: Module Status .. ...109

# Appendix C: Dual Watchdog Operation... ...110

# Appendix D: Reset Status ...... ....111

# Appendix E: Input Latch.... .....112

# Appendix F: Power-on & Safe Value .. ..113

# Appendix G: Changing to the Modbus Protocol .. ..114

# Appendix H: ND-6117 Calibration ............... .......115

# Appendix I: ND-6124 Calibration... ..116

# Safety Instructions... ..118

# Getting Service...... .....119

# List of Figures

Figure 1: ND-6100 Outline.. 3

Figure 2: ND-6100 Dimensions (1).. 3

Figure 3: ND-6100 Dimensions (2). 4

Figure 4: ND-6100 Dimensions (3). 4

Figure 5: ND-6100 Dimensions (4).. 4

Figure 6: mA-Meter (Current Calibration).. . 116

Figure 7: Volt-Meter (Current Calibration) . . 116

This page is intentionally left blank.

# 1. Introduction

# 1.1. Overview

The NuDAM-6100 DIO modules is a set of intelligent sensor to computer interface modules containing built-in microprocessor. They provide data comparison, and digital communication functions. Some modules provide digital I/O lines for controlling relays and TTL devices.

# 1.2. Module Compatibility

The NuDAM-6100 series are fully compatible to Advantech® ADAM-4000 series and ICP® I-7000 series.

# 1.3. Communication and Programming

NuDAM modules can connect to and communicate with all computers and terminals. They use RS-485 transmission standards, and communicate with ASCII format protocol(default) or Modbus-RTU protocol(for firmware version D02.01 and later), which means that NuDAM modules can be programmed in virtually any highlevel language. Up to 256 NuDAM modules may be connected to an RS-485 multi-drop network by using the NuDAM RS-485 repeater, extending the maximum communication distance to 4,000 ft.

# 1.4. Common Specifications for the NuDAM-6100 I/O Series

# 1.4.1. Communications

• RS-485 (2-wire) to host
• Speeds: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 bps
• Max. communication distance: 4000 feet (1.2 km)
• Power and communication LED indicator
• ASCI I/ Modbus RTU command / response protocol
• Communication error checking with checksum
• Async. data format: 1 start bit, 8 data bits, 1 stop bit, no parity (N, 8, 1)
• Up to 256 multidrop modules per serial port
• Online module insertion and removal
• Transient suppression on RS-485 communication lines

# 1.4.2. Power

• Unregulated +10 to +30VDC

# 1.4.3. Environment

• Operating Temperature: $\mathfrak { - 1 0 \circ } \mathsf { C }$ to $7 0 ^ { \circ } \mathsf { C }$ (14°F to 158° F)
• Storage Temperature: $\yen 25$ to $8 5 ^ { \circ } \textsf { C } ( - 1 3 ^ { \circ } \mathsf { F } \tan 1 8 5 ^ { \circ } \mathsf { F } )$
• Humidity: 5% to 95%, non-condensing

This page is intentionally left blank.

# 2. About NuDAM DIO Modules

# 2.1. Outline

![20\n11\nND-6100\n1\n10](.nudam-6100-50-12126-1000-10/183858c5f4696343533436dacec41d1c82f93d18a16eaa8854ac9becf6a51b05.jpg)

Figure 1: ND-6100 Outline

# 2.2. Dimensions

![71.55\n59.55\n100.7\n52\n55.7](.nudam-6100-50-12126-1000-10/29bb98fe6b47bf5dc0eecca7ba0f187e57072eabfd96fae0a01ff99a3467ae4b.jpg)

Figure 2: ND-6100 Dimensions (1)

![25](.nudam-6100-50-12126-1000-10/0c2201bdff99409b1e1d66a61f42a9a261fdcc730b7083ee2825711ff9eb63ce.jpg)

![71.55\n25](.nudam-6100-50-12126-1000-10/f652038cd620cf23b200afbad1cfa4b5cc4f60ae413e014a14b254f446792cf5.jpg)

Figure 3: ND-6100 Dimensions (2)

![142.2\n132\n32\n9.5\n55.7\n5\n15\n4-04.8\n2-M3NUT\n122.2](.nudam-6100-50-12126-1000-10/eff970f4764f356fa6a47dac3cd4d1f88f0151920dc10d7fb0ff57002df295a6.jpg)

Figure 4: ND-6100 Dimensions (3)
![55.7](.nudam-6100-50-12126-1000-10/5424ce83102fab1e4f4f9fe38d7e4351edd51833ed573b2824a584717e5892c5.jpg)

![35](.nudam-6100-50-12126-1000-10/638080716f84f2742784afbeb9147888ae3234fa52b24015b092589d39889914.jpg)

Figure 5: ND-6100 Dimensions (4)

# 2.3. Summary of Modules

The NuDAM provides a series of digital input or output modules to sense the digital signal or to control the remote devices.

# 2.3.1. Communication Modules

<table><tr><td>Module</td><td>Description</td></tr><tr><td>6520</td><td>Isolated RS-232 to RS-422/485 converter</td></tr><tr><td>6510</td><td>Isolated RS-422/485 repeater</td></tr><tr><td>6530</td><td>Isolated USB to RS-232 / RS-422 / RS-485 Converter</td></tr></table>

# 2.3.2. DC Input and Output Modules

<table><tr><td>Module</td><td>Input Channel</td><td>Input Type</td><td>Output Channel</td><td>Output Type</td></tr><tr><td>6150</td><td>8</td><td>Isolated single-ended with common source</td><td>8</td><td>Isolated with open drain (source/1.0A/P-MOSFET)</td></tr></table>

# 2.3.3. Relay Output and DC Input Modules

<table><tr><td>Module</td><td>Output Channel</td><td>Output Type</td><td>Contact Rating</td><td>Input Channel</td><td>Input Type</td></tr><tr><td>6160</td><td>4</td><td>RL1,RL2 Form ARL3,RL4 Form C</td><td>0.6A@125VAC2A@30VDC</td><td>4</td><td>Isolation with common source</td></tr></table>

# 2.4. Block Diagrams

# 2.4.1. ND-6150 Block Diagram

![Based on the provided block diagram, here are the labeled blocks and their connections:\n\n**Labeled Blocks:**\n*   ND-6150 (Title)\n*   LED module\n*   Micro processor (EEPROM)\n*   RS-485 interface\n*   Power supply\n*   DC/DC\n\n**Connections:**\n*   **LED module** connects to **Micro processor (EEPROM)** via two lines with arrows pointing towards the LED module.\n*   **Micro processor (EEPROM)** connects to **RS-485 interface**.\n*   **Micro processor (EEPROM)** connects to the right-side circuitry (optocouplers/transistors).\n*   **RS-485 interface** connects to the right-side circuitry.\n*   **Power supply** outputs **+5V**, which connects to the right-side circuitry (both top and bottom sections).\n*   **DC/DC** connects external **+5V** to **+S5V**, which connects to the top section of the right-side circuitry.\n*   **Micro processor (EEPROM)** has an external input labeled **INIT**.\n*   **RS-485 interface** has external inputs labeled **Data+** and **Data-**.\n*   **Power supply** has external inputs labeled **VS** and **GND**.\n*   **DC/DC** outputs **GND1**.\n*   The right-side circuitry connects to output terminals labeled: **D1.COM**, **D10**, **D17**, **D1.GND**, **EXT.PWR**, **D00**, **D07**, and **EXT.GND (D0.GND)**.\n*   Ground labels **GND1** and **GND2** are shown at the bottom.](.nudam-6100-50-12126-1000-10/a037079d8ab85235cfc3586e715c972f0bbb56239805c5691490b6beb3e8017a.jpg)

# 2.4.2. ND-6160 Block Diagram

![The diagram is labeled **ND-6160** at the top left. It depicts a system architecture with a left-hand control section, a central power/bus distribution section, and a right-hand I/O section.\n\n**Left-Side Blocks:**\n*   **LED module**: Connected to the central vertical bus lines.\n*   **Micro processor (EEPROM)**: Connected to the central vertical bus lines. It has an input labeled **INIT \***. It connects to the **LED module** and the **RS-485 interface**.\n*   **RS-485 interface**: Connected to the central vertical bus lines. It has inputs labeled **Data+** and **Data-**. It connects bidirectionally to the **Micro processor**.\n*   **Power supply**: Connected to the central vertical bus lines. It has inputs labeled **+ VS** and **GND**. It outputs **+5V** to the top vertical line.\n\n**Central Connections:**\n*   Two vertical parallel lines run down the center of the diagram, acting as distribution buses.\n*   The top vertical line is labeled **+5V** and has an arrow pointing upward.\n*   The bottom vertical line connects to the **Power supply** **GND** and has an arrow pointing downward.\n*   All left-side blocks and right-side blocks connect to these vertical lines.\n\n**Right-Side Blocks:**\n*   **Top Block**: Contains transistor and LED symbols. Connected to the vertical bus lines. Outputs are labeled **D.COM**, **DI0**, **...** (ellipsis), and **DI3**.\n*   **RL1 Block**: Contains a coil symbol labeled **COIL** and a switch. Connected to the vertical bus lines. Outputs are labeled **RL1 COM** and **RL1 NO**.\n*   **RL2 Block**: Contains a coil symbol labeled **COIL** and a switch. Connected to the vertical bus lines. Outputs are labeled **RL2 COM** and **RL2 NO**.\n*   **RL3 Block**: Contains a coil symbol labeled **COIL** and a switch. Connected to the vertical bus lines. Outputs are labeled **RL3 COM**, **RL3 NC**, and **RL3 NO**.\n*   **RL4 Block**: Contains a coil symbol labeled **COIL** and a switch. Connected to the vertical bus lines. Outputs are labeled **RL4 COM**, **RL4 NC**, and **RL4 NO**.](.nudam-6100-50-12126-1000-10/fbbad0b2eb3b11f57490076351339ea848a73b75774bace75544e136ee60e46d.jpg)

# 2.4.3. ND-6117 Block Diagram

![Based on the provided image, here is the accurate description of the flowchart/block diagram:\n\n**Labeled Blocks:**\n*   **LED indicator**\n*   **Micro processor (EEPROM)**\n*   **RS-485 interface**\n*   **Power supply**\n*   **Isolated Power**\n*   **ADC**\n*   **CJ** (small square block)\n*   **Vertical terminal block** (far right rectangle)\n\n**Text Labels & Inputs:**\n*   **eDAM-8018** (top right corner)\n*   **+5V** (top left and center)\n*   **Power** (next to diode)\n*   **INIT**\n*   **Data+**\n*   **Data-**\n*   **VS**\n*   **GND**\n*   **Photo-Isolation**\n*   **Vin 0+**, **Vin 0-**, **Vin 1+**, **Vin 1-**, **Vin 2+**, **Vin 2-**, (ellipsis), **Vin 7+**, **Vin 7-**\n*   **F** (near ground symbol)\n\n**Connections:**\n*   **Power Section:** **+5V** connects via a diode labeled **Power** to the **LED indicator** block. **VS** and **GND** connect to the **Power supply** block. The **Power supply** outputs **+5V** to the **Isolated Power** block and connects to ground. The **Isolated Power** block connects to ground (labeled **F**) and to the **ADC** block.\n*   **Microprocessor Section:** **INIT** connects to the **Micro processor (EEPROM)** block. **Data+** and **Data-** connect to the **RS-485 interface** block. There is a bidirectional connection between the **Micro processor (EEPROM)** and the **RS-485 interface**.\n*   **Isolation & Bus:** The **Micro processor (EEPROM)**, **LED indicator**, and **CJ** block all connect to a central vertical bus line (indicated by up and down arrows). This bus line connects via a transformer symbol (labeled **Photo-Isolation**) to the **ADC** block (with an arrow pointing from the ADC towards the bus).\n*   **ADC Section:** The **ADC** block connects to the far right vertical terminal block. This block lists the following input connections: **Vin 0+**, **Vin 0-**, **Vin 1+**, **Vin 1-**, **Vin 2+**, **Vin 2-**, (ellipsis), **Vin 7+**, **Vin 7-**.](.nudam-6100-50-12126-1000-10/90c5ac193d90fba2eb515da8bda4b32433442449f78a4fa6e550b6fe09de19f4.jpg)

# 2.4.4. ND-6124 Block Diagram

![Based on the provided circuit diagram, here is the accurate and concise description of the labeled blocks and their connections:\n\n**Labeled Blocks:**\n*   **Power**\n*   **LED indicator**\n*   **Micro processor (EEPROM)**\n*   **RS-485 interface**\n*   **Photo-Isolation**\n*   **DAC**\n*   **Isolated Power**\n*   **Power supply**\n\n**Connections and Flow:**\n*   **Power Section:** The **Power** block connects to **+5V** and the **LED indicator**. The **LED indicator** connects to a central vertical bidirectional bus line.\n*   **Microprocessor Interface:** The **Micro processor (EEPROM)** connects to **INIT\*** and the central bus line. The **RS-485 interface** connects to **Data+**, **Data-**, and the central bus line.\n*   **Power Supply:** The **Power supply** block connects to **VS** and **GND**. It provides **+5V** to the **Isolated Power** block.\n*   **Isolation and Conversion:** The central bus line connects to **Photo-Isolation**, which then connects to the **DAC** block. The **Isolated Power** block also connects to the **DAC**.\n*   **Digital Inputs (Top Right):** A stack of three logic/input blocks connects to the central bus and **+5V** (two instances).\n    *   The top block output connects through a **3K ohm** resistor to **IN.COM**.\n    *   The middle block output connects to **DI0**.\n    *   The bottom block output connects to **DI3**.\n*   **Analog Outputs (Bottom Right):** The **DAC** output splits to two amplifier blocks.\n    *   The top block outputs **Vout0** and **Iout0**, with a connection to **AGND**.\n    *   The bottom block outputs **Vout3** and **Iout3**, with a connection to **AGND**.](.nudam-6100-50-12126-1000-10/591d1ab720e48ce17707e75bd0379dc1fa7242cfb6b6eb21209e9419c1c13a77.jpg)

# 2.5. Wire Connections

# 2.5.1. ND-6150 Wire Connections

<table><tr><td colspan="4">Dry Contact Signal Input</td></tr><tr><td colspan="4">&lt;img src="images/48ddf8d7ee45a277c5944f826881cabf4b47d08a682c40dd52bb2804cb99fa5d.jpg"/&gt;</td></tr><tr><td colspan="4">Wet Contact Signal Input</td></tr><tr><td>&lt;img src="images/761d07b52504b3de0c40964e8eb8d3e5e6d76ede9dfb0f58640fb9ae48139e5b.jpg"/&gt;</td><td>Note: To use wet contact, the DI.GND pin must be opened.</td><td>&lt;img src="images/d7623c05cb7f200bde49d7bc6d41d109ee1d7532bddb09bf76def6796e3e878d.jpg"/&gt;</td><td>Note: To use wet contact, the DI.GND pin must be opened.</td></tr><tr><td colspan="4">Digital Output</td></tr><tr><td colspan="2">&lt;img src="images/5d2952d2523967f10b71bebff64c880eeee94875da12886ff99a185f3d8810c4.jpg"/&gt;</td><td colspan="2">&lt;img src="images/cd6f8ba403fe4bc424e891777dd8ac61db92703e1991b494fb703c80b2c4e823.jpg"/&gt;</td></tr></table>

# 2.5.2. ND-6160 Wire Connections

<table><tr><td>TTL/COMS Signal Input</td><td>Contact Closure Input</td></tr><tr><td>&lt;img src="images/6c126cc53aeffd269c6796a4d96a7cdebb6a3e26a6893fce317bb4eef1e36142.jpg"/&gt;</td><td>&lt;img src="images/21c5ec84088a79fa348ff5676a3903ea55de0001067082afa6a15c3d6d3e6fa7.jpg"/&gt;</td></tr><tr><td>NPN Output Signal Input</td><td>PNP Output Signal Input</td></tr><tr><td>&lt;img src="images/c424c8cf1d90ba550fa4c766b6f09eb1fa076b71f9311a61d159ebd6e48039de.jpg"/&gt;</td><td>&lt;img src="images/cb60944055bc861c0bec5cb3b5347800489e08c442de4e846ff8cb73cc9865c5.jpg"/&gt;</td></tr><tr><td>Relay Output in RL1 and RL2</td><td>Relay Output in RL3 and RL4</td></tr><tr><td>&lt;img src="images/2770c59829cc48857e1c92ea47fa6f3f7445f928a043c9df2ad5ad72905840f4.jpg"/&gt;</td><td>&lt;img src="images/ff199d3b9de071c581ffeab550fc6182180eb4b26e4fd33874a799216ba7ed9c.jpg"/&gt;</td></tr></table>

# 2.5.3. ND-6117 Wire Connections

# 2.5.3.1. Differential Analog Inputs for Channels 0–7

![The image displays a circuit diagram consisting of a rectangular block on the left and a voltmeter on the right. Inside the rectangular block, there are two rows of components:\n- The top row features the text 'Vin x+' next to a circle containing a vertical line.\n- The bottom row features the text 'Vin x-' next to a similar circle containing a vertical line.\n\nTo the right, a voltmeter is depicted as a circle containing the letter 'V'. Two pink wires connect the circles from the block to the voltmeter:\n- The top circle connects to the upper terminal of the voltmeter, marked with a '+' sign.\n- The bottom circle connects to the lower terminal of the voltmeter, marked with a '-' sign.](.nudam-6100-50-12126-1000-10/940ec9e2df9a1c7d120e9da53c0ec1fc0d886169103bb1d69ea2c1c41e022381.jpg)

![The image displays a schematic diagram. On the left, a rectangular box contains two terminals labeled 'Vin x+' and 'Vin x-', each depicting a switch symbol inside. Purple lines connect these terminals to a circuit on the right. This circuit consists of a resistor and an ammeter (a circle containing the letter 'I') connected in parallel. A '+' sign is positioned near the upper connection point of the ammeter.](.nudam-6100-50-12126-1000-10/410cdc19e2ea64ba57ae00f916a069ec5e4f1df77ba9b19213c2a65a7dd6230d.jpg)

Analog input mode for channels 6 and 7 can be selected by setting JP1 on the board:

# 2.5.3.2. Differential Inputs for Channels 6 and 7

![JP1\nVin 6+\nVin 6-\nVin 7+\nVin 7-/INIT](.nudam-6100-50-12126-1000-10/58752b1339b2787c2cacc9239aba982f1affe7117ee211142620e1562ade3f82.jpg)

# 2.5.3.3. Single-ended Inputs for Channels 6 and 7

![JP1\nVin 6+\nVin 6-\nVin 7+\nVin 7-/INIT](.nudam-6100-50-12126-1000-10/9b9f967adfbb33c1a8f4e8c5c9c06387a8589292e9dc8a91bcfdd30ebff88d0d.jpg)

# 2.5.3.4. ND-6117 Pin Assignments

<table><tr><td>Pin</td><td>Name</td><td>Description</td></tr><tr><td>1</td><td>Vin5+</td><td>Differential positive input channel 5</td></tr><tr><td>2</td><td>Vin5-</td><td>Differential negative input channel 5</td></tr><tr><td>3</td><td>Vin6+</td><td>Differential/single-ended input channel 6</td></tr><tr><td>4</td><td>Vin6-/AGND*</td><td>Differential negative ground of channel 6 or AGND for single-ended input channels 6 &amp; 7</td></tr><tr><td>5</td><td>Vin7+</td><td>Differential/single-ended input channel 7</td></tr><tr><td>6</td><td>Vin7-/INIT**</td><td>Differential negative ground of channel 7 or Initial state setting</td></tr><tr><td>7</td><td>DATA+</td><td>signal, positive</td></tr><tr><td>8</td><td>DATA-</td><td>signal, negative</td></tr><tr><td>9</td><td>+VS</td><td>+10V – +30Vdc</td></tr><tr><td>10</td><td>GND</td><td>Ground</td></tr><tr><td>11</td><td>Vin0+</td><td>Differential positive input channel 0</td></tr><tr><td>12</td><td>Vin0-</td><td>Differential negative input channel 0</td></tr><tr><td>13</td><td>Vin1+</td><td>Differential positive input channel 1</td></tr><tr><td>14</td><td>Vin1-</td><td>Differential negative input channel 1</td></tr><tr><td>15</td><td>Vin2+</td><td>Differential positive input channel 2</td></tr><tr><td>16</td><td>Vin2-</td><td>Differential negative input channel 2</td></tr><tr><td>17</td><td>Vin3+</td><td>Differential positive input channel 3</td></tr><tr><td>18</td><td>Vin3-</td><td>Differential negative input channel 3</td></tr><tr><td>19</td><td>Vin4+</td><td>Differential positive input channel 4</td></tr><tr><td>20</td><td>Vin4-</td><td>Differential negative input channel 4</td></tr></table>

\*Negative input of channel 6 or common AGND of channel 6 and 7 depend on JP1 setting

\*\*Negative input of channel 7 or INIT (Initial state setting) pin

# 2.5.4. ND-6124 Wire Connections

# 2.5.4.1. Analog Output Wire Connection

Voltage output:

![+\nV\n-\nLoad\nVout\nAGND](.nudam-6100-50-12126-1000-10/38eeb1adf11f2532bfaf04171820f72721ba516f63afe899d51f6f0de06fcedc.jpg)

Current output:

![+\n-\nLoad\ni\nIout\nAGND](.nudam-6100-50-12126-1000-10/96c0506acd3998df48a4248eb09061367ea86f3008600c2e61d88aca0d4f2958.jpg)

# 2.5.4.2. Isolation Digital Input Wire Connection

![+10 ~ +30VDC\n+\n-\nT\nIN.COM\nDI0~DI3\n+10 ~ +30VDC\n+\n-\nT\nIN.COM\nDI0~DI3](.nudam-6100-50-12126-1000-10/d40804484f882b97bd6be1c4c005b4950da18ff4ffe7f4834f4a1154554f2bfb.jpg)

# 2.5.4.3. Power and Initial Wire Connection

![The image displays two schematic diagrams side-by-side.\n\nOn the left, under the text 'Power supply,' there is a circuit diagram with terminals labeled '+VS' and 'GND.' A battery symbol connects these terminals, accompanied by the text '+10V ~ +30VDC'.\n\nOn the right, under the text 'Initial,' there is a second diagram with terminals labeled 'INIT*' and 'GND.' A switch symbol connects the wire extending from 'INIT*' to the wire extending from 'GND'.](.nudam-6100-50-12126-1000-10/9857d11b2c81e30d83483b8d3d7dd4062770152885a4227b5e7cc580f385141e.jpg)

# 2.5.4.4. ND-6124 Pin Assignments

<table><tr><td>Pin</td><td>Name</td><td>Description</td></tr><tr><td>1</td><td>DI0</td><td>Digital Input Channel 0</td></tr><tr><td>2</td><td>DI1</td><td>Digital Input Channel 1</td></tr><tr><td>3</td><td>DI2</td><td>Digital Input Channel 2</td></tr><tr><td>4</td><td>DI3</td><td>Digital Input Channel 3</td></tr><tr><td>5</td><td>IN.COM</td><td>Digital common source (+10V – +30VDC)</td></tr><tr><td>6</td><td>INIT*</td><td>Initial state setting</td></tr><tr><td>7</td><td>DATA+</td><td>RS-485 series signal, positive</td></tr><tr><td>8</td><td>DATA-</td><td>RS-485 series signal, negative</td></tr><tr><td>9</td><td>+Vs</td><td>Power supply, +10V–+30V</td></tr><tr><td>10</td><td>GND</td><td>Ground</td></tr><tr><td>11</td><td>Vout0</td><td>Voltage output channel 0</td></tr><tr><td>12</td><td>Vout1</td><td>Voltage output channel 1</td></tr><tr><td>13</td><td>Vout2</td><td>Voltage output channel 2</td></tr><tr><td>14</td><td>Vout3</td><td>Voltage output channel 3</td></tr><tr><td>15</td><td>AGND</td><td>Analog output ground</td></tr><tr><td>16</td><td>AGND</td><td>Analog output ground</td></tr><tr><td>17</td><td>Iout3</td><td>Current output channel 3</td></tr><tr><td>18</td><td>Iout2</td><td>Current output channel 2</td></tr><tr><td>19</td><td>Iout1</td><td>Current output channel 1</td></tr><tr><td>20</td><td>Iout0</td><td>Current output channel 0</td></tr></table>

\* The module accepts baud rate, checksum, and communication protocol configuration settings under INIT\* mode. (INIT\* connects to the ground.)

# 2.6. Specifications

# 2.6.1. ND-6150

The ND-6150 provides 8 isolated digital output (source) channels and 8 isolated digital input (sink/source) channels with common source. All output channels are open drain (P-MOSFET). (See 2.4.1)

# Specifications

• Interface: RS-485, 2 wires
• Speed: 1200, 2400, 4800, 9600, 19.2K, 38.4K, 57.6K,115.2K

• Digital output:

o Output channels: 8 isolated output channels (source)
o Output type: Open drain (P-MOSFET)
o Output load voltage: +10V to +30Vdc
o Max. load current: 650mA per channel

o Short-circuit protection: Yes
o Output isolation Voltage: 3750Vrms

• Digital input:

o Input channels: 8 isolated input channels (sink/source)
o Input type: Isolated single-ended with common source or common ground
o Dry Contact Input:

 Logic level 0: open
 Logic level 1: close to DI.GND

o Wet Contact Input: To use wet contact, the DI.GND pin must be opened

 Logic level 0: 1VDC max.
 Logic level 1: 10 to 30VDC

o Input impedance: 5.6K ohms

o Input isolation Voltage: 3750Vrms

• LED: 16 digital input/output status LED
• Power input: +10V to +30VDC
• Power consumption: 0.8W

![26\nDI2\nDI1\nDI0\nDO.GND\nD07\nD06\nD05\nD04\nD03\nD02\nD01\nD00\nExt. PWR\n14\nND-6150\nDI.COM 1\nDI3\nDI4\nDI5\nDI6\nDI7\nDI.GND\n(Y)DATA+\n(G)DATA-\n(Y)DATA+\n(G)DATA-\n(R)+Vs\n(B)GND 13](.nudam-6100-50-12126-1000-10/42e681da1039c66f27be3864a41785dc4bfd016d24bec939464328186bf75fcc.jpg)

Figure 6: ND-6150 DIO

Note: To use wet contact, the DI.GND pin must be opened (disconnected).

# 2.6.2. ND-6160

The ND-6160 provides 4 isolated digital input channels and 4 relay output channels. All relay output channels are differential with individually common. (See 2.4.2)

# Specifications

• Interface: RS-485, 2 wires
• Speed: 1200, 2400, 4800, 9600, 19.2K, 38.4K, 57.6K,115.2K
• Relay output:
o Output channels: 4 relay output channels.
(RL1,RL2: Form A, RL3,RL4 Form C).
o Relay contact rating: 0.6A/125Vac, 2A/30Vdc
o Surge strength: 500V
o Operate Time: 3ms max.
o Release Time: 2ms max.
o Min Life: 5\*105 ops.

# • Digital input:

o Input channels: 4 isolated input channels with common source
o Isolation Voltage: 3750Vrms.
o Input impedance: 3K ohms
o Input logical level 0: +1V Max.
o Input logical level 1: +10V to +30V

• LED: 8 digital input/output status LED

• Power input: +10V to +30VDC

• Power consumption: 1.2W (8060)

![20\nRL4 COM\nRL4 NC\nRL4 NO\nRL3 COM\nRL3 NC\nRL3 NO\nRL2 COM\nRL2 NO\nRL1 COM\nRL1 NO\n11\nND-6160\n1\nD13\nD12\nD11\nD10\nD.COM\nINIT+\n(Y)DATA+\n(G)DATA-\n(R)+Vs\n(B)GND\n10](.nudam-6100-50-12126-1000-10/bdd3df0f7473d00aa7a2037934936ccfde8c211673a6673649096652ef46348c.jpg)

Figure 7: ND-6160 DIO
Note: NO: Normal open; NC: Normal close

# 2.6.3. ND-6117

The ND-6117 is an analog input module with 8 input channels. Six of the eight channels are differential type and the remaining two are single-ended type.

# Specifications

• Interface: RS-485, 2 wires
• Speed (bps): 1200, 2400, 4800, 9600, 19.2K, 38.4K , 115.2K
• Analog input type: Differential input
• Analog channels Numbers: 8
• Analog resolution: 16 bits
• Unit conversion: mV, V or mA
• Voltage range: +/-10V,+/-5V,+/-1V,+/-500mV,+/-150mV,+/-20mA
• Sampling rate :10 Samples/Second
• Bandwidth: 15.7 Hz
• Accuracy: ±0.1%
• Zero drift: 0.5µV/°C
• Span drift: 25ppm/°C
• CMR@50/60Hz: 150dB
• NMR@50/60Hz: 100dB
• Input impedance: 20M Ohms
• Current measurement: ±20mA (with external 125 ohm resistor)
• Power supply: +10V to +30V

# 2.6.4. ND-6124

The ND-6124 is a 4-channel analog output module with mixed-type I/O. Under some circumstances, it is demanding for multiple analog outputs to fulfill particular applications without many duplicate modules. The ND-6124 is designed to achieve this by integrating four A/O channels and four isolated D/I channels into one module. Both NuDAM ASCII and Modbus-RTU protocols are supported.

The ND-6124 provides multi-range A/O support: its four A/O channels can work at the same time at different output ranges and with additional output ranges. For example, it can have 0–20 mA and ±10 V at its output. To ensure the operation of machines and facilities, the ND-6124 has the functionality of slew rate control. The output slope is programmable through ramping/clamping the slew rate. Unlike traditional mechanisms, the ND-6124 permits users to substitute its default value upon startup. Users can easily set up and configure the module to be more adaptive.

# Specifications

• Support Protocol: MODBUS-RTU (default) and NuDAM-ASCII
• Interface: RS-485, 2 wires
• Speed (bps): 1200, 2400, 4800, 9600, 19.2K, 38.4K , 115.2K
• Analog output:

o Output type: mA, V
o Analog channels: 4
o Analog resolution: 14 bits
o Output range: 0–20 mA, 4–20 mA, 0–+5V, ±5V, 0–+10V and ±10V
o Programmable output slope: 0.125 to 2048 mA/Second 0.0625 to 1024 V/Second
o Current load resistor: External 24V/1050 ohms
o Current Output: 5mA max.
o Accuracy: ±0.1% of FSR for current output ±0.02% of FSR for voltage output
o Zero Drift: Voltage output: ±30μV/°C Current output: ±0.2μA/°C
o Span temperature coefficient: ±25 ppm/°C
o Isolation voltage : 3000VDC

• Isolation Digital Input:

o Channel: 4
o Logical level 0: +1V max.
o Logical level 1: +10 – +30Vdc
o Isolation voltage: 3750Vrms

• LED display: 5 1/2 digits display (6124 only)
• Watchdog function:

o Module internal watchdog timer: 200 ms
o Power failure threshold: 4.65 V
o Host programmable watchdog: 100 ms – 25.500 sec

• Overvoltage protection: ±35V
• Power input: +10V to +30VDC
• Consumption: 2.4W(E-8024)

# 3. Installation

This chapter provides guidelines to what is needed to set up and install an NuDAM network. A quick hookup scheme is provided that lets you configure modules before they are installed in a network.

To help you to connect NuDAM modules with sensor inputs, several wiring examples are provided. The end of this chapter also provides a programming example using the NuDAM command set.

Be sure to carefully plan the layout and configuration of your network before you start. Guidelines regarding layout are provided in Appendix A.

# 3.1. Setting Up a NuDAM Network

The following list gives an overview of what is needed to setup, install and configure a NuDAM environment.

• NuDAM modules
• A host computer that can output characters with an RS-232C or RS-485 port.
• Power supply for the NuDAM modules (+10 to +30 VDC )
• NuDAM Series Utility software
• NuDAM Isolated RS-232/RS-485 Converter (optional)
• RS-232/RS-485 NuDAM Repeater (optional)

# 3.2. Host Computer

Any computer or terminal that can output characters over either RS-232 or RS-485 can be connected as the host computer. When only RS-232 is available, an ND-6520 module (RS-232/RS-485 converter) is required to transform the host signals to the correct RS-485 protocol. The converter also provides opto-isolation and transformer-based isolation to protect your equipment.

For the ease of use in industrial environments the NuDAM modules are designed to accept industry standard +24VDC unregulated power. Operation is guaranteed when using any power supply between +10 and +30VDC. Power ripples must be limited to 5 V peak to peak while the voltage in all cases must be maintained between +10 and +30 VDC . All power supply specifications are referenced at module connector. When modules are powered remotely, the effects of line voltage drops must be considered.

![**Blocks:**\n*   **HOST PC**: A rectangular block on the left containing terminals labeled 'TX' (3), 'RX' (2), and 'GND' (5).\n*   **eDAM8520**: A central rectangular block containing terminals labeled 'TX' (3), 'RX' (2), 'GND' (5), 'Data+', 'Data-', 'VS', and 'GND'.\n*   **NuDAM I/O module**: A rectangular block on the right containing terminals labeled 'Data+', 'Data-', 'INIT', 'VS', and 'GND'.\n*   **Power supply**: A rectangular block at the bottom right containing the label '10Vdc-30Vdc' and terminals 'VS' and 'GND'.\n\n**Connections:**\n*   **RS-232C**: A connection labeled 'RS-232C' links the HOST PC to the eDAM8520. Specifically:\n    *   'TX' (3) connects to 'TX' (3).\n    *   'RX' (2) connects to 'RX' (2).\n    *   'GND' (5) connects to 'GND' (5).\n*   **RS-485**: A connection labeled 'RS-485' links the eDAM8520 to the NuDAM I/O module. Specifically:\n    *   'Data+' connects to 'Data+'.\n    *   'Data-' connects to 'Data-'.\n*   **Power Supply (VS)**: The 'VS' terminal of the Power supply connects via a wire that splits to connect to the 'VS' terminals of both the eDAM8520 and the NuDAM I/O module.\n*   **Power Supply (GND)**: The 'GND' terminal of the Power supply connects via a wire that splits to connect to the 'GND' terminals of the HOST PC, the eDAM8520, and the NuDAM I/O module.](.nudam-6100-50-12126-1000-10/bfdf5f4b0f6b0d417dc126a603b3e285c2a36e61334889a9090a9e9d0066d384.jpg)

# 3.3. Power Supply

All modules use on-board switching regulators to sustain good efficiency over the +10 \~ +30VDC input range, therefore we can assume that the actual current draw is inversely proportional to the line voltage. The following example shows how to calculate the required current that a power supply should be able to provide.

We advise the following standard colors (as indicated on the modules) for each power line:

+Vs (R) Red

GND (B) Black

![NuDAM modlue\n+VS\nGND\nGND\n+10~30Vdc\nPower supply](.nudam-6100-50-12126-1000-10/032d08e2e9ff3a31d5326be77983d239b7f11ab05cfd159f84e23bf11d8e3d9c.jpg)

# 3.4. Communication Wiring

We recommend that shielded-twisted-pair cables that comply with the

EIA RS-485 standard be used with the NuDAM network to reduce interference.

We advise the following standard colors (as indicated on the modules) for each power line:

DATA+ (Y) Yellow

DATA- (G) Green

![NuDAM module\nDATA+\nDATA-\n+VS\nGND\nRS-485 DATA-\nRS-485 DATA+](.nudam-6100-50-12126-1000-10/f00eeaadf49e01b6f72418e45904cdfd9d059308b6a3678505076b28d84fa279.jpg)

# 3.5. NuDAM Utility Software

A menu-driven utility program for DOS or Windows is provided for NuDAM module configuration, monitoring and calibration. It also includes a terminal emulation program that lets you easily communicate through the NuDAM command set.

# 3.6. NuDAM Isolated RS-232/RS485 Converter (Optional)

When the host computer or terminal has only a RS-232 port, an ND-6520 Isolated RS-232/RS-485/422 converter connected to the host’s RS-232 port is required.

This module equips a “Auto baud rate detector” inside, therefore it can detect the baud rate and data format automatically and control the direction of RS-485 precisely.

# 3.7. Initializing a Module

All NuDAM modules in a RS-485 network must have an unique address ID. Therefore, to configure the brand-new NuDAM before using is necessary.

# Factory default settings:

• Address ID is 01
• Baud rate is 9600 bps (N,8,1)
• Check-sum disable
• Modbus-rtu protocol

# INIT\* State Settings:

The NuDAM I/O modules must be set at INIT\* State when you want to change the default settings, such as the ID address, baud rate, edam-ascii protocol, check-sum status etc. All NuDAM I/O modules have an special pin labeled as INIT\* (see Appendix A). The module will be in Default State if the INIT\* pin is shorted to ground(or INIT switch ON) when power ON. Under this state, the default configuration is set as following :

• Address ID is 00
• Baud rate is 9600 bps (N,8,1)
• Check-sum disable
• Modbus-rtu protocol

Therefore, the communication between host and the module will can be easily set as the same configuration, the initialization of a module will be possible no matter what configuration is set under operating state.

![INIT Switch\nInit\nON\nNormal](.nudam-6100-50-12126-1000-10/333f4135e3acbe4db7d1ecd94431cde70d7b4bfc5f29e1b1390d898f5d6e3e96.jpg)

# 3.8. Initialization Procedure

1. Connect a brand new NuDAM module with the RS-485. Set the module in Default State by Sliding the INIT switch to the Init position (see Appendix A).
2. Power on the power supply for NuDAM modules.
3. Use the NuDAM utility to configure the address ID, baud rate, check-sum status and command sets of the module.

# 3.9. Changing the protocol from ASCII to Modbus-RTU

Changing the protocol from ASCII to Modbus Some NuDAM-6100 modules support both NuDAM ASCII and Modbus protocols, and the factory default setting of these modules is ASCII protocol. If you would like to configure the modules to Modbus protocol, please refer to Appendix G, which describes how to change the protocol in NuDAM utility.

# To switch to the Modbus RTU protocol: (see Appendix G)

1. Sends the \$AAPN command and set N to a value of 1.
Note: It is necessary to short the pin INIT\* to ground (see 3.7).
2. After a power-on reset, the communication protocol will be changed to the Modbus-RTU protocol.

# To switch to the ASCII format protocol:

1. Uses address 00257 of Modbus function and set to a value of 0.
2. After a power-on reset, the communication protocol will be changed to NuDAM-ASCII format protocol.

# 3.10. Install a New NuDAM on an Existing Network

# Requirements:

• Equipment for installing a new module
• An existing NuDAM network
• New NuDAM modules

# Installation Procedures:

1. Configure the new NuDAM module according to the initialization procedure in Appendix A.
2. The baud rate and check-sum status of the new module must be identity with the existing RS-485 network. The address ID must not be conflict with other NuDAM modules on the network.
3. Power off the NuDAM power supply of the existing RS-485 network.
4. Wire the power lines for the new NuDAM with the existing network. Be careful about the signal polarity as wiring.
5. Wire the RS-485 data lines for the new NuDAM with the existing network. Be careful about the signal polarity as wiring.
6. Wire to the input or output devices.
7. Power on the NuDAM local power supply.
8. Use the NuDAM utility to check entire network.

# 3.11. NuDAM DIO Module Configuration Tables (ND-6150 & ND-6160)

# 3.11.1. Baud Rate Settings (CC)

<table><tr><td>Code</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>0A</td></tr><tr><td>Baud rate</td><td>1200</td><td>2400</td><td>4800</td><td>9600</td><td>19200</td><td>38400</td><td>57600</td><td>115200</td></tr></table>

Note: The data bits are fixed at one start bit, eight data bits, no parity, and one stop bit.

# 3.11.2. Data Format Settings (FF)

<table><tr><td>Bit</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr></table>

Bit 7: Input counter update direction: (see “#AAN” and “%AANNTTCCFF”)

0=Falling edge (default)

1=Rising edge

Bit 6: checksum:

1=Enable

0=Disable (default)

Bit 5–Bit 0: Reserved must be 0

Note: You must short the INIT\* pin to ground while changing baud rate and/or enable/disable checksum.

# 3.11.3. Digital Input/Output Data Format Table

The data format of the response of the \$AA4, \$AA6 and \$AALS commands is: (the First Data)(the Second Data)00. The data format of the response of the @AA command is: (the First Data)(the Second Data).

Note: Both the First Data and the Second Data are in two hexadecimal digits format.

<table><tr><td>Module</td><td colspan="2">First Data</td><td colspan="2">Second Data</td></tr><tr><td>ND-6150</td><td>DO0–DO7</td><td>00–FF</td><td>DI0–DI7</td><td>00–FF</td></tr><tr><td>ND-6160</td><td>RL1–RL4</td><td>00–0F</td><td>DI0–DI3</td><td>00–0F</td></tr></table>

# 3.11.4. DIO Active Status

The DIO read value of the NuDAM -6100 is as follows:

<table><tr><td>Module</td><td>DIO</td><td>Inactive</td><td>Active</td></tr><tr><td rowspan="2">ND-6150</td><td>8 DO</td><td>OFF</td><td>ON</td></tr><tr><td>8 DI</td><td>OFF</td><td>ON</td></tr><tr><td rowspan="2">ND-6160</td><td>4 RO</td><td>OFF</td><td>ON</td></tr><tr><td>4 DI</td><td>ON</td><td>OFF</td></tr><tr><td colspan="4">• ON: The DIO read value is 1.• OFF: The DIO read value is 0.</td></tr></table>

# 3.12. NuDAM AI Module Configuration Tables (ND-6117)

# 3.12.1. Baud Rate Settings (CC)

<table><tr><td>Code (CC)</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>0A</td></tr><tr><td>Baud rate</td><td>1200</td><td>2400</td><td>4800</td><td>9600</td><td>19200</td><td>38400</td><td>57600</td><td>115200</td></tr></table>

Note: The data bits are fixed at one start bit, eight data bits, no parity, and one stop bit.

# 3.12.2. Analog Input Settings (TT)

<table><tr><td>Input Range Type (Hex)</td><td>Input Range</td></tr><tr><td>00</td><td>No change</td></tr><tr><td>08</td><td>± 10 V</td></tr><tr><td>09</td><td>± 5 V</td></tr><tr><td>0A</td><td>± 1 V</td></tr><tr><td>0B</td><td>± 500 mV</td></tr><tr><td>0C</td><td>± 150 mV</td></tr><tr><td>0D</td><td>± 20 mA</td></tr></table>

# 3.12.3. Data Format Settings (FF)

<table><tr><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr><tr><td>FS</td><td>CS</td><td>MS</td><td colspan="3">reserved</td><td colspan="2">DF</td></tr><tr><td>Key</td><td colspan="7">Description</td></tr><tr><td>DF</td><td colspan="7">Data format00: Engineer unit01: % of FSR (full scale range)10: 2&#x27;s complement hexadecimal</td></tr><tr><td>MS</td><td colspan="7">Mode settings0: normal mode (16 bit)1: fast mode (12 bit)</td></tr><tr><td>CS</td><td colspan="7">Checksum0: disabled1: enabled</td></tr><tr><td>FS</td><td colspan="7">Filter settings0: 60 Hz rejection1:50 Hz rejection</td></tr></table>

# 3.12.4. Analog Input Type and Data Format Table

<table><tr><td>Type Code</td><td>Input Type</td><td>Data Format</td><td>+Full Scale</td><td>-Full Scale</td></tr><tr><td rowspan="3">08</td><td rowspan="3">-10V–+10V</td><td>Engineering</td><td>+10.000</td><td>-10.000</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr><tr><td rowspan="3">09</td><td rowspan="3">-5V–+5V</td><td>Engineering</td><td>+5.0000</td><td>-5.000</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr><tr><td rowspan="3">0A</td><td rowspan="3">-1V–+1V</td><td>Engineering</td><td>+1.0000</td><td>-1.0000</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr><tr><td rowspan="3">0B</td><td rowspan="3">-500mV–+500mV</td><td>Engineering</td><td>+500.00</td><td>-500.00</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr><tr><td rowspan="3">0C</td><td rowspan="3">-150mV–+150mV</td><td>Engineering</td><td>+150.00</td><td>-150.00</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr><tr><td rowspan="3">0D</td><td rowspan="3">-20mA–+20mA</td><td>Engineering</td><td>+20.000</td><td>-20.000</td></tr><tr><td>% of Full scale</td><td>+100.00</td><td>-100.00</td></tr><tr><td>2&#x27;s Complement</td><td>7FFF</td><td>8000</td></tr></table>

# 3.13. NuDAM AO Module Configuration Table (ND-6124)

# 3.13.1. Baud Rate Settings (CC)

<table><tr><td>Code</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>0A</td></tr><tr><td>Baud rate</td><td>1200</td><td>2400</td><td>4800</td><td>9600</td><td>19200</td><td>38400</td><td>57600</td><td>115200</td></tr></table>

# 3.13.2. Analog Output Settings (TT)

<table><tr><td>Type Code</td><td>30 hex</td><td>31 hex</td><td>32 hex</td><td>33 hex</td><td>34 hex</td><td>35 hex</td></tr><tr><td>Min. Input</td><td>0mA</td><td>4mA</td><td>0V</td><td>-10V</td><td>0V</td><td>-5V</td></tr><tr><td>Max. Input</td><td>20mA</td><td>20mA</td><td>+10V</td><td>+10V</td><td>+5V</td><td>+5V</td></tr></table>

# 3.13.3. Data Format Settings (FF)

ND-6124 analog output modules can be configured to transmit data to the module in engineering units and hexadecimal binary data format.

<table><tr><td>Bit</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr></table>

Bit 7: - reserved = 0

Bit 6: - Checksum Bit = 0 - Disable checksum/CRC (default) = 1 - Enable checksum/CRC

Bit 5–bit 2: - reserved = 0

Bit 1–bit 0: - Data format = 00 - Engineer unit format (default) = 10 - 2’s complement hexadecimal format

# 3.13.4. Slew Rate (SS)

The slew rate is defined as the discrepancy between the present number of milliamps (or volts) per second and the required output currents (or voltages). A single ND-6124 analog output module may be configured for a specific slew rate.

<table><tr><td>Slew Rate</td><td>V/Sec.</td><td>mA/Sec.</td><td></td><td>Slew Rate</td><td>V/Sec.</td><td>mA/Sec.</td></tr><tr><td>00</td><td colspan="2">Immediate</td><td></td><td>08</td><td>8.0</td><td>16.0</td></tr><tr><td>01</td><td>0.0625</td><td>0.125</td><td></td><td>09</td><td>16.0</td><td>32.0</td></tr><tr><td>02</td><td>0.125</td><td>0.25</td><td></td><td>0A</td><td>32.0</td><td>64.0</td></tr><tr><td>03</td><td>0.25</td><td>0.5</td><td></td><td>0B</td><td>64.0</td><td>128.0</td></tr><tr><td>04</td><td>0.5</td><td>1.0</td><td></td><td>0C</td><td>128.0</td><td>256.0</td></tr><tr><td>05</td><td>1.0</td><td>2.0</td><td></td><td>0D</td><td>256.0</td><td>512.0</td></tr><tr><td>06</td><td>2.0</td><td>4.0</td><td></td><td>0E</td><td>512.0</td><td>1024.0</td></tr><tr><td>07</td><td>4.0</td><td>8.0</td><td></td><td>0F</td><td>1024.0</td><td>2048.0</td></tr></table>

# Note:

1. Type and slew rate are set by the command "\$AA9NTTSS"
2. The analog output value is 100 conversions per second.
3. You must short the INIT\* pin to ground while changing the baud rate and/or enabling/disabling the checksum.

# 3.13.5. ND-6124 Default Settings

ND-6124 factory default settings:

Address ID: 01
Baud rate : 9600 bps, (no parity, 8 data bits, 1 stop bit)
Check-sum is disabled
Host Watchdog timer is disabled
Engineer unit format
Analog output type: type 32 hex (0V – +10V)
Analog output slew rate is immediate
Protocol: Modbus-rtu format protocol

# 4. NuDAM-6100 Utility Guide

# 4.1. NuDAM-6100 I/O Utility Overview

The NuDAM-6100 Utility software offers a graphical interface that helps you configure NuDAM-6100 modules. The software also makes it easy to test and monitor your remote DAQ system. This section demonstrates the following elements of the NuDAM-6100 Utility software.

• Main menu
• Module Address settings
• Baudrate settings
• Checksum settings
• Mosbus RTU/ASCII protocol settings
• I/O module configuration
• WDT settings

# 4.2. Main Menu

The top of the operation screen consists of a function menu and a tool bar for users commonly operating functions. Double Click the icon of NuDAM I/O Utility shortcut and press ‘search’ icon it will search all NuDAM -6100 I/O modules on the host PC’s domination RS-485 network automatically. Then the tree-structure display area will appeal with the searched units and the relative module address.

![NuDAM 6000 Utility (ASCII and ModBus RTU) V6.90 2018/02/05\nCOM port Setup Search Terminal ISP About Manual Exit\nSearch Address Range 1 ~ 255\nCommunication protocol:\nModel Protocol Address COM Settings CheckSum(CRC) Description INIT SW Version\nMenu description\n1. COM port = Host communication device settings\n2. Setup/Test = Module Setup and Test\n3. Search = Start or stop searching all on-line modules\n4. Terminal = Command string emulation terminal\n5. ISP = In system firmware Programming\n6. About = About this utility information\n7. Manual = User manual files in installed folder\Manual\n8. Exit = Termoinate this utility\nThe address(ID)= 0 is reserved for the default setting (INIT switch is set to ON)\nPlease set the address(ID) to 1 ~ 255 for normal use\nCOMM.dll Ver.2.00 Close\nSearch Progress :](.nudam-6100-50-12126-1000-10/cd924ed0592ff488f3a704784c76f9c3163cd3d224f2dffcdf29f95431d17fa0.jpg)

# 4.3. Function Menu

• COM port: COM port and baudrate selection
• Search: Search installed modules
• Terminal: Call up the operation screen of Terminal emulation to execute request/response commands
• ISP: Firmware update
• Setup: Setting functions. Please perform a search before using this function.
• Manual: Contains documentation to help with user operation
• About: Contains information about the software version, release date, and support modules
• Exit: Exit the Utility program

# 4.4. Module Setup

After pressing the Search button, the program will automatically search all NuDAM-6100 I/O modules on the host PC’s domination RS-485 network. Then, the tree-structure area will display all units and their respective module addresses. After finding all connected units, you can start setting up each unit. Choose any one I/O module listed on the tree-structure display area. The following image shows the basic module configuration table and related settings.

![NuDAM 6000 Utility (ASCII and ModBus RTU) V6.90 2018/02/05\nCOM port Setup Search Terminal ISP About Manual Exit\nSearch Address Range 1 ~ 255 Address (ID)=001, COM1 (9600, N, 8, 1), ChkSum=Enable\nNuDAM-6155 DIO Module Setup and Diagnostic (v:1.11)\nSettings\nModule Name 6155\nAddress (dec) 1 Firmware Ver. D05.06\nSerial Port\nBaud 9600 Check Sum Enable\nParity None\nStop Bits 1 Protocol Modbus RTU ASCII Command\nDI active logical value DI LED active setting\n1(ON) = DI active value LED-ON for DI Active LED-OFF for DI Active\nDI Count Edge DI Count Overflow\nFalling edge Normal Mode (Max. 65535) Overflow Mode (With Overflow)\nRising edge\nDO LED active setting DO active logical value DO status Hex 00\nLED-ON for DO Active 1(ON) = DO active value Latch High\nLED-OFF for DO Active 0(OFF) = DO active value\nSet the power-on DO value Set the safe DO value\nHex 55 Hex 0A\nHost watchdog setting\nWatchdog WDT interval(ms)\nDefault Update Exit\n8 Input Channels and 8 Output Channels\nDI status Hex FF DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0\nLatch High Hex FF ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓\nLatch Low Hex 00 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓\nDI Counter (Dec) 00000 00000 00000 00000 00000 00000 00000\nClear Latch Clear Counter\nDO status Hex 00 DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0\nLatch High\nLatch Low\nDI Counter (Dec)\n1(ON) = DO active value Set All Clear All\nDefault Update Exit](.nudam-6100-50-12126-1000-10/f65c723a0400f4b2d7ffb763cb84bf8afbdba1c443322f0c4620ad3c5b11a1ab.jpg)

# 4.5. NuDAM-6100 Utility Runtime Error

An runtime error sometimes occurs when running the Utility software on Windows 7 or later. The following guidelines provide instructions on how to fix this problem.

1. In Windows 7, go to Control Panel > User Accounts > Change User Account Control Settings.
2. Drag the slider all the way to the bottom (Never notify).
3. Click OK.
4. Restart your computer.

Run-Time error'70'
![MeDAM 6000 Utility (ASCII and ModRes RT0) V6.90 2010/02/05\nCOM port Setup Search Control ISP Alert Method Root\nSearch Address Range 205 Address (19)=001,COM1(9600,B,0,1),ChkStrw=Enable\nHardware ISP\nFirmware\nFile Name: C:\temp\\nFile Exit\nConnection\nCOM Port: COM1\nCode Buffer\nRun-time error 70:\nPermission denied\nOK\nConnect Program](.nudam-6100-50-12126-1000-10/962fcc5efe8e1873e533f74eb486d21619bbdc6eb469888695fc775806c0ab5a.jpg)

![The flowchart depicts a sequence of steps illustrated by screenshots of a Windows interface:\n\n1.  **Block 1:** A screenshot of the Windows Control Panel. A red box highlights the text '**User Accounts**' with the number '**1**' next to it.\n2.  **Connection:** A blue arrow points to the right.\n3.  **Block 2:** A screenshot of the 'Change your user account' window. A red box highlights the text '**Turn user accounts on or off**' with the number '**2**' next to it.\n4.  **Connection:** A blue arrow points to the right.\n5.  **Block 3:** A screenshot of the 'User Account Control Settings' window. A red box highlights the slider position '**Never notify**' with the number '**3**' and a red arrow pointing down. A separate red box highlights the '**OK**' button at the bottom right.\n6.  **Connection:** A blue arrow points to the right.\n7.  **Final Block:** An oval containing the text '**reboot**'.](.nudam-6100-50-12126-1000-10/59aebae24d52c0c6b9e528fa142e8fc7e2611fb354fd8193d03c3c8f5135424f.jpg)

# 5. ASCII Protocol Command Sets

# 5.1. Introduction

The ASCII command is composed of many characteristics, including the leading code, address ID, the variables, the optional check-sum byte, and a carriage return to indicate the end of a command.

The host computer can only command one NuDAM module, except those synchronized commands with wildcard address commands “#\*\*” and “\~\*\*”. The NuDAM may or may not give response to the command. The host should check the response to handshake with the modules.

# 5.2. Format of NuDAM ASCII Commands

Syntax: (Leading code)(Addr)(Command)[Data] &lt;Cksum&gt;&lt;CR&gt;

Every command begins with a delimiter character. There are five valid characters: a dollar sign \$, a pound sign #, a percentage sign %, a wave sign \~ and an at sign @.

The delimiter character is followed by a two-character address (hexadecimal) that specifies the target module. The actual two character command follows the address. Depending on the command, an optional data segment follows the command string. An optional two character checksum may be appended to the total string. Every commands is terminated by a carriage return (cr).

# Conventions:

• Leading Code: The first characteristic of the NuDAM command, such as %, \$, #, \~, @, ...etc(1- character)
• Addr: Module’s address ID, the value is in the range of 00 – FF (Hex) 2- character
• Command: Command codes or value of variables
• Data: Data needed by some output command
• Checksum: Checksum in brackets indicate optional parameter, only checksum is enable then this field is required (2- character)
• &lt;CR&gt;: carriage return (0x0D)

# Note:

• All commands should be issued in UPPERCASE characters.
• Do not put spaces between characters.

# Calculate Checksum:

1. Calculate ASCII sum of all characters of command (or response) string except the character return(cr)
2. Mask the sum of string with 0ffh [Checksum] = {(Leading code)+(addr)+(command)+[data]} MOD 0x100

# Example:

Command string : \$012(cr)

Sum of string = ’\$’+’0’+’1’+’2’=24h+30h+31h+32h=B7h

The checksum is B7h, and [CHK] = ”B7”

Command string with checksum = \$012B7(cr)

Response string : !01400600(cr)

$$
\begin{array}{l} \text { Sum   of   string } = ^ {\prime}! ^ {\prime} + ^ {\prime} 0 ^ {\prime} + ^ {\prime} 1 ^ {\prime} + ^ {\prime} 4 ^ {\prime} + ^ {\prime} 0 ^ {\prime} + ^ {\prime} 0 ^ {\prime} + ^ {\prime} 6 ^ {\prime} + ^ {\prime} 0 ^ {\prime} + ^ {\prime} 0 ^ {\prime} \\ = 2 1 h + 3 0 h + 3 1 h + 3 4 h + 3 0 h + 3 0 h + 3 6 h + 3 0 h + 3 0 h = 1 A C h \\ \end{array}
$$

The checksum is ACh, and [CHK] = ”AC”

Response string with checksum = !01400600AC(cr)

# 5.3. Command Responses

The response message depends on NuDAM command. The response is also composed with several characteristics, including leading code, variables, and carriage return for ending. There are two kinds of leading code for response message, ”!“ or ”>“ means valid command and ”?“ means invalid. By checking the response message, user can monitor the command is valid or invalid. But under the following conditions, there will have no response message.

• The specified address ID does not exist
• Syntax error
• Communication error
• Some special commands do not have a response

# 5.4. ND-6150 & ND-6160 Command Sets

Table 1: General Commands

<table><tr><td>Syntax</td><td>Description</td><td>Modules</td></tr><tr><td>%AANNTTCCFF</td><td>Sets the module configuration</td><td>All NuDAM modules</td></tr><tr><td>$AA2</td><td>Reads the module configuration</td><td>All NuDAM modules</td></tr><tr><td>~AAI</td><td>Soft INIT command</td><td>All NuDAM modules</td></tr><tr><td>~AATnn</td><td>Sets the soft INIT timeout value</td><td>All NuDAM modules</td></tr><tr><td>$AA5</td><td>Reads the Reset Status of a module</td><td>All NuDAM modules</td></tr><tr><td>$AAF</td><td>Read the firmware version of a module</td><td>All NuDAM modules</td></tr><tr><td>$AAM</td><td>Reads the module name</td><td>All NuDAM modules</td></tr><tr><td>~AAO(data)</td><td>Sets the module name</td><td>All NuDAM modules</td></tr><tr><td>$AAPN</td><td>Sets the communication protocol</td><td>All NuDAM modules</td></tr><tr><td>$AAP</td><td>Reads the communication protocol information</td><td>All NuDAM modules</td></tr><tr><td>$AARS</td><td>Reboot the module to power-on state</td><td>All NuDAM modules</td></tr><tr><td>$AAS1</td><td>Reloads the module factory default</td><td>All NuDAM modules</td></tr><tr><td>~AAX3IO</td><td>DIO LED ON/OFF Configuration</td><td>For 61xxD DIO modules</td></tr><tr><td>~AAX3</td><td>Read DIO LED ON/OFF</td><td>For 61xxD DIO modules</td></tr></table>

Table 2: DIO Function Commands

<table><tr><td>Syntax</td><td>Description</td><td>Modules</td></tr><tr><td>#**</td><td>Synchronized Sampling</td><td>For NuDAM DIO modules</td></tr><tr><td>$AA4</td><td>Read synchronized data</td><td>For NuDAM DIO modules</td></tr><tr><td>$AA6</td><td>Reads the Digital I/O Status (see "@AA")</td><td>For NuDAM DIO modules</td></tr><tr><td>#AA00DD</td><td>Sets the digital output value of the lower eight channels (same as "#AA0ADD")</td><td>For 61xx D/O modules</td></tr><tr><td>#AA00DDDD</td><td>Sets the digital output value for channel(0–15), (same as ADAM-4000 "#AABB")</td><td>For 61xx D/O modules</td></tr><tr><td>#AA0ADD</td><td>Sets the digital output value of the lower eight channels. (same as "#AA00DD")</td><td>For 61xx D/O modules</td></tr><tr><td>#AA0BDD</td><td>Sets the digital output value of the upper eight channels</td><td>For 61xx D/O modules</td></tr><tr><td>#AA1CDD</td><td>Sets a single digital output for channel N (see "#AAACDD" and "#AABCDD")</td><td>For 61xx D/O modules</td></tr><tr><td>#AAACDD</td><td>Sets a single digital output channel of the lower eight channels. (see "#AA1CDD")</td><td>For 61xx D/O modules</td></tr><tr><td>#AABCDD</td><td>Sets a single digital output channel of the upper eight channels.(see "#AA1CDD")</td><td>For 61xx D/O modules</td></tr><tr><td>@AA</td><td>Reads the status of the digital input/output ports.(see "$AA6")</td><td>For NuDAM DIO modules</td></tr><tr><td>@AA(data)</td><td>Sets the digital output channels</td><td>For 61xx D/O modules</td></tr><tr><td>@AADO(data)</td><td>Sets digital output value</td><td>For 61xx DIO modules</td></tr><tr><td>@AADO</td><td>Reads the status of the digital output ports</td><td>For 61xx DIO modules</td></tr><tr><td>@AADOCCS</td><td>Sets a single digital output for channel N</td><td>For 61xx DIO modules</td></tr><tr><td>@AADOCC</td><td>Reads a single digital output for channel N</td><td>For 61xx DIO modules</td></tr><tr><td>@AADICC</td><td>Read a single digital input for channel N</td><td>For NuDAM DIO modules</td></tr><tr><td>@AADI</td><td>Reads the status of the digital input ports</td><td>For 61xx DIO modules</td></tr><tr><td>$AAC</td><td>Clear latched digital input</td><td>For 61xx D/I modules</td></tr><tr><td>$AALS</td><td>Read latched digital input</td><td>For 61xx D/I modules</td></tr><tr><td>~AACPSS</td><td>To change the polarity state of digital inputs and outputs of the module.</td><td>For 61xx DIO modules</td></tr><tr><td>~AACR</td><td>To read the polarity state of digital inputs and outputs of the module.</td><td>For 61xx DIO modules</td></tr></table>

Table 3: Watchdog Commands

<table><tr><td>Syntax</td><td>Description</td><td>Modules</td></tr><tr><td>~**</td><td>Informs all modules that the host is OK</td><td>All NuDAM modules</td></tr><tr><td>~AA0</td><td>Reads the host watchdog status of a module</td><td>All NuDAM modules</td></tr><tr><td>~AA1</td><td>Resets the host watchdog timeout status of a module</td><td>All NuDAM modules</td></tr><tr><td>~AA2</td><td>Read Host WatchDog / Safe Value</td><td>All NuDAM modules</td></tr><tr><td>~AA3EVVSS</td><td>set host wdt Enable(1)/disable(0) , host wdt timeout value (0.1sec) and safe value(8 ch)</td><td>All NuDAM modules</td></tr><tr><td>~AA5V</td><td>Set Power-On &amp; Safe Value</td><td>All NuDAM modules</td></tr><tr><td>~AA4V</td><td>Read Power-On &amp; Safe Value</td><td>All NuDAM modules</td></tr></table>

# 5.4.1. ASCII Command Descriptions

# 5.4.1.1. %AAANNTTCCFF

<table><tr><td>Description</td><td colspan="3">Set module configuration</td></tr><tr><td>Command</td><td colspan="3">%AANNTTCCFF[CHK](cr)</td></tr><tr><td rowspan="8">Syntax</td><td>%</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>NN</td><td colspan="2">New address of the module (00 to FF)</td></tr><tr><td>TT</td><td colspan="2">Type code, should be hex 40 for DIO module</td></tr><tr><td>CC</td><td colspan="2">New baud rate code (see 3.11.1)</td></tr><tr><td>FF</td><td colspan="2">Data format (see 3.11.2)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">New Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: When you want to change the checksum or baud rate, the INIT\* pin must be grounded at first (see Appendix A), or use the Soft INIT\* command (see \~AAI , \~AATnn).

• Example 1: Change ID address from 01 to 03 (assume current baud rate is 9600 and checksum is disabled), response new module ID address 03 (change ID address only).

Command: %0103400600(cr)

Response: !03(cr)

• Example 2: Change baud rate from 9600 to 19200(Assume current ID is 03, baud rate is 9600, and checksum disabled).

Because the baud rate is changed from 9600 to 19200, the following procedures should be performed before sending the command:

1. Power off the module.
2. Short INIT\* pin to Ground.
3. Power on the module.
4. Send command string.

Command: %0003400700(cr)

5. Response module ID address 03.

Response: !03(cr)

6. Power off the module.
7. Open INIT\* pin and power on the module again.

• Example 3: Enable checksum (Assume current ID is 03, baud rate is 9600 and checksum disabled).

Because the checksum is changed from disable to enable, the following procedures should be performed before sending the command:

1. Power off the module.
2. Short INIT\* pin to Ground (see Appendix A).
3. Power on the module.
4. Send command string.

Command: %0003400640(cr)

5. Response module ID address 03.

Response: !03(cr)

6. Power off the module.
7. Open INIT\* pin and power onthe module again (checksum enabled).

• Example 4: Change baud rate from 9600 to 19200 and enable checksum (Assume current ID is 03, baud rate is 9600 and checksum disabled).

Because both the baud rate and checksum is changed, the following procedures should be performed before sending this command:

1. Power off the module
2. Short INIT\* pin to Ground (see Appendix A).
3. Power on the module.
4. Send command string.

Command: %0003400740(cr)

5. Response module ID address 03

Response: !03(cr)

6. Response module ID address 03
7. Power off the module.
8. Open INIT\* pin and power on module again (baud rate changed to 19200 and checksum enabled).

Note: We recommend using the setup utility to configure the module.

Related topics: \$AA2, \~AAI, \~AATnn

5.4.1.2. \$AA2

<table><tr><td>Description</td><td colspan="3">Read module configuration</td></tr><tr><td>Command</td><td colspan="3">$AA2[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>2</td><td colspan="2">Command for reading configuration</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="10">Response</td><td colspan="2">!AATTCCFF[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>TT</td><td colspan="2">Type code</td></tr><tr><td>CC</td><td colspan="2">Baud rate (see 3.11.1)</td></tr><tr><td>FF</td><td colspan="2">Data format of module (see 3.11.2)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the NuDAM-6150(ID=01), read configuration of module with ID address=01 and returns “400600” (TT=40, baud rate=9600, no checksum)

Command: \$012(cr)

Response: !01400600(cr)

Related command: %AANNTTCCFF

5.4.1.3. \~AAI

<table><tr><td>Description</td><td colspan="3">The Soft INIT* command is used to enable modification of the Baud Rate, checksum and communication protocol settings using software only.(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="3">~AAI[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>I</td><td colspan="2">Command to set the Soft INIT*</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: The “\~AATnn” command should be sent prior to sending this command.

Example: Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I(cr)

Response: !01(cr)

Related commands: %AANNTTCCFF, \~AATnn, \~AAI, \$AAPN

5.4.1.4. \~AATnn

<table><tr><td>Description</td><td colspan="3">Sets the soft INIT* timeout value.(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="3">~AATnn[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>T</td><td colspan="2">Command to set the soft INIT time out value</td></tr><tr><td>nn</td><td colspan="2">Two hexadecimal digits representing the timeout value in seconds. The maximum timeout value is 60 seconds. When changing the Baud Rate or checksum settings without altering the INIT* pin, the ~AAI and %AANNTTCCFF(or $AAPN) commands should be sent consecutively and the time interval between the two commands should be less than the soft INIT* timeout. If the soft INIT* timeout is 0, then the Baud Rate and checksum settings cannot be changed using software only. The power-on reset value of the soft INIT* timeout is 0.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example 1:

(1) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr) Response: !01(cr)

(2) Attempts to change the Baud Rate of module 01 to 19200 without first altering the INIT \* pin. The module returns an invalid response because the soft INIT timeout value is 0.

Command: %0101000700 (cr) Response: ?01(cr)

(3) Sets the soft INIT\* timeout value of module 01 to 32 seconds and returns a valid response.

Command: \~01T20 (cr) Response: !01(cr)

(4) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr) Response: !01(cr)

(5) Changes the Baud Rate of module 01 to 19200 without first altering INIT \* pin. The module returns

Command: %0101000700 (cr) Response: !01(cr)

# Example 2:

(1) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr) Response: !01(cr)

(2) Attempts to change the protocol of module 01 to modbus-rtu without first altering the INIT \* pin. The module returns an invalid response because the soft INIT timeout value is 0.

Command: \$01P1 (cr) Response: ?01(cr)

(3) Sets the soft INIT\* timeout value of module 01 to 32 seconds and returns a valid response.

Command: \~01T20 (cr) Response: !01(cr)

(4) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr) Response: !01(cr)

(5) Changes the protocol of module 01 to modbus-rtu without first altering INIT \* pin. The module returns

Command: \$01P1 (cr) Response: !01(cr)

Related command: %AANNTTCCFF, \~AAI, \$AAPN

5.4.1.5. \$AA5

<table><tr><td>Description</td><td colspan="3">Reads the Reset Status of a module</td></tr><tr><td>Command</td><td colspan="3">$AA5[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>5</td><td colspan="2">Command for read reset status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!AAS[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td rowspan="2">S</td><td colspan="2">= 0 - the module is not been reseted</td></tr><tr><td colspan="2">= 1 - the module is been reseted</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01, read reset status, and return module has been reset

Command: \$015(cr)

Response: !011(cr) - the module has been reset

Command: \$015(cr)

Response: !010(cr) - the module has not been reset

Related command: \$AARS

5.4.1.6. \$AAF

<table><tr><td>Description</td><td colspan="3">Read the firmware version of a module</td></tr><tr><td>Command</td><td colspan="3">$AAF[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>F</td><td colspan="2">Command for Read Firmware Version</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="5">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td rowspan="3"></td><td>(data)</td><td colspan="2">firmware version of module(max. 6 chars.)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01 Read Firmware Version and return version D02.01

Command: \$01F(cr)

Response: !01D02.01 (cr) - BIOS version D02.01

# Related command:

# 5.4.1.7. \$AAM

<table><tr><td>Description</td><td colspan="3">Read the module name</td></tr><tr><td>Command</td><td colspan="3">$AAM[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>M</td><td colspan="2">Command for Read Module Name</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>(data)</td><td colspan="2">A string showing the name of the module (max. 6 chars.)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read name of module 01 and return the module name “6150”

Command: \$01M(cr)

Response: !016150(cr)

Related command: \~AAO(data)

# 5.4.1.8. \~AAO (Data)

<table><tr><td>Description</td><td colspan="3">Sets the module name</td></tr><tr><td>Command</td><td colspan="3">~AAO(data)[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>O</td><td colspan="2">Command to Sets the name of a module</td></tr><tr><td>(data)</td><td colspan="2">New name of the module (max. 6 characters).</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: The new name is saved in the EEPROM.

# Example:

(1) Read name of module 01 and return the module name “610”

Command: \$01M(cr)

Response: !016160 (cr)

(2) Sets the name of the module 01 to be “NuDAM " and returns a valid response.

Command: \~01ONuDAM (cr)

Response: !01 (cr)

(3) Read address 01 Read the module name, return the module name “NuDAM”

Command: \$01M(cr)

Response: !01NuDAM(cr)

Related command: \$AAM

# 5.4.1.9. \$AAPN

<table><tr><td>Description</td><td colspan="3">Sets the communication protocol(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="3">$AAPN[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>P</td><td colspan="2">Command to Set the communication protocol</td></tr><tr><td>N</td><td colspan="2">The protocols supported by the module= 0 - NuDAM-ASCII format protocol (default)= 1 - Modbus-RTU protocol</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Note:

1. Before the command is issued, the INIT\* pin should be connected to GND or use Soft INIT\* command (see \~AAI , \~AATnn).
2. The new protocol is saved in the EEPROM and will be effective after the next power on reset (Open INIT\* pin).

Example: Sets the communication protocol of module 01 to Modbus-RTU and returns an valid response

Command: \$01P1 (cr)

Response: !01(cr)

Related command: \~AAP, \~AAI, \~AATnn

5.4.1.10. \$AAP

<table><tr><td>Description</td><td colspan="3">Reads the communication protocol information(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="3">$AAP[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>P</td><td colspan="2">Command for Read protocol information</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!AASC[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>S</td><td colspan="2">The protocols supported by the module= 0 - Only ASCII protocol is supported= 1 - Both the NuDAM ASCII and Modbus RTU protocols are supported</td></tr><tr><td>C</td><td colspan="2">The protocols supported by the module= 0 - NuDAM -ASCII format protocol= 1 - Modbus-RTU protocol</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads the communication protocol of module 01 and returns a response of “10” meaning that it supports both the NuDAM ASCII and Modbus RTU protocol and the protocol that will be used at the next power on reset is NuDAM ASCII.

Command: \$01P(cr)

Response: !0110(cr)

Related command: \$AAPN

5.4.1.11. \$AARS

<table><tr><td>Description</td><td colspan="2">Reboot the module to the power-on state(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="2">$AARS[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td>Command leading code</td></tr><tr><td>AA</td><td>Module address ID (00 to FF)</td></tr><tr><td>RS</td><td>Reset command</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>Response</td><td colspan="2">No response</td></tr></table>

Note: Reset command will reset module to reboot.

(This command has no response from module.)

Example: Reset module with ID address is 02

Command: \$02RS (cr)

Response: No response

Related command: \$AA5

5.4.1.12. \$AAS1

<table><tr><td>Description</td><td colspan="3">Reloads the module factory default(The command is for firmware version D02.01 and later.)</td></tr><tr><td>Command</td><td colspan="3">$AAS1[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>S1</td><td colspan="2">Command to reload the factory default</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: Before the command is issued, the INIT\* pin should be connected to GND and after response command is issued, the module will be rebooted.

Example: Reloads the module factory default setting and return valid.

Command: \$05S1(cr)

Response: !05(cr)

Related commands: %AANNTTCCFF, \$AA2

5.4.1.13. \~AAX3IO

<table><tr><td>Description</td><td colspan="3">Set DIO module LED display panel on/off</td></tr><tr><td>Command</td><td colspan="3">~AAX3IO[CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>X3</td><td colspan="2">Status LED control command.</td></tr><tr><td>I</td><td colspan="2">Digital input status LED control, = 1 - Turn-ON,if digital input active(default) = 0 - Turn-OFF, if digital input activeNote: input disconnected(open) = inactive.</td></tr><tr><td>O</td><td colspan="2">Digital output status LED control = 1 - Trun-ON LED, if output active(default) = 0 - Trun-OFF LED, if output active</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Set module with ID=02 to turn-on the LED when relative input channels are active and output channels are active.

Command: \~02X311 (cr)

Response: !02 (cr)

Related command: \~AAX3

5.4.1.14. \~AAX3

<table><tr><td>Description</td><td colspan="3">Read status LED display panel control settings</td></tr><tr><td>Command</td><td colspan="3">~AAX3[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>X3</td><td colspan="2">Read LED setting command.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!AAIO[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>I</td><td colspan="2">Input status LED control, = 1 - Turn-ON,if input active = 0 - Turn-OFF, if input active Note: input disconnected(open) = inactive.</td></tr><tr><td>O</td><td colspan="2">Output status LED control = 1 - Trun-ON LED, if output active = 0 - Trun-OFF LED, if output active</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read LED control settings of module with ID=02.

Command: \~02X3 (cr)

Response : !0210 (cr)

Note: Input LED will turn on when input channels are active and output LED will turn off when output channels are active.

Related command: \~AAX3IO

5.4.1.15. #\*\*

<table><tr><td>Description:</td><td colspan="2">Synchronize all modules to sample input values and store the values in the module&#x27;s register at the same time and use &quot;$AA4&quot;(Read Synchronized Data) command to read the data and process it one by one.</td></tr><tr><td>Command:</td><td colspan="2">$^{**}[CHK](cr)</td></tr><tr><td rowspan="4">Syntax:</td><td>#</td><td>Command leading code</td></tr><tr><td>**</td><td>Synchronized Sampling command</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>Response:</td><td colspan="2">No response</td></tr></table>

Example: Synchronized sampling command has no response

Command: #\*\*&lt;CR&gt;

Response:

Related command: \$AA4

5.4.1.16. \$AA4

<table><tr><td>Description</td><td colspan="3">Read synchronized data</td></tr><tr><td>Command</td><td colspan="3">$AA4[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>4</td><td colspan="2">Command for reading synch. data</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!SDDDD00[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">? AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>S</td><td colspan="2">Data status, S=1 first read, S=0 been readed</td></tr><tr><td>DDDD</td><td colspan="2">Data (4 characters) (see 3.11.3)</td></tr><tr><td>00</td><td colspan="2">The value is always 00</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: #\*\*

5.4.1.17. \$AA6

<table><tr><td>Description</td><td colspan="3">Read the digital input channel value and readback the digital output channel value. (see &quot;@AA&quot;)</td></tr><tr><td>Command</td><td colspan="3">$AA6[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>6</td><td colspan="2">Command for reading digital I/O status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!DDDD00[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DDDD</td><td colspan="2">A four-digit hexadecimal I/O value (see 3.11.3).</td></tr><tr><td>00</td><td colspan="2">The value is always 00</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=02), Reads the digital input/output port status of module and returns 0F00h, which denotes that RL1,RL2, RL3 and RL4 are ON(1) and DI0,DI1, DI2 and DI3 are OFF(0).

Command: \$026(cr)

Response: !0F0000 (cr)

Related commands: @AA, @AA(data) ,#AA0ADD, #AA0BDD

# 5.4.1.18. #AA00DD

<table><tr><td>Description</td><td colspan="3">Sets the digital output value of the lower eight channels (This command is the same with &quot;#AA0ADD&quot; command)</td></tr><tr><td>Command</td><td colspan="3">#AA00DD [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>00</td><td colspan="2">Output command type</td></tr><tr><td>DD</td><td colspan="2">A two-digit hexadecimal value, where bit 0 corresponds to DO0, bit 1 corresponds to DO1, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF. (see 3.11.3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command (The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related commands: #AA0ADD, #AA00DDDD, @AA(data)

# 5.4.1.19. #AA00DDDD

<table><tr><td>Description</td><td colspan="3">Sets the digital output value for channel(0~15),(This command is the for compatible with ADAM-4000"#AABB")</td></tr><tr><td>Command</td><td colspan="3">#AA00DDDD [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>00</td><td colspan="2">Output command type</td></tr><tr><td>DDDD</td><td colspan="2">A four-digit hexadecimal value, where bit 0 corresponds to DO0, bit 1 corresponds to DO1, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF (see 3.11.3).</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="5">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td rowspan="3"></td><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: #AA0ADD, @AA(data), #AA00DD

5.4.1.20. #AA0ADD

<table><tr><td>Description</td><td colspan="3">Sets the digital output value of the lower eight channels (This command is the same with &quot;#AA00DD&quot; command)</td></tr><tr><td>Command</td><td colspan="3">#AA0ADD [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>0A</td><td colspan="2">Output command type</td></tr><tr><td>DD</td><td colspan="2">A two-digit hexadecimal value, where bit 0 corresponds to DO0, bit 1 corresponds to DO1, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF. (see 3.11.3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=05), Sets RL2,RL3 to ON, and RL1, RL4 to OFF, and the module returns a valid response.

Command: #050A06&lt;cr&gt;

Response: >(cr)

Related command: #AA00DD, @AA(data)

5.4.1.21. #AA0BDD

<table><tr><td>Description</td><td colspan="2">Sets the digital output value of the upper eight channels</td></tr><tr><td>Command</td><td colspan="2">#AA0BDD [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>#</td><td>Command leading code</td></tr><tr><td>AA</td><td>Module address ID (00 to FF)</td></tr><tr><td>0B</td><td>Output command type</td></tr><tr><td>DD</td><td>A two-digit hexadecimal value, where bit 0 corresponds to DO8, bit 1 corresponds to DO9, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF. (see 3.11.3)</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td rowspan="8">Response:</td><td>&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td>?[CHK](cr)</td><td>Invalid command</td></tr><tr><td>![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td>Delimiter for valid command</td></tr><tr><td>?</td><td>Delimiter for invalid command</td></tr><tr><td>!</td><td>Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr></table>

Related commands: #AA00DDDD, @AA(data)

5.4.1.22. #AA1CDD

<table><tr><td>Description</td><td colspan="3">Sets a single digital output for channel N(see &quot;AAACDD&quot; and &quot;#AABCDD&quot;)</td></tr><tr><td>Command</td><td colspan="3">#AA1CDD [CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>1</td><td colspan="2">Command to set a single digital output channel</td></tr><tr><td>C</td><td colspan="2">Specifies the digital output channel to be set (0 to F)</td></tr><tr><td>DD</td><td colspan="2">output ON/OFF state= 00 - set the digital output channel to OFF.= 01 - set the digital output channel to ON.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=05), Set RL3 to OFF and the module returns a valid response.

Command: #051200&lt;cr&gt;

Response: >(cr)

Related commands: #AAACDD, #AABCDD, @AADOCCS

5.4.1.23. #AAACDD

<table><tr><td>Description</td><td colspan="3">Sets a single digital output channel of the lower eight channels(see "#AA1CDD")</td></tr><tr><td>Command</td><td colspan="3">#AAACDD [CHK](cr)</td></tr><tr><td rowspan="2"></td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td rowspan="5">Syntax</td><td>A</td><td colspan="2">Command to set a single digital output channel of the lower eight channels</td></tr><tr><td>C</td><td colspan="2">Specifies the digital output channel to be set (0 to 7)</td></tr><tr><td>DD</td><td colspan="2">output ON/OFF state= 00 - set the digital output channel to OFF.= 01 - set the digital output channel to ON.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=05), Set RL3 to OFF and the module returns a valid response.

Command: #05A200&lt;cr&gt;

Response: >(cr)

Related commands: #AA1CDD, #AABCDD

5.4.1.24. #AABCDD

<table><tr><td>Description</td><td colspan="3">Sets a single digital output channel of the upper eight channels(see "#AA1CDD")</td></tr><tr><td>Command</td><td colspan="3">#AABCDD [CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>B</td><td colspan="2">Command to set a single digital output channel of the upper eight channels.</td></tr><tr><td>C</td><td colspan="2">Specifies the digital output channel to be set (0 to 7)where 0 stands for channel 8, 1 stands for channel 9, etc.</td></tr><tr><td>DD</td><td colspan="2">output ON/OFF state= 00 - set the digital output channel to OFF.= 01 - set the digital output channel to ON.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td></td><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related commands: #AA1CDD , #AABCDD, #AAACDD

5.4.1.25. @AA

<table><tr><td>Description</td><td colspan="3">Reads the status of the digital input/output ports (see &quot;$AA6&quot;)</td></tr><tr><td>Command</td><td colspan="3">@AA [CHK](cr)</td></tr><tr><td rowspan="4">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;DDDD[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DDDD</td><td colspan="2">A four-digit hexadecimal I/O value (see 3.11.3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=02), Reads the digital input/output port status of module and returns 0F00h, which denotes that RL1, RL2, RL3 and RL4 are ON(1) and DI0,DI1, DI2 and DI3 are OFF(0).

Command: @02(cr)

Response: >0F00 (cr) (see 3.11.3 and 3.11.4)

Related commands: \$AA6, @AA(data), \~AADMN

5.4.1.26. @AA(data)

<table><tr><td>Description</td><td colspan="3">Sets the digital output channels</td></tr><tr><td>Command</td><td colspan="3">@AA(data)[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>(data)</td><td colspan="2">Data to be written to the digital output channels. it is a one,two or four-digit hexadecimal value. where bit 0 corresponds to DO0, bit 1 corresponds to DO1, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF (see 3.11.3 and 3.11.4). (data) = 0-F (one character) for 6160</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="4"></td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td rowspan="4">Response</td><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: For the ND-6160(ID=05), Sets RL2,RL4 to ON, and RL1,RL3 to OFF, and the module returns a valid response.

Command: @05A&lt;cr&gt;

Response: >(cr)

Related commands: #AA0ADD, #AA0BDD, @AA(data), #AA00DD

5.4.1.27. @AADO(data)

<table><tr><td>Description</td><td colspan="2">Sets the digital output value for channels (0–31)(for Firmware version D04.01 and later)</td></tr><tr><td>Command</td><td colspan="2">@AADO(data) [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>@</td><td>Command leading code</td></tr><tr><td>AA</td><td>Module address ID (00 to FF)</td></tr><tr><td>DO</td><td>Specifies the digital output channels (0–31)</td></tr><tr><td>(data)</td><td>Data to be written to the digital output channels(0~31). it is eight-digit hexadecimal value. where bit 0 corresponds to DO0, bit 1 corresponds to DO1, etc. When the bit is 1, it denotes that the digital output channel is ON, and 0 denotes that the digital output channel is OFF.</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td rowspan="9">Response</td><td>&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td>?[CHK](cr)</td><td>Invalid command</td></tr><tr><td>![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td>Delimiter for valid command</td></tr><tr><td>?</td><td>Delimiter for invalid command</td></tr><tr><td>!</td><td>Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>&gt;[CHK](cr)</td><td>Valid command</td></tr></table>

Example: For the ND-6160(ID=05), Sets RL2,RL4 to ON, and RL1,RL3 to OFF, and the module returns a valid response.

Command: @05DO0000000A&lt;cr&gt;

Response: >(cr)

Related command: @AADO

5.4.1.28. @AADO

<table><tr><td>Description</td><td>Reads the status of the digital output ports. (ch. 0–31) (for Firmware version D04.01 and later)</td></tr><tr><td>Command</td><td>@AADO [CHK](cr)</td></tr></table>

<table><tr><td rowspan="5">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>DO</td><td colspan="2">Specifies read the digital output channels (0~31)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;DDDDDDDD[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DDDDDDD</td><td colspan="2">A eight-digit hexadecimal output value (ch 0~31)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related commands: @AADO(data), @AA

5.4.1.29. @AADOCCS

<table><tr><td>Description</td><td colspan="2">Sets a single digital output for channel N (0–31)( for Firmware version D04.01 and later )</td></tr><tr><td>Command</td><td colspan="2">@AADOCCS [CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>@</td><td>Command leading code</td></tr><tr><td>AA</td><td>Module address ID (00 to FF)</td></tr><tr><td>DO</td><td>Specifies the digital output channels (0~31)</td></tr><tr><td>CC</td><td>Channel number (00h~1Fh)</td></tr><tr><td>S</td><td>output ON/OFF state= 0 - set the digital output channel to OFF.= 1 - set the digital output channel to ON.</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td rowspan="9">Response</td><td>&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td>?[CHK](cr)</td><td>Invalid command</td></tr><tr><td>![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td>Delimiter for valid command</td></tr><tr><td>?</td><td>Delimiter for invalid command</td></tr><tr><td>!</td><td>Delimiter for ignore command(The watchdog timeout status is set)</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>&gt;[CHK](cr)</td><td>Valid command</td></tr></table>

Example 2: For the ND-6160(ID=05), set RL3 to OFF and the module returns a valid response.

Command: @05DO020&lt;cr&gt;

Response: >(cr)

Related commands: #AA00DD, @AA(data)

5.4.1.30. @AADOCC

<table><tr><td>Description</td><td colspan="3">Reads a single digital output for channel N (0–31)(for Firmware version D04.01 and later)</td></tr><tr><td>Command</td><td colspan="3">@AADOCC[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>DO</td><td colspan="2">Specifies read the digital output channels (0~31)</td></tr><tr><td>CC</td><td colspan="2">Channel number (00h~1Fh)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;S[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>S</td><td colspan="2">output ON/OFF state= 0 - the digital output channel OFF.= 1 - the digital output channel ON.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: @AADOCCS

5.4.1.31. @AADICC

<table><tr><td>Description</td><td colspan="3">Reads a single digital input for channel N (0–31)(for Firmware version D04.01 and later)</td></tr><tr><td>Command</td><td colspan="3">@AADICC[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>DI</td><td colspan="2">Specifies read the digital input channels(0~31)</td></tr><tr><td>CC</td><td colspan="2">Channel number (00h~1Fh)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;S[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>S</td><td colspan="2">input ON/OFF state= 0 - the digital input channel OFF.= 1 - the digital input channel ON.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: @AADI

5.4.1.32. @AADI

<table><tr><td>Description</td><td colspan="3">Reads the status of the digital input ports. (ch. 0–31) (for Firmware version D04.01 and later)</td></tr><tr><td>Command</td><td colspan="3">@AADI[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>DI</td><td colspan="2">Specifies read the digital input channels (0~31)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;DDDDDDDD[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">![CHK](cr)</td><td>Ignored command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DDDDDDDD</td><td colspan="2">A eight-digit hexadecimal input value (ch. 0–31)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: @AA

5.4.1.33. \$AAC

<table><tr><td>Description</td><td colspan="3">Clears the status of the latched digital input channels</td></tr><tr><td>Command</td><td colspan="3">$AAC[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>C</td><td colspan="2">Command for clearing latched digital input</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Clear latched input of module address ID=06

Command: \$06C&lt;CR&gt;

Response: !06&lt;CR&gt;

Related command: \$AALS

5.4.1.34. \$AALS

<table><tr><td>Description</td><td colspan="3">Reads the status of the latched digital input channels</td></tr><tr><td>Command</td><td colspan="3">$AALS[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>L</td><td colspan="2">Command to read the latched status</td></tr><tr><td>S</td><td colspan="2">= 0 - Read the low latched status= 1 - Read the high latched status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!DDDD00[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DDDD</td><td colspan="2">Status of the latched digital input channels, a four digit hexadecimal value (see 3.11.3).When the bit is 1, it denotes that the input channel is latched, and 0 denotes that the input channel is not latched.</td></tr><tr><td>00</td><td colspan="2">The value is always 00</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related command: \$AAC

# 5.4.1.35. \~AACPSS

<table><tr><td>Description</td><td colspan="3">Changes the polarity state of digital inputs and outputs of the module.</td></tr><tr><td>Command</td><td colspan="3">~AACPSS [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>CP</td><td colspan="2">Command to Set DIO active status</td></tr><tr><td>SS</td><td colspan="2">Polarity state of digital inputs and outputs (2 characters)= 00 - set di/do to default active value= 01 - Change the polarity of default digital inputs= 02 - Change the polarity of default digital outputs= 03 - Change the polarity both the default digital inputs and outputs.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

\# Read ND-6150 active status, Response: Polarity was not changed

Command: \~06CR(cr)

Response: !0600(cr)

\# For the ND-6150 (ID=06), Reads the status of the DIO

Command: @06(cr)

Response: >00FF (cr)

\# For the ND-6150 (ID=06), Changes the polarity of default digital inputs

Command: \~06CP01(cr)

Response: !06 (cr)

\# For the ND-6150 (ID=06), Reads the status of the DIO

Command: @06(cr)

Response: >0000 (cr)

Related command: \~AACR, @AA

5.4.1.36. \~AACR

<table><tr><td>Description</td><td colspan="3">Reads the polarity state of digital inputs and outputs of the module</td></tr><tr><td>Command</td><td colspan="3">~AACR[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>CR</td><td colspan="2">Command to readDIO active status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AAMN[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>SS</td><td colspan="2">Polarity state of digital inputs and outputs (2 characters)= 00 - set di/do to default active value= 01 - Change the polarity of default digital inputs= 02 - Change the polarity of default digital outputs= 03 - Change the polarity both the default digital inputs and outputs.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

\# For the ND-6150 (ID=06), Set input active value to 1 (ON) and output active value to 0 (OFF).

\# For the ND-6150 (ID=06), Changes the polarity of default digital outputs

Command: \~06CP02(cr)

Response: !06 (cr)

\# Read ND-6150 active status, Response: DO Polarity was changed

Command: \~06CR(cr)

Response: !0602(cr)

Related commands: \~AACPSS, @AA

5.4.1.37. \~\*\*

<table><tr><td>Description</td><td colspan="2">Host sends this command to all modules for send the information “Host OK”</td></tr><tr><td>Command</td><td colspan="2">~**[CHK](cr)</td></tr><tr><td rowspan="4">Syntax</td><td>~</td><td>Command leading code</td></tr><tr><td>**</td><td>For all modules</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>Response</td><td colspan="2">No response</td></tr></table>

Note: When the host watchdog timer is enabled, the host computer must send this command to all modules before timeout; otherwise, the “Host watchdog timer enabled” module‘s output value will go to the safety state output value.

Related commands: \~AA0, \~AA1, \~AA2, \~AA3EVV, \~AA4V, \~AA5V

5.4.1.38. \~AA0

<table><tr><td>Description</td><td colspan="3">Reads watchdog timeout status</td></tr><tr><td>Command</td><td colspan="3">~AA0[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>0</td><td colspan="2">Command for reading timeout status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">! AASS[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>SS</td><td colspan="2">Two hexadecimal digits that represent the host watchdog status.bit(7) - Host watchdog enable/disable, = 0 - Disable. */= 1 - Enable. */bit(2) - Host watchdog timeout status, */= 0 - indicates that no host watchdog timeout has occurred.= 1 - indicates that a host watchdog timeout has occurred.bit(6,5,4,3,1,0) - reserved(=0)The host watchdog status is stored in EEPROM and can only be reset by using the ~AA1 command.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example 1: Reads the host watchdog status of module 02 and returns 00, meaning that the host watchdog is disabled and no host watchdog timeout has occurred.

Command: \~020(cr)

Response: !0200(cr)

Example 2: Reads the host watchdog status of module 02 and returns 04, meaning that a host watchdog timeout has

occurred.

Command: \~020(cr)

Response: !0204(cr)

Related commands: \~AA1, \~AA2, \~AA3EVV, \~AA4V, \~AA5V

5.4.1.39. \~AA1

<table><tr><td>Description</td><td colspan="3">Resets watchdog timeout status</td></tr><tr><td>Command</td><td colspan="3">~AA1[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>1</td><td colspan="2">Command for resetting watchdog timeout status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example 1: Reads the host watchdog status of module 03 and shows that a host watchdog timeout has occurred.

Command: \~030 (cr)

Response: !0304 (cr)

Resets the host watchdog timeout status of module 03 and returns a valid response.

Command: \~031 (cr)

Response: !03 (cr)

Reads the host watchdog status of module 03 and shows that no host watchdog timeout has occurred.

Command: \~030 (cr)

Response: !0300 (cr)

Related commands: \~AA0, \~AA2, \~AA3EVV, \~AA4V, \~AA5V

5.4.1.40. \~AA2

<table><tr><td>Description</td><td colspan="3">Reads host watchdog timeout value</td></tr><tr><td>Command</td><td colspan="3">~AA2[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>2</td><td colspan="2">Command for reading watchdog timeout value</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="2">Response</td><td colspan="2">! AAEVV[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td rowspan="7"></td><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>E</td><td colspan="2">Host watchdog enabled statusE = 1 – EnableE = 0 – Disable</td></tr><tr><td>VV</td><td colspan="2">Timeout value in hex format from 01 to FF(01 denotes 0.1 seconds and FF denotes 25.5 seconds)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads the host watchdog timeout value of module 03 and returns FF, which denotes that the host watchdog is enabled and the host watchdog timeout value is 25.5 seconds.

Command: \~032 (cr)

Response: !031FF(cr)

Related commands: \~AA0, \~AA1, \~AA3EVV, \~AA4V, \~AA5V

5.4.1.41. \~AA3EVV

<table><tr><td>Description</td><td colspan="3">Enables/disables the host watchdog and sets the host watchdog timeout value of a module.</td></tr><tr><td>Command</td><td colspan="3">~AA3EVV[CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>3</td><td colspan="2">Command for setting watchdog timeout value</td></tr><tr><td>E</td><td colspan="2">1= enable, 0= disable Host watchdog</td></tr><tr><td>VV</td><td colspan="2">Timeout value (01~FF, each for 0.1 second)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Note:

If host watchdog timer is enabled, the host should send Host OK

(see “\~\*\*”) command periodically within Timeout value to refresh the timer, otherwise the module will be forced to the safety state (see “\~AA5V”)

# Example:

Sets module (ID=04) to have watchdog timeout value 20.0 seconds and enable host watchdog.

Command: \~0431C8(cr)

Response: !04(cr)

Reads the watchdog timeout value form module (ID=04).

The module returns 1C8, which denotes that the host watchdog is enabled and the host watchdog timeout value is 20.0 seconds.

Command: \~042(cr)

Response: !041C8(cr)

Host sends this command to all modules for send the information "Host OK"

Command: \~\*\*(cr)

Stops sending any command string to modules for at least 20.0 seconds. The LED on the module will go to flash. The flash LED indicates the host watchdog is timeout and timeout status is set.

Reads watchdog timeout status, The module returns 04, which denotes that a host watchdog timeout has occurred.

Command: \~040(cr)

Response: !0404(cr)

Resets watchdog timeout status. Watchdog timeout is cleared and LED stop flashing, and host watchdog is disabled

Command: \~041(cr)

Response: !04 (cr)

Reads the host watchdog status of module 04 and returns 00, meaning that the host watchdog is disabled and no host watchdog timeout has occurred.

Command: \~040(cr)

Response: !0400(cr) Timeout status is cleared

Related commands: \~AA0, \~AA1, \~AA2, \~AA4V, \~AA5V

5.4.1.42. \~AA5V

<table><tr><td>Description</td><td colspan="3">Sets the current DO value as the power-on DO value or the safe DO value.</td></tr><tr><td>Command</td><td colspan="3">~AA5V[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>5</td><td colspan="2">Command for Sets power on and safe value</td></tr><tr><td>V</td><td colspan="2">V= P – Set power on valueV= S – Set safe value</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related commands: \~AA0, \~AA1, \~AA2, \~AA3EVV, \~AA4V

5.4.1.43. \~AA4V

<table><tr><td>Description</td><td colspan="3">Reads the power-on DO value or the safe DO value of a module</td></tr><tr><td>Command</td><td colspan="3">~AA4V[CHK](cr)</td></tr><tr><td rowspan="3"></td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>4</td><td colspan="2">Command for reading power on and safe value</td></tr><tr><td rowspan="3">Syntax</td><td>V</td><td colspan="2">V= P – Read power on valueV= S – Read safe value</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">! AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>(data)</td><td colspan="2">For the DO channels &gt; 8 mdules, they are four hexadecimal digits. For other modules, they are two hexadecimal digits followed by 00.(data) = xxxx - for EDAM-8042,804,8045......(data) = xx00 - for other modules</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Related commands: \~AA0, \~AA1, \~AA2, \~AA3EVV, \~AA5V

# 5.5. ND-6117 Command Sets

There are five categories of ND-6117 commands: special commands, general commands, analog commands, digital commands, and linear mapping commands. All commands used in the ND-6117 analog input module are listed in the following tables.

# 5.5.1. Host Watchdog Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>~**</td><td>no response</td><td>Host OK</td></tr><tr><td>~AA0</td><td>!AASS</td><td>Read Module Status</td></tr><tr><td>~AA1</td><td>!AA</td><td>Reset Module Status</td></tr><tr><td>~AA2</td><td>!AAVV</td><td>Read Host watchdog Timeout Value</td></tr><tr><td>~AA3EVV</td><td>!AA</td><td>Set Host Watchdog Timeout Value</td></tr></table>

# 5.5.2. General Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>%AANNTTCCFF</td><td>!AA</td><td>Set Module Configuration</td></tr><tr><td>#AA</td><td>&gt;(Data)</td><td>Read Analog Input</td></tr><tr><td>#AAN</td><td>&gt;(Data)</td><td>Read Analog Input from channel N</td></tr><tr><td>$AA0</td><td>!AA</td><td>Perform Span Calibration</td></tr><tr><td>$AA1</td><td>!AA</td><td>Perform Zero Calibration</td></tr><tr><td>$AA2</td><td>!AATTCCFF</td><td>Read Configuration</td></tr><tr><td>$AA5VV</td><td>!AA</td><td>Set Channel Enable</td></tr><tr><td>$AA6</td><td>!AAVV</td><td>Read Channel Status</td></tr><tr><td>$AA7CiRrr</td><td>!AA</td><td>Set channel type individually</td></tr><tr><td>$AA8Ci</td><td>!AACiRrr</td><td>Read individual channel type</td></tr><tr><td>$AAF</td><td>!AA(Data)</td><td>Read Firmware Version</td></tr><tr><td>$AAM</td><td>!AA(Data)</td><td>Read Module Name</td></tr><tr><td>~AAEV</td><td>!AA</td><td>Enable/Disable Calibration</td></tr><tr><td>~AAO(Data)</td><td>!AA</td><td>Set Module Name</td></tr></table>

# 5.5.3. Command Descriptions

# 5.5.3.1. %AANNTTCCFF Set Module Configuration

Note: This command will set all channels to have the same type code (TT) if TT >0

<table><tr><td>Description</td><td colspan="2">Sets the configuration of the module at address AA</td></tr><tr><td rowspan="8">Syntax</td><td colspan="2">%AANNTTCCFF (cr)</td></tr><tr><td>%</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of module</td></tr><tr><td>NN</td><td>new module address (00–FF)</td></tr><tr><td>TT</td><td>represents the type code. Type code determines the input range. If TT=00 or FF the type of all</td></tr><tr><td>CC</td><td>represents the baud rate code</td></tr><tr><td>FF</td><td>hexadecimal number that equals the 8-bit parameter that represents the data format,</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td>Response</td><td>!AA (cr)</td><td>the command is valid</td></tr><tr><td rowspan="5"></td><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td>!</td><td>delimiter character indicates a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicates the command was invalid</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of an analog input module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="6">Example</td><td>Command</td><td>%0203080602</td></tr><tr><td>Response</td><td>!02</td></tr><tr><td rowspan="4">Result</td><td>new module address=03</td></tr><tr><td>Analog input type code=08(-10V--+10V) for all channels</td></tr><tr><td>baud rate=06 (9600)</td></tr><tr><td>data format =02 (2's complement hexadecimal)</td></tr></table>

5.5.3.2. #AA Read Analog Data

<table><tr><td>Description</td><td colspan="2">Returns the input value from a specified (AA) module in the currently configured data format</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">#AA(cr)</td></tr><tr><td>#</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of an analog input module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="6">Response</td><td>&gt;(data)(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>&gt;</td><td>delimiter character</td></tr><tr><td>(data)</td><td>input value in the configured data format of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="6">Example</td><td>Command</td><td>#21(cr)</td></tr><tr><td>Response</td><td>&gt;+7.2111+7.2567+7.3125+7.1000+7.4712+7.2555+7.1234+7.5678(cr)</td></tr><tr><td colspan="2">The command responds to the analog input module at address 21h for its input values of all channels.The analog input module responds with channels from 0 to 7 with +7.2111 volts, +7.2567 volts, +7.3125 volts, +7.1000 volts, +7.4712 volts, +7.2555 volts, +7.1234 volts, and +7.5678 volts.</td></tr><tr><td>Command</td><td>#DE(cr)</td></tr><tr><td>Response</td><td>&gt;FF5D(cr)</td></tr><tr><td colspan="2">The analog input module at address DEh has an input value of FF5D. (The configured data format of the analog input module is two&#x27;s complement.)</td></tr></table>

5.5.3.3. #AAN Read Analog Input from Channel N

<table><tr><td>Description</td><td colspan="2">Returns the input value from one of the eight channels of a specified (AA) module in the currently configured data format</td></tr><tr><td rowspan="3">Syntax</td><td colspan="2">#AAN(cr)</td></tr><tr><td>#</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the analog input module</td></tr><tr><td></td><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="6">Response</td><td>&gt;(data)(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>&gt;</td><td>delimiter character</td></tr><tr><td>(data)</td><td>input value in the configured data format of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>#120(cr)</td></tr><tr><td>Response</td><td>&gt;+1.4567(cr)</td></tr><tr><td colspan="2">The command requests the analog input module at address 12h to return the input value of channel 0. The analog input module responds that the input value of channel 0 is equal to +1.4567 volts.</td></tr></table>

# 5.5.3.4. \$AA0 Span Calibration

<table><tr><td>Description</td><td colspan="2">Calibrates an analog input module to correct for gain errors</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">$AA0(cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module to be calibrated</td></tr><tr><td>0</td><td>Span calibration command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="7">Response</td><td>!AA(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating the command was valid</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr></table>

Note: To successfully calibrate an analog input module’s input range, a proper calibration input signal must be connected to the analog input module before and during calibration

# 5.5.3.5. \$AA1 Offset Calibration

<table><tr><td>Description</td><td colspan="2">Calibrates an analog input module to correct for offset errors</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">$AA1(cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module to be calibrated</td></tr><tr><td>0</td><td>Span calibration command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="5">Response</td><td>!AA(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating the command was valid</td></tr><tr><td rowspan="2"></td><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr></table>

Note: To successfully calibrate an analog input module’s input range, a proper calibration input signal must be connected to the analog input module before and during calibration

5.5.3.6. \$AA2 Read Configuration Status

<table><tr><td>Description</td><td colspan="2">Requests the return of the configuration data from the module at address AA</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">$AA2(cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of a module</td></tr><tr><td>2</td><td>Configuration Status command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="11">Response</td><td>!AATTCCFF(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating the command was valid</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of an analog input module</td></tr><tr><td>TT</td><td>the type code of channel 0; see $AA8Ci</td></tr><tr><td>CC</td><td>represents the baud rate code</td></tr><tr><td>FF</td><td>a hexadecimal number that equals the 8-bit parameter that represents the data format, checksum status, and integration time. Bits 2 to 5 are not used, and are set to 0.</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td colspan="2">Note: Refer to 3.12 for TT, CC, and FF parameter definitions.</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>$452(cr)</td></tr><tr><td>Response</td><td>!45050600(cr)</td></tr><tr><td colspan="2">The command asks the analog input module at address 45h to send its configuration data. The analog input module at address 45h responds with an input range of 2.5 volts, a baud rate of 9600 bps, and an integration time of 50 ms (60 Hz); engineering units are the currently configured data format, and there is no checksum function or checksum generation.</td></tr></table>

5.5.3.7. \$AA5VV Enable/Disable Channels for Multiplexing

<table><tr><td>Description</td><td colspan="2">Enables/disables multiplexing simultaneously for separate channels of a specified input module</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">$AA5VV(cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of a module</td></tr><tr><td>5</td><td>Enable/Disable Channels command</td></tr><tr><td rowspan="2"></td><td>VV</td><td>Two hexadecimal values. The values are interpreted by the module as two binary words (4-bit). The first word represents the status of channels 4–7, and the second word represents the status of channels 0–3. Value 0 means the channel is disabled, and value 1 means the channel is enabled.</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="7">Response</td><td>!AA(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating the command was valid</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>$00581(cr)</td></tr><tr><td>Response</td><td>!00(cr)</td></tr><tr><td colspan="2">Hexadecimal 8 equals binary 1000, which enables channel 7 and disables channels 4, 5, and 6. Hexadecimal 1 equals binary 0001, which enables channel 0 and disables channels 1, 2, and 3.</td></tr></table>

# 5.5.3.8. \$AA6 Read Channel Status

<table><tr><td>Description</td><td colspan="2">Asks a specified input module to return the status of all channels</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">$AA6(cr)</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module that you want to send the channel status for. The channel status defines whether a channel is enabled or disabled.</td></tr><tr><td>6</td><td>Read Channel Status command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="8">Response</td><td>!AAVV(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating the command was valid</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>VV</td><td>Two hexadecimal values. The values are interpreted by the module as two binary words (4-bit). The first word represents the status of channels 4–7, and the second word represents the status of channels 0–3. Value 0 means the channel is disabled, and value 1 means the channel is enabled.</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="2">Example</td><td>Command</td><td>$026(cr)</td></tr><tr><td>Response</td><td>!02FF(cr)</td></tr><tr><td></td><td>The command asks the analog input module at address 02 to send the status of it input channels. The analog input module at address 02 responds that all its multiplex channels are enabled (FF equals 1111 and 1111).</td></tr></table>

5.5.3.9. \$AA7CiRrr Set Channel Type Individually

<table><tr><td>Description</td><td colspan="2">Sets the channel type individually</td></tr><tr><td rowspan="7">Syntax</td><td colspan="2">$AA7CiRrr(cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of a module</td></tr><tr><td>7C</td><td>Set Channel Type command</td></tr><tr><td>i</td><td>channel number</td></tr><tr><td>rr</td><td>channel type code</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="6">Response</td><td>!AA</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>$017C3R08(cr)</td></tr><tr><td>Response</td><td>!01(cr)</td></tr><tr><td colspan="2">Set type code 08 (+/-10V) to channel 3.</td></tr></table>

5.5.3.10. \$AA8Ci Read Individual Channel Type

<table><tr><td>Description</td><td colspan="2">Reads the individual channel type</td></tr><tr><td rowspan="6">Syntax</td><td colspan="2">$AA8Ci (cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of a module</td></tr><tr><td>8C</td><td>Read Channel Type command</td></tr><tr><td>i</td><td>channel number</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="8">Response</td><td>!AACiRrr</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>i</td><td>channel number (0–7)</td></tr><tr><td>rr</td><td>type of channel i</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>$018C3(cr)</td></tr><tr><td>Response</td><td>!01C3R08(cr)</td></tr><tr><td colspan="2">The type code of channel 3 is 08 (+/-10V).</td></tr></table>

5.5.3.11. \$AAF Read Firmware Version

<table><tr><td>Description</td><td colspan="2">Requests the module at address AA to return the version code of its firmware</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">$AAF (cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of a module</td></tr><tr><td>F</td><td>Read Firmware Version command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="7">Response</td><td>!AA(Version)(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(Version)</td><td>version code of the modules firmware at address AA</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr></table>

5.5.3.12. \$AAM Read Module Name

<table><tr><td>Description</td><td colspan="2">Requests the analog output module at address AA to return its name</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">$AAM (cr)</td></tr><tr><td>$</td><td>delimiter character</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address that you want to access</td></tr><tr><td>M</td><td>Read Module Name command</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr><tr><td rowspan="7">Response</td><td>!AA(Module Name)(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>AA</td><td>(range 00-FF) represents the 2-character hexadecimal address of the module</td></tr><tr><td>(Module Name)</td><td>name of the module at address AA</td></tr><tr><td>(cr)</td><td>terminating character, carriage return (0Dh)</td></tr></table>

5.5.3.13. \~AAEV Enable/Disable Module Calibration

<table><tr><td>Description</td><td colspan="2">Enables or disables module calibration</td></tr><tr><td rowspan="5">Syntax</td><td colspan="2">~AAEV</td></tr><tr><td>~</td><td>delimiter character</td></tr><tr><td>AA</td><td>address of the module</td></tr><tr><td>E</td><td>Enable/Disable Module Calibration command</td></tr><tr><td>V</td><td>1: Enable calibration; 0: Disable calibration</td></tr><tr><td rowspan="2">Response</td><td>!AA (cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td rowspan="4"></td><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character for a valid response</td></tr><tr><td>?</td><td>delimiter character for an invalid response</td></tr><tr><td>AA</td><td>address of the responding module (00-FF)</td></tr><tr><td rowspan="9">Example</td><td>Command</td><td>$010</td></tr><tr><td>Response</td><td>?01</td></tr><tr><td colspan="2">Sends the command to perform a span calibration on module 01. It returns an invalid response because the “enable calibration command” was not sent in advance.</td></tr><tr><td>Command</td><td>~01E1</td></tr><tr><td>Response</td><td>!01</td></tr><tr><td colspan="2">Enables calibration on module 1</td></tr><tr><td>Command</td><td>$010</td></tr><tr><td>Response</td><td>!01</td></tr><tr><td colspan="2">Sends the command to perform a span calibration on module 01 and returns a valid response.</td></tr></table>

# 5.5.3.14. \~AAO(name) Set Module Name

<table><tr><td>Description</td><td colspan="2">Sets the module name</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">~AAO(name)(cr)</td></tr><tr><td>~</td><td>delimiter character</td></tr><tr><td>AA</td><td>address of the module to be set (00-FF)</td></tr><tr><td>O</td><td>Set Module Name command (max. 6 characters)</td></tr><tr><td rowspan="6">Response</td><td>!AA (cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating an invalid response was received</td></tr><tr><td>AA</td><td>address of the responding module (00-FF)</td></tr></table>

# 5.5.3.15. \~AA0 Read Host Watchdog Status

<table><tr><td>Description</td><td colspan="2">Reads the host watchdog status of a module</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">~AA0(cr)</td></tr><tr><td>~</td><td>delimiter character</td></tr><tr><td>AA</td><td>address of the module to be read (00-FF)</td></tr><tr><td>0</td><td>Read Host Watchdog Status command</td></tr><tr><td rowspan="6">Response</td><td>!AASS (cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating an invalid response was received</td></tr><tr><td>AA</td><td>address of the responding module (00-FF)</td></tr><tr><td></td><td>SS</td><td>Two hexadecimal digits that represent the host watchdog status, where:Bit 7: =0 indicates that the host watchdog is disabled and=1 indicates the host watchdog is enabled,Bit 2: =1 indicates watchdog time out has occurred.The host watchdog status is stored in EEPROM and can only be reset using the ~AA1 command.</td></tr></table>

# 5.5.3.16. \~AA1 Reset Host Watchdog Timeout Status

<table><tr><td>Description</td><td colspan="2">Reads the host watchdog timeout status of a module</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">~AA1 (cr)</td></tr><tr><td>~</td><td>delimiter character A</td></tr><tr><td>AA</td><td>address of the module to be set (00-FF)</td></tr><tr><td>1</td><td>Read Host Watchdog Timeout Status command</td></tr><tr><td rowspan="6">Response</td><td>!AA (cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character indicating a valid command was received</td></tr><tr><td>?</td><td>delimiter character indicating an invalid response was received</td></tr><tr><td>AA</td><td>address of the responding module (00-FF)</td></tr></table>

# 5.5.3.17. \~AA2 Read Host Watchdog Timeout Value

<table><tr><td>Description</td><td colspan="2">Reads host watchdog timeout value</td></tr><tr><td rowspan="4">Syntax</td><td colspan="2">~AA2(cr)</td></tr><tr><td>~</td><td>delimiter character</td></tr><tr><td>AA</td><td>address of the module to be read</td></tr><tr><td>2</td><td>Read Host Watchdog Timeout Value command</td></tr><tr><td rowspan="8">Response</td><td>!AAEVV(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character for a valid response</td></tr><tr><td>?</td><td>delimiter character for an invalid response</td></tr><tr><td>AA</td><td>address of the responding module</td></tr><tr><td>E</td><td>1: host watchdog is enabled; 0: host watchdog is disabled</td></tr><tr><td>VV</td><td>two hexadecimal digits to represent the value in tenths of a second</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>~012(cr)</td></tr><tr><td>Response</td><td>!011FF(cr)</td></tr><tr><td colspan="2">Reads the host watchdog time out value of module 01 and returns FF, meaning that the host watchdog is enabled and watchdog timeout value is FF(hex)=255.5 seconds</td></tr></table>

5.5.3.18. \~AA3EVV Enable/Disable Host Watchdog

<table><tr><td>Description</td><td colspan="2">Enables or disables the host watchdog and sets the host watchdog timeout value of a module</td></tr><tr><td rowspan="6">Syntax</td><td colspan="2">~AA3EVV(cr)</td></tr><tr><td>~</td><td>delimiter character</td></tr><tr><td>AA</td><td>address of the module to be read</td></tr><tr><td>3</td><td>Set Host Watchdog Timeout Value command</td></tr><tr><td>E</td><td>1: enables host watchdog; 0: disables host watchdog</td></tr><tr><td>VV</td><td>two hexadecimal digits to represent timeout value in tenths of second; for example, 01 means 0.1 seconds, and FF means 25.5 seconds</td></tr><tr><td rowspan="6">Response</td><td>!AA(cr)</td><td>the command is valid</td></tr><tr><td>?AA (cr)</td><td>the command is invalid</td></tr><tr><td colspan="2">There is no response if the module detects a syntax error or communication error.</td></tr><tr><td>!</td><td>delimiter character for a valid response</td></tr><tr><td>?</td><td>delimiter character for an invalid response</td></tr><tr><td>AA</td><td>address of the responding module</td></tr><tr><td rowspan="3">Example</td><td>Command</td><td>~013164(cr)</td></tr><tr><td>Response</td><td>!01(cr)</td></tr><tr><td colspan="2">Enables the host watchdog of module 01 and sets the host watchdog timeout value to 10.0 seconds.</td></tr></table>

5.5.3.19. \~\*\* Send “Host OK”

<table><tr><td>Description</td><td colspan="2">Informs all modules that the host is OK</td></tr><tr><td rowspan="3">Syntax</td><td colspan="2">~**(cr)</td></tr><tr><td>~</td><td>delimiter character A</td></tr><tr><td>**</td><td>Host OK command</td></tr><tr><td>Response</td><td colspan="2">No response</td></tr></table>

# 5.6. ND-6124 Command Sets

There are four categories of ND-6124 commands: general commands, analog commands, digital input commands, and host watchdog command sets. All the commands used in the ND-6124 analog output module are list in the following tables.

# 5.6.1. General Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>%AANNTTCCFF</td><td>!AA</td><td>Set Module Configuration</td></tr><tr><td>$AA2</td><td>!AATTCCFF</td><td>Read Configuration</td></tr><tr><td>$AA5</td><td>!AAS</td><td>Read Reset Status</td></tr><tr><td>$AAF</td><td>!AA(data)</td><td>Read Firmware Version</td></tr><tr><td>$AAM</td><td>!AA(Data)</td><td>Read Module Name</td></tr><tr><td>~AAO(Data)</td><td>!AA</td><td>Set Module Name</td></tr><tr><td>$AAPN</td><td>!AA</td><td>Sets the communication protocol.</td></tr><tr><td>$AAP</td><td>! AASC</td><td>Reads the communication protocol information.</td></tr><tr><td>~AAI</td><td>!AA</td><td>Soft INIT</td></tr><tr><td>~AATnn</td><td>!AA</td><td>Sets the Soft INIT Time-out</td></tr><tr><td>$AAS1</td><td>!AA</td><td>Reloads the module factory default</td></tr><tr><td>$AARS</td><td>!AA</td><td>Reset the module to initial power on state.</td></tr></table>

# 5.6.2. Analog Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>#AAN(data)</td><td>&gt;</td><td>Output Analog Value(for engineer format)</td></tr><tr><td>$AA0N</td><td>!AA</td><td>0mA/-10V Calibration</td></tr><tr><td>$AA1N</td><td>!AA</td><td>20mA/10V Calibration</td></tr><tr><td>$AA3NVV</td><td>!AA</td><td>Trim Calibration for Channel N</td></tr><tr><td>$AA4N</td><td>!AA</td><td>Set Power-On Value for Channel N</td></tr><tr><td>$AA6N</td><td>!AA(Data)</td><td>Last Value of Channel N Readback</td></tr><tr><td>$AA7N</td><td>!AA</td><td>Read Power-On Value</td></tr><tr><td>$AA8N</td><td>!AA(Data)</td><td>Current Value Readback</td></tr><tr><td>$AA9N</td><td>!AATTSS</td><td>Read DA Configuration of channel N</td></tr><tr><td>$AA9NTTSS</td><td>!AA</td><td>Set DA Configuration of channel N</td></tr></table>

# 5.6.3. Digital Input Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>#**</td><td>No response</td><td>Synchronized Sampling</td></tr><tr><td>$AA9</td><td>&gt;SDD</td><td>Reads the synchronized data that was retrieved by the last &quot;#**&quot; command.</td></tr><tr><td>$AA8</td><td>!DD0000</td><td>Digital Input</td></tr><tr><td>@AA</td><td>&gt;(Data)</td><td>Read Emergency DI Input port</td></tr><tr><td>~AA8NE</td><td>!AA</td><td>Enable/Disable channel(N) Emergency DI</td></tr><tr><td>~AA8N</td><td>!AA</td><td>Clear Emergency DI active flag</td></tr></table>

# 5.6.4. Host Watchdog Commands

<table><tr><td>Command</td><td>Response</td><td>Description</td></tr><tr><td>~**</td><td>No Response</td><td>Host OK</td></tr><tr><td>~AA0</td><td>!AASS</td><td>Reads the watchdog status &amp; Emergency input flag.</td></tr><tr><td>~AA1</td><td>!AA</td><td>Reset Module Status</td></tr><tr><td>~AA2</td><td>!AAVV</td><td>Read host watchdog timeout interval</td></tr><tr><td>~AA3EVV</td><td>!AA</td><td>Set Host Watchdog Timeout interval</td></tr><tr><td>~AA4N</td><td>!AA(Data)</td><td>Read Safe Value</td></tr><tr><td>~AA5N</td><td>!AA</td><td>Set Safe Value</td></tr></table>

# 5.6.5. Command Descriptions

# 5.6.5.1. Set Module Configuration

<table><tr><td>Modules</td><td colspan="3">For 6124 module</td></tr><tr><td>Description</td><td colspan="3">Configure the basic setting of NuDAM, including the address ID, input range, baud rate, and data format.</td></tr><tr><td>Command</td><td colspan="3">%AANNTTCCFF[CHK](cr)</td></tr><tr><td rowspan="8">Syntax</td><td>%</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>NN</td><td colspan="2">New NuDAM address ID (00 to FF)</td></tr><tr><td>TT</td><td colspan="2">= 00 - Reserved</td></tr><tr><td>CC</td><td colspan="2">Set new baud rate of module</td></tr><tr><td>FF</td><td colspan="2">Data format</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">New Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: When you want to change the checksum or baud rate, the INIT\* pin must be grounded first.

Example 1: Change ID address from 01 to 03 (Assume current baud rate is 9600 and checksum disabled)

Command: %0103000600(cr)

Response: !03(cr)

Response new module ID address 03 (change ID address only)

Example 2: Change baud rate from 9600 to 19200(Assume current ID is 03, baud rate is 9600, and checksum disabled).

Because the baud rate is changed from 9600 to 19200, the following procedures should be done before sending this command:

1. Power off the module
2. Short INIT\* pin to Ground
4. Power on the module
5. Send command string
6. Command: %0003000700(cr)
7. Response: !03(cr)
8. Response module ID address 03
9. Power off the module

10. Open the INIT\* pin and power on module again

Example 3: Enable checksum (Assume current ID is 03, baud rate is 9600 and checksum disabled).

Because the checksum is changed from disable to enable, the following procedures should be done before sending this command:

1. Power off the module
2. Short INIT\* pin to Ground
3. Power on the module
4. Send command string

5. Command: %0003000640(cr)
6. Response: !03(cr)
7. Response module ID address 03
8. Power off the module

9. Open INIT\* pin and power on module again (checksum enabled)

Example 4: Change baud rate from 9600 to 19200 and enable checksum (Assume current ID is 03, baud rate is 9600 and checksum disabled). Because that both the baud rate and checksum is changed , the following procedures should be done before sending this command:

1. Power off the module
2. Short INIT\* pin to Ground
3. Power on the module
4. Send command string
5. Command: %0003000740(cr)
6. Response: !03(cr)
7. Response module ID address 03
8. Power off the module

9. Open INIT\* pin and power on module again ( Baud rate changed to 19200 and checksum enabled)

Note: It is recommended to use the setup utility to configure the module

# Related commands: \$AA2

# 5.6.5.2. Read Configuration

<table><tr><td>Modules</td><td colspan="3">For 6124 module</td></tr><tr><td>Description</td><td colspan="3">Read module configuration</td></tr><tr><td>Command</td><td colspan="3">$AA2[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>2</td><td colspan="2">Command for reading configuration</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="10">Response</td><td colspan="2">!AATTCCFF[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>TT</td><td colspan="2">= 00</td></tr><tr><td>CC</td><td colspan="2">Baud rate</td></tr><tr><td>FF</td><td colspan="2">Data format of module</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example 1: Read configuration of module with ID address=01

Command: \$012(cr)

Response: !01000600(cr)

Read address ID=01 module configuration

= 00 - TT
= 06 - 9600 baud rate

= 00 - no checksum,

Related commands: %AANNTTCCFF , \$AA9NTTSS, \$AA9N

# 5.6.5.3. Read Reset Status

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Read reset status</td></tr><tr><td>Command</td><td colspan="3">$AA5[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>5</td><td colspan="2">Command for read reset status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!AAS[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td rowspan="2">S</td><td colspan="2">= 0 - the module is not been reseted</td></tr><tr><td colspan="2">= 1 - the module is been reseted</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01 Read reset status and return module is bee reseted

Command: \$015(cr)

Response: !011(cr) - the module is been reset

Command: \$015(cr)

Response: !010(cr) - the module is not been reset

Related command: \$AARS

# 5.6.5.4. Read Firmware Version

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Read Firmware Version</td></tr><tr><td>Command</td><td colspan="3">$AAF[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>F</td><td colspan="2">Command for Read Firmware Version</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>(data)</td><td colspan="2">firmware version of module(max. 6 chars.)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01 Read Firmware Version and return version A00.02

Command: \$01F(cr)

Response: !01A00.02 (cr) - BIOS version A00.02

5.6.5.5. Read Module Name

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Read Module Name</td></tr><tr><td>Command</td><td colspan="3">$AAM[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>M</td><td colspan="2">Command for Read Module Name</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>(data)</td><td colspan="2">A string showing the name of the module (max. 6 chars.)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read name of module 01 and return the module name “6124”

Command: \$01M(cr)

Response: !016124(cr)

Related command: \~AAO

5.6.5.6. Set Module Name

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Sets the name of a module</td></tr><tr><td>Command</td><td colspan="3">~AAO(data)[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>O</td><td colspan="2">Command to Sets the name of a module</td></tr><tr><td>(data)</td><td colspan="2">New name of the module (max. 6 characters).</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Reads the name of module 01 and returns the module name “6124”

Command: \$01M(cr)

Response: !016124(cr)

(2) Sets the name of the module 01 to be “NuDAM" and returns a valid response.

Command: \~01ONuDAM (cr)

Response: !01 (cr)

(3) Reads address 01 Read Firmware Version, returns the module name “NuDAM”

Command: \$01M(cr)

Response: !01NuDAM(cr)

Related command: \$AAM

5.6.5.7. Set Communication Protocol

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Set the communication protocol</td></tr><tr><td>Command</td><td colspan="3">$AAPN[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>P</td><td colspan="2">Command to Set the communication protocol</td></tr><tr><td>N</td><td colspan="2">The protocols supported by the module= 0 - NuDAM-ASCII format protocol (default)= 1 - Modbus-RTU protocol</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Note:

1. Before the command is issued, the INIT\* pin should be connected to GND.
2. The new protocol is saved in the EEPROM and will be effective after the next power on reset.

Example: Sets the communication protocol of module 01 to Modbus-RTU and returns an valid response

Command: \~01P1 (cr)

Response: !01(cr)

Related command: \~AAP

5.6.5.8. Read Communication Protocol Information

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Reads the communication protocol information</td></tr><tr><td>Command</td><td colspan="3">$AAP[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>P</td><td colspan="2">Command for Read protocol information</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td>Response</td><td colspan="2">!AASC[CHK](cr)</td><td>Valid command</td></tr><tr><td rowspan="8"></td><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>S</td><td colspan="2">The protocols supported by the module= 0 - only ASCII protocol is supported= 1 - both the ASCII and Modbus RTU protocols are supported</td></tr><tr><td>C</td><td colspan="2">The protocols supported by the module= 0 - NuDAM-ASCII format protocol= 1 - Modbus-RTU protocol</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads the communication protocol of module 01 and returns a response of “10” meaning that it supports both the ASCII and Modbus RTU protocol and the protocol that will be used at the next power on reset is ASCII.

Command: \$01P(cr)

Response: !0110(cr)

Related command: \$AAPN

# 5.6.5.9. Soft INIT\* Command

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">The Soft INIT* command is used to enable modification of the Baud Rate and checksum settings using software only.</td></tr><tr><td>Command</td><td colspan="3">~AAI[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>I</td><td colspan="2">Command to set the Soft INIT</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: The \~AATnn command should be sent prior to sending this command.

Example: Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I(cr)

Response: !01(cr)

Related commands: %AANNTTCCFF, \~AATnn

# 5.6.5.10. Set Soft INIT\* Timeout Value

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Sets the soft INIT* timeout value.</td></tr><tr><td>Command</td><td colspan="3">~AATnn[CHK](cr)</td></tr><tr><td></td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td rowspan="5">Syntax</td><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>T</td><td colspan="2">Command to set the soft INIT time out value</td></tr><tr><td>nn</td><td colspan="2">Two hexadecimal digits representing the timeout value in seconds. The maximum timeout value is 60 seconds. When changing the Baud Rate or checksum settings without altering the INIT* pin, the ~AAI and%AANNTTCCFF commands should be sent consecutively and the time interval between the two commands should be less than the soft INIT timeout. If the soft INIT timeout is 0, then the Baud Rate and checksum settings cannot be changed using software only. The power-on reset value of the soft INIT timeout is 0.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr)

Response: !01(cr)

(2) Attempts to change the Baud Rate of module 01 to 19200 without first altering the INIT \* pin. The module returns an invalid response because the soft INIT timeout value is 0.

Command: %0101000700 (cr)

Response: ?01(cr)

(3) Sets the soft INIT\* timeout value of module 01 to 16 seconds and returns a valid response.

Command: \~01T10 (cr)

Response: !01(cr)

(4) Sets the soft INIT\* of module 01 and returns a valid response.

Command: \~01I (cr)

Response: !01(cr)

(5) Changes the Baud Rate of module 01 to 19200 without first altering INIT \* pin. The module returns

Command: %0101000700 (cr)

Response: !01(cr)

Related commands: %AANNTTCCFF, \~AATI

5.6.5.11. Reload Factory Default

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">Reloads the module factory default setting.</td></tr><tr><td>Command</td><td colspan="3">$AAS1[CHK](cr)</td></tr><tr><td rowspan="3">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>S1</td><td colspan="2">Command to reload the factory default</td></tr><tr><td rowspan="2"></td><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: Before the command is issued, the INIT\* pin should be connected to GND and after response command is issued, the module will be rebooted.

Example: Reloads the module factory default setting and return valid.

Command: \$05S1(cr)

Response: !05(cr)

Related command: %AANNTTCCFF, \$AA2

5.6.5.12. Reset Module to Initial Power-on State

<table><tr><td>Modules</td><td colspan="3">For all modules</td></tr><tr><td>Description</td><td colspan="3">To stop current operation, reset the module to initial power on state.</td></tr><tr><td>Command</td><td colspan="3">$AARS[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>RS</td><td colspan="2">Command for reset the module</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: To stop current operation and reset the module to power-on state or safe output.

Command: \$05RS(cr)

Response: !05(cr)

5.6.5.13. Output Analog Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Output Analog Value for channel N</td></tr><tr><td>Command</td><td colspan="3">#AAN(data) [CHK](cr)</td></tr><tr><td rowspan="3">Syntax</td><td>#</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>N</td><td colspan="2">Analog output channel (0 to 3)</td></tr><tr><td rowspan="3"></td><td>(data)</td><td colspan="2">analog output value,Engineering format:This data format including three components.1. sign (+ or -)2. digits3. decimal pointData is composited with a sign (+ or -) followed with 5-digits and a decimal point.It does not exceed 7-characters.Over Range(+9999.9), Under Range(-9999.9).Example: #AAN+99.999 or #AAN-99.999Hexadecimal format:Twos Complement Hexadecimal format presents the data in ASCII hexadecimalExample: #AANFFFF</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">&gt;[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td colspan="2">!AA[CHK](cr)</td><td>Ignore Command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for the module's host watchdog status is set or Emergency input is active and the output command will be ignored.</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

For Engineering format: #AAN+99.999 or #AAN-99.999

Example: Output address 01 value +02.456V for channel 0 and return success.

Command: #010+02.456

Response: > (cr)

Example: Output address 01 value -03.456V for channel 0 and return success.

Command: #010-03.456

Response: > (cr)

Example: Output address 01 value +12.456mA for channel 2 and return success.

Command: #012+12.456

Response: > (cr)

Example: Output address 01 value +02.456V for channel 2 and return emergency input is active(low) and the output command will be ignored.

Command: #012+02.456

Response: ! (cr)

For Hexadecimal format: #AANFFFF

Example: Output address 01 value +02.456V for channel 0 and return success.

Command: #0100998

Response: > (cr)

Example: Output address 01 value -03.456V for channel 0 and return success.

Command: #010F280

Response: > (cr)

Example: Output address 01 value +12.456mA for channel 2 and return success.

Command: #01230A8

Response: > (cr)

Related commands: \$AA9, \$AA9NTTSS, \$AA6N, \$AA8N

# 5.6.5.14. Perform 0mA/-10V Calibration

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Tells the module to store parameters for channel(N)0mA/-10V calibration.</td></tr><tr><td>Command</td><td colspan="3">$AA0N [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>0</td><td colspan="2">Command for performing 0mA/-10V calibration</td></tr><tr><td>N</td><td colspan="2">Channel to calibrate (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Perform 0mA/-10V Calibration for Channel 3

Command: \$0203(cr)

Response: !02 (cr)

Related commands: \$AA3NVV, \$AA1N, #AAN(data)

# 5.6.5.15. Perform 20mA/+10V Calibration

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Tells the module to store parameters for channel(N) 20mA/+10V calibration.</td></tr><tr><td>Command</td><td colspan="3">$AA1N [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>1</td><td colspan="2">Command for performing 20mA/+10V calibration</td></tr><tr><td>N</td><td colspan="2">Channel to calibrate (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Perform 20mA/+10V Calibration for Channel 3 and return valid.

Command: \$0213(cr)

Response: !02 (cr)

Related command: \$AA3NVV, \$AA0N, #AAN(data)

5.6.5.16. Trim Calibration

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Trim Calibration for Channel NNote: Before start please set Analog outputType Code to 0x30 or 0x33.</td></tr><tr><td>Command</td><td colspan="3">$AA3NVV [CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>3</td><td colspan="2">Command for trimming calibration</td></tr><tr><td>N</td><td colspan="2">Channel to trim (0 to 3)</td></tr><tr><td>VV</td><td colspan="2">2&#x27;s complement hexadecimal to trim the analog output value. 00 to 5F to increase 0 to 95 counts, and FF to A1 to decrease 1 to 95 counts. Each count indicates 2.44μA or 1.22mV.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">delimiter for invalid command or the calibration is not enabled</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Trim address 02 channel 1 output 52 counts and return success.

Command: \$023134(cr)

Response: !02 (cr)

Related commands: \$AA0N, \$AA1N, #AAN(data)

5.6.5.17. Set Power-on Value for Channel N

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Stores a default output value in a specified module. The output value will take effect upon startup.</td></tr><tr><td>Command</td><td colspan="3">$AA4N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>4</td><td colspan="2">command for setting Power-On Value</td></tr><tr><td>N</td><td colspan="2">Channel to set (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="4">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td rowspan="3"></td><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Sets address 02 channel 1 output +01.50, returns success.

Command: #021+01.500 (cr)

Response: >(cr)

(2) Sets address 02 channel 1 power-on Value, returns success. The Power-On Value of channel 1 is set to 01.50 now

Command: \$0241(cr)

Response: >(cr)

Related command: #AAN(data)

5.6.5.18. Read Back Last Value of Channel N

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Returns either last value sent to specified module by #AAN command.</td></tr><tr><td>Command</td><td colspan="3">$AA6N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>6</td><td colspan="2">command for reading last output value</td></tr><tr><td>N</td><td colspan="2">Channel to readback (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>(data)</td><td colspan="2">the last output command value.</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Sets address 02 channel 1 output +02.567, returns success.

Command: #021+02.567(cr)

Response: !02 (cr)

(2) Reads address 02 channel 1 last output value, returns +02.567

Command: \$0261

Response: !00+02.567(cr)

Related command: #AAN(data)

5.6.5.19. Read Power-on Value of Channel N

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads power-on value of channel N</td></tr><tr><td>Command</td><td colspan="3">$AA7N[CHK](cr)</td></tr><tr><td rowspan="2">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td rowspan="4"></td><td>7</td><td colspan="2">command for reading Power-On Value</td></tr><tr><td>N</td><td colspan="2">Channel to readback (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>(data)</td><td colspan="2">Power-on value</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 02 channel 1 power-on Value, returns +05.000.

Command: \$0271(cr)

Response: !02+05.000 (cr)

Related commands: \$AA4N, #AAN(data)

# 5.6.5.20. Read Back Current Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads back the current analog output value for channel N.</td></tr><tr><td>Command</td><td colspan="3">$AA8N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>8</td><td colspan="2">command for read current output value</td></tr><tr><td>N</td><td colspan="2">Channel to readback (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response:</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>(data)</td><td colspan="2">current analog output value.</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Reads address 01 configuration, return output type 0 to 10V, and slew rate is 1.0V/Second.

Command: \$0190(cr)

Response: !013205 (cr)

(2) Reads address 01 channel 0 current value, returns 0.0V.

Command: \$0180 (cr)

Response: !01+00.000 (cr)

(3) Sets address 01 channel 0 output 10.0V, returns success.

Command: #010+10.000 (cr)

Response: > (cr)

(4) Reads address 01 channel 0 last output command value, returns +10.000V.

Command: \$0160 (cr)

Response: !01+10.000 (cr)

(5) Waits 1 second and reads address 01 channel 0 current value, returns 9.0V.

Command: \$0180 (cr)

Response: !01+09.000 (cr)

(6) Waits 6 seconds, reads address 01 channel 0 current value, returns 3.0V.

Command: \$0180 (cr)

Response: !01+03.000 (cr)

Related commands: #AAN(data), \$AA9, \$AA9N

5.6.5.21. Read DA Configuration of Channel N

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads type and slew rate of Channel N</td></tr><tr><td>Command</td><td colspan="3">$AA9N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>9</td><td colspan="2">command for reading DA configuration</td></tr><tr><td>N</td><td colspan="2">channel to read DA configuration (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="9">Response</td><td colspan="2">!AATTSS[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>TT</td><td colspan="2">Analog output type.</td></tr><tr><td>SS</td><td colspan="2">Analog output slew rate.</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01 channel 2 DA configuration, return +/-10V output and slew rate is 5 (1.0V/Second).

Command: \$0192(cr)

Response: !013305 (cr)

Related command: \$AA9NTTSS

Note: After the command is issued, the module must be rebooted.
Example: Set address 01 channel 2 type to 30 (0 to 20mA) and slew rate is 5 (1.0V/Second).
Command: \$01923005 (cr)
Response: !01(cr)
Related command: \$AA9N
5.6.5.22. Set DA Configuration of Channel N

<table><tr><td>Modules</td><td colspan="3">For ND-6124 modules</td></tr><tr><td>Description</td><td colspan="3">Sets type and slew rate for Channel N</td></tr><tr><td>Command</td><td colspan="3">$AA9NTTSS[CHK](cr)</td></tr><tr><td rowspan="8">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>9</td><td colspan="2">command for set DA configuration</td></tr><tr><td>N</td><td colspan="2">channel to set DA configuration (0 to 3)</td></tr><tr><td>TT</td><td colspan="2">Analog output type.</td></tr><tr><td>SS</td><td colspan="2">Analog output slew rate.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

5.6.5.23. Read Emergency Digital Input Ports

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads emergency digital input ports</td></tr><tr><td>Command</td><td colspan="3">@AA[CHK](cr)</td></tr><tr><td rowspan="4">Syntax</td><td>@</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>(data)</td><td colspan="2">Status of the digital input ports, a four-digit hexadecimal value. The first word represents the status of DI(15~8) and the second word represents the status of DI(7~0). Value 0 of bit means the channel is input low level, value 1 of bit means the channel is input high level.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Read address 01 digital input status and returns Dl(0,2) high level and Dl(1,3) low level.
Command: @01(cr)
Response: >0005(cr)
Related commands: \~AA0, \~AA8E

5.6.5.24. Host OK

<table><tr><td>Modules</td><td colspan="2">For all modules</td></tr><tr><td>Description</td><td colspan="2">Host sends this command to all modules for broadcasting the information “Host OK”</td></tr><tr><td>Command</td><td colspan="2">~** [CHK](cr)</td></tr><tr><td rowspan="4">Syntax</td><td>~</td><td>Command leading code</td></tr><tr><td>**</td><td>command for all modules</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr></table>

<table><tr><td>Response</td><td>No response.</td></tr></table>

Example: Send Host OK to all modules.

Command: \~\*\* (cr)

Response: No response

Related command: \~AA0, \~AA1, \~AA2, \~AA3EVV, \~AA4N, \~AA5N

# 5.6.5.25. Read Module Status

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads the watchdog status &amp; emergency input flag.</td></tr><tr><td>Command</td><td colspan="3">~AA0[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>0</td><td colspan="2">Command for reading module status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">! AASS[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>SS</td><td colspan="2">Module Status(hex ascii).bit(7) - Host watchdog enable flag, = 0 - Disable.= 1 - Enable.bit(6~3) - Emergency input E/Disable flag, one channel per bit of bit(3~6) for channel(0~3) and status is indicated as:= 0 - Disable.= 1 - Enable.bit(2) - Host watchdog timeout flag, = 0 - No host watchdog timeout has occurred.= 1 - Host watchdog timeout has occurred.bit(1~0) - reserved.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Note:

(1) The watchdog timeout status will be stored in EEPROM of the module and can only be cleared by issuing \~AA1 command.
(2) The emergency input(DI) enable/disable flag will be stored in EEPROM of the module and can only be set by issuing \~AA8NE command.

# Example:

(1) Reads the host watchdog status of module 01 and returns 00, meaning that the host watchdog is disabled and no host watchdog time out has occurred.

Command: \~010&lt;cr&gt;

Response: !0100

(2): Reads the host watchdog status of module 02 and returns 84, meaning that a host watchdog timeout has occurred.

Command: \~010&lt;cr&gt;

Response: !0184

(3): Reads the host watchdog status of module 01 and returns 04, meaning that the host watchdog is disabled and host watchdog time out has occurred.

Command: \~010&lt;cr&gt;

Response: !0104

(4): Reads the status of module 01 and returns 09, meaning that channel(0) emergency Input is enable.

Command: \~010&lt;cr&gt;

Response: !0109

Related commands: \~\*\*, AA1, \~AA2, \~AA3EVV, \~AA4N, \~AA5N, \~AA8E

5.6.5.26. Reset Module Status

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Resets the watchdog active status of a module</td></tr><tr><td>Command</td><td colspan="3">~AA1[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>1</td><td colspan="2">Command for resetting watchdog active status</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: The module’s watch dog active status will be cleared after this command issued.
Example: Resets the host watchdog time out status of module 01 and returns a valid response.
Command: \~011&lt;cr&gt;
Response: !01
Related commands: \~\*\*,AA0,\~AA2,\~AA3EVV,\~AA4N, \~AA5N

5.6.5.27. Read Host Watchdog Timer Timeout Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads the host watchdog time out value of a module.</td></tr><tr><td>Command</td><td colspan="3">~AA2[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>2</td><td colspan="2">Command for reading watchdog timeout value</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="6">Response</td><td colspan="2">! AAEVV[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>E</td><td colspan="2">Host watchdog Enable/Disable status= 0 - Disable= 1 - Enable</td></tr><tr><td rowspan="3"></td><td>VV</td><td colspan="2">Timeout value in Hex format from 01 to FF(=25.5 seconds), one unit is 0.1 sec</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads the host watchdog time out value of module 01 and returns FF, meaning that the host watchdog time out value is 25.5 seconds.

Command: \~012 (cr)

Response: !01FF (cr)

Related commands: \~\*\*, AA0, \~AA1, \~AA3EVV, \~AA4N, \~AA5N

# 5.6.5.28. Set Host Watchdog Timeout Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Enables/disables the host watchdog and set the host watchdog time out value of a module.</td></tr><tr><td>Command</td><td colspan="3">~AA3EVV[CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>3</td><td colspan="2">Command for setting watchdog timeout value</td></tr><tr><td>E</td><td colspan="2">Enables/disables the host watchdog:= 0 - disable= 1 - enable</td></tr><tr><td>VV</td><td colspan="2">Timeout value in Hex format from 01 to FF(=25.5 seconds), one unit is 0.1 sec</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Note: If the host watchdog timer is enabled, the host should send Host OK command periodically within the timeout value to refresh the timer; otherwise, the module will be forced to the safety state.

# Example:

(1) Sets module (ID=04) to have watchdog timeout value 10.0 seconds and enable host watchdog.

Command: \~043164(cr)

Response: !04 (cr)

(2) Read watchdog timeout value form module (ID=04) and returns watchdog timeout value=10.0 seconds, and host watchdog is enabled.

Command: \~042(cr)

Response: !04164 (cr)

(3) Host OK

Command: \~\*\*(cr)

wait

Stops sending any command string to modules for at least 10.0 seconds. The LED on the module will flash. The flashing LED indicates the host watchdog has timed out and the timeout status is set.

(4) Reads watchdog timeout status, and returns that the timeout status is set.

Command: \~040(cr)

Response: !0484(cr)

(5) Resets the host watchdog time out counter register of module 04 and returns a valid response.

Command: \~041&lt;cr&gt;

Response: !01

Related commands: \~\*\*, \~AA0, \~AA1, \~AA2, \~AA4N, \~AA5N

5.6.5.29. Read Safe Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Read back safe value for watchdog timeout and Emergency input.</td></tr><tr><td>Command</td><td colspan="3">~AA4N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>4</td><td colspan="2">command for Read Safe Value</td></tr><tr><td>N</td><td colspan="2">channel number (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">!AA(data)[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>(data)</td><td colspan="2">Safe Value of module.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads address 01 channel 2 Safe Value, return +02.500 Safe Value

Command: \~0142 (cr)

Response: !01+02.500(cr)

Related commands: \~\*\*, AA0, \~AA1, \~AA2, \~AA3EVV, \~AA5N

5.6.5.30. Set Safe Value

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Command for setting safe value for watchdog timeout and emergency Input, store the current output value as safe value.</td></tr><tr><td>Command</td><td colspan="3">~AA5N[CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>5</td><td colspan="2">command for set Safe Value</td></tr><tr><td>N</td><td colspan="2">channel number (0 to 3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="3">Response</td><td colspan="2">!AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td rowspan="3"></td><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Example:

(1) Outputs address 01 value +01.000V for channel 2, return success.

Command: #012+01.000

Response: > (cr)

(2) Sets address 01 channel 2 Safe Value, return success.

Command: \~0152(cr)

Response: !01 (cr)

(3) Reads address 01 channel 2 Safe Value, return +01.000 Safe Value

Command: \~0142 (cr)

Response: !01+01.000(cr)

Related commands: \~\*\*, AA0, \~AA1, \~AA2, \~AA3EVV, \~AA4N

# 5.6.5.31. Enable/Disable Emergency Input (DI)

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Enables or disables emergency input (DI)</td></tr><tr><td>Command</td><td colspan="3">~AA8NE [CHK](cr)</td></tr><tr><td rowspan="7">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>8</td><td colspan="2">command for Set Emergency DI Inputs</td></tr><tr><td>N</td><td colspan="2">channel number (0 to 3)</td></tr><tr><td>E</td><td colspan="2">Enables/disables emergency inputs (DI):= 0 - disable= 1 - enable</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

# Note:

1. When an emergency input (DI) is active (low), the module will be forced to the safety output state for channel N of A/O.
2. If disable is selected, then th emergency input (DI) is the same as standard digital input.
3. Read Emergency Input (DI) Enable/Disable by command “\~AA0”

# Example:

(1) Outputs address 04 value +01.000V for channel 1, return success.

Command: #041+01.000

Response: > (cr)

(2) Sets address 04 channel 1 Safe Value, returns success.

Command: \~0451(cr)

Response: !01 (cr)

(3) Sets module (ID=04) to enable channel (1) emergency inputs.

Command: \~04181 (cr)

Response: !04 (cr)

(4) Reads module status from module (ID=04) and returns the channel(1) emergency input is enabled.

Command: \~040(cr)

Response: !0410 (cr)

```txt
wait......
;
```

The module’s emergency input (DI) channel (1) is active (low) and the AO channel N of the module is put into safe output mode.

```txt
;
```

(5) Reads emergency input port status from module (ID=04) and returns that the emergency input channel (1) is active(low).

Command: @040(cr)

Response: !040D(cr)

(6) Outputs address 04 value +01.000V for channel 1, returns that emergency input is active and the output command will be ignored.

Command: #041+01.000

Response: ! (cr)

(7) Clears emergency input (DI) active flag for channel 1.

Command: \~041(cr)

Response: !04 (cr)

(8) Outputs address 04 value +01.000V for channel 1, returns successful.

Command: #041+01.000

Response: >AA (cr)

Related commands: \~AA8, \~AA8N, \~AA0, @AA, \~AA5N, #AAN

5.6.5.32. Clear Emergency DI Active Flag

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Clears emergency DI active flag</td></tr><tr><td>Command</td><td colspan="3">~AA8N [CHK](cr)</td></tr><tr><td rowspan="6">Syntax</td><td>~</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>8</td><td colspan="2">command for Clear Emergency DI Active Flag</td></tr><tr><td>N</td><td colspan="2">Channel number (0–3)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="7">Response</td><td colspan="2">! AA [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Clears emergency DI active flag for channel 1.

Command: \~041(cr)

Response: !04 (cr)

Related commands: \~AA8NE, \~AA8N, \~AA0, @AA, \~AA5N, #AAN

5.6.5.33. #\*\*

<table><tr><td>Modules</td><td colspan="2">For 6124</td></tr><tr><td>Description</td><td colspan="2">Synchronize all modules to sample input values and storethe values in the module&#x27;s register at the same time and use “$AA9”(Read Synchronized Data) command to read the data and process it one by one.</td></tr><tr><td>Command</td><td colspan="2">#**[CHK](cr)</td></tr><tr><td rowspan="4">Syntax</td><td>#</td><td>Command leading code</td></tr><tr><td>**</td><td>Synchronized Sampling command</td></tr><tr><td>CHK</td><td>Check sum</td></tr><tr><td>(cr)</td><td>Carriage return</td></tr><tr><td>Response</td><td colspan="2">No response</td></tr></table>

Example 1: Synchronized sampling command has no response

Command: #\*\*(cr)

Response: // No response

Example 2: Reads synchronized data from ND-6155 (ID=05), and returns S = 1 – first read, Synchronized data = 0E (DI0 active)

Command: \$059(cr)

Response: >10E(cr)

Related command: \~AA9

5.6.5.34. \$AA9

<table><tr><td>Description</td><td colspan="3">Read synchronized data</td></tr><tr><td>Command</td><td colspan="3">$AA9[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>9</td><td colspan="2">Command for reading synch. data</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">&gt;SDD [CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">? AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>&gt;</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>S</td><td colspan="2">Data status, S=1 first read, S=0 been readed</td></tr><tr><td>DD</td><td colspan="2">Data (2 characters)</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example 1: Synchronized sampling command has no response

Command: #\*\*(cr)

Response: // No response

Example 2: Reads synchronized data from ND-6155 (ID=05), and returns S = 1 – first read, synchronized data = 0E (DI0 active)

Command: \$059(cr)

Response: !10E(cr)

Example 3: Reads synchronized data from ND-6155 (ID=05), and returns S = 0 – been readed, synchronized data = 0E (DI0 active)

Command: \$059(cr)

Response: >00E(cr)

Related command: #\*\*

# 5.6.5.35. Read Digital Input Ports

<table><tr><td>Modules</td><td colspan="3">For 6124</td></tr><tr><td>Description</td><td colspan="3">Reads digital input ports.</td></tr><tr><td>Command</td><td colspan="3">$AA8[CHK](cr)</td></tr><tr><td rowspan="5">Syntax</td><td>$</td><td colspan="2">Command leading code</td></tr><tr><td>AA</td><td colspan="2">Module address ID (00 to FF)</td></tr><tr><td>8</td><td colspan="2">Command for Read Digital Input Ports</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr><tr><td rowspan="8">Response</td><td colspan="2">!DD0000[CHK](cr)</td><td>Valid command</td></tr><tr><td colspan="2">?AA[CHK](cr)</td><td>Invalid command</td></tr><tr><td>!</td><td colspan="2">Delimiter for valid command</td></tr><tr><td>?</td><td colspan="2">Delimiter for invalid command</td></tr><tr><td>AA</td><td colspan="2">Module address ID</td></tr><tr><td>DD</td><td colspan="2">Status of the digital input ports, a two-digit hexadecimal value. Value 0 of bit means the channel is input low level, value 1 of bit means the channel is input high level.</td></tr><tr><td>CHK</td><td colspan="2">Check sum</td></tr><tr><td>(cr)</td><td colspan="2">Carriage return</td></tr></table>

Example: Reads address 01 digital input status and return Dl(0,2) high level and Dl(1,3) low level.

Command: \$058(cr)

Response: !050000(cr)

Related commands: \~AA9, #\*\*, @AA

This page is intentionally left blank.

# 6. Modbus RTU Protocol Command Sets

# 6.1. Introduction

The Modbus protocol is a messaging structure developed by Modicon in 1979 for establishing master-slave/client-server communication between intelligent devices. Detailed information can be found at http://www.modbus.org.

NuDAM-6100 series modules support the Modbus RTU protocol via firmware version D02.01 and later.

The communication BaudRates range from 1200bps to 115200bps. The parity, data bits, and stop bits are fixed as no parity, 8 data bits and 1 stop bit. The following Modbus functions are supported.

# 6.2. Modbus Data Model

MODBUS bases its data model on a series of tables that have distinguishing characteristics.

The four primary tables are as follows:

<table><tr><td>Primary</td><td>Object Type</td><td>Access</td><td>Comments</td></tr><tr><td>Discrete Input</td><td>Single bit</td><td>Read-Only</td><td>This type of data can be provided by an I/O system.</td></tr><tr><td>Coils</td><td>Single bit</td><td>Read-Write</td><td>This type of data can be alterable by an application</td></tr><tr><td>Input Reg.</td><td>16 bit word</td><td>Read-Only</td><td>This type of data can be provided by an I/O system</td></tr><tr><td>Holding Reg.</td><td>16 bit word</td><td>Read-Write</td><td>This type of data can be alterable by an application program.</td></tr></table>

# 6.3. Modbus Function Code Definitions

<table><tr><td>Function Code</td><td>Description</td></tr><tr><td>01 (0x01)</td><td>Read coils</td></tr><tr><td>02 (0x02)</td><td>Read Discrete Inputs</td></tr><tr><td>03 (0x03)</td><td>Read multiple Holding registers</td></tr><tr><td>04 (0x04)</td><td>Read multiple input registers</td></tr><tr><td>05 (0x05)</td><td>Write single coil</td></tr><tr><td>06 (0x06)</td><td>Write single register</td></tr><tr><td>15 (0x0F)</td><td>write Multiple coils</td></tr><tr><td>16 (0x10)</td><td>Write Multiple register</td></tr><tr><td>70 (0x46)</td><td>Read/write module settings</td></tr></table>

# Error Response:

If the function specified in the message is not supported, then the module Response is as follows:

<table><tr><td>Offset</td><td>Function</td><td>Length</td><td>Description</td></tr><tr><td>00</td><td>Address</td><td>1 Byte</td><td>1 to 247</td></tr><tr><td>01</td><td>Function code</td><td>1 Byte</td><td>Function code | 0x80</td></tr><tr><td>02</td><td>Exception code</td><td>1 Byte</td><td>= 0x01 -invalid function code. = 0x02 -invalid data address. = 0x03 -invalid data value. = 0x04 - host WDT timeout</td></tr></table>

Note: If a CRC mismatch occurs, the module will not respond (see “02208”).

# 6.4. Modbus Standard Register Designation

0xxxx - Coils access (for 0x01, 0x05, 0x0F function codes)

1xxxx - Reads discrete inputs (for 0x02 function code)

3xxxx - Reads input register (for 0x04 function code)

4xxxx - Holding register access (for 0x03, 0x06, 0x10 function codes)

xxxx - Element address of a data block, In the MODBUS data model each element within a data block is numbered from 1 to n.

# Example:

00005 - Coils access and Starting address = 0004 (0005-1)

10002 - Read discrete inputs and Starting address = 0001 (0002-1)

30257 - Read input register and Starting address = 0256 (0257-1)

40001 - Access holding register and Starting address = 0000 (0001-1)

# 6.5. Modbus Address Mapping Tables (ND-6150 and ND-6160)

There are three categories of NuDAM module commands: general commands, watchdog commands, and DIO function commands. This section contains all commands used in NuDAM DIO input/output modules ND-6150 and ND-6160).

# 6.5.1. General Commands

<table><tr><td colspan="4">Address Mapping</td></tr><tr><td>Address</td><td>Item</td><td>Attr.</td><td>Sec.</td></tr><tr><td>00257</td><td>Protocol, NuDAM ASCII &amp; Modbus select.= 1 (W/0xFF00) - Modbus RTU= 0 (W/0x0000) - NuDAM ASCII</td><td>R/W</td><td>6.5.6.1</td></tr><tr><td>00272</td><td>Load factory DIO module parameters= 0xFF00 - Enable</td><td>W</td><td>6.5.6.2</td></tr><tr><td>02208</td><td>CRC checking enable / disable= 1 (W/0xFF00) - Enable= 0 (W/0x0000) - Disable (default)</td><td>R/W</td><td>6.5.6.3</td></tr><tr><td>02210</td><td>Reset(reboot) the module to initial power-on status= 0xFF00 - Enable</td><td>W</td><td>6.5.6.4</td></tr><tr><td>00273</td><td>Read module reset status= 1 - first read after powered on= 0 - not the first read after powered on</td><td>R</td><td>6.5.6.5</td></tr><tr><td>40481</td><td>Firmware version (32 bits)</td><td>R</td><td>6.5.6.6</td></tr><tr><td>40483</td><td>Module name (32 bits)</td><td>R</td><td>6.5.6.7</td></tr><tr><td>40485</td><td>Module address, valid range: 1–247</td><td>R/W</td><td>6.5.6.8</td></tr><tr><td>40486</td><td>Baudrate setting, valid range: 3–10 for Baudrate(1200,2400,4800,9600,19200,38400,57600,115200)</td><td>R/W</td><td>3.11.1</td></tr><tr><td>42201</td><td>Digital input/output LED Configuration(for 80xxD)bit(1) - for digital output LED control:= 0 - Turn-OFF LED when output active= 1 - Turn-ON LED when output activebit(0) - for digital input LED control:= 0 - Turn-OFF LED when input active= 1 - Trun-ON LED when input active</td><td>R/W</td><td>6.5.8.7</td></tr><tr><td>42209</td><td>DIO active status (see 3.11.4)bit(0) - DI active status:= 0 - 0 for digital input active value= 1 - 1 for digital input activel value,(DI disconnect(OPEN) mean DI inactive)bit(1) - DO active status(OAS):= 0 - 0 for digital output active value= 1 - 1 for digital output active value</td><td>R/W</td><td>6.5.8.8</td></tr></table>

# 6.5.2. Watchdog Commands

<table><tr><td colspan="4">Address Mapping</td></tr><tr><td>Address</td><td>Item</td><td>Attr.</td><td>Sec.</td></tr><tr><td>412345</td><td>Informs all modules that the host is OK(no response)</td><td>R</td><td>6.5.7</td></tr><tr><td>40489</td><td>Host watchdog timeout value, 0–255, in 0.1 seconds</td><td>R/W</td><td>6.5.7</td></tr><tr><td>40492</td><td>Inform the module that the host is OK</td><td>R</td><td>6.5.7</td></tr><tr><td>00261</td><td>Host watchdog enable/disable= 1 (W/0xFF00) - Enable= 0 (W/0x0000) - Disable</td><td>R/W</td><td>6.5.7</td></tr><tr><td>00270</td><td>Host watchdog timeout status, and write 0xFF00 (or 1)to clear host watchdog timeout status.</td><td>R/W</td><td>6.5.7</td></tr><tr><td>00129–00160</td><td>Host timeout Safe value for DO0–DO31</td><td>R/W</td><td>6.5.8.5</td></tr></table>

# 6.5.3. Digital Input/Output Function Commands

<table><tr><td colspan="4">Address Mapping</td></tr><tr><td>Address</td><td>Item</td><td>Attr.</td><td>Sec.</td></tr><tr><td>00161~00192</td><td>Power-on DO value for DO0–DO31</td><td>R/W</td><td>6.5.8.6</td></tr><tr><td>00001~00032</td><td>Digital output channel for DO0–DO31</td><td>R/W</td><td>6.5.8.1</td></tr><tr><td>00033~00064</td><td>Digital input channel for DI0–DI31</td><td>R</td><td>6.5.8.2</td></tr></table>

# 6.5.4. DI Latch Function Commands

<table><tr><td colspan="4">Address Mapping</td></tr><tr><td>Address</td><td>Item</td><td>Attr.</td><td>Sec.</td></tr><tr><td>00065–00096</td><td>DI Latch high value for DI0–DI31</td><td>R</td><td>6.5.8.3</td></tr><tr><td>00097–00128</td><td>DI Latch low value for DI0–DI31</td><td>R</td><td>6.5.8.3</td></tr><tr><td>00264</td><td>Clear the latch value for all DI (0–31) = 1 (or 0xFF00) - Clear all DI (0–31)</td><td>W</td><td>6.5.8.3</td></tr></table>

# 6.5.5. Examples of Modbus RTU General Commands

6.5.5.1. (00257) Protocol, NuDAM, ASCII, & Modbus Selection

• (00257) Read protocol and return modbus RTU is selected (01)

Request: 01 01 01 00 00 01 [FC 36]

Response: 01 01 01 01 [90 48]

• (00257) Set to NuDAM ASCII protocol and return successful

Request: 01 05 01 00 00 00 [CC 36]

Response: 01 05 01 00 00 00 [CC 36]

• (00257) Read protocol and return (0x00) NuDAM ASCII is select

Request: 01 01 01 00 00 01 [3D F6]

Response: 01 01 01 00 [51 88]

# 6.5.5.2. (00272) Load Factory Calibration Parameters

• (00272) Load factory calibration parameters and wait 1 second for response

Request: 01 05 01 0F FF 00 [BD C5]

Response: 01 05 01 0F FF 00 [BD C5]

# 6.5.5.3. (02208) CRC Checking Status

• (02208) Read CRC checking status and return CRC disable (00)

Request: 01 01 08 9F 00 01 [CF 84]

Response: 01 01 01 00 [51 88]

• (02208) Set CRC checking to enable and return successful

Request: 01 05 08 9F FF 00 [BE 74]

Response: 01 05 08 9F FF 00 [BE 74]

• (02208) Set CRC checking to disable and return successful

Request: 01 0F 08 9F 00 01 01 00 [BB C3]

Response: 01 0F 08 9F 00 00 [A6 45]

# 6.5.5.4. (02210) Reset Module to Initial Power-on Status

• (02210) Reset the module to initial power-on status and return successful

Request: 01 05 08 A1 FF 00 [DF B8]

Response: 01 05 08 A1 FF 00 [DF B8]

# 6.5.5.5. (00273) Read Module Reset Status

• (00273) Read module reset status and return first read after powered on (01)

Request: 01 01 01 10 00 01 [FD F3]

Response: 01 01 01 01 [90 48]

• (00273) Read module reset status and return not first read (00)

Request: 01 02 01 10 00 01 [B9 F3]

Response: 01 02 01 00 [A1 88]

# 6.5.5.6. (40481) Read Firmware Version

• (40481) Read firmware version and return version D02.01(00 0D 02 01)

Request: 01 03 01 E0 00 02 [C4 01]

Response: 01 03 04 00 0D 02 01 [AB 50]

# 6.5.5.7. (40483) Module Name

• (40483) Read module name and return module name 8050 (00 80 50 00)

Request: 01 03 01 E2 00 02 [65 C1]

Response: 01 03 04 00 80 50 00 [C7 DB]

# 6.5.5.8. (40485) Module Address

• (40485) Read module address and return module address 01 (00 01)

Request: 01 03 01 E4 00 01[C5 C1]

Response: 01 03 02 00 01[79 84]

• (40485) Set new module address to 05 and return successful

Request: 01 06 01 E4 00 05 [08 02]

Response: 01 06 01 E4 00 05 [08 02]

• (40485) Read module address and return module address 01 (00 01)

Request: 01 03 01 E4 00 01[C5 C1]

Response: 01 03 02 00 05[78 47]

• (40485) Set new module address to 01 and return successful

Request: 01 10 01 E4 00 01 02 00 01 [60 B4]

Response: 01 10 01 E4 00 01 [40 02]

# 6.5.5.9. (40486) Baud Rate Settings

• (40486) Read baud rate and return baud rate 9600 (00 06)

Request: 01 03 01 E5 00 01 [94 01]

Response: 01 03 02 00 06 [38 46]

• (40486) Set baud rate to 115200 (0A) and return successful (the INIT\* pin must be grounded at first)

Request: 01 06 01 E5 00 0A [19 C6]

Response: 01 06 01 E5 00 0A [19 C6]

• (40486) Read baud rate and return baud rate 115200 (00 0A)

Request: 01 03 01 E5 00 01 [94 01]

Response: 01 03 02 00 0A [38 43]

• (40486) Set baud rate to 9600(06) and return successful (the INIT\* pin must be grounded at first)

Request: 01 10 01 E5 00 01 02 00 06 [20 A7]

Response: 01 10 01 E5 00 01 [11 C2]

# 6.5.6. Examples of Modbus RTU Watchdog Commands

# Host Watchdog Timeout Operation

• (00129) Set output channel(0,2,4,5,9) to ON(0000 0010 0011 0101) for write safe value and return successful.

Request: 01 0F 00 80 00 0A 02 35 02 [6C 69]

Response: 01 0F 00 80 00 0A [D4 24]

• (40489) Write host watchdog timeout value (20 sec) return valid

Request: 01 06 01 E8 00 C8 [09 94]

Response: 01 06 01 E8 00 C8 [09 94]

• (40489) Read host watchdog timeout value return (00 C8) watchdog timeout value (20 sec)

Request: 01 03 01 E8 00 01 [05 C2]

Response: 01 03 02 00 C8 [B9 D2]

• (00270) Clear host watchdog timeout status, return watchdog timeout status is cleared

Request: 01 05 01 0D FF 00 [1C 05]

Response: 01 05 01 0D FF 00 [1C 05]

• Set DO output channel(0\~12) to 0 and return successful

Request: 01 0F 00 00 00 0D 02 00 00 [E4 4C]

Response: 01 0F 00 00 00 0D [94 0E]

• (00261) Set host watchdog timeout enable, return valid

Request: 01 05 01 04 FF 00 [CC 07]

Response: 01 05 01 04 FF 00 [CC 07]; wait 15 seconds

• (412345) Informs all modules that the host is OK and no response

Request: 01 04 30 38 00 00 [7E C7]

Response: no response; wait 15 seconds

• (40492) Inform the module (ID=0x01) that the host is OK
Request: 01 03 01 EB 00 00 [34 02]
Response: 01 03 02 00 00 [B8 44]; wait 25 seconds; watchdog timeout and into safe output mode
• (00270) Read host watchdog timeout status, return host watchdog timeout flag is set
Request: 01 01 01 0D 00 01 [6D F5]
Response: 01 01 01 01 [90 48]
• Read output channel (0–12) and return safe value (2F 6D)
Request: 01 01 00 00 00 0D [FD CF]
Response: 01 01 02 35 02 [2F 6D]
• (00270) Clear host watchdog timeout status, return host watchdog timeout flag is set
Request: 01 05 01 0D FF 00 [1C 05]
Response: 01 05 01 0D FF 00 [1C 05]

# 6.5.7. Examples of Modbus RTU DIO Function Commands

# 6.5.7.1. (00001) Digital Output Channel for DO0–DO31

• (00001) Set output channel (0,2,4,5,9) to ON (0000 0010 0011 0101) and return successful

Request: 01 0F 00 00 00 0D 02 35 02 [E4 4C]

Response: 01 0F 00 00 00 0D [94 0E]

• (00001) Read output channel (0–12) and return safe value (35 03)

Request: 01 01 00 00 00 0D [FD CF]

Response: 01 01 02 35 02 [2F 6D]

• (00001) Set DO11 output channel ON and return successful

Request: 01 05 00 0B FF 00 [FD F8]

Response: 01 05 00 0B 00 0D [FD F8]

• (00001) Read output channel (11) and return (01) ON

Request: 01 01 00 0B 00 01 [8C 08]

Response: 01 01 01 01 [90 48]

# 6.5.7.2. (00033) Digital Input Channel for DI0–DI31

• (00033) Read input channel (0–13) and return all ON (FF 3F)

Request: 01 01 00 20 00 0E [BC 04]

Response: 01 01 02 FF 3F [B8 1C]

# 6.5.7.3. (00065, 00097,00264) DI Latch for DI0–DI31

• (00065) Read DI(0–14) Latch high value and return (FF 3F)

Request: 01 01 00 40 00 0F [BC 1A]

Response: 01 01 02 FF 3F [B8 1C]

• (00097) Read DI(0–14) Latch low value and return (00 00)

Request: 01 01 00 60 00 0F [BD D0]

Response: 01 01 02 00 00 [B9 FC]

• (00264) Clear DI channels latch value and return successful

Request: 01 05 01 07 FF 00 [3C 07]

Response: 01 05 01 07 FF 00 [3C 07]

# 6.5.7.4. (00129) Safe Value for DO0–DO31

• (00129) Set output channel (0,2,4,5,9) to ON(0000 0010 0011 0101) for write safe value and return successful
Request: 01 0F 00 80 00 0F 02 35 02 [6C A5]
Response: 01 0F 00 80 00 0F [14 27]
• (00129) Read safe value for output channel (0–12) and return safe value (35 02)
Request: 01 01 00 80 00 0F [7D E6]
Response: 01 01 02 35 02 [2F 6D]

# 6.5.7.5. (00161) Power-on Value for DO0–DO31

• (00161) Set output channel(0,2,4,5,9) to ON(0000 0010 0011 0101) for write power-on value and return successful
Request: 01 0F 00 A0 00 0F 02 35 02 [6B C5]
Response: 01 0F 00 A0 00 0F [15 ED]
• (00161) Read power-on value for output channe l (0–12) and return value (35 02)
Request: 01 01 00 A0 00 0F [7C 2C]
Response: 01 01 02 35 02 [2F 6D]
• (00161) Set output channel (0) to ON and return successful
Request: 01 05 00 A0 FF 00 [8C 18]
Response: 01 05 00 A0 FF 00 [8C 18]

# 6.5.7.6. (42201) Digital Input/Output LED Configuration (for 80xxD)

• (42201) Set Digital input/output LED to turn-ON LED when output active (bit-1=0) and turn-ON LED when input high (bit-0=1) and return successful
Request: 01 06 08 98 00 01 [CB 85]
Response: 01 06 08 98 00 01 [CB 85]
• (42201) Read Digital input/output LED configuration and return (00 01) turn-ON LED when output active and turn-ON LED when input high
Request: 01 03 08 98 00 01 [07 85]
Response: 01 03 02 00 01 [79 84]
• (42201) Set Digital input/output LED to turn-ON LED when input high (bit-1=1) and turn-ON LED when output inactive (bit-0=1) and return successful.
Request: 01 10 08 98 00 01 02 00 03 [73 89]
Response: 01 10 08 98 00 01 [82 46]

# 6.5.7.7. (42209) DIO Active Status

• (42209) Set DIO input value 1 for non-signal or the low voltage (bit-0=0) and output value 1 for output inactive (bit-1=1) and return successful
Request: 01 06 08 A0 00 02 [0A 49]
Response: 01 06 08 A0 00 02 [0A 49]

• (42209) Read DIO active status and return (00 02) , output value 1 for output inactive (bit-1=1) and input value 1 for non-signal (bit-0=0)

Request: 01 03 08 A0 00 01 [86 48]

Response: 01 03 02 00 02 [39 85]

• (42209) Set input value 1 for high voltage, input value 0 for non-signal (bit-0=1) and output value 1 for output active (bit-1=0) and return successful.

Request: 01 03 08 A0 00 01 [86 48]

Response: 01 03 02 00 02 [39 85]

# 6.6. Modbus Address Mapping Tables (ND-6117)

# 6.6.1. Discrete Coil Address

Discrete coil addresses are available for Modbus function codes 0x01, 0x05, and 0x0F.

<table><tr><td>Address</td><td>Channel</td><td>Item</td><td>Attribute</td></tr><tr><td>00201</td><td>0</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00202</td><td>1</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00203</td><td>2</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00204</td><td>3</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00205</td><td>4</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00206</td><td>5</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00207</td><td>6</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00208</td><td>7</td><td>Channel active status</td><td>R/W</td></tr><tr><td>00269</td><td></td><td>Set MODBUS data format</td><td>R/W (*)1=Hex 2&#x27;s format0=engineering format</td></tr></table>

(\*):

1. Modbus data format of analog input value is 2’s complement format or engineering format.
2. Factory default: Engineering format

# 6.6.2. Discrete Input Address

Discrete input addresses are available for Modbus function code 0x02.

<table><tr><td>Address</td><td>Channel</td><td>Item</td><td>Attribute</td></tr><tr><td>10201</td><td>0</td><td>Channel active status</td><td>R</td></tr><tr><td>10202</td><td>1</td><td>Channel active status</td><td>R</td></tr><tr><td>10203</td><td>2</td><td>Channel active status</td><td>R</td></tr><tr><td>10204</td><td>3</td><td>Channel active status</td><td>R</td></tr><tr><td>10205</td><td>4</td><td>Channel active status</td><td>R</td></tr><tr><td>10206</td><td>5</td><td>Channel active status</td><td>R</td></tr><tr><td>10207</td><td>6</td><td>Channel active status</td><td>R</td></tr><tr><td>10208</td><td>7</td><td>Channel active status</td><td>R</td></tr><tr><td>10269</td><td></td><td>Set MODBUS data format</td><td>R 1=Hex 2&#x27;s format0=engineering format</td></tr></table>

(\*):

1. Modbus data format of analog input value is 2’s complement format or engineering format.
2. Factory default: Engineering format

# 6.6.3. Input Register Address

Input register addresses are available for Modbus function code 0x04.

<table><tr><td>Address</td><td>Channel</td><td>Item</td><td>Attribute</td><td>Memo</td></tr><tr><td>30001</td><td>0</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30002</td><td>1</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30003</td><td>2</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30004</td><td>3</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30005</td><td>4</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30006</td><td>5</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30007</td><td>6</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30008</td><td>7</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>30201</td><td>0</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30202</td><td>1</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30203</td><td>2</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30204</td><td>3</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30205</td><td>4</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30206</td><td>5</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30207</td><td>6</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30208</td><td>7</td><td>Input range Code</td><td>R</td><td>0x08-0x0d</td></tr><tr><td>30211</td><td></td><td>Module Name 1</td><td>R</td><td>0x8017</td></tr><tr><td>30212</td><td></td><td>Module Name 2</td><td>R</td><td>0x8017</td></tr><tr><td>30213</td><td></td><td>Version 1</td><td>R</td><td></td></tr><tr><td>30214</td><td></td><td>Version 2</td><td>R</td><td></td></tr><tr><td>30221</td><td></td><td>Channel Enable</td><td>R</td><td>0x00-0xFF</td></tr><tr><td>30269</td><td></td><td>Set MODBUS data format</td><td>R</td><td>0x0001=Hex 2's format0x0000=engineering format</td></tr></table>

# 6.6.4. Holding Register Address

Holding register addresses are available for Modbus function codes 0x03, 0x06, and 0x10.

<table><tr><td>Address</td><td>Channel</td><td>Item</td><td>Attribute</td><td>Memo</td></tr><tr><td>40001</td><td>0</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40002</td><td>1</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40003</td><td>2</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40004</td><td>3</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40005</td><td>4</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40006</td><td>5</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40007</td><td>6</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40008</td><td>7</td><td>Analog input Value</td><td>R</td><td></td></tr><tr><td>40201</td><td>0</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40202</td><td>1</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40203</td><td>2</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40204</td><td>3</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40205</td><td>4</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40206</td><td>5</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40207</td><td>6</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40208</td><td>7</td><td>Input range Code</td><td>R/W</td><td>0x08-0x0d</td></tr><tr><td>40211</td><td></td><td>Module Name 1</td><td>R</td><td>0x8017</td></tr><tr><td>40212</td><td></td><td>Module Name 2</td><td>R</td><td>0x8017</td></tr><tr><td>40213</td><td></td><td>Version 1</td><td>R</td><td></td></tr><tr><td>40214</td><td></td><td>Version 2</td><td>R</td><td></td></tr><tr><td>40221</td><td></td><td>Channel Enable</td><td>R/W</td><td>0x00-0xFF</td></tr><tr><td>40269</td><td></td><td>Set MODBUS data format</td><td>R/W</td><td>0x0001=Hex 2&#x27;s format0x0000=engineering format</td></tr></table>

# 6.6.5. Modbus Engineering Data Format Table

<table><tr><td>Type Code</td><td>Input Type</td><td>Min.</td><td>Max.</td><td>Formula</td><td>Unit</td></tr><tr><td>08</td><td>-10V – +10V</td><td>-10000</td><td>+10000</td><td>Volt=(MODBUS data) /1000</td><td>V</td></tr><tr><td>09</td><td>-5V – + 5V</td><td>-5000</td><td>+5000</td><td>Volt=(MODBUS data) /1000</td><td>V</td></tr><tr><td>0A</td><td>-1V – +V</td><td>-10000</td><td>+10000</td><td>Volt=(MODBUS data) /10000</td><td>V</td></tr><tr><td>0B</td><td>-500 mV – +500 mV</td><td>-5000</td><td>+5000</td><td>Volt=(MODBUS data) /10</td><td>mV</td></tr><tr><td>0C</td><td>-150m V – +150mV</td><td>-15000</td><td>+15000</td><td>Volt=(MODBUS data) /100</td><td>mV</td></tr><tr><td>0D</td><td>-20 mA – +20 mA</td><td>-20000</td><td>+20000</td><td>Volt=(MODBUS data) /1000</td><td>mA</td></tr></table>

• Example: Assume type of channel 2 is +/-10V and MODBUS data=0x2030(Hex)=8240(Dec) The voltage of channel 2 is 8240/1000=8.24V.
• Example: Assume type of channel 1 is +/-500mV and MODBUS data=0xEF1B(Hex)=-4325(Dec) The voltage of channel 2 is -4235/10=423.5mV.
• Example: Assume type of channel 1 is +/-20mA and MODBUS data=0x3B84(Hex)=15236(Dec) The current of channel 2 is 15236/1000=15.236mA.

# 6.6.6. Modbus Hex 2’s Complement Data Format Table

<table><tr><td>Type Code</td><td>Input Type</td><td>Min.</td><td>Max.</td><td>Formula</td><td>Unit</td></tr><tr><td>08</td><td>-10V – +10V</td><td>8000</td><td>7FFF</td><td>Volt=(MODBUS data *10)/32767</td><td>V</td></tr><tr><td>09</td><td>-5V – + 5V</td><td>8000</td><td>7FFF</td><td>Volt=(MODBUS data *5)/32767</td><td>V</td></tr><tr><td>0A</td><td>-1V – +V</td><td>8000</td><td>7FFF</td><td>Volt=(MODBUS data *1)/32767</td><td>V</td></tr><tr><td>0B</td><td>-500 mV – +500 mV</td><td>8000</td><td>7FFF</td><td>Volt=(MODBUS data *500)/32767</td><td>mV</td></tr><tr><td>0C</td><td>-150m V – +150mV</td><td>8000</td><td>7FFF</td><td>Volt=(MODBUS data *150)/32767</td><td>mV</td></tr><tr><td>0D</td><td>-20 mA – +20 mA</td><td>8000</td><td>7FFF</td><td>Current=(MODBUS data *20)/32767</td><td>mA</td></tr></table>

• Example: Assume type of channel 2 is +/-10V and MODBUS data=0x2030(Hex)=8240(Dec) The voltage of channel 2 is (8240\*10)/32767=2.514V.
• Example: Assume type of channel 1 is +/-500mV and MODBUS data=0xEF1B(Hex)=-4325(Dec) The voltage of channel 2 is (-4235\*500)/32767=-64.622mV.
• Example: Assume type of channel 1 is +/-20mA and MODBUS data=0x3B84(Hex)=15236(Dec) The current of channel 2 is (15236\*20)/32767=9.299mA.

# 6.7. Modbus Address Mapping Tables (ND-6124)

There are two categories of ND-6124 commands: data access command sets and read/write module command sets. This section includes all commands used in NuDAM analog output module ND-6124.

# 6.7.1. Analog Output Formats

You can configure ND-6124 analog output modules to receive data from the host in one of the following data formats:

• Engineering units (default)
• Twos complement hexadecimal

Data for ND-6124 modules can be used in any of the following data formats:

# 6.7.1.1. Engineering Units

This format is chosen by command Address(00269) to setting 0. Data are presented in natural units such as mV/μA.

• Example 1: An analog output module (address 01h) is configured for a 0 to 20 mA (type code=0x30) range. If the output value is 3.567 mA, the format of the analog data out command should be “01 06 00 00 0D EF” by command (40001).
• Example 2: An analog output module (address 01h) is configured for a +10V to -10V V (type code=0x33) range. If the output value is -4.672 V, the format of the analog data out command should be “01 06 00 00 ED C0” by command (40001).

# 6.7.1.2. Twos Complement Hexadecimal

Twos Complement Hexadecimal format presents the data in hexadecimal form providing a rapid communication, high resolution, and easy conversion to a computer-compatible integer format. This format is chosen by command address (00269) to setting 1. Data are presented in natural units such as mV/μA. Output ranges with voltage and milliAmp values are used with the full, calibrated voltage range from C000 to 3FFF. For instance, an ND-6124 module is given a ±5 V output range. In this case, -5 V is represented as C000h and +5 V is denoted as 3FFFh (output resolution: 0.3052mV).

• Example 1: An analog output module (address 01h) is configured for a 0 to 20 mA (type code=0x30) range (output resolution: 1.2207uA). If the output value is 3.567 mA:

o This value (0x0B6A) is equivalent to the signed integer 2922.
o The hexadecimal value is 0x0B6A = 2922 = 3567uA/1.2207uA.
o The output value is 3.567 mA = 2922 \* 1.2207uA.
o The command should be “01 06 00 00 0B 6A” by address (40001).

• Example 2: An analog output module (address 01h) is configured for a +10V to -10V V (type code=0x33) range (output resolution: 0.6104mV). If the output value is -4.673 V:

o This value (0xE218) is equivalent to the signed integer -7656.
o The hexadecimal value is 0xE218 = -7656 = -4673mV/0.6014mV.
o The output value is -4.673 V = -7656 \* 0.6104mV.
o The command should be “01 06 00 00 E2 18” by address (40001).

# 6.7.2. Analog Output Type and Data Format Table

<table><tr><td>Type Code</td><td>Range</td><td>Format</td><td>Max.</td><td>Min.</td><td>Output Resolution</td></tr><tr><td rowspan="2">30 hex</td><td rowspan="2">0mA – 20mA</td><td>Engineer unit</td><td>20000</td><td>0</td><td>1uA</td></tr><tr><td>Hex Binary</td><td>3FFF</td><td>0</td><td>1.2207μA</td></tr><tr><td rowspan="2">31 hex</td><td rowspan="2">4mA – 20mA</td><td>Engineer unit</td><td>20000</td><td>4000</td><td>1uA</td></tr><tr><td>Hex Binary</td><td>3FFF</td><td>0</td><td>0.9766uA</td></tr><tr><td rowspan="2">32 hex</td><td rowspan="2">0V – +10V</td><td>Engineer unit</td><td>10000</td><td>0</td><td>1mV</td></tr><tr><td>Hex Binary</td><td>3FFF</td><td>0</td><td>0.6104mV</td></tr><tr><td rowspan="2">33 hex</td><td rowspan="2">-10V – +10V</td><td>Engineer unit</td><td>10000</td><td>-10000</td><td>1mV</td></tr><tr><td>2&#x27;s comp. HEX</td><td>3FFF</td><td>C000</td><td>0.6104mV</td></tr><tr><td rowspan="2">34 hex</td><td rowspan="2">0V – +5V</td><td>Engineer unit</td><td>5000</td><td>0</td><td>1mV</td></tr><tr><td>Hex Binary</td><td>3FFF</td><td>0</td><td>0.3052mV</td></tr><tr><td rowspan="2">35 hex</td><td rowspan="2">-5V – +5V</td><td>Engineer unit</td><td>5000</td><td>-5000</td><td>1mV</td></tr><tr><td>2&#x27;s comp. HEX</td><td>3FFF</td><td>C000</td><td>0.3052mV</td></tr></table>

# 6.7.3. General Commands

<table><tr><td>Address</td><td>Item</td><td>Attrib.</td></tr><tr><td>00257</td><td>Protocol, ASCII &amp; Modbus select.= 1 - Modbus RTU= 0 - ASCII</td><td>R/W</td></tr><tr><td>00272</td><td>Load factory calibration parameters= 1 - enable.</td><td>W</td></tr><tr><td>00273</td><td>Read module reset status= 1 - first read after powered on.= 0 - not the first read after powered on.</td><td>R</td></tr><tr><td>02208</td><td>CRC checking enable/disable (default) = 1 - enable.</td><td>R/W</td></tr><tr><td>02210</td><td>Reset the module to initial power-on status = 1 - enable.</td><td>W</td></tr><tr><td>40481-40482</td><td>Read Firmware version (version-1,version-2)</td><td>R</td></tr><tr><td>40483-40484</td><td>Read module name(name-1, name-2)</td><td>R</td></tr><tr><td>40485</td><td>Module address, valid range: 1 – 247</td><td>R/W</td></tr><tr><td>40486</td><td>Baudrate &amp; Parity setting.Bits(5:0) - 0x03 ~ 0x0A for baudrate 1200–115200.Bits(7:6) - Parity= 00 - Non-Parity, 1 stop bit (default)= 01 - reserved= 10 - even parity, 1 stop bit= 11 - odd parity, 1 stop bit</td><td>R/W</td></tr></table>

# 6.7.4. Watchdog Commands

<table><tr><td>Address</td><td>Item</td><td>Attrib.</td></tr><tr><td>00261</td><td>Host watchdog enable/disable= 1 - enable</td><td>R/W</td></tr><tr><td>00270</td><td>Host watchdog timeout statusFor function (0x01) : = 1 – timeout has occurred.For function (0x05) : 1 = clear flagFor function (0x0F) : 1 = clear flag</td><td>R/W</td></tr><tr><td>40489</td><td>Host watchdog timeout value (0–255, in 100ms)</td><td>R/W</td></tr><tr><td>40492</td><td>Host watchdog timeout count, write 0 to clear</td><td>R/W</td></tr><tr><td>43001–43004</td><td>Safe value of analog output for channel(0~3)</td><td>R/W</td></tr><tr><td>412345</td><td>Informs all modules that the host is OK(no response)</td><td>R</td></tr></table>

# 6.7.5. Emergency Digital Input Commands

<table><tr><td>Address</td><td>Item</td><td>Attrib.</td></tr><tr><td>00001–00004</td><td>Read Emergency digital Input for channel (0–3).1 = input high level (ON)0 = input low level (OFF)</td><td>R</td></tr><tr><td>02241–02244</td><td>Enable/Disable Emergency digital input flag for channel(0–3).For function (0x01): 1 = enableFor function (0x05): 1 = enableFor function (0x0F): 1 = enable.Note:The Emergency DI active flag will be cleared after command read.</td><td>R/W</td></tr></table>

# 6.7.6. Analog Commands

<table><tr><td>Address</td><td>Item</td><td>Attrib.</td></tr><tr><td>40001–40004</td><td>Analog output value of channel (0–3)Error Response (offset 02):= 0x00 - valid command */= 0x02 - invalid start address */= 0x03 - invalid data value */= 0x04 - host WDT timeout */= 0x05 - The Emergency DI was activated</td><td>R/W</td></tr><tr><td>40065–40068</td><td>Read back current analog output for channel(0–3)</td><td>R</td></tr><tr><td>40193–40196</td><td>Power on analog output value of channel(0–3)</td><td>R/W</td></tr><tr><td>00269</td><td>Analog output data format, = 0 - Hexadecimal, = 1 - Engineering (default)</td><td>R/W</td></tr><tr><td>40257–40260</td><td>Type code (0x30–0x35) for channel (0–3)</td><td>R/W</td></tr><tr><td>40289–40292</td><td>Slew rate (0x00–0x0F) control for channel (0–3)</td><td>R/W</td></tr></table>

# 6.7.7. Examples of Modbus RTU Commands

# 6.7.7.1. Protocol, NuDAM, ASCII, & Modbus Selection

• (00257) Read protocol and return modbus RTU is selected

Request: 01 01 01 00 00 01

Response: 01 01 01 01

• (00257) Set to NuDAM ASCII protocol

Request: 01 05 01 00 00 00

Response: 01 05 01 00 00 00

• (00257) Read protocol and return NuDAM ASCII is selected

Request: 01 01 01 00 00 01

Response: 01 01 01 00

# 6.7.7.2. (00272) Load Factory Calibration Parameters

Request: 01 05 01 0F FF 00

Response: 01 05 01 0F FF 00 ;return valid.

# 6.7.7.3. (40481–40482) Read Firmware Version (Version-1, Version-2)

Request: 01 03 01 E0 00 02

Response: 01 03 04 00 0A 02 00 ; 00 0A 02 00 (version: A02.00)

# 6.7.7.4. (40486) Set Baud Rate (9600) & Non-Parity

Request: 01 06 01 E5 00 06

Response: 01 06 01 E5 00 06 ;return valid.

# 6.7.7.5. (40193) Set Power-on Output Value + 7.654V for channel 0

Request: 01 06 00 C0 1D E6 ;for Engineer format

Response: 01 06 00 C0 1D E6 ; return valid.

# 6.7.7.6. Host Watchdog Timeout Operation

• (43001) Set +1.600V as safe output value of channel(0) return valid.

```txt
Request: 01 06 0B B8 0A 42
Response: 01 06 0B B8 0A 42
```

• (40489) Write host watchdog timeout value (20 sec)return valid.

```txt
Request: 01 06 01 E8 00 C8
Response: 01 06 01 E8 00 C8
```

• (00261) Set host watchdog timeout enable, return valid.

```txt
Request: 01 05 01 04 FF 00
Response: 01 05 01 04 FF 00
```

• (40001) Write +7.373V to analog output of channel(0), return valid.

```txt
Request: 01 06 00 00 2F 34
Response: 01 06 00 00 2F 34
;
wait 15 sec.....
```

• (00270) Clear host watchdog timeout counter, return watchdog timeout is set.

```txt
Request: 01 05 01 0D FF 00
Response: 01 05 01 0D FF 00
;
wait 25 sec......
watchdog times out and enters safe output mode
;
```

• (00270) Read host watchdog timeout status, return host watchdog timeout flag is set.

```yaml
Request: 01 01 01 0D 00 01
Response: 01 01 01 01
```

• (40001) Write +7.373V to analog output of channel(0), return host watchdog timeout occur.

```txt
Request: 01 06 00 00 2F 34
Response: 01 86 04
```

• (00270) Clear host watch dog timeout status, return host watchdog timeout flag is set.

```txt
Request: 01 05 01 0D FF 00
Response: 01 05 01 0D FF 00
```

• (40001) Write +7.373V to analog output of channel (0), return valid.

```txt
Request: 01 06 00 00 2F 34
Response: 01 06 00 00 2F 34
```

# 6.7.7.7. Analog Commands for Engineering Unit Format

• (00269) Set analog output to engineering format

```verilog
Request: 01 05 01 0C 00 01
Response: 01 05 01 0C 00 01 ;return valid.
```

• (40257) Set D/A type code to 0x33 for channel 0 (+/-10V)

```txt
Request: 01 06 01 00 00 33
Response: 01 06 01 00 00 33 ;return valid.
```

• (40260) Set D/A type code to 0x30 for channel 3 (0–20mA)

```txt
Request: 01 06 01 03 00 30
Response: 01 06 01 03 00 30 ;return valid.
```

• (40289) Set D/A slew to 0x00 (immediate) for channel 0

Request: 01 06 01 20 00 00

Response: 01 06 01 20 00 00 ;return valid.

• (40292) Set D/A slew to 0x00 (immediate) for channel 3

Request: 01 06 01 23 00 00

Response: 01 06 01 23 00 00 ;return valid.

• (40001) Output analog +7.654V for channel 0.

Request: 01 06 00 00 1D E6

Response: 01 06 00 00 1D E6 ;return valid.

• (40001) Output analog -3.654V for channel 0.

Request: 01 06 00 00 F1 BA

Response: 01 06 00 00 F1 BA ;return valid.

• (40004) Output analog +15.654mA for channel 3.

Request: 01 06 00 03 3D 26

Response: 01 06 00 03 3D 26 ;return valid.

# 6.7.7.8. Analog Commands for Hexadecimal Unit Format

• (00269) Set analog output to hexadecimal format

Request: 01 05 01 0C 00 00

Response: 01 05 01 0C 00 00 ;return valid.

• (40257) Set D/A type code to 0x33 for channel 0 (+/-10V)

Request: 01 06 01 00 00 33

Response: 01 06 01 00 00 33 ;return valid.

• (40260) Set D/A type code to 0x30 for channel 3 (0–20mA)

Request: 01 06 01 03 00 30

Response: 01 06 01 03 00 30 ;return valid.

• (40289) Set D/A slew to 0x00 (immediate) for channel 0

Request: 01 06 01 20 00 00

Reponse: 01 06 01 20 00 00 ;return valid.

• (40292) set D/A slew to 0x00 (immediate) for channel 3

Request: 01 06 01 23 00 00

Reponse: 01 06 01 23 00 00 ;return valid.

• (40001) Output analog +4.672V for channel 0.

Request: 01 06 00 00 1D E6

Reponse: 01 06 00 00 1D E6 ;return valid.

• (40001) Output analog -4.680V for channel 0.

Request: 01 06 00 00 E2 18

Reponse: 01 06 00 00 E2 18 ;return valid.

• (40004) Output Analog +9.343mA for channel 3.

Request: 01 06 00 03 3D E6

Reponse: 01 06 00 03 3D E6 ;return valid.

# Appendix A: INIT Pin (Switch) Operation

INIT mode has two functions: one for the reading module current configuration, and another for configuring the module baud rate and checksum.

# Reading Module Current Configuration

Each NuDAM module has a built-in EEPROM for storing configuration information such as address ID, type, and baud rate. If you forget the configuration of the module, you can use INIT mode to retrieve it. When the module is set to INIT mode, the default settings are ID=00, baud rate=9600, and checksum=disable.

The INIT switch is located on the rear side of NuDAM -6100 modules to allow easier access to INIT mode. For these modules, you can access INIT mode by sliding the Init switch to the Init (ON) position:

![INIT Switch\nInit\nON\nNormal](.nudam-6100-50-12126-1000-10/58560c9915c15cd74bb7723e49c3833792fa6f6ae2440ce81c79da53a6d3c749.jpg)

The following steps illustrate how to enable INIT mode and read the current configuration.

1. Power off the module.
2. Slide the INIT switch to the Init (ON) position.
3. Power on the module.
4. Send command \$002(cr) at 9600 baud rate to read the current configuration stored in the EEPROM.
5. Power off the module again.
6. Open the INIT pin to force the module to normal mode (or, slide the INIT switch to the Normal position).

# Configuring the Module Baud Rate and Checksum

Now that the module is set to INIT mode, you can change the baud rate or checksum state by sending the “Set module configuration” command (see 3.11).

The following steps show how to enable INIT mode and the change baud rate or checksum state.

1. Power off the module.
2. Slide the INIT switch to the Init (ON) position.
3. Power on the module.
4. Send command %AANNTTCCFF at 9600 baud rate to set the baud rate or checksum state (ID should be set to 00 in INIT mode).
5. Power off the module again.
6. Open the INIT pin to force the module to normal mode (or, slide the INIT switch to the Normal position).

# Appendix B: Module Status

Power-On Reset or Module Watchdog Reset will let all output go to Power-On Value. The module may also accept the host’s command to change the output value. Host Watchdog Timeout will let all digital output go to Safe Value.The host watchdog timeout flag is set, and the output command will be ignored. The module’s LED will go to flash and user must reset the Module Status via command to restore normal operation.

# Appendix C: Dual Watchdog Operation

Dual Watchdog = Module Watchdog + Host Watchdog

The Module Watchdog is a hardware reset circuit to monitor the module’s operating status. While working in harsh or noisy environments, the module may be down by the external signal. The circuit may let the continue to work without stopping. The Host Watchdog is a software function for monitoring the host’s operating status. Its purpose is to prevent the network/communication from problem or host halt. When a timeout occurs, the module will turn the all output into safe state to prevent any unexpected problems involving the controlled target. The E-8000 module with Dual Watchdog can make control system more stable and reliable.

# Appendix D: Reset Status

The reset status of a module is set when the module is powered on or when the module is reset by the module watchdog. It is cleared after the responding of the first \$AA5 command. This can be used to check whether the module has been reset. When the \$AA5 command responds that the reset status is cleared, that means the module has not been reset since the last \$AA5 command was sent. When the \$AA5 command responds that the reset status is set and it is not the first time the \$AA5 command was sent, it means the module has been reset and the digital output value has been changed to the power-on value.

# Appendix E: Input Latch

# Input Latch:

Each input channel has an internal latch for latching the pulse signal from the input. This latched state can be read by sending the “Read latched digital input “ command and cleared by sending the “Clear latched digital input” command (see 5.4.1.41).

For example, if the digital input is connected to a key switch. The key switch is a pulse signal.

Note: You may lose strike information by sending command \$AA6.

The digital input latch can latch the pulse and be read by sending the “Read latched digital input “ command. If the latched state=1, then a key strike occurred.

# Appendix F: Power-on & Safe Value

# Power-on Value:

Power-on values are used to set the module to the default output value when the module is turned on or when the watchdog timeout resets. This function is especially important in applications where the specified initial output states are required. You can set the power-on value by sending the “Set power-on/safe value” command (see 5.4.1.49).

# Safe Value:

Safe values are used to set the module outputs to the specified values when the host watchdog times out. If the host watchdog timer is enabled by sending the “Set host watchdog timeout value” (see 5.4.1.49), the host should send the “Host OK: (see 5.4.1.44) command periodically within the timeout value to refresh the timer; otherwise, the module will be forced to the safety state.

# Appendix G: Changing to the Modbus Protocol

NuDAM-6100 Modbus modules may come from the factory set with the Modbus RTU protocol set as the default protocol. If the module is connected to an ASCII network, the ASCII network may not recognize the module. This may be caused by incorrect settings. NuDAM-6100 modules should be set up for ASCII protocols instead of Modbus-rtu protocols.

The following steps show how set a NuDAM-6100 module to the Modbus protocol.

1. Configure the NuDAM-6100 Module using the NuDAM-6100 utility.
2. Initialize the NuDAM-6100 on an RS-485 network (we recommend initializing one module at a time).
3. With the module powered off, slide the INIT switch to the Init (ON) position.
4. Power on the module.
Wait 10 seconds for the module to initialize.
5. Use the NuDAM-6100 utility to search for the module and change the protocol (initial COM settings: 9600 baud, N-8-1). The utility will identify the module and permit the serial data protocol to be changed to the ASCII protocol.

Note: You can also change the address and COM port settings at this stage.

6. Click the module icon in the utility to access the module.
7. Update the settings by pressing the Update button.
8. Power off the module.
9. Slide the INIT switch to the Normal position.
10. Power on the module.

The module is now ready to be placed in the ASCII network.

# Appendix H: ND-6117 Calibration

Offset calibration is used to calibrate output offset when the input voltage is 0V.

# Calibration procedure:

1. Apply zero voltage to channel 0 of the analog module.
2. Issue configuration command with type=00–06.
3. Issue enable calibration command.
4. Issue zero offset calibration command.

<table><tr><td>Code</td><td>Type and Range</td></tr><tr><td>08</td><td>+/-10V</td></tr><tr><td>09</td><td>+/-5V</td></tr><tr><td>0A</td><td>+/-1V</td></tr><tr><td>0B</td><td>+/-500mV</td></tr><tr><td>0C</td><td>+/-150mV</td></tr><tr><td>0D</td><td>+/-20mA</td></tr></table>

# Appendix I: ND-6124 Calibration

Note: Please read through the instructions carefully and ensure that you fully understand the calibration procedure before attempting to calibrate the ND-6124.

# Current Calibration Procedure:

1. Connect the meter and external power source to the module’s current output channel N.

![+\n-\nmA-Meter\ni\nIoutN\nAGND](.nudam-6100-50-12126-1000-10/aeebe8c7ec26035a40ad257635d18d0790ab1b207541a7802c1211313db02070.jpg)

Figure 6: mA-Meter (Current Calibration)
![+\n-\nVolt-Meter\ni\nIoutN\nAGND](.nudam-6100-50-12126-1000-10/dc7757fc9d552627c5907f9723a7573ef288298bc8235094cfdf0ad8460a087b.jpg)

Figure 7: Volt-Meter (Current Calibration)

5. Warm up the module for 30 minutes.
6. Set protocol to ASCII mode using the NuDAM-6000 utility software.
7. Setting type to 30 (0 to 20mA) using the command "\$AA9NTTSS".
8. Output 0mA using analog output command "#AAN(data)”.
9. Check the meter and trim the output until 0mA matches by applying trim command "\$AA3NVV".
10. Repeat step 5 for trim calibration.
11. Perform 0mA calibration command to save min. calibration parameter using command "\$AA0N".
12. Output 20mA using analog output command "#AAN(data)".
13. Check the meter and trim the output until 20mA matches by applying trim command "\$AA3NVV".
14. Repeat step 9 for trim calibration.
15. Perform 20mA calibration command to save min. calibration parameter using command "\$AA1N".
16. Repeat steps 4 to 11 three times.

# Voltage Calibration Procedure:

1. Connect the meter to the module’s voltage output channel N.

![+\nV\n-\nVolt-Meter\nVoutN\nAGND](.nudam-6100-50-12126-1000-10/775bc37c00a16b675e01b6c08096eed44df3ec6ddcf4abba2806703e40e902e5.jpg)

Figure 8: Volt-Meter (Volage Calibration

2. Warm up the module for 30 minutes.
3. Set protocol to ASCII mode by using the NuDAM-6000 utility software.
4. Set type to 33 (-10V to +10V) using command "\$AA9NTTSS"4.
a. Output -10V using analog output command "#AAN(data)".
5. Check the meter and trim the output until -10V matches by applying trim command "\$AA3NVV".
6. Repeat step 5 for trim calibration.
7. Perform -10V calibration command to save min. calibration parameter using command "\$AA0N".
8. Output +10V by analog output command "#AAN(data)".
9. Check the meter and trim the output until +10V matches by applying trim command "\$AA3NVV".
10. Repeat step 9 for trim calibration.
11. Perform +10V calibration command to save min. calibration parameter using command "\$AA1N"
12. Repeat steps 4 to 11 three times.

Note: Reload the factory default calibration parameters and clear user calibration using command "\$AAS1".

# Safety Instructions

Read and follow all instructions marked on the product and in the documentation before you operate your system. Retain all safety and operating instructions for future use.

• Please read these safety instructions carefully.
• Please keep this User‘s Manual for later reference.
• Read the specifications section of this manual for detailed information on the operating environment of this equipment.
• When installing/mounting or uninstalling/removing equipment, turn off the power and unplug any power cords/cables.

• To avoid electrical shock and/or damage to equipment:

Keep equipment away from water or liquid sources.
Keep equipment away from high heat or high humidity.
 Keep equipment properly ventilated (do not block or cover ventilation openings).
 Make sure to use recommended voltage and power source settings.
 Always install and operate equipment near an easily accessible electrical socket-outlet.
Secure the power cord (do not place any object on/over the power cord).
 Only install/attach and operate equipment on stable surfaces and/or recommended mountings.
 If the equipment will not be used for long periods of time, turn off and unplug the equipment from its power source.

• Never attempt to fix the equipment. Equipment should only be serviced by qualified personnel.

# Getting Service

Ask an Expert: http://askanexpert.adlinktech.com

# ADLINK Technology, Inc.

<table><tr><td>Address:</td><td>9F, No.166 Jian Yi Road, Zhonghe District New Taipei City 235, Taiwan</td></tr><tr><td>Tel:</td><td>+886-2-8226-5877</td></tr><tr><td>Fax:</td><td>+886-2-8226-5717</td></tr><tr><td>Email:</td><td>service@adlinktech.com</td></tr></table>

# Ampro ADLINK Technology, Inc.

Address: 5215 Hellyer Avenue, #110, San Jose, CA 95138, USA

Tel: +1-408-360-0200

Toll Free: +1-800-966-5200 (USA only)

Fax: +1-408-360-0222

Email: info@adlinktech.com

# ADLINK Technology (China) Co., Ltd.

Address: 300 Fang Chun Rd., Zhangjiang Hi-Tech Park, Pudong New Area Shanghai, 201203 China

Tel: +86-21-5132-8988

Fax: +86-21-5132-3588

Email: market@adlinktech.com

# ADLINK Technology GmbH

Hans-Thoma-Straße 11

D-68163 Mannheim, Germany

Tel: +49-621-43214-0

Fax: +49-621 43214-30

Email: germany@adlinktech.com

Please visit the Contact page at www.adlinktech.com for information on how to contact the ADLINK regional office nearest you.
[🔗 Link to the original document](.nudam-6100-50-12126-1000-10/nudam-6100-50-12126-1000-10.pdf)
