Share this

The ZMIO310 expansion module for the EtherCAT bus of the motion controller/motion control card is used.

2026-04-06 05:42:29 · · #1

I. ZMIO310 Series Expansion Modules

II. Wiring and Use of the ZMIO310-ECAT Communication Module

III. ZMIO310 Submodule Wiring Reference

IV. ZMIO310-ECAT Extended Digital I/O and Analog AD/DA Address Offset Settings

V. Modifying Analog Measurement Range and Enabling Channels in the ZMIO310-ECAT Expansion Module

VI. Analysis of Common Problems with ZMIO310 Expansion Modules

ZMC432CL-V2 32-axis bus-type motion controller with pulse full closed loop.

The ZMC432CL-V2 is a high-performance motion controller with high-speed real-time feedback and supports pulse full closed-loop control, enabling high-precision, high-response motion control. Its high-precision positioning effectively eliminates mechanical transmission errors, meeting the requirements of high-precision machining applications.

1. Hardware functional characteristics

(1) Rich motion control functions: supports linear, circular, spatial circular, and helical interpolation.

(2) Rich hardware interfaces: Supports pulse axis (with encoder feedback) and EtherCAT bus axis, with 24 inputs and 12 outputs of general IO, some of which are high-speed IO, and 2 analog outputs (DA).

(3) EtherCAT refresh cycle is as fast as 250us, which meets the requirements of high-speed communication.

(4) Supports 4-channel hardware comparison output, hardware timer, and precise output during motion, suitable for multi-channel visual aerial photography and other occasions.

(5) Supports power failure detection and power failure storage, and multiple program encryption methods, which can effectively prevent system failures, protect project engineering file data, and improve system reliability.

(6) Project development is carried out through the domestic IDE development environment RTSys, which can perform real-time simulation, online tracking, diagnosis and debugging. It is easy to use and supports secondary development through joint programming of multiple high-level host computer languages.

2. Main Features

(1) Develop various equipment using readily available APIs.

(2) Stepper Motor External Grating Ruler Full Closed-Loop Solution

① The ZMC4 series offers high-efficiency network port read/write capabilities, and PCIe/PCI series cards can share a memory interface (batch read/write of shared memory takes 3-5µs);

② Built-in backlash compensation, bidirectional pitch compensation, 2D plane compensation, etc.;

③ It can simultaneously support the mixed use of pulse axis and EtherCAT axis motion;

④ The open PT/PVT interface allows customers to customize the secondary programming of acceleration and deceleration algorithms;

01. ZMIO310 Series Expansion Module

The ZMIO310 series expansion modules are vertical bus expansion modules that support both EtherCAT and CAN bus modes for expanding digital I/O, analog AD, and DA signals.

When the controller's own IO, AD, and DA resources are insufficient, they can be expanded by using coupler modules (ECAT, CAN communication modules) in conjunction with other expansion sub-modules; the sub-modules include digital input ports (DI), digital output ports (DO), analog input ports (AD), and analog output ports (DA).

The coupler and composable submodules are as follows:

Subsequent submodule expansion capabilities

The ZMIO310-ECAT communication module can be expanded to a maximum of 16 sub-modules, supporting mixed expansion. However, there are limitations on the number of sub-modules that can be expanded: ZMIO310-16DI, ZMIO310-16DO, ZMIO310-8AD, and ZMIO310-8DA. The actual number needs to be limited by the power consumption of each module.

For example, after the ZMIO310-ECAT coupler is expanded to 8 AD and 8 DA, no other sub-modules can be expanded; or after the ZMIO310-ECAT coupler is expanded to 16 DI, no other sub-modules can be expanded.

02. Wiring and Use of ZMIO310-ECAT Communication Module

The ZMIO310-ECAT communication module uses a standard 100Mbps Ethernet RJ45 port for its EtherCAT interface, which supports the EtherCAT protocol.

Materials needed for wiring:

1. One motion controller master station

2. ZMIO310-ECAT communication modules (select the number according to expansion needs, with a maximum of 16).

3. ZMIO310 Post-Stage Extension Submodule (Select according to requirements)

4. Several 24V DC power supplies

5. Several network cables: Choose Cat6e shielded twisted-pair cables with RJ45 connectors featuring metal sheaths;

6. Several wires

Wiring steps (refer to the wiring diagram below):

1. Connect the positive and negative terminals of a DC 24V power supply to E+24V and EGND of the main controller, respectively; (Positive power supply terminal — E+24V; Negative power supply terminal — EGND)

