Omron INV_Refresh_X31 Function Block Setup for JX VFD Networks

James Nishida13 min read
OmronSerial CommunicationTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The _INV002_Refresh_X31 function block provides a streamlined path for sending frequency references from an Omron CJ2- or CS1-series PLC fitted with a Serial Communication Unit (SCU) to a network of Omron JX-series (or MX-series) variable-frequency drives. On multi-axis machinery such as the 24-drive installation described in the source field case, configuring the function block correctly eliminates per-node ladder logic, replaces raw protocol messages with declarative parameters, and lets the PLC treat an entire Mechatrolink-compatible drive network as a contiguous memory array.

The function block is supplied as a CX-Programmer library file (_INV002_Refresh_X31.cxf) and is documented in the Omron Industrial Automation KB article W420-E1-/W421-E1- 3G3MX2/3G3JX Inverter Comms via INV_Refresh_X31. It targets any drive class that accepts the Mechatrolink-II slave profile with explicit I/O areas: JX (type list bit = 1) and MX (type list bit = 0).

Prerequisites

Item Specification
PLC CPU Omron CJ2M-CPU3x, CJ2H-CPU6x, CS1D-CPU6x or later with SCU support
Communication unit CJ1W-SCU21-V1 / CJ1W-SCU31-V1 / CJ1W-SCU41-V1 (RS-422/485 Mechatrolink master) or CS1W-SCU21-V1
Inverters Omron 3G3JX (or 3G3MX) series, firmware supporting Mechatrolink-II I/O profile
Programming software CX-Programmer 9.6x or later, INV_Refresh_X31.cxf function block library
Network media Shielded twisted pair, characteristic impedance 100 Ω, RJ45 pass-through or terminal block
Termination 120 Ω across the S+/S− pair at the last node (DIP switch or external 3G3AX-CTR150-EE)
Before configuring, verify the SCU unit number on the physical rotary switch (0–F). This switch position becomes the Unit selection parameter in the function block and must match exactly, or no node will respond to scan list commands.

Function Block Parameter Reference

The function block exposes six configuration inputs plus the trigger and status signals. Each input is documented below with the legal value range, the field-decoded meaning, and the recommended default for a JX-only network.

1. Unit selection (&0–&15)

Hard-coded from the SCU front-panel rotary switch. Unit 0 is reserved for the PLC's own serial port; CJ1W-SCU21-V1 occupies &0 only when mounted in CPU slot 0. Typical multi-network installations use units &0 through &5, one SCU per physical network, to keep cable runs short and reduce contention on Mechatrolink polling.

2. Serial port No.

Selects port 1 (RS-422/485 Mechatrolink) or port 2 (RS-232C maintenance). Set to &1 for normal operation. Port 2 is reserved for CX-Drive connectivity and is not scanned by the function block.

3. Scan List No. (hex mask of participating drives)

A 16-bit mask where each bit enables or disables communication with the matching node number. Bit 0 corresponds to node 1, bit 1 to node 2, and so on. For a network of nodes 1, 2 and 3 the mask is binary b1110 = #7. For the full 24-drive installation the mask becomes b111111111111111111111110 = #FFFFFE for a 24-bit, three-word scan list; the function block accepts one word per instance, so cascade instances for > 16 nodes.

Node set Bit pattern (binary) Hex mask
1 b......1 #1
2 b.....1. #2
3 b....1.. #4
1,2,3 b....111 #7
1–4 b...1111 #F
1–8 b.1111111 #7F
1–16 b1111111111111111 #FFFF
1–24 b0001 1111 1111 1111 1111 1111 1110 #1FFFFE

4. Type List (drive family selection)

Same bit layout as the Scan List, but each bit encodes the drive family: 0 = MX, 1 = JX. For a homogeneous JX network the mask is identical to the Scan List: #7 for nodes 1–3, or #1FFFFE for nodes 1–24.

If a single function block instance controls mixed MX/JX drives, populate the Type List bit pattern matching the corresponding node. MX drives expect control-word layout B; JX drives use layout A. Mismatching the family flips the RUN/STOP and direction bits, and the drive will refuse to start while logging a control-word-parity error.

