Schneider M340 Modbus TCP/IP mirroring

Skypher

Member
Join Date
Jan 2020
Location
Sweden
Posts
3
Hi!

I am currently working on a project where I need to gather data from 3 separate devices via Modbus TCP. Also connected to the PLC is a Citect server that will read all this data and handle it in the SCADA. There is no writing necessary, only writing.

I am failry new to Schneider PLCs and am using Unity Pro XL.
In testing I've managed to connect and read/write to a Modbus simulator running on PC, I unfortunately do not have access to the devices in the office.

The part I'm stuck on right now is how to store the data in the PLC memory to make it available to the SCADA. Is it feasible to just store the ~10000 registers from each device into three huge arrays starting at %MW0-%MW20000 so the SCADA has complete access to all registers?

Is there a better way to do this? Also, will having the data types in the arrays as INT mess anything up?

Thanks for reading :)
 
the maximum number of addressed %MW registers in m340 is 32768.


You can read the data in to un-addressed arrays, and you can make citect read un-addressed data from schneider PLC using the schneider OFS server.



Why does the PLC need 60,000 tags? It can't possibly be using all of them. Why can't citect just read the 20,000 tags from each of the three devices itself.


Not sure why you want to use an M340 PLC for this it sounds like the wrong tool for the job and there would be a much simpler approach if you were using the right hardware or software.
 
Thank you for responding. This is only a small part of a larger project where we are not in control of the hardware and design decisions.
I've asked the same as you, why they can't just read the data directly from the units but the project manager just refers to the project documentation and I do not have any contact with the SCADA developer.

The reason I wanted to read so many registers is that the project specifies that ALL data from the devices should be sent to the SCADA, and there is ~4000 different parameters in each device spread all out over the registers.
It will be a huge amount of work to sort out and read only these mapped parameters for all three devices and prepare documentation for the SCADA developers, that's why I wanted to mirror the entire address space.

Maybe my way to deal with this isn't realistic and I will have to rethink this project.
 
Sounds to me like the Scada developers are pushing some of their work onto you, This is often the case, I did a system where we had to provide a Data concentrator PLC which gathered the data from something like 35+ PLC's then this was connected to the site Scada.
 
Hi!

I am currently working on a project where I need to gather data from 3 separate devices via Modbus TCP. Also connected to the PLC is a Citect server that will read all this data and handle it in the SCADA. There is no writing necessary, only writing.

I am failry new to Schneider PLCs and am using Unity Pro XL.
In testing I've managed to connect and read/write to a Modbus simulator running on PC, I unfortunately do not have access to the devices in the office.

The part I'm stuck on right now is how to store the data in the PLC memory to make it available to the SCADA. Is it feasible to just store the ~10000 registers from each device into three huge arrays starting at %MW0-%MW20000 so the SCADA has complete access to all registers?

Is there a better way to do this? Also, will having the data types in the arrays as INT mess anything up?

Thanks for reading :)

What PLC hardware are you using as the slaves and master exactly ?

Don't forget that Modbus is limited to 125 words in one read so it's going to take some time to get all this back to one central point.
 
even with 4000 tags per device that is 32 reads per device, assuming the registers are contiguous which it sounds like they are not.


You will probably want 2 or 3 NOE modules to use the IO scanning function to read all these modbus registers, doing it with READ_VAR blocks in logic will be time consuming and not as reliable.
 
M340 can have 32768 modbus registers enables (words)
This full address space is available, if you enable it from CPU settings. (defauls is 1024 registers)
Also unlocated (withous modbus address) variables are available if Schneider OFS is used (OPC driver installed to computer)



But If you really need read so much data, it sounds like that M340 is too small with programming memory.
I would look M580 CPUs.
 
Hi guys. After a long talk with the project manager we have decided that I will make the foundation and we'll do a communications test with the real hardware. After that the SCADA developers will be made to provide a proper list with all data they need and we will only handle that.

The Citect devs were not happy about this and claims I'm trying to push my workload onto them, which I guess is true in a way but I also think they should have handled this better from the start before I came onboard in this project.

Anyways, thanks for you advice, looks lite this will be resolved easily after all?
 
Hi guys. After a long talk with the project manager we have decided that I will make the foundation and we'll do a communications test with the real hardware. After that the SCADA developers will be made to provide a proper list with all data they need and we will only handle that.

The Citect devs were not happy about this and claims I'm trying to push my workload onto them, which I guess is true in a way but I also think they should have handled this better from the start before I came onboard in this project.

Anyways, thanks for you advice, looks lite this will be resolved easily after all?

I'm guessing the SCADA guys don't want to sit on the plant network, just have one point of access and one tag list for one device.

If they do have to talk to each device its not really any more work for the SCADA devs as such, its just a couple more IODevices to create, IMO its more resilient talking to each device individually anyway, that's the way we do it.
 
the SCADA developers will be made to provide a proper list with all data they need and we will only handle that.

The Citect devs were not happy about this and claims I'm trying to push my workload onto them


The citect devs can't be bothered to look at the data that is available from the devices, understand what is actually useful to the application, design their screens that will use that information, and provide a list of the tags that would even potentially be useful on the HMI, so they have just defaulted to telling you to read "everything".



You could still do it with three M340 PLCs, one for each device, each PLC with all 20,000 registers, but the customer will have to accept a change order for an additional 2 PLC CPUs, power supplies, backplanes, and NOE modules. Faced with additional hardware cost they will probably put the question back to the citect devs and make them use their own labour to pare down the list of tags so that it fits in one PLC CPU.


sometimes determining the requirements and project management side of things can be just as interesting as the process control. let us know how it turns out!


tragically: interesting point about not wanting to sit on the plant network, the PLC CPU ethernet port could talk to citect and the NOE module skypher will want to have for IO scanning would sit on the device network.
 
tragically: interesting point about not wanting to sit on the plant network, the PLC CPU ethernet port could talk to citect and the NOE module skypher will want to have for IO scanning would sit on the device network.

Yep and that’s the way we have done it multiple times, that would work fine but it’s hard to say without knowing the full picture and what the SCADA guys are wanting and if it’s applicable in this instance
 
I have a 9 field devices, three METSEPM5110 power meters and six ACE949-2 rs285 interface modules. I want to read this Modbus rtu data via rs485 2 wire to m340 plc which has a Modbus TCP port. What hardware should I use for this. Can I daisy chain the devices?
 

Similar Topics

Hello, this is a message for specialists in Schneider, I am trying to establish communication in modbus tcp between a schneider M340 (P3420302)...
Replies
2
Views
1,605
Hi, I'm using a PLC M340 (Master) to communicate with a M221 (Slave) PLC. To do this communication, I'm using "Read_var" and "Write_var" blocks...
Replies
6
Views
5,118
Hi everyone, im still new at programming and need your help with my This is my first time to program a VFD(altivar320 ATV320U04M2C). I will not...
Replies
2
Views
1,873
Hello all, Currently I am using a VSD ATV71 controlled by a schneider M340 with modbus TCP/IPusing IO scanning. For now i can start the motor and...
Replies
5
Views
3,716
Hello all, I am wanting to update the system clock via NTP in the M580/M340. I'm aware that we are able to connect to a NTP in the controller...
Replies
4
Views
128
Back
Top Bottom