Schneider PLCs Micro and Premium. Arduino.

MSc dissertation proposal 2016/2017

 

Industrial Processes Identification

 

 

-- Information at fenix:

 

Objectives:

 

Programmable Logic Controllers (PLCs) are the most common devices for integrating and controlling industrial processes. Despite having standard programming languages, it is still time consuming their direct programming. Using higher level programming languages, as IO Petri nets, followed by the translation to the PLC languages, is a convenient way to create PLC programs. Since PLC standard languages do not have all the features of Petri nets, in some cases the PLC implementation may not be exactly the desired one. Using external hardware devices, which monitor the PLC inputs and outputs during a verification stage, is promising way to go.

 

The main objectives of the work are the following:

- Develop one digital (binary) interface between one Arduino and one PLC

- Use the Arduino for logging, along time, the input and output binary signals of the PLC

- Identify simple Discrete Event Systems (observable, described by a small number of states)

 

 

Requirements (grades, required courses, etc):

-

 

 

Place for conducting the work-proposal:

 

ISR / IST

 

 

Observations:

 

Previous works provide good starting points for the thesis. In particular a number of hardware prototypes already exist, together with a number of system models already available in a database.

 

This work is conducted in collaboration with the company Inocam, responsible for the engineering design of industrial machines used in the footwear industry.

 

 

-- More information:

 

Building real world reliable and robust control systems usually means using Programmable Logic Controllers (PLCs). PLCs are modular digital computers that allow using a large variety, and number, of electrical input and/or output interfaces. The mechanical, hardware and software designs are made robust in order to handle continuous operation in environments overwhelmed with electromagnetic and mechanical (e.g. vibration) noise. Without noticing, PLCs are almost everywhere, from the industrial assembly lines, to the elevators, power grid control, etc (see [PLC_intro]).

 

IO Petri net tools, as [IOPN-www], are a convenient way to create PLC programs. One defines the discrete event systems in a high level language (Petri nets) and then converts the code to the PLC language. Since PLC languages do not implement all the features of Petri nets, the code conversion is, in a number of cases, not exact. Verifying that specifications are fulfilled usually requires extensive testing.

 

Monitoring PLCs is usually provided by proprietary (closed) software. The manufacturers of the PLCs generally provide the monitoring software but do not open their interfaces. When one needs to develop hardware peripherals, or hardware that interacts with PLCs, effective (fast) monitoring is frequently hard to obtain with the provided software monitoring tools.

 

Hardware monitors allow testing and verifying PLC programs. Identification of Discrete Event Systems formed by PLC programs, considering only binary inputs and outputs, is of particular interest.

 

The main objective of this work is the design of an Arduino based hardware interface that allows fast monitoring of the physical interface of a PLC. Given the hardware interface, an additional objective consists of identifying discrete event systems using Petri Net tools.

 

 

Detailed description:

 

Major automation companies offer modular digital computers that allow using a large variety, and number, of electrical input and/or output interfaces, the so called Programmable Logic Controllers (PLC - term invented by Allen Bradley [PLC_intro]). Together with the hardware, the automation companies also offer, or sell, monitoring software. The software interfaces are however usually closed. Developing fast (software) monitors of the physical inputs and outputs of a PLC is normally challenging or even impossible with the tools provided by default by the automation companies.

 

In this work is proposed the construction of a hardware "sniffer" for the digital (physical) interface of PLCs, namely the PLCs available in the IST/MEEC graduation courses, i.e. the Schneider Premium TSX57 [Schneider_Premium]. The choice of constructing a hardware interface brings the advantage that the operating frequency can be much higher than the frequency that monitoring software can provide. In addition, being an external hardware interface, one has the guarantee that monitoring does not increase the memory/time complexity of the PLC software.

 

The proposed hardware to implement the "sniffer" is the Arduino [Arduino-www] combined with a logging shield. In particular one has to pay attention to the voltage levels, 5V in the Arduino vs 24V in the PLC. While reducing can be done simply by a voltage divider, augmenting from 5V to 24V implies using, for instance, a comparator and a DC-DC converter for power supply.

 

Other aspects to consider are the generation of signals and the number of monitored binary channels. Generating signals can in many useful cases be done by a table of timed events saved in the Arduino memory. The number of channels requires some exploration of some more hardware. The most common Arduino, the "Uno", has just 14 digital inputs / outputs, which is much lesser than the common 16 inputs +16 outputs found in the PLCs. Strategies for augmenting the number of monitored channels are also supposed to be discussed.

 

Given the hardware signals generator and "sniffer", provides a development environment where PLC programs can be generated from higher level representations, such as IO Petri nets [IOPN-www], and then tested by interacting with the PLC inputs and outputs.

 

An interesting development of monitoring the PLC binary inputs and outputs is the identification of the Discrete Events System represented by the PLC [Vargas13]. In this case, one can compare the PLC system with the system originally specified.

 

The work is therefore organized in the following main steps:

- Develop one input and output, pass-through, bit hardware interface between the Arduino and the PLC

- Log along time the binary signals passing through the bit interface

- Augment the number of IO bits handled by the interface

- Identify simple Discrete Event Systems (observable, described by a small number of states)

 

This work is conducted in collaboration with the company Inocam [Inocam-www], responsible for the engineering design of industrial machines used in the footwear industry.

 

 

References:

 

[PLC_intro] "What is a PLC?", in Machine Information Systems website, http://www.machine-information-systems.com/PLC.html

 

[Schneider_Premium] "Schneider PAC, PLC & other Controllers" http://www2.schneider-electric.com/corporate/en/products-services/products-services-intermediate.page?f=NNM1:PAC%2C+PLC+%26+other+Controllers&p_function_id=2

 

[Arduino-www] "Arduino open-source electronics prototyping platform", http://www.arduino.cc/

 

[Inocam-www] http://www.inocam.com/

 

[IOPN-www] "IO Petri Net tools", GRES-Uninova / FCT, http://gres.uninova.pt/IOPT-Tools/login.php

 

[Vargas13] "Identification of Partially Observable Discrete Event Manufacturing Systems", Ana Paula Estrada-Vargas, Ernesto López-Mellado, Jean-Jacques Lesage, IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA), pp1-7, 2013

 

 

Expected results:

 

At the end of the work, the students will have enriched their experience in creating system based on a PLC using off-the-shelve components. In particular are expected to develop and assess:

- The hardware integration of the various components

- Software to interface and monitor the system

- Software to identify simple Discrete Event Systems

 

 

Quotation:

 

"In summary...you don't always get the luxury to pick your term project, but if you can, find a problem you want to solve for yourself in your own life. Design a novel solution for it with a PIC or other microprocessor. Wire it up and program it. Understand the hardware and software well so that you can present it well. Have a fun time doing it. If you find that you lose track of time while you are working on the program and find it hard to put it down even at midnight, you've got exactly the right idea! Best wishes!"

 

[excerpt extracted from http://www.vermontficks.org/students.htm]

 

 

More MSc dissertation proposals on Computer and Robot Vision in:

 

http://omni.isr.ist.utl.pt/~jag