5. I/F Area ID (memory area selector)

Decides which PLC memory bank holds the frequency-reference table. The function block accepts the constants listed in the Omron KB article:

Constant Hex Area Range
P_CIO #00B0 CIO area 0000–6143
P_WR #00B1 Work area 0000–511
P_HR #00B2 Holding area 0000–511
P_DM #0082 DM area 0000–32767
P_EM0 #0050 EM bank 0 0000–32767
P_EM1 #0051 EM bank 1 0000–32767
P_EMC #005C EM bank C 0000–32767

6. I/F Area No. (starting address)

Word address where the frequency-reference table begins. Each drive occupies one 16-bit word. The example in the source uses #0082 for the area ID and &100 for the address, which places the table in D100 onwards — D100 = node 0, D101 = node 1, D102 = node 2, D103 = node 3, continuing sequentially.

Word Drive node Content (0.01 Hz units)
D100 0 Frequency reference, drive address 0
D101 1 Frequency reference, drive address 1
D102 2 Frequency reference, drive address 2
D103 3 Frequency reference, drive address 3
D104… 4… One word per participating node
Frequency scaling is determined by JX parameters A001 (Frequency Reference Selection) combined with A002 (RUN command source). With A001 = 04 (Network) and A002 = 04 (Network) the value written into the table is interpreted in 0.01 Hz units; a value of 5000 produces 50.00 Hz at the motor shaft.

Step-by-Step Configuration

  1. Import _INV002_Refresh_X31.cxf into CX-Programmer via File → Library Setup → Add.
  2. Drop an instance (e.g., INV002_Refresh_X31_000) on the ladder sheet.
  3. Set U (unit) to the SCU unit number read from the rotary switch.
  4. Set P (port) to &1.
  5. Set SL (scan list) to the hex mask corresponding to the node set you want to control from this instance.
  6. Set TL (type list) identically if all drives are JX; flip the appropriate bits to 0 if any are MX.
  7. Set AI (area ID) to #0082 for DM area.
  8. Set AN (area number) to the starting word, e.g. &100 for D100.
  9. Wire the execution input to a normally-open contact of the PLC Run flag so the FB polls every scan.
  10. Download and switch the PLC to Run mode.

Network Wiring and Topology

The JX drive exposes the Mechatrolink-II signals on a single RJ45 female jack labelled CN2. The pin assignment for RS-485 differential signalling is non-standard versus Ethernet:

RJ45 Pin Signal Mechatrolink-II assignment
1 S+ Transmit / Receive +
2 S− Transmit / Receive −
3, 4 Reserved (do not parallel-wire to neighbouring nodes)
5, 6 SG Signal ground strap, used as reference only
7, 8 Unused for data

The minimum viable link uses two twisted pairs, with the cable homerun terminated in 120 Ω at the farthest node. The SCU end presents a fixed internal terminator across its RJ45 port.

Do not parallel-wire two RJ45 cables inside a single jack. The Mechatrolink bus is a daisy-chain, not a star. Use either: (a) drive-to-drive RJ45 patch cables with an inline terminator at the end, or (b) wire the bus through a passive terminal block such as the Omron 3G3AX-CTB020-EE connector and the 3G3AX-CTR150-EE 150 Ω terminator (two in parallel yield the required 75 Ω SE, or use a single 120 Ω across S+/S−). The MX-series drive provides a screw-terminal option that is preferred for cabinets with more than eight drives because it eliminates the front-panel cable clutter.

Termination Resistor

Mechatrolink-II requires 120 Ω across the S+ and S− pair at both ends. The SCU unit internal resistor must be enabled by parameter on most revisions. For the JX drive, enable the on-board terminator by setting the DIP switch on the option board or by inserting the 3G3AX-CTR150-EE module on the last drive only. A complete loss of communication was traced in the source case to a combination of an open bus and an incorrect protocol-init parameter; the fix was twofold: install the termination resistor AND configure the drive's protocol-init parameter correctly.

Alternative: Easy Modbus

