Lucas-Nuelle Production Plant



What's the plan(t)?

This production plant is formed by 8 Industrial Mechatronic Systems (IMS) productionsegments.

Each Segment consists out of two major subsystems. The IMS Conveyor (TransportBand) and the IMS Subsystem (Produktionsaufsatz). These subsystems are connected using a 25-pole DSUB plug.

What's the goal of this project?

During the master thesis of Mr. Ben Cloos, the goal of this project was to create an object oriented OPC UA Interface for a productionplant.

To achieve this more easily, each productionsegment should also have an objectoriented interface, that it provides to an edge gateway (E-GW).

The E-GW aggregates all the information of the production segments, and includes them into an object model that represents the whole production plant.

NetworkDiagram_ProdLine

What was difficult to achieve?

ProblemStellung_

The used Siemens S7-1200 PLC series, does not support object oriented programming (oop), such as Codesys systems do. Hence, these PLCs cannot provide an objectoriented OPC UA interface for the E-GW to talk to. With intelligent workarounds, the program in these PLCs have been guided to achieve some objectoriented concepts.

ProblemStellung_Loesungsansatz

To reach full objectoriented features, a Codesys PLC has been introduced as a translator. The Headstation as it is called, talks to the non-oop interface of the Siemens productionsegments. The head station abstracts a production segment into an object. Since the productionsegment now kind of consists as a full object, the interface for the productionplant can be formed usint these segment-objects.


I want information on how it works!

So you've reached the good part about this documentation. I will try to explain the functionality of the system in the most efficient way.

Interface between Segment and headstation

The interface betweem the productionsegment and the headstation is formed in one big structure.

SiemensServer

Methods on these segments?

Since the Siemens PLCs do not support methods over OPC UA on the interface, a workaround has been made. Two identical structures, that hold all the necessary information for a method call were created. This was done since the headstation and the productionsegment are not synchronized during communication. When both communication partners were accessing the same variable at the same time, data was detected to be lost.

SEQ_FunctionCall_simple

Abstraction of the productionsegment

In the headstation the productionsegments are abstracted by an abstract class.

Klassendiagramm_Kopfstation_reduced

Interface of the production plant

Codesys' cycle to develop objectoriented OPC UA interfaces is yet not optimal and need a lot of reconfiguration, if something in the interface is to change. Therefore, two interfaces were developped. One objectoriented and one the old fashioned way.

The User-Interface provides an objecoriented interface with a lot of methods that may be called on it.

Interface_User_Kopfstation


Demonstrate

Startup

  1. Start by plugging in all the Segments and the Headstation Display PLC
  2. Give the system enough time to boot up and connect to everything
  3. Navigate to the Start > Line Info > Plant Overview Tab in the Display PLC to check if all the segments are connected successfully.
    1. Wait for all the segments to show as green. If a segment keeps showing red, check if the segment is connected to Network and Power!
    2. If one or more segments keep not connecting, even though everything is connected correctly, try to replug the display PLC

Demo Config and Order

Config

The productionline has a give configuration at the moment!

DemoZusammensetzung

This configuration needs to be as shown in the image, because the method call productionPlant_IAAM_Lab.makeDefaultDemoConfig() maps the serviceAttributes to these Segments.

Order

Switch to the Order tab with Start > Demo Order. You can choose the wanted configuration of the Product Block with the selectors.

Choose the according Carrier Number, you want to save the order to. Place this corresponding Carrier on the productionline.


Troubleshooting

Known issues

Segment Server151

This server does not publish the correct RFID Value to the headstation. This may be due to the IOLink master not correctly reading the RFID sensor. If the Siemens PLC ist flashed with the corrrect IOLink Config with the PCT Tool the Segment will publish the correct RFID value for the carrier.

Each time the PLC is shut down and taken from power, this configuration will be lost, the wrong RFID value will be published again.

This means, that for now, no receipe that involves a step by the production station that sits on top of this segment can be produced! (at the momentary config => Lower Black Piece)

This problem was not yet solved. It may be a problem with the EEPROM or BufferBattery of the PLC, that looses the IOLink config.