
WireBiter665 (Customer) asked a question.
I would really like to find out what I'm doing wrong by trying to accomplish this. Here's where I'm at...
SOLO 4848 Temp Controller with comm settings as follows:
CoSH = on
C-SL = rtU
C-no = 2
bPS = 9600
LEn = 8
Prty = EvEn
StoP = 1
In the Productivity Hardware configuration under the CPU for Serial ports (RS-485 port) I have:
Port Name = CPU-485
Port Security = Read/Write
Protocol = Modbus RTU
Baud Rate = 9600
Node Address = 1
Parity = Even
Data Bits = 8
Stop Bits = 1
Timeout = 5 x 100 msec
For the Modbus Read Instruction I have:
Serial Port CPU-485
Slave Node Number 2
Automatic Polling 100 / 0
Don't Skip Exec.
No Word Swap
No 32 Bit Data to 16 Bit Mapping
Slave Modbus Start Address 4097
Modbus Decimal Addressing
Modbus Function Code 3: Read Holding Registers
Non-Array Tag that I named Temp_PV
Wiring:
RS-485 + terminal goes to SOLO terminal 9
RS-485 - terminal goes to SOLO terminal 10
I do see the lights flicker. The Rx light stays on most of the time but flickers off now and then. The Tx light is off most of the time but flickers on now and then. I also have a Write Instruction with all the same settings as the read except the start address is 4098 and Function Code 6: Write Single Register and the tag name is Temp_SV.
I set a couple rungs using the Read Error and Write Error bits to turn on latching output relays but they aren't coming on so I'm assuming there are no errors.
Has anyone done this?
Sorry. I typed that in wrong. RS-485 + goes to terminal 10 and - goes to terminal 9.
My bad. I just tried mapping the 16 bit to 32 bit data and it seems to have done the trick.
I'm glad you got it sorted out.
Here is a post that is doing the exact same thing.
https://accautomation.ca/productivity-1000-series-plc-modbus-rtu-serial-communication/
This is part of the P1000 series:
https://accautomation.ca/series/productivity-1000-plc/
You may find some additional information you can use.
Regards,
Garry
Thank you, Garry.
I do notice, though, that he does not have the box checked for mapping 32 bit data to 16 bit. When I don't have that box checked, I get a temperature reading (tag Temp_PV) of 47382028 for a temperature of 72.2. He does have Word Swap checked whereas I don't. When I have that checked with the mapping unchecked I get -32767276.
I wonder why the difference.