Technical FAQs

Ask a Question

Setting up a WRITE_Var command to have a M340 PLC write data over a Serial (Modbus) link.

Goals and Symptoms

M340 PLC & WRITE_VAR

Causes and Fixes

First in you Unity program open the configuration and double click on the serial port.


Configure the serial port as needed for your application.
Note: The port must be set to Master for the WRITE_Var to function.

In this example the port is set for RS485, 19200,8,E,1
The Rack, Module, Channel (r.m.c) for the Serial port is always 0.0.0 for a M340 processor




Next go to Tools and Project Settings



In the Project Settings that the last 3 items in the Data types field are checked off.
This will allow us to directly enter Arrays into our project rather than having to first declare them as variables.



Next add a ADDM block to your program, link the OUT pin to the ADR pin of the Read_Var block, and enter the appropriate String to the IN pin.
For Modbus communication the syntax for the IN pin of the ADDM block uses the form r.m.c.e where:
r = rack
m = module
c = channel
e = equipment

The equipment is the slave Modbus address.
Remember that this input is a String so you need ' before and after the text.

Next configure the remaining parameters of the WRITE_Var where:

OBJ = String declaring the type of object to read (%MW or %M)
NUM = The starting register address in the slave TCP/IP device of the object type
NB = The # of registers to read
RECP = Array of length NB where the data to be written is stored.
GEST = Array of length 4 where the Management Exchange table for the WRITE_Var is located

Note: The Array's are of type INT if declared as variables.


This example will write 5 registers from %MW10-14 to %MW101-105 in a slave at Modbus address 15

 
Was this helpful?
What can we do to improve the information ?