2. Connect the positive and negative terminals of another DC 24V power supply to the +24V and GND terminals of the ZMIO310-ECAT communication module, respectively; (Positive power supply — +24V; Negative power supply — GND)

3. Connect the other power supplies to the corresponding power input interfaces on the subsequent expansion submodules. (For detailed wiring instructions, please refer to Section 3: Submodule Wiring Reference)

4. Connect one end of a network cable to the EtherCAT interface on the main controller, and the other end to the EtherCAT IN port of the ZMIO310-ECAT module. If expanding with multiple EtherCAT modules, use another network cable to connect the first ZMIO310-ECAT module's EtherCAT OUT port, and the other end to the EtherCAT IN port of the next-level module, and so on…

5. After verifying that the wiring is correct, turn on the power. After powering on, the ERR error light on the ZMIO310-ECAT will remain solid red. At this point, you need to proceed to the next step. (There are two scenarios: If a bus driver is being used, simply download the bus initialization template program; if no bus driver is being used, only step 6 needs to be completed.)

6. After powering on, the ZMIO310-ECAT requires a bus enable operation. This can be done by sending the following command in RTSys's "Online Commands":

SLOT_SCAN(0) 'Bus scan' SLOT_START(0) 'Bus start'

After following the steps above, if the ERR light on the ZMIO310-ECAT communication module does not illuminate, it indicates that the bus has been successfully started.

Note: When wiring, ensure that EtherCAT IN connects to the previous module and EtherCAT OUT connects to the next module. The IN and OUT ports cannot be used interchangeably.

EtherCAT interface specifications

03. ZMIO310 Submodule Wiring Reference

ZMIO310-16DI Digital Input Submodule Wiring Reference

Input port NPN type wiring reference:

Input port PNP type wiring reference:

ZMIO310-16DO/DOP Digital Output Submodule Wiring Reference

NPN type output port wiring reference:

Output port PNP type wiring reference:

ZMIO310-4AD Analog Input Submodule Wiring Reference

Voltage input port wiring diagram:

Wiring diagram of current input port:

ZMIO310-4DA Analog Output Submodule Wiring Reference

Voltage output port wiring diagram:

Wiring diagram of current output port:

04. ZMIO310-ECAT Extended Digital I/O and Analog AD/DA Address Offset Settings

The purpose of address offset is to prevent resource conflicts when using the digital I/O or analog I/O resources on the expansion module, since the master station (motion controller) or other slave devices (drivers, etc.) connected to the expansion module may already have a certain number of I/O or AD/DA converters. In other words, the starting addresses of the digital I/O and analog AD/DA converters on the expansion module need to be offset.

Note: Digital I/O and analog I/O addresses must not be the same as the I/O addresses of other master and slave stations!

Digital I/O address offset

1. Before performing IO mapping, you need to check the maximum IO number of the master station (controller) itself (including external IO interfaces and IO interfaces within the pulse axis, etc.).

2. The starting address offset of digital I/O connected using the ZMIO310-ECAT communication module can be directly achieved using the NODE_IO instruction.

For detailed syntax of the commands, please refer to the table below:

For example:

If the master station is a motion controller ZMC432-V2, directly connect the first expansion module ZMIO310-ECAT+ZMIO310-16DI+ZMIO310-16DO, and then connect the second expansion module ZMIO310-ECAT+ZMIO310-16DOP.

1. Determine the equipment slot number and equipment number.

Slot number: This refers to the number of the bus interface on the controller. The EtherCAT bus slot number is 0. Since the ZMC432-V2 is a single-bus controller, the slot number for the EtherCAT interface is 0. If the master station is a dual-bus controller and uses both EtherCAT and RTEX buses, then the EtherCAT bus interface slot number is 0, and the RTEX bus interface slot number is 1. Otherwise, if only one bus is used, the slot number is 0 for both.

Device Number: The device number refers to the number of all devices connected to a slot. It starts from 0 and is automatically numbered according to the connection order of the devices on the bus. The total number of devices connected to the bus can be viewed using the NODE_COUNT(slot) command. In this example, the device number of the first expansion module ZMIO310 is 0, and the device number of the second expansion module is 1.

2. Determine the maximum number of digital I/O operations on the main station.

First, you need to check the user manual of the main station controller, namely the "ZMC432-V2 Controller User Manual", to find that the maximum number of the controller's digital input IN is 29 and the maximum number of the digital output OUT is 17. Then take the larger value, 29, as the maximum number of I/O numbers used by the main station.

