In the fields of industrial process control, environmental monitoring, and automation testing, distributed data acquisition systems need to simultaneously process multiple signals such as analog signals (voltage, current, temperature), digital signals (switch status), and pulse signals (count/frequency). The ADLINK NuDAM-6000 series is based on the RS-485 bus and provides a complete modular solution from communication conversion, analog input/output to digital I/O and counters. This article is based on a comprehensive manual, which systematically outlines network construction, module selection, initialization configuration, analog calibration, watchdog protection, and command set application, providing on-site engineers with a full process operation manual from hardware installation to reliable data reading.
RS-485 Network Fundamentals and Communication Module Selection
The NuDAM-6000 series adopts a two-wire half duplex RS-485 multi station architecture, with a theoretical maximum of 256 nodes (limited by address coding) and a maximum length of 4000 feet (approximately 1200 meters) per bus segment. It supports simple daisy chain, branch, and free topology. High input impedance allows for the mounting of 128 modules in a single segment. If this number is exceeded or the distance is exceeded, an ND-6510 repeater needs to be added.
The communication module is the core entrance of the network:
ND-6520: RS-322 to RS-422/485 converter, default 9600 bps, 8N1, built-in automatic flow control. The baud rate and data format can be adjusted through the DIP switch on the body, but it is recommended to keep them as default only when using NuDAM.
ND-6530: USB to RS-232/422/485, plug and play, supports Windows/Linux, selects protocol mode through DIP switch, powered by USB bus.
ND-6531: An addressable RS-485/422 to RS-232 converter, which has an independent address as a slave and can connect serial and sub devices to the bus. Supports address mode and transparent mode (switched by the "Open Data Gate" command), and different baud rates can be set on the RS-485 and RS-232 sides.
Network construction steps: Connect ND-6520/6530 to the host, if extension is required, connect ND-6510, then initialize each I/O module and assign unique addresses.
Analog input module: 6013/6017/6018
1. ND-6013 RTD input module
3-channel thermistor input, supporting Pt100 (α=0.00385 or 0.003916) and Ni100/120, 2/3/4 wire system optional. Programmable temperature range (-100~100 ° C, 0~100 ° C, 0~200 ° C, 0~600 ° C) and pure resistance mode (0~60 Ω), resolution 16 bits, accuracy ± 0.1%, sampling rate 10 times/second. When wiring, pay attention to short-circuit the Sense terminal for the 2-wire system, and connect the compensating wire resistance for the 3/4 wire system according to the diagram.
2. ND-6017 Universal Analog Input
8-channel differential input (6 differential+2 single ended), programmable range: ± 150mV, ± 500mV, ± 1V, ± 5V, ± 10V, and ± 20mA (with an external 125 Ω resistor). 16 bit resolution, sampling rate of 10 times/second, isolation voltage of 5000Vrms. Input protection up to ± 30V (relative to AGND).
3. ND-6018 thermocouple input
8-channel differential input, supports nine types of thermocouples including J, K, T, E, R, S, B, N, and C, with built-in cold junction compensation (CJC). The programmable range includes ± 15mV~± 2.5V and ± 20mA. The sampling rate is 3 times/second (due to slow changes in thermocouple signals), and it has wire breakage detection function.
4. Simulate input commands and data formats
Read single channel: # (Addr) (ChannelNo)<CR>, response is>+1.6888<CR>.
Read all enabled channels: # (Addr) A<CR>.
Enable/disable channel: $(Addr) 5 (ChannelVal)<CR>, where the two hexadecimal bits of ChannelVal correspond to channels 0-7.
The data format supports engineering units (such as+1.6888 V),% FSR (+10.00%), and 16 bit binary complement (such as 7FFF corresponding to full scale). Configure the Data Format field in the% settings command (Figure 6-1).
Calibration: Specific offsets and full voltage/resistance are required for different ranges. Taking ND-6017 as an example, the offset calibration input is 0V, and the full-scale calibration input corresponds to the full-scale voltage (such as+10V for ± 10V range). Send $(Addr) 1 (offset) and $(Addr) 0 (full degree) five times each, repeat twice. The calibration voltage is detailed in Tables 9-1 to 9-3, and it is essential to use a precision source.
Analog output module: 6021/6024
1. ND-6021 single channel analog output
The output can be programmed to 0~20mA, 4~20mA, or 0~10V, with a 12 bit resolution and an accuracy of ± 0.1% (current)/± 0.2% (voltage). Built in watchdog protection, supports safety value setting and output readback.
2. ND-6024 four channel analog output
4-channel bipolar ± 10V output (voltage only), 12 bit resolution, accuracy ± 0.02%, while providing 7 TTL digital inputs. Output command format: # (Addr) (Port) (OutData)<CR>, where Port is A/B/C/D, OutData needs to match the configured data format (only supports engineering units).
3. Output calibration (taking 4-20mA as an example)
Connect a 250 Ω precision resistor (1% accuracy) to IOUT+/-, and measure the voltage with a 5.5-inch multimeter (1V corresponds to 4mA, 5V corresponds to 20mA).
Send the output 4mA command, use the fine-tuning command $(Addr) 3 (Counts)<CR>(Counts are hexadecimal, positive plus negative minus) to fine tune to 1.000V, and then execute $(Addr) 0 to save the 4mA calibration.
Similarly, output 20mA and fine tune to 5.000V, then execute $(Addr) 1 to save the 20mA calibration.
Execute $(Addr) 4 to save the current value as the default power on value.

Digital I/O and Relay Module
6050:7 digital inputs (TTL)+8 open collector electrode outputs (50mA).
6052: 8-way isolated input (6 differential+2 single ended), 5000Vrms.
6053:16 inputs (dry/wet contacts), with an effective distance of 500 meters for dry contacts.
6054:15 isolated inputs (common power type).
6056:15 isolated open collector electrode output (common ground type), high drive version can reach up to 300mA.
6058:28 programmable I/O, analog 8255 PPI mode 0, 24 configurable inputs/outputs+4 dedicated inputs, 50 pin SCSI interface.
6060:4 relays (2 Form C+2 Form A)+4 isolated inputs.
6063: 8-way Form A relay (DC/AC load).
6067: 8-way AC relay (3A/250VAC).
Example of digital output command (6050): # (Addr) 00 (Data)<CR>sets all 8 channels, # (Addr) 1X (0/1)<CR>sets a single channel. 6056/6058 supports multi port operation, please refer to the manual for details.
Digital input reading: $(Addr) 6<CR>, returns the current input status and output readback value (if applicable).
Counter/Frequency Module 6080
ND-6080 provides two 32-bit counters, supporting isolated or non isolated inputs, with a frequency measurement range of 1Hz~20kHz, built-in programmable digital filter (pulse width 4 μ s~1.02ms), and adjustable trigger level (TTL threshold can be set to 0.1~5V, step size 0.1V). Two open collector electrode outputs can be used as alarm outputs or universal DO.
Key commands:
Set input mode (isolation/TTL): $(Addr) B (InType)
Read count value (hexadecimal): # (Addr) (CounterNo)
Read frequency value (decimal): # (Addr) (CounterNo) D
Set maximum count value (overflow alarm): $(Addr) 3 (CounterNo) (MaxData)
Start/Stop Count: $(Addr) 5 (CounterNo) (SStatus)
Alarm Enable/Disable: @ (Addr) EA (CounterNo)/@ (Addr) DA (CounterNo)
Set alarm limit: @ (Addr) PA (ArmData) (counter 0)/SA (counter 1)
Digital output settings: @ (Addr) DO (DoD ata)
Filter settings can effectively suppress on-site jitter, for example, setting a minimum width of 100 μ s for high-level at $300H0100, below which it is considered noise.
Host watchdog and safety value protection
All modules with output functions (analog output, digital output, relays) support host programmable watchdog. When the host does not send the "~* *<CR>" (Host is OK) command within the set timeout (100ms~25.5s, step size 100ms), the module automatically switches the output to the preset safe value to prevent actuator misoperation after the host crashes.
Set command (using 6050 as an example):~(Addr) 2 (Flag) (TimeOut) (SafeValue)<CR>. For example,~0621121C enables watchdog, timeout of 1.8 seconds, safety value 0x1C (channels 2, 3, and 4 are high). The multi-channel modules (6024, 6056, 6058) need to specify the safety values for each port/channel separately. Read the current settings using~(Addr) 3<CR>.
Attention: After the watchdog is enabled, the host must periodically broadcast~* *<CR>(no response) and reset the timers of all modules.
Module initialization and address allocation
All newly purchased modules have factory address=01, baud rate=9600, and verification disabled. To avoid conflicts, it is necessary to enter the default state (address=00, baud rate=9600) through the DEFAULT * pin for configuration.
Steps:
Short circuit the DEFAULT * pin to GND and then power it on.
Connect to the host through ND-6520 (set to 9600) and send the configuration command% (OldAddr) (NewAddr) (TypeCode) (BaudRate) (CheckSumFlag)<CR>. For example, changing address 01 to 30, keeping 9600, and disabling verification:% 0130400600<CR>(40 is the digital I/O type code; For the simulation module, here is the input range code.
Response! 30 indicates success. Disconnect DEFAULT * and turn it back on to take effect.
Note: The configuration command for ND-6531 is more complex, requiring the specification of a DataFlag (4 characters) and the setting of RS-232 side parameters. Please refer to Section 6.2.1 for details.
Command protocol and checksum calculation
All commands are in ASCII format: (LeadingCode) (Addr) (Command) [Data] [Checksum]<CR>. Guide codes include $(read), # (write),% (configure),~(watchdog/special), @ (alarm), etc. Respond with! (Effective) or? (Invalid) Start with.
When checksum is enabled, calculate the ASCII code accumulation sum (boot code+address+command+data) and take the lower byte, represented in two hexadecimal digits. For example, in the command $012B7<CR>, B7 is the checksum. It is usually recommended to disable validation to simplify debugging, but it can be enabled in environments with severe interference.
Software Tools and Maintenance Suggestions
ADLINK provides the "NuDAM Administration" Windows tool, which supports searching networks, configuring parameters, terminal simulation, batch commands, and calibration wizards. Network Search can automatically scan addresses 01~FF and list online module information.
Daily maintenance:
Regularly check the wiring: tighten the screw terminals to ensure that the shielding layer is grounded at a single point.
Terminal resistance: Connect a 120 Ω resistor in parallel at both ends of the bus to prevent signal reflection.
Avoid live plugging and unplugging: especially for the DEFAULT * pin, be sure to disconnect the power during operation.
Environmental temperature: ND-6018 CJC calibration needs to be carried out at a stable room temperature and preheated for 30 minutes.
Firmware version: Through the $(Addr) F query, there may be differences in the support for different versions of commands (such as 6013 calibration command limited to specific versions).
Typical Troubleshooting Table
Troubleshooting steps
Unable to search for module check power supply (10~30V); Confirm RS-485 polarity (DATA+connected to Y, DATA - connected to G); Is the baud rate 9600; Is DEFAULT * accidentally grounded.
Check if the input range configuration is correct when there is a large deviation in the simulated reading; Perform offset and full-scale calibration; For thermocouples, confirm that CJC is enabled and calibrate.
Simulate output without any changes and check the output range setting; Confirm that the watchdog has not been triggered (use~Addr3 to check); Check if the load resistance is appropriate.
The digital output does not respond to the confirmation command format; For 6058, check if the corresponding port is set to output mode; Is the watchdog safety value covered.
Count inaccurate check input mode (isolation/TTL) and trigger level; Adjust the pulse width of the digital filter; Confirm the external door control status.
Check if the feeding cycle of the host is less than the timeout value when the watchdog is accidentally triggered; View~Addr3 to read the current status; If disabled, send~Addr20000.
