Polling Schneider PLC's for forced bits


Thread Starter

Kuraara Forrest

The company I work for have a large number of Schneider PLC's across a number of different sites and the engineers in charge of them are hoping to simplify the process of retrieving force data.

Unity Pro is really lacking in this area, to retrieve this data involves loading up the project running on that plc, connect to it and then click the red [F] icon in the bototm right hand corner of the application screen.

I've tried analyzing the modbus tcp traffic in the hopes of retrieving this but have learned two prohibitive factors:

1. There is a huge amount of data being exchanged between Unity and the PLC every second, and;

2. Schneider use a single function code, 0x5A (90) and then encapsulating everything within sub commands etc. I presume this is to prevent direct access to the memory registers.

So I'm wondering if there is any sort of software that will retrieve forced variables and their values in an easier way? Preferably something that can be automated as a scheduled task.

Any help would be greatly appreciated

Oh, and I'm currently working with a Modicon M340, but there are some quantums and I can't remember what other devices we'd like to have this functionality on.

LynnAugust Linse

All such function is unrelated to open Modbus, and I would wager how one access the force data may vary drastically by Schneider PLC family and generation.

Learning these functions will be a harder than just reading some registers, as the socket will be running in a 'connected fashion' which means you use certain vendor sub-functions to first login to the PLC (for both security and prevent multi-access conflict), then you might need to validate the model and change behavior based on the results.

It might be easiest if Schneider has any function blocks which copy/mirror some of the force status into normal 4x register space. Or change your procedures & ladder design to explicitly enable force-like behavior in standard logic which can be read with standard Modbus (so ask your programmers to stop being so lazy & using external force as a crutch :-] )

I would think 'force' should only be allowed if a tech is on site and should be disallowed via remote access.
Why not simply move the appropriate Unity System Words to addressed variables and read their contents remotely? Any value GT 0 would alert an operator to forced references in the PAC. This could also be alarmed on an HMI.

Having the PAC report the actual forced reference address would require that you have some means to reference the program logic to see how the force was affecting the process. A reference address would not automatically cross reference with a variable name.

It is doubtful if a local plant operator is going to know what to do when the remote centre operator tells him that he has a force on output 123.

If you want that type of detail, connect remotely with the software and perform the required maintenance. However, as others have pointed out, remote programming access has many inherent dangers. Do you really know why the force is there?