The ZMIO310 extension module requires the digital I/O address to be offset to 29 or higher. Due to instruction syntax limitations, the starting number can only be set to a multiple of 8, so the digital I/O address of the ZMIO310 should be at least 32.

3. Use instructions to offset the starting address of I/O.

Configure this using the NODE_IO directive, sent in the EtherCAT initialization procedure or RTSys's "Online Commands": NODE_IO(0,0)=32

4. After modification, you can open "Controller Status - Slot 0 Node" in RTSys to check if the IO address has been modified successfully.

Analog AD/DA address offset

1. Before performing IO mapping, you need to check the maximum analog input number of the master station (controller).

2. The starting address offset of the analog AD/DA converter connected using the ZMIO310-ECAT communication module can be directly achieved using the NODE_AIO instruction.

For example, the operation method is the same as for digital I/O address offset. The difference lies in the instruction used: "NODE_AIO".

In the EtherCAT initialization procedure or RTSys's "Online Commands" command, send: NODE_AIO(0,0)=8

After modification, you can view the changes by opening "Controller Status - Slot 0 Node" in RTSys.

05. ZMIO310-ECAT expansion module analog range modification and channel enabling

This article only introduces the analog range modification and channel enable functions. For more functions, please refer to the "ZMIO310 Extension Module User Manual". The usage of the commands is generally the same as the functions described below, but the data dictionaries for different functions are different.

(I) Understanding the concepts related to range modification

Before modifying the analog quantity range, let's understand a few essential concepts:

Range type

The ZMIO310 analog input accuracy reaches 16 bits and supports up to six range types. These can be categorized by signal type (voltage and current) and by polarity (unipolar and bipolar). The default range type is 0~10V. See the table below for details:

Local Post-Extension Address

After the ZMIO310-ECAT communication module is powered on, it will scan the local downstream expansion interfaces and assign an expansion address to each scanned expansion sub-module.

After the ECAT communication module powers on, it scans the submodules, assigning addresses starting from 0 and sequentially according to the order of connection. The first expansion submodule connected to the communication module has an extended address of 0, the second expansion submodule has an extended address of 1, and so on…

For example, consider the following scenario: the local back-end interface of the ECAT communication module (ZMIO310-ECAT) is connected to three input modules (ZMIO310-16DI), two output modules (ZMIO310-16DO or ZMIO310-16DOP), one AD module (ZMIO310-4AD), and one DA module (ZMIO310-4DA) in sequence. The address allocation is shown in the table below:

Data dictionary

Modifying the analog range involves writing data to the ZMIO310-ECAT module. This requires first locating the data dictionary that controls range modification and then using the bus command SDO_WRITE to write the data. The data dictionary is shown in the table below:

Based on the table above, we can obtain the following information:

The index number is determined by 5001h plus the extended address of the simulated quantum module to be operated on. That is, when the extended address of the simulated quantum module is 0, the index number is 5001h; when the extended address of the simulated quantum module is 3, the index number is 5004h, and so on…

Sub-index: 01h is the sub-index that controls the range modification; 02h is the sub-index that controls the enable function of the four analog channels.

Data types: 00h is an unsigned 8-bit data type; 01h is an unsigned 16-bit data type; 02h is an unsigned 16-bit data type.

Data values: Refer to the numerical definitions in the sub-tables of the table. For example: in 01h, the data value corresponding to the 0~20mA range type of the AD module is 5; in 02h, the data value corresponding to the AD sub-module being fully enabled is 15.

(II) Understanding commands related to modifying/reading analog quantity ranges

After understanding the key information above, you can use the SDO_WRITE command to modify the analog measurement range, and use "SDO_READ" to read the analog measurement range. Now let's look at the syntax of this command, as shown in the table below:

Combining the above two tables, "Data Dictionary" and "SDO_WRITE Command Syntax," we can write:

The command syntax for modifying the analog range of the ZMIO310-ECAT module is as follows:

SDO_WRITE(slot, node, $(5001 + extended submodule address), 1, 6, value);

The command syntax for reading range type values ​​is as follows:

SDO_READ(slot, node, $(5001 + extended submodule address), 1, 6, tablenum)

The instruction to enable the AD analog channel is written as follows:

SDO_WRITE(slot,node, $(5001+address of extended submodule),2,6,value)

(III) Procedure for Modifying Analog Quantity Range

Example: Assume the device used is a ZMC432-V2 motion controller as the master station, connected via an EtherCAT interface to expansion modules ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD. Since the default range type is 0~10V, to change the range type of the 4DA and 4AD submodules to 0~20mA, the operation is as follows:

