establish communication

E

Thread Starter

embacero

I have the following configuration
1. tsx3721/ tsx5720 schneider PLCs (either one of them is used)
2. tsx scp 114 pcmcia card
3. TSXSCPCM4030 connection cable
4. TSXPACC01 connection box
5. TSXPCX1031 connection cable
6. Pc

I' am pretty sure that the configuration is correct at both ends.
On linux using libmodbus and a different s/w on windows, i can't communicate with the plc.

Could you please help me troubleshoot my configuration
Kind regards
 
>I have the following configuration

---- snip ----

>Could you please help me troubleshoot
>my configuration
>Kind regards

Let me rephrase the question. Has anyone had any experience on interfacing a PC with modbus RTU. Could you please give me exact details on how you did it. I am stuck and this is the only place that I expect to get some help from
 
C
Rules:
One RTU (RS-232, RS-485) master talks to slave(s).

Some slaves with tolerate successive, multiple queries from Modbus TCP (ethernet) masters;

others tolerate only one master. Slaves are silent unless spoken to. Slaves cannot initiate comm.

Presumably the PC is a modbus master. Yes? No?
Presumably the PLC's are configured as modbus slaves? Yes? No?

Do you have one of the commonly available PC Modbus masters? Modscan32? Simply

Modbus? Modbus Poll?

All of them work in roughly the same fashion.

First you establish communications, which first requires setting up the comm link.

For ethernet, the slaves IP has to be on the same subnet as the PC, unless you've got a router
properly setup.

For serial, the serial settings have to be common (matched) on both sides. Mismatched comm settings means garbage which means no comm.

There's a Quirk for serial parity settings. The Modbus spec says no parity shall be 2 stop bits, but almost no one does that (common default serial setting is 8-N-1) and some masters get fussy about 2 stop bits. All that said, if you pick either even or odd parity, you avoid any issue with no parity.

Once comm is setup, read a register with a known value other than zero, because zero can be implemented as unused or other than the value zero. Mess around with the data format until you can understand the value you expect.

Beware the one offset between addresses and register numbering. If your data doesn't show up in the register you expect it in, read the next highest register and see if it's there.

Then find a register which can be written to. Read it to make sure you've got the right one, then use the master to write a value to it. See if the write worked. When it does, you've proved your Modbus comm and you have to get whatever your working master is to talk to your slave(s).

If your Schneider box runs Modbus Plus, it's special. And I'm not the guy to tell you anything about Modbus Plus because I'm ignorant of it, token passing and all.
 
I haven't used those PLCs, so I can't tell you if they are configured correctly. I don't know what that list of hardware you have is, so I can't really tell you much about it.

However, have you tried using a Modbus/RTU test program to see if the communications is working at all? A popular one is SimplyModbus (I have another one that I have written, but it's for Modbus/TCP, not Modbus/RTU).

Are you sure your serial port on your PC is working? Is it using the correct voltages? Some PC serial ports (especially on newer models) operate on lower voltages which don't meet the RS-232 standards and may not be compatible with some hardware. Look up the actual specs for your hardware to check that.

Are all your drivers installed and configured correctly?

Are all your parameters set correctly at both ends?

Are you sending supported commands to valid addresses?

Is the PLC configured correctly? If I had to guess of where to look first, that would be my number one suspect. I can't help you with this particular PLC, but most disable the communications port by default, and you have to change a number of settings to get it working.
 
Guys thanks for your reply. It seems that there is a hardware program. <i>[moderator's note: think he means problem]</i> I tried several different programs, like modbus poll etc., but no luck. the PC is the master, the plc is the slave. 9600 8-n-1 no or even parity.

I am pretty confident that the plc is configured correctly!!

Of course I don't expect any help from Schneider. I have tried to reach them several times, with no luck.

Anyway. After I have verified that settings at both ends are the same with the PC being the master and PLC the slave and tried several programs at different platforms. I came to the conclusion that maybe the h/w combination Schneider offered might be wrong. I don't know what else to say. Anyway thank you all very much for your time.

If you come up with any new ideas please post them
 
Top