Configuring CP1L Modbus RTU Easy Master for 3G3JX and V1000 Drives
This reference walks through commissioning an Omron CP1L CPU as a Modbus RTU Easy Master against a Yaskawa-built 3G3JX (and equivalent V1000) inverter. The same architecture applies to CP1H and CJ1W-SCU serial option boards. The goal is run/stop, forward/reverse, frequency reference, and parameter read/write over RS-485 with the CP1W-CIF11/CIF12 option, plus an optional NS/CX-Designer HMI for operator control.
Communications section (PDF page 162 onward of the 3G3JX manual) as the authoritative register source, then subtract 1 from the documented coil or register address before issuing any Modbus request.1. System Overview and Topology
The serial gateway on the CP1L converts Modbus RTU requests from a SCADA/HMI into Modbus RTU to the inverter without requiring a custom protocol macro. The Easy Master functionality ships in the CP1L firmware; no option board is required for the controller side, but a CP1W-CIF11 (RS-422/485) or CP1W-CIF12 (RS-422/485 isolated) must be installed in the right-hand option slot of the CP1L.
| Layer | Component | Function |
|---|---|---|
| Controller | CP1L-M30DR-A (or CP1L-L) | Modbus RTU Easy Master on port 2 |
| Serial option | CP1W-CIF11 / CIF12 | RS-232C to RS-422/485 conversion, DIP-switch configured |
| Drive | Omron 3G3JX / Yaskawa V1000 | Modbus RTU slave, node address 1 |
| HMI | Omron NS or CX-Designer simulation | Operator control and indication |
| Physical | RS-485 2-wire shielded twisted pair | Termination 120 ohm at both ends |
2. Supported Modbus Function Codes on the 3G3JX
The 3G3JX inverter responds to the following Modbus function codes. Implement only what you need; most projects use 03 and 10.
| Code | Mnemonic | Purpose on 3G3JX |
|---|---|---|
| 01 | Read Coils | Read run/stop, FWD/REV, fault status bits |
| 03 | Read Holding Registers | Read parameter values, output frequency, output current |
| 05 | Write Single Coil | Force run/stop, FWD/REV bits |
| 06 | Write Single Register | Write a single parameter |
| 0F (15) | Write Multiple Coils | Write multiple control bits in one transaction |
| 10 (16) | Write Multiple Registers | Write frequency reference or parameter block |
The minimum functional set for run/stop and frequency reference uses only 03 (read) and 10 (write multiple registers). Use 05 or 0F for bit-level control when you want direct mapping to discrete PLC outputs.
3. Hardware Wiring
3.1 CP1W-CIF11 / CIF12 DIP Switch Configuration
Set the on-board DIP switches before powering the PLC. Default mode is RS-232C; the switches below select RS-422/485 2-wire mode needed for the 3G3JX.
| Switch | Position | Meaning |
|---|---|---|
| SW1 | OFF | RS-422/485 selected (ON = RS-232C) |
| SW2 | OFF | RS-422 (use ON for RS-485 4-wire if needed) |
| SW3 | ON | Termination resistor 120 ohm enabled |
| SW4 | OFF | No termination on RD/RD pair |
| SW5 | OFF | Not used for 2-wire |
| SW6 | OFF | Not used for 2-wire |
3.2 3G3JX Communication Terminal Wiring
The 3G3JX serial port uses a removable screw terminal block. Pinout for RS-485 2-wire (Modbus RTU):
| Terminal | Signal | Connect to |
|---|---|---|
| + | S+ (RS-485 A) | CP1W-CIF11 RDA- / SDA |
| - | S- (RS-485 B) | CP1W-CIF11 RDB+ / SDB |
| GND | Isolated ground | CIF11 FG (functional ground) |
| SP | Shield drain point | Earth ground at one end only |
4. 3G3JX Parameter Configuration
Configure the inverter before attaching it to the network. The exact parameter number is the same on Yaskawa V1000 (C0xx block) and 3G3JX.
| Param | Setting | Meaning |
|---|---|---|
| A001 | 3 |
Frequency reference source = Modbus |
| A002 | 3 |
Run/Stop command source = Modbus |
| B089 | 1 |
Monitor display = Output Frequency |
| C070 | 3 |
Operator / Modbus selection = Modbus |
| C071 | 5 |
Baud rate = 9600 |
| C072 | 1 |
Modbus node address = 1 |
| C074 | 0 |
Parity = None (recommended for Modbus) |
| C075 | 1 |
Stop bits = 1 |
| C076 | 2 |
Modbus error behavior = Ignore and continue |
| C077 | 0 |
Communication error timeout = 0 (no timeout) |
| C078 | 0 |
Communication wait time = 0 |
C074 at the factory default (Even parity). Modbus RTU specifies 8N1. If the PLC transmits with no parity and the inverter listens for even parity, every frame is rejected and no LED activity will be observed. Reset to 0 before commissioning.After writing parameters the inverter typically requires a power cycle for communication settings to take effect. C076 = 2 prevents nuisance trips while you are debugging the link; tighten this to 1 (coast to stop) or 3 (decelerate) before handover.
5. CP1L Modbus Easy Master Setup
CX-Programmer exposes the Easy Master block as a function block on port 2 when the option board is recognised. Configure the port first.
5.1 PLC Port Settings
| Field | Value |
|---|---|
| Serial communications mode | Serial Gateway |
| Communications baud | 9600 |
| Data bits | 8 |
| Stop bits | 1 |
| Parity | None |
Selecting Serial Gateway routes any Modbus RTU frame sent to the PLC's serial port through to port 2 untouched, which is what enables direct SCADA/Master traffic and Easy Master traffic to reach the inverter.
5.2 PMCR Instruction and Source Words
The Easy Master function uses the standard PMCR instruction. The protocol macro area is pre-loaded with the Modbus master protocol. The relevant control words are:
| Operand | Purpose |
|---|---|
| C1 | Protocol macro area number (omit or 0 for built-in Easy Master) |
| C2 | Sequence number (0 = Modbus RTU master) |
| S (D32300) | Starting DM word with command block |
| D (D32350) | Result/status area |
The first five DM words beginning at D32300 contain the request to transmit. A typical Write Single Register (function 06) request to set Accel time on node 1:
| Word | Hex | Meaning |
|---|---|---|
| D32300 | #0001 | Node address = 1 |
| D32301 | #0006 | Function code = 06 (Write Single Register) |
| D32302 | #00C8 | Register address = 0x00C8 = 200 (Accel parameter F002 on V1000) |
| D32303 | #000A | Register value = 10 (1.0 s at 0.1 s resolution) |
| D32304 | #0000 | Reserved / padding |
When sending a Write Multiple Registers (function 10) to set the frequency reference, populate the command block with function code #0010, the starting register address (for frequency reference this is 0x0001 in the command area), the register count, and the data bytes in subsequent words. The exact layout is documented in the CP1L Easy Master reference; always subtract 1 from any address listed in the 3G3JX manual when entering it into the source block.
5.3 Sample Ladder
| Run Enable (W0.00) |
+---[ ]---[PMCR C1=0 C2=0 S=D32300 D=D32350 ]---(W0.01 Done)---
| |
| +---[W0.01]---[MOV #1 D32300] (node)
| +---[W0.01]---[MOV #6 D32301] (function code)
| +---[W0.01]---[MOV #00C8 D32302] (parameter addr - 1)
| +---[W0.01]---[MOV #000A D32303] (value)
+---[ ]---[A640.00] (Start request)
The example above shows the structure, not the exact rung order. In production code you would normally pre-populate D32300 through D32304 with MOV instructions at first scan and only toggle the PMCR rung on a transition.
6. Reading the Frequency Reference and Status
Function code 03 reads holding registers. To read the current output frequency on the 3G3JX, request register address 0x1001 (decimal 4097). After subtracting 1, the Modbus register passed in the request is 4096.
Reading the drive status word (run, direction, fault) uses coil addresses listed in the inverter manual. Coil address 0x0001 = run command, 0x0002 = reverse direction, 0x0003 = external fault reset, and so on. Subtract 1 from every address you read out of the manual.
7. CX-Designer HMI Integration
The same Easy Master traffic is visible to a CX-Designer NS panel or any OPC client that speaks Modbus TCP/RTU to the CP1L's serial gateway. To run a virtual NS against the live PLC:
- Build the project in CX-Designer against the target NS type.
- From the Tools menu launch CX-Designer Simulation. The simulator binds to the PLC selected in CX-Programmer.
- Confirm the simulator is connected by toggling a bit registered in the project; the bit state should appear in the PLC's input/output monitor within one scan.
- Wire the run and frequency reference buttons to PLC addresses that the Easy Master program converts into Modbus requests to the 3G3JX. The simulator will then issue real traffic against the live inverter.
The simulator cannot open a serial gateway if the NS screen's host connection settings disagree with the CX-Programmer port settings (baud, parity, stop bits). Match the CX-Designer NS project host parameters exactly to those in section 5.1.
8. Using CX-Drive for Parameter Backup and Restore
Omron's CX-Drive tool can parameterise the 3G3JX over Modbus RTU even though the drive is a Yaskawa design. CX-Drive loads an EDS/IODD-style object dictionary that mirrors the parameter list. The risk of overwriting drive firmware through a parameter upload is zero: CX-Drive only writes parameter values, never firmware. If a parameter upload appears to break communications afterward, the cause is usually a serial-port parameter (C071, C072, C074) being overwritten with a value that disagrees with the master.
Recovery steps after a botched upload:
- Disconnect the network cable so the PLC stops talking.
- On the inverter keypad navigate to the communications block (group C) and verify A001, A002, C070, C071, C072, C074, C075.
- Reset to the values in section 4 above. DriveWizard Plus or the keypad can do this; the inverter does not require a firmware reflash.
- Power-cycle the inverter to commit changes.
- Reconnect RS-485 and run a known-good Modbus request (function 03 to read frequency) to verify.
9. SCADA Integration via Serial Gateway
For a direct PC-to-inverter Modbus link, leave the PLC out of the path and use CX-Driver with a USB-to-RS-485 converter, or use OPC KEPware with the Omron/Yaskawa driver. The Modbus node address, baud, and parity settings are identical to those in section 4. Use one Modbus master per bus at a time; the Easy Master code on the CP1L and an external SCADA master cannot share the bus without an arbitrator.
10. Troubleshooting Matrix
| Symptom | Likely cause | Fix |
|---|---|---|
| No LED activity on CIF11 | Wrong option slot, RS-232C mode selected | Move option board to right-hand slot, set SW1 OFF |
| Inverter RX LED flashes, no response | Parity mismatch (Even vs None) | Set C074 = 0 and PLC parity to None |
| PMCR completes but drive ignores command | A001/A002 not = 3 | Set frequency source and run source to Modbus |
| Frequency reads as 0 Hz during run | Wrong register address or wrong scaling | Verify register map; JX reports Hz * 10 in holding register |
| PLC error 0x80F0 or similar comms error | Serial port not in gateway mode | PLC Settings > Port 2 > Serial Gateway |
| Drive faults on C076 after parameter upload | C076 = 0 or 1; upload change to comms params caused timeout | Restore comms parameters, set C076 = 2 during commissioning |
| NS simulator shows offline | Baud or parity mismatch in CX-Designer host settings | Match host settings to PLC port settings exactly |
| Drive parameter upload "breaks" communications | Comms parameters overwritten by upload | Reset group C parameters to section 4 values |
11. Verification Procedure
- Power-cycle the inverter after writing any C0xx parameter.
- From CX-Programmer, force a function 03 read of the output frequency register. Confirm the response word returns a non-zero scaled value when the drive is running.
- Issue a function 06 write of register 0x0001 (frequency reference) with a small value (e.g. 100 = 10.0 Hz). Confirm the drive accelerates to the commanded frequency.
- Use a function 05 write to coil 0x0001 (run forward). Confirm the drive starts. Use function 05 write of coil 0x0001 with value 0 to stop.
- Launch the NS simulator and exercise the run/stop/speed screen end-to-end.
- Set C076 back to the required production value (1 or 3) once stable.
12. References
FAQ
Which Modbus function codes does the 3G3JX support?
The 3G3JX supports function codes 01 (read coils), 03 (read holding registers), 05 (write single coil), 06 (write single register), 0F/15 (write multiple coils), and 10/16 (write multiple registers). For typical run/stop and frequency commands, only 03 and 10 are required.
Do I subtract 1 from every register or coil address in the 3G3JX manual?
Yes. The 3G3JX manual lists addresses as 1-based for the user's convenience. The actual Modbus register on the wire is the address minus 1. Always subtract 1 before populating the PMCR command block.
Can CX-Designer simulation really run the inverter?
Yes, if the CP1L is running a working Modbus Easy Master program. The NS simulator talks to the PLC, not the drive. If the PLC's PMCR block is correctly issuing Modbus frames to the drive, the simulator buttons become live control surfaces for the physical inverter.
Did uploading parameters from CX-Drive overwrite the drive firmware?
No. Modbus RTU only exposes parameter registers; firmware cannot be written through this link. If communications stop working after a parameter upload, the upload overwrote the C0xx comms parameters (C071 baud, C072 node, C074 parity). Restore them and power-cycle.
What is the recommended PLC port 2 configuration?
Serial Gateway mode at 9600 baud, 8 data bits, no parity, 1 stop bit (8N1). This matches the inverter's C071 = 5 and C074 = 0 settings and complies with the Modbus RTU standard. The CP1W-CIF11 must have SW1 OFF (RS-422/485) and the 120 ohm termination enabled only if the PLC is at the end of the trunk.