1. Determine the slot number and device number. Since the ZMC432-V2 is a single-bus controller, the EtherCAT slot number is 0; since the ZMC432-V2 is directly connected to the ZMIO310 expansion module, the device number is 0.

2. Determine the address of the local downstream extended submodule. From the content of "(I) Local downstream extended address", we can obtain that the extended address of the DA module is 3 and the extended address of the AD module is 4.

3. Determine the corresponding data dictionary index number, sub-index number, and data type to be operated on. Based on “(I) Data Dictionary Table” and the extended address obtained in step 1, the data dictionary index number for the DA module is 5001+3=5004h; the index number for the AD module is 5001+4=5005h. According to the table, the sub-index number corresponding to modifying the analog range is 01h. The data type is UNSIGNED16.

4. Determine the data values ​​corresponding to the modified range type. According to "(I) Range Type", the data value corresponding to 0~20mA for the DA module is 13; the data value corresponding to 0~20mA for the AD module is 5.

5. Modify the range using the SDO_WRITE command. Based on “(II) SDO_WRITE Command Syntax” and the parameter information obtained above, as well as the data type UNSIGNED16 corresponding to the value 6, write the following in the program or send it via “online command”:

SDO_WRITE(0,0,$5004,1,6,13) 'Modifies the analog range of the DA module to 0~20mA' SDO_WRITE(0,0,$5005,1,6,5) 'Modifies the analog range of the AD module to 0~20mA'

6. To read the range, use the SDO_READ command. Based on "(II) SDO_READ Command Syntax" and the parameter information obtained above, write the command into the program or send it via "online command":

SDO_READ(0,0,$5004,1,6,0) 'Reads the range type data value from the DA module and stores it in register table(0)?table(0) 'Prints the value read from the register SDO_READ(0,0,$5005,1,6,10) 'Reads the range type data value from the AD module and stores it in register table(10)?table(10) 'Prints the value read from the register

For complete use cases, please refer to "(V) Complete Use Cases for Each Function of ZMIO310".

(IV) Enable operation steps for each channel of analog input/output

For example:

Assume the following equipment is used: a ZMC432-V2 motion controller as the master station, connected via EtherCAT interface to expansion modules ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD. Normally, all channels are enabled by default. Assume only channels 0 and 1 of the 4AD module are enabled, and the remaining channels are disabled. The operation is as follows:

1. Determine the slot number and device number. Since the ZMC432-V2 is a single-bus controller, the EtherCAT slot number is 0; since the ZMC432-V2 is directly connected to the ZMIO310 expansion module, the device number is 0.

2. Determine the address of the local subsequent extended submodule. From the content of "(I) Local Sub-Level Extended Address", we can obtain that the extended address of the AD module is 4.

3. Determine the corresponding data dictionary index number, sub-index number, and data type to be operated on. Based on “(I) Data Dictionary Table” and the extended address obtained in step 1, the index number of the AD module is 5001 + 4 = 5005h. According to the table, the sub-index number corresponding to modifying channel enable is 02h. The data type is UNSIGNED16.

4. Determine the corresponding enabled data values ​​for channels 0 and 1. According to "(I) Data Dictionary", the corresponding data value for enabling only channels 0 and 1 in the AD module is 3;

Use the SDO_WRITE instruction to modify the channel enable. Based on "(II) SDO_WRITE Instruction Syntax" and the parameter information obtained above, as well as the data type UNSIGNED16 corresponding to the value 6, write the following in the program or send it via "online command":

SDO_WRITE(0,0,$5005,2,6,3) 'Only enable channels 0 and 1 of the AD module'

(V) Complete use cases for each function of ZMIO310

Assume the following equipment is used: a ZMC432-V2 motion controller as the master station, connected via EtherCAT interface to expansion modules ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD. The default range type is 0~10V and all channels are open. The requirement is to change the range type of the 4DA and 4AD submodules to 0~20mA. Furthermore, for the 4AD submodule, only channels 0 and 1 should be enabled, and the remaining channels should be disabled. The operation is as follows:

FOR i=0 to 3 SLOT_STOP(0) 'Stop bus delay(200) 'Delay 200ms SLOT_SCAN(0) 'Scan bus IF NODE_COUNT(0) THEN EXIT FOR 'Exit loop when the number of connected devices on the bus is not zero DELAY(1000) 'Delay 1000ms NEXTIF NODE_COUNT(0) <> 0 THEN SDO_WRITE(0,0,$5004,1,6,13) 'Modify the analog range of the DA module to 0~20mA SDO_WRITE(0,0,$5005,1,6,5) 'Modify the analog range of the AD module to 0~20mA SDO_READ(0,0,$5004,1,6,0) 'Read the range type data value of the DA module and store it in the table(0) register?table(0) 'Print the value read from the register SDO_READ(0,0,$5005,1,6,10) 'Read the range 1 data value of the AD module and store it in the table(10) register?table(10) 'Print the value read from the register SDO_WRITE(0,0,$5005,2,6,3) 'Only enable channel 0 and channel DELAY(200) of the AD module SLOT_START(0) 'Start the bus? "Bus started successfully" ELSE "Bus started failed" ENDIF

After completing the correct wiring as described in the above sections, create a new project file (.zpj) and a basic file in the RTSys software. Copy the above code to the programming area of ​​the basic file. Set the automatic execution task number for the basic file and click Download to RAM/Download to ROM. See the image below. (For a complete RTSys creation process, please refer to the "RTSys User Manual").

06. Analysis of Common Problems with ZMIO310 Expansion Modules

(i) The ZMIO310-ECAT expansion module cannot be detected (you can check in the RTSys software under 【Controller Status】→【Slot 0 Node】to see if the expansion device is displayed).

1. Check the power wiring of the expansion module. Is the power supply on? Are the terminal connections loose? Is the wiring stuck to the insulating layer?

1. Check if the EtherCAT interface network cable is loose;

2. Check/replace the network cable. It is recommended to use Cat6e shielded twisted-pair cable.

3. Check if there are other nodes causing alarms or disconnections;

(ii) The ERR indicator light on the ZMIO310-ECAT module remains constantly on upon power-up.

1. Bus initialization not performed. Devices using the EtherCAT protocol interface require bus initialization, i.e., bus scan → bus enable process; (refer to steps 5 and 6 of "II. Wiring and Use of ZMIO310-ECAT Communication Module" in this document for operation instructions).

(III) The status of the three indicator lights of the ZMIO310-ECAT module is shown in the table below:

(iv) The analog input of the ZMIO expansion module is unresponsive/the output value cannot be read.

1. Check the power supply wiring. Is the analog module supplied with a separate power supply? Is the power supply voltage DC 24V?

2. Check if the analog module channel wiring is correct. The wiring for voltage type ranges and current type ranges is different. (Refer to "III. ZMIO310 Submodule Wiring Reference" in this document for wiring instructions.)

3. Check whether the type and range of the measuring range used are consistent with the actual wiring.

4. Check if the AD module channels are enabled. (Refer to "V. Enabling Procedures for Each Channel of Analog AD Module" in this document for enabling instructions.)

5. Check if the analog input number range of the expansion module conflicts with other devices. (The analog input number can be viewed through the RTSys software under [Controller Status] → [Slot 0 Node]. For mapping methods, please refer to "IV. ZMIO310-ECAT Expansion Digital I/O and Analog AD/DA Address Offset Settings" in this document.)

(v) ZMIO expansion module digital input/output is unusable or malfunctioning.

1. Check if the input/output modules are powered separately. Is the power supply voltage DC 24V?

2. Check if the wiring on the input/output interfaces of the 16DI and 16DO submodules is correct or loose;

3. Check whether the input type of the external I/O device is consistent with the type of the ZMIO expansion module. (The ZMIO310 input module supports NPN and PNP type inputs, but the power supply wiring methods are different. Please refer to "III. ZMIO310 Submodule Wiring Reference" in this document for details.)

4. Check if the I/O number range of the expansion module conflicts with other devices. (You can check the I/O through [Controller Status] → [Slot 0 Node] in the RTSys software. For mapping methods, please refer to "IV. ZMIO310-ECAT Expansion Digital I/O and Analog AD/DA Address Offset Settings" in this article.)

That concludes our sharing of the EtherCAT bus ZMIO310 expansion module usage for ZhengMotion Technology's motion controller/motion control card.

For more exciting content, please follow the "Zheng Motion Assistant" WeChat official account. For related development environment and example code, please contact Zheng Motion's technical sales engineer: 400-089-8936.

This article is original content from Zheng Motion Technology. We welcome everyone to reprint it for mutual learning and to jointly improve China's intelligent manufacturing level. Copyright belongs to Zheng Motion Technology. Please indicate the source if you reprint this article.

Read next

CATDOLL EQ (Sleepy Q) 108CM

Height: 108cm Weight: 14.5kg Shoulder Width: 26cm Bust/Waist/Hip: 51/47/59cm Oral Depth: 3-5cm Vaginal Depth: 3-13cm An...

Articles 2026-02-22