Schneider M580 learning curve?

g.mccormick

Lifetime Supporting Member
Join Date
Jul 2012
Location
IN
Posts
961
I've never dealt with Scheider PLC before, but I am working on quoting a system for a customer. The basic system will have local and remote racks of IO. A 580 CPU will be in the first rack, remote racks have ethernet comms modules.

The programming in the CPU should not be much, basically I will need to map all of the IO into continuous Modbus registers that the customers DAQ system can read/write.

The M580 will need to be server to the customers DAQ ModbusTCP master.

I've done Beckhoff CX programming (ladder and st), Automation Direct P2k programming, AD Click.

Any guesses as to perceived difficulties? Any advice or quick overview of how I would do this in M580 with UnityPRO?
 
I've never used M580 either, but you can build a M580 project in unity without having one. If you've never used unity before you should go on a training course.

You will want to get the M580 CPU that supports remote IO and distributed IO. Remote IO uses the Ethernet/IP or CIP protocol and distributed IO uses modbus. You will use Remote IO to get the data from the remote racks to the CPU.

You will start a new project, select the M580 CPU model, then add any modules to the local backplane (probably you will want to select DDT addressing for consistency with the remote backplanes), then you will add the remote drops on the EIO Bus and add the modules to the remote drop backplanes. For every module you add a corresponding tag with that module's DDT will be added to the project.

In your CPU program sections you will map from the module DDT's to the PLC's memory which can then be read by modbus.

Consider creating a user-defined-type for each point so you can include things like quality in the modbus data map - what if a remote rack becomes disconnected, or a 4-20mA circuit is open circuit, etc.
 
Have you used Schneider's training course before?

Excuse my ignorance, but what does DDT stand for?

In my quick looking, it looks like each channels default data tag (is that what DDT stands for?) is a structure that contains different data about the tag (value, forced, range limits,etc).

So you are saying that you would make a user defined type (user structure) for each channel.
The structure could be something like
Channel1.Value (as 32 bit or floating point and mapped as input register)
Channel1.Valid (as bool, mapped as modbus input point)
 
I have never used any schneider courses. I did review the literature that was supplied with a citect course once, and it did a good job of getting me started with citect.

DDT is derived data type. It allows a single tag to contain many elements in a structure which contains all of the data for a device, such as an IO module.

There may be a data type for each channel within the module as you have described as well.

The user defined type you describe is what I would do, except I would probably use a UINT instead of a bool for the Valid property so that the UDT tag data will be in contiguous memory addresses and so you can use only 1 modbus function to read. 16 bits are used to store and send a bool on modbus anyway.
 
Last edited:

Similar Topics

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
150
Looking for some advice on a project. The controller is a BMEP584040. There is a RIO ring with several drops with Quantum I/O. On this ring...
Replies
12
Views
1,023
Hi, Does anyone know if programming a Modicon M580 is basically the same format as an M340? Also do they use the same software package? Thanks...
Replies
2
Views
1,783
Hi Folks, We have this M580's configured as hotstandby and is curious if it is possible to monitor the modules on the remote racks. Unity pro...
Replies
1
Views
1,593
Hello, Wondering if anyone else out there has experienced issue with Scan Time on H58-6040 m580 processor. These controllers have a periodic...
Replies
3
Views
3,045
Back
Top Bottom