For small networks or temporary work, Omron's CJ2/CS1 PLCs include an Easy Modbus RTU master function block set as part of the Function Block Library. It removes the requirement for an SCU card and works over a standard RS-485 Modbus RTU network, allowing up to 31 JX slaves on a single cable. The trade-off is slower poll rates (≈100 ms per node minimum) and no native I/O area mirroring. Choose the INV_Refresh_X31 path when:

  • More than eight drives share a single network.
  • The cycle-time requirement is < 50 ms.
  • You want to avoid hand-rolled 06/03 Modbus messages.

Choose Easy Modbus when:

  • Drive count is small (≤ 8).
  • An SCU slot is unavailable.
  • The wiring topology must remain Modbus-RTU for compatibility with third-party drives.

Verification

After configuration, validate the link with these three checks.

Check 1: Scan-List Echo

Force one node's frequency word to a known value (e.g., D101 = 3000 for 30 Hz). Power-cycle the drive, observe the keypad display — it should report 30.00 Hz after the next poll. A persistent 0.00 Hz with no fault indicates the node is reachable but the function block is not yet writing.

Check 2: Status Word Read-Back

Mirror the drive status word into a separate DM block (typically two words behind the frequency table). A non-zero value confirms full bidirectional operation. Look for bit 0 (RUN) and bit 1 (UP-TO-SPEED) to verify commissioning.

Check 3: Diagnostic Counter

The function block increments an internal error counter on every failed transaction. After 30 seconds of clean operation the counter should remain zero. Rising counts on a specific node indicate a topology problem on that segment (missing terminator, swapped pair, or open shield).

Troubleshooting: Parameter b084 = 02

The decisive fix in the source field case came from the JX inverter's protocol-init parameter. The JX drive uses an internal parameter called "Communication Protocol Selection" which determines how the option board is allowed to start exchanging I/O with the master. The factory default is 00 (digital reference only), which locks the network port.

Parameter Default Required value Effect
b084 00 02 Enables Mechatrolink-II / INV_Refresh profile on the JX option board

Symptom

The PLC transmits the scan list successfully (the SCU LED flickers at the configured poll rate), but every drive reports a communication error. The function block's error counter increments continuously. Drives display CE or PRERR on the keypad.

Root Cause

Parameter b084 on the JX drive selects between Modbus RTU slave mode and the Mechatrolink-compatible servo profile. Even though the option hardware is installed and addressed correctly, parameter b084 = 00 prevents the option board from accepting any I/O requests; the master times out on every scan. Setting b084 = 02 (INV profile) unblocks the link immediately and the network comes up within one poll cycle. The same parameter exists on MX-series drives under the same code, with identical logic — but the legal values differ (MX uses 01 = Mechatrolink, 02 = Modbus). Confirm the parameter map in the drive's O.M. manual against your drive series before applying b084 = 02.

Resolution Procedure

  1. Enter the drive's parameter mode by pressing the PRG key on the JX keypad.
  2. Navigate to b084 using the up/down arrow keys.
  3. Press SET, change the value to 02, press SET again to confirm. The display briefly shows Entry accepted.
  4. Cycle power to the drive (do not rely on a soft reset) so the option board reconfigures with the new protocol.
  5. From the PLC, force a frequency word. The drive should respond within 1–2 scan cycles.

Verification

Confirm that the SCU active-node LED count matches the scan-list mask and that the error counter remains at zero for at least 60 seconds. Drives should now report the commanded frequency without the CE fault. Capture a Mechatrolink trace on the SCU maintenance page if any node remains silent; the trace reveals which slave address is not echoing.

