Introducing python into industrial environment applications Fabio Pliger SIA s.r.l.

Slides:



Advertisements
Similar presentations
MQ Series Cross Platform Dominant Messaging sw – 70% of market Messaging API same on all platforms Guaranteed one-time delivery Two-Phase Commit Wide EAI.
Advertisements

Planning Your web content
Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
OCEAN DATA SYSTEMS Presents Wonderware HMI Reports
André Augustinus 15 March 2003 DCS Workshop Safety Interlocks.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Module F: Simulation. Introduction What: Simulation Where: To duplicate the features, appearance, and characteristics of a real system Why: To estimate.
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
SE 464: Industrial Information systems Systems Engineering Department Industrial Information System LAB 02: Introduction to SAP.
JokerStars: Online Card Playing William Sanville Milestone 4.
SM3121 Software Technology Mark Green School of Creative Media.
OPC Alarm.NET.
Using Dynamic Lists in SAS Stored Processes for Genetic Toxicity Historical Control Data Volker Harm, PhUSE Conference 2011, Brighton.
1 Highly confidential – do not distribute 360°SIMS – In Line System Main Components.
Computerized Maintenance Management Solutions (CMMS)
Label production Solution with Label Gallery programs Label Gallery is used for general label design and print GalleryForm is used to create data entry.
Applying Distributed Systems concepts to SCADA By Padmanabha Kamath.
Background History Note 1 Refer to Soltis: Appendix.
WP6: Grid Authorization Service Review meeting in Berlin, March 8 th 2004 Marcin Adamski Michał Chmielewski Sergiusz Fonrobert Jarek Nabrzyski Tomasz Nowocień.
Software Configuration Management (SCM)
1 DAN FARRAR SQL ANYWHERE ENGINEERING JUNE 7, 2010 SCHEMA-DRIVEN EXPERIMENT MANAGEMENT DECLARATIVE TESTING WITH “DEXTERITY”
FP OntoGrid: Paving the way for Knowledgeable Grid Services and Systems WP8: Use case 1: Quality Analysis for Satellite Missions.
Regulatory Affairs Domain
Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.
ENVIROTRAC: A Premier Chamber Monitoring and Data Acquisition System Envirotrac A Guided Tour.
Brought to you by... A developer of CRM software for SMEs and work groups of larger firms. A developer of CRM software for SMEs and work groups of larger.
Designing a HEP Experiment Control System, Lessons to be Learned From 10 Years Evolution and Operation of the DELPHI Experiment. André Augustinus 8 February.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Dream Report: Secure and Reliable Reporting Renee Sikes Applications Engineer Dream Report Brand Manager.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
PI-ProcessBook Developer
Create High Performance Testing Teams P. Nagarajan Softsmith.
KMS Products By Justin Saunders. Overview This presentation will discuss the following: –A list of KMS products selected for review –The typical components.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Jaws Digital Courier Justin Coombes Product Manager Jaws Product Line / Global Graphics.
A Brief Documentation.  Provides basic information about connection, server, and client.
Introduction to PHP Development with IDS Jean Georges Perrin IIUG I13 Tuesday, October 4 th :15 – 17:15. Platform: IDS, PHP.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Factory benefits Hooper feed back DRAFT Hooper : “We are looking at our core business, is building machines. Factory gives the.
LHCb Software Week November 2003 Gennady Kuznetsov Production Manager Tools (New Architecture)
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Big traffic data processing framework for intelligent monitoring and recording systems 學生 : 賴弘偉 教授 : 許毅然 作者 : Yingjie Xia a, JinlongChen a,b,n, XindaiLu.
We will start shortly…. DiView II DiView II Software Presented by: Daniele Posenato.
Authorized economic operator Minimizing risks, optimizing flows.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
EGI-InSPIRE RI EGI-InSPIRE EGI-InSPIRE RI Ops Portal New Requirements.
AliRoot survey: Analysis P.Hristov 11/06/2013. Are you involved in analysis activities?(85.1% Yes, 14.9% No) 2 Involved since 4.5±2.4 years Dedicated.
GROUP PresentsPresents. WEB CRAWLER A visualization of links in the World Wide Web Software Engineering C Semester Two Massey University - Palmerston.
Best Web Technologies for
Liz Piteo Native Controls in a Microsoft Dynamics Environment.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Chapter 27 Network Management Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Sergi Rubio Manrique “Archiving System at ALBA”. Tango Meeting. ALBA. October 16 th, MMVIII 1 Archiving ALBA Sergi Rubio Manrique.
SCADA Supervisory Control And Data Acquisition Pantech Solutions Here is the key to learn more.
Automation Technologies SCADA SENSORS HMI
Automate Does Not Always Mean Optimize
Tulika Chaudharie / Harikharan Krishnaraju
Mobile Application Development
Development Changes in Dynamics 365 for Finance and Operations
How SCADA Systems Work?.
Principles of Marketing
PLC / SCADA / HMI Controllers: Name : Muhammad Zunair Comsats University Date: 28-October-2018.
AIMS Equipment & Automation monitoring solution
Software Architecture
Presentation transcript:

Introducing python into industrial environment applications Fabio Pliger SIA s.r.l.

Industrial Supervision and Scada Frameworks process visualization, data acquisition and supervisory control process visualization, data acquisition and supervisory control allow to control and monitor productive units around allow to control and monitor productive units around Client/Sever distributed and open architecture Client/Sever distributed and open architecture Real Time Information Portal Real Time Information Portal

Industrial Supervision and Scada Frameworks(2) Collect “quality” data (both analogic and digital) Collect “quality” data (both analogic and digital) Alarms/Events management Alarms/Events management consistent performance and known response times consistent performance and known response times audit trails in order to maintain a tight control over their operation audit trails in order to maintain a tight control over their operation security and accountability security and accountability

BRIEF ARCHITETURE SCHEME (really really semplified..for iFix) PLCs/Macchines Data Table (DIT) Historical Data Collection Real time data monitoring Events/Alarms management SAC … Engine

We need more… Scada frameworks are great but people need more and more information. So, we need new applications that can perform those tasks. Scada frameworks are great but people need more and more information. So, we need new applications that can perform those tasks. + features = + $$$$$$ + features = + $$$$$$ Our cusotmers loves to have personal solutions! They feel they are important.. Our cusotmers loves to have personal solutions! They feel they are important..

… is python what we need? Before 3 years ago applications were always C and VB… Before 3 years ago applications were always C and VB… 3 years ago: can we do better? 3 years ago: can we do better? Hey, this python language.. Looks realy cool! Hey, this python language.. Looks realy cool!

… Why python? It’s cross platform (???) It’s cross platform (???) time reduction developing new projects time reduction developing new projects Debug is easy Debug is easy Dynamic typing Dynamic typing …but we need 2 different aproaches: …but we need 2 different aproaches: 1. Let’s use it now(!) for new applications with a deadline already fixed 2. Oh.. I think it’s better if we stress and test python before we use in our “market” applications

Aproach 1 We decided this aproach when we had particular situations like: No high performance needs No high performance needs Time is running low… fast development is needed! Time is running low… fast development is needed! Other languages didn’t satisfy us… Other languages didn’t satisfy us…

Aproach 1 - Results We used python to develope some data plotting applications. We used python to develope some data plotting applications. Chaco il great! Chaco il great! It was “easy” to wrap SCADA dlls and access/manage to its data from python It was “easy” to wrap SCADA dlls and access/manage to its data from python It was easy extend, manipulate and add information to scada data. It was easy extend, manipulate and add information to scada data.

Aproach 1 – Results(2) We had a new powerful application We had a new powerful application customer was so satisfied with that application that suddenly asked us to add new features customer was so satisfied with that application that suddenly asked us to add new features Ok! We are ready to try it for other apps! Ok! We are ready to try it for other apps!

Aproach 1 – The Batch Report production batch cycle can be really complex production batch cycle can be really complex it is important to track these production processes (talking about pharmaceutical companies it’s a “must”) it is important to track these production processes (talking about pharmaceutical companies it’s a “must”) Scada frameworks are useful but poor for batch tracking… Scada frameworks are useful but poor for batch tracking…

Aproach 1 – The Batch Report Generator we did is a high classification of the structure of all the production system and its actors, variables, subsystems… we did is a high classification of the structure of all the production system and its actors, variables, subsystems… extra data is stored in a database outside the scada database and defines all the connections between machines, tanks, sensors, variables… extra data is stored in a database outside the scada database and defines all the connections between machines, tanks, sensors, variables… map objects in the production process with their respective variables in the scada database map objects in the production process with their respective variables in the scada database program can run outside the scada system, monitor what is happening and collect data program can run outside the scada system, monitor what is happening and collect data digitals and alarms are event based and analog variables are sampled at a predefined frequency >> time strategies are required! digitals and alarms are event based and analog variables are sampled at a predefined frequency >> time strategies are required! Different machines can mean different data structures Different machines can mean different data structures

Aproach 1 – The Batch Report Generator - Results data is assigned to each machine that generated it data is assigned to each machine that generated it each phase of each machine is tracked (for scada system events are just digital type variables) each phase of each machine is tracked (for scada system events are just digital type variables) every alarm called during the batch is tracked and assigned every alarm called during the batch is tracked and assigned the user can see, in the report, if all the process is ok or it had any problem the user can see, in the report, if all the process is ok or it had any problem few seconds/minutes after the scada system has finished registering the production batch, the program is able to generate reports of the machines batch, connect them and print it all. few seconds/minutes after the scada system has finished registering the production batch, the program is able to generate reports of the machines batch, connect them and print it all. It can show alarms, analog variables linked to any machine, customize them and remake the report with any configuration the user wants. It can show alarms, analog variables linked to any machine, customize them and remake the report with any configuration the user wants.

Aproach 2 We decided to use this aproach in all those cases we needed a really stable application with high performance needs. We decided to use this aproach in all those cases we needed a really stable application with high performance needs. We decided to create basic modules and then add new features (other modules) when we needed We decided to create basic modules and then add new features (other modules) when we needed The 1° effort was done to wrap iFix (scada) dlls and use them with python (this was useful also for aproach 1!) The 1° effort was done to wrap iFix (scada) dlls and use them with python (this was useful also for aproach 1!) Then we started testing it for an application that comunicates with the scada framework and manage alarms/events generated by it and for an app that downlownd buffered data buffered in plc buffered and syncronises itself with it. Then we started testing it for an application that comunicates with the scada framework and manage alarms/events generated by it and for an app that downlownd buffered data buffered in plc buffered and syncronises itself with it.

Aproach 2 (2) - Events File Queue Printer Queue … User Queue SCADA Applications

Aproach 2 - Results Comparing with similar c applications performance python was not that slow… (only in some rare cases but we can do better…) Comparing with similar c applications performance python was not that slow… (only in some rare cases but we can do better…) We need to use threads… We need to use threads… Python is much, much, much more flexible! Python is much, much, much more flexible! Probably we’ll dedicate sources to improve what we obtained Probably we’ll dedicate sources to improve what we obtained

Conclusion Python worked well for us Python worked well for us Python reduced about 50% of time required for development Python reduced about 50% of time required for development UI take much of our time UI take much of our time Still some pitfalls ( apps distribution, track modules dependecies, documentation*) Still some pitfalls ( apps distribution, track modules dependecies, documentation*)

THANKS