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.