Field-Proven Caveats

  • Cable bend radius: Mechatrolink-II cables in industrial cabinets typically occupy 30–60 mm of clearance; the RJ45 connector on the JX option board (CN2) protrudes roughly 30 mm above the front face, so plan your gland layout to prevent stress on the jack.
  • Node numbering vs. drive address: The function block's scan list bit 0 is drive node 1; the JX parameter C102 (or F006 on some firmware revisions) sets the node address. Misalignment is a common source of "drive 1 responds, drive 2 silent" complaints.
  • Parameter save: Always commit b084 by holding SET for ≥ 2 s. Quick taps write to RAM only and revert on power-cycle.
  • SCU unit number clash: Two SCU cards set to the same unit number share the same address; this is invisible to the function block and presents as random communication timeouts. The default convention is unit 0 = leftmost slot, incrementing rightward.
  • Poll saturation: A SCU21-V1 can sustain ≈ 1.5 ms per node round-trip. With 24 nodes the minimum cycle is 36 ms; verify your machine's synchronisation requirement before exceeding 32 nodes per SCU.
  • Shielding on VFD panels: Route the Mechatrolink cable at least 200 mm from inverter output power cabling. The common-mode noise radiated by IGBT switching can corrupt S+/S− even with proper shielding.
  • Ground loops: Tie signal ground (pin 6) to panel ground at one end only — typically the SCU end. Looping SG at multiple nodes creates a 50/60 Hz hum that mimics communication errors.

Application Notes

On a 24-axis packaging line, the function block can be split into two instances — one for nodes 1–16 (mask #FFFF) and one for nodes 17–24 (mask #1FE0000) — to keep each instance's data table inside a single 16-bit word and avoid bank boundary crossings. The DM area is preferred over the HR area in this scenario because DM supports indexed addressing via *DM, which enables indirect-frequency-setpoint programming in the surrounding ladder.

For cabinets with mixed-frequency drives (e.g., a 50 Hz main section and a 200 Hz trim section), write the per-node maximum frequency into the corresponding DM word scaled to 0.01 Hz, then clamp the value in ladder before the function block scans. Hard-coding the same word value for every node is acceptable in homogeneous machinery only.

Related Documentation

The official Omron literature for this configuration includes the CJ1W-SCU21-V1 Operation Manual (cat. no. W420-E1), the 3G3JX Series Inverter User's Manual (cat. no. I558-E1), the 3G3MX2 Series Inverter User's Manual (cat. no. I574-E1), and the CX-Programmer Function Block Library Reference (cat. no. W447-E1). The Mechatrolink-II standard is maintained by the Mechatrolink Members Association. Drive parameter b084 is documented in the JX Parameter List annex of I558-E1 chapter 5.

FAQ

What is the difference between Scan List and Type List in the INV_Refresh_X31 function block?

The Scan List defines which nodes participate in I/O exchanges — one bit per drive, 1 = included. The Type List tells the function block which drive family each bit represents (0 = MX, 1 = JX), so it can format the control/status word layout correctly. Use identical bit patterns when the network is homogeneous; flip the appropriate bit to 0 only when an MX drive replaces one of the JX nodes.

Why does the function block parameter Unit selection require &0 to &15 instead of a decimal number?

CX-Programmer literals prefixed with & are unsigned decimal constants, which match the SCU unit-numbering convention on the rotary switch (0 through F, expressed here as 0 through 15). Setting &5 means unit 5, regardless of where the SCU is physically mounted. Hex literals such as &5 vs. #5 are equivalent for this range.

Why is the Mechatrolink network silent until parameter b084 is changed?

Parameter b084 = 00 (factory default on the JX drive) leaves the option board in disabled state — only Modbus RTU traffic is accepted. b084 = 02 enables the INV profile so the option board can handshake with the SCU master and accept I/O updates. Without b084 = 02 the master times out on every poll, even though the hardware is correctly installed.

Do I need a termination resistor, and where?

Yes. Mechatrolink-II is a 100 Ω differential bus and requires 120 Ω termination at both the SCU end and the farthest drive. Some SCU modules have internal resistors that must be enabled by switch; for the last drive on the chain either flip the JX termination DIP switch on the option board or fit the 3G3AX-CTR150-EE external terminator. Without termination the bus exhibits reflections that corrupt half of the polls.

Should I use Easy Modbus or INV_Refresh_X31 for a 24-drive network?

Use INV_Refresh_X31. Easy Modbus is convenient for ≤ 8 drives but becomes a polling bottleneck at higher counts and lacks the I/O mirror that lets the PLC treat drives as contiguous memory. INV_Refresh_X31 also supports cycle times below 50 ms across the full 24-drive link, whereas Easy Modbus typically settles around 100 ms per node.

Back to blog