BL40A Electrical Motion Control

Slides:



Advertisements
Similar presentations
ISPSoft Create a Project.
Advertisements

© ABB Group Jan-15 Scalable Intelligence AC500 / S500 AC500 Control Builder/ AC1131 (for AC31 Familiy)
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
Concept V2.5 Lesson 11 Objectives: After completing this lesson, the learner will be able to:  Define the configuration rules associated with the Quantum.
Schutzvermerk nach DIN 34 beachten 20/04/15 Seite 1 XSoft.
Dr. HABEEB HATTAB HABEEB Dr. HABEEB HATTAB HABEEB Office: BN-Block, Level-3, Room Ext. No.: 7292 UNITEN.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
2500P-ACP1 Application Coprocessor
Switchgears Control Using SCADA System Based on PLC
File: 1 6/3/2015/KH Application SW Interfaces I/O Fieldbus NC Application Software Panel Function Block Library 3~ Motor Control.
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
Lecture 4: Programmable logic Controllers
EZ Positioning with SINAMICS S120 Agenda
EPOS Programming Terms Programming Tool: Projects
● Hardware Upgrade Overview20 minutes ● Legacy Application Import Tool60 minutes ● Add Quantum Ethernet DIO drops 45 minutes ● Add new X80 Ethernet DIO.
ESO - G.Chiozzi SPIE 2010 – Evolution of the VLT instrument control system toward industry standards Mario J. Kiekebusch, Gianluca Chiozzi,
Chapter Introduction to Computers and Programming 1.
Advanced Instructions Most PLCs now support more advanced functions such as Floating point math, Boolean operations, Shifting, Sequencing, Program control.
Introduction to PLC Operation
Automatic Control System VII. Controller. transmitter actuator Structure of control system Process the name of mathematical model of the plant Material.
CIS Computer Programming Logic
1 Deeds: E-Learning Environment for Digital Design Giuliano Donzellini & Domenico Ponta DIBE – Department of Biophysical and Electronic Engineering University.
ICP DAS Http: support about ISaGRAF: 1 Open Solution for I-8000 Series Embedded Controllers Presented by Chun Tsai
PLCopen ® for efficiency in automation Introduction in IEC Check also the notes coupled to each slide for further explanation.
Welcome at this IEC Tutorial
COP1220/CGS2423 Introduction to C++/ C for Engineers Professor: Dr. Miguel Alonso Jr. Fall 2008.
Industrial Automation T Rajendran. Industrial Automation  Control Systems  Process Control  Industrial Control  Computer Integrated Manufacturing.
1 EMT 101 – Engineering Programming Dr. Farzad Ismail School of Aerospace Engineering Universiti Sains Malaysia Nibong Tebal Pulau Pinang Week 1.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
Object Oriented Programming Lecture 8: Introduction to laboratorial exercise – part II, Introduction to GUI frames in Netbeans, Introduction to threads.
Programmable Logic Controller (PLC)
1 Agenda Administration Background Our first C program Working environment Exercise Memory and Variables.
Memory Layout and SLC500™ System Addresses. Processor Memory Division An SLC 500 processor's memory is divided into two storage areas. Like two drawers.
Storing and Organizing Data. Why Do I Need to Understand How Data Is Represented? In order to install, program,maintain, and troubleshoot today’s PLCs,
Date: File:PRO1_12E.1 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Troubleshooting.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Structured lab text problems
Version 6.1 ICONICS World Wide Sales Conference 1998.
© ABB University - 1 Revision C E x t e n d e d A u t o m a t i o n S y s t e m x A Chapter 6 Application Structures Course T314.
Concept V2.5 Lesson 10 Objectives: After completing this lesson, the learner will be able to:  Define what is described by the term “Project”.  Describe.
PLC PROGRAMMING.
© ABB University - 1 Revision B E x t e n d e d A u t o m a t i o n S y s t e m x A Chapter 21 Function Designer Course T314.
Programming Languages IEC :The International Electromechanical Commission assigned the research committee 65A to define a PLC standard. Objective.
Introduction to PLC Operation
PROGRAMMABLE LOGIC CONTROLLER (PLC) AND AUTOMATION
CompactLogix Project structure
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Instrument Control Systems Seminar 2014, 20 th -24 th October 2014 Development of VLT Instrument PLC Applications Using Standard ESO PLC Libraries D.Popovic,
Instrument Control Systems Seminar 2014, 20 th -24 th October 2014 New Standards VLT Control System Mario Kiekebusch (On behalf everyone who took part.
Instrument Control Systems Seminar 2014, 20 th -24 th October 2014 PLC Application Development with TwinCAT 3.1 D.Popovic, ESO/DoE/CSE/ICSSW.
PLC programming Part 2: Programming. Topics  The structure of a PLC program  PLC operation  Execution of a PLC program  Programming languages.
Hello world !!! ASCII representation of hello.c.
MARCO control system Munich Lukasz Zwalinski – PH/DT Maciej Ostrega – PH/DT.
Operating Systems A Biswas, Dept. of Information Technology.
Actuators and Control, Part 4 Grant Agreement No LLP UK-LEONARDO-LMP Project acronym: CLEM Project title: Cloud services for E-Learning.
Seminar on "PLC” (Programmable Logic Controller)
 Operating system.  Functions and components of OS.  Types of OS.  Process and a program.  Real time operating system (RTOS).
SPiiPlus Training Class
Lesson 1.C PLC PROGRAMMING.
ISaGRAF Embedded Controller : I-84x7 / I-88x7 : User’s Manual
PLC BASED AUTOMATIC CAR WASHING SYSTEM.
Process concept.
UNICOS: UNified Industrial COntrol System CPC (Continuous Process Control) Basic course SESSION 3: PLC basics UCPC 6 UNICOS-Continuous Process Control.
PLC Terminology and Application
Programmable control systems
.NET and .NET Core 5.2 Type Operations Pan Wuming 2016.
PROGRAMMING.
An Introduction to Embedded Software Architecture and Design
Control System Applications (2)
Overview Version 2.1, September 2006 PLCopen 2006
Presentation transcript:

BL40A2800 - Electrical Motion Control Lectures /discussion/group works Associate professor Tuomo Lindh room. 6409 3. period: Tuesdays 12-14 , in room 7332 4. period: Tuesdays 12-14, in room 6216 Tutorials / group works assignments: Researcher, Henri Montonen, (room 6416) In laboratory of control engineering room 6316 Thursdays 12-14 Or somewhere else when informed

Course Content, period 3. period 4. Automation, modelling servodrive, position control and trajectory tracking period 4. Modelling and identification. period 4. Adaptive control

Discussions and demonstrations P3. Automation Analog and digital communication techniques used in automation, Digital control of mechatronic systems, field buses Modelling servo drive Controllers for position control and trajectory tracking Work in group solving automation and control problems P4. Simulation of mechatronic systems, Identification, Dynamical system models based on tests and measurements, Observers and self-tuning controllers Work in group solving automation and control problems.

contents As drawn diagrams

Exercises Demonstrations /Lecture/ Exrcise PLC systems, ABB AC500 PLC:s Field buses, Servo axle, dynamics of model (eigenvalues, step response etc.) Electric drives, simulation Beckhoff Industrial PC System modelling, Identification Self tuning controllers

Exercise work 2-axis manipulator Components Models of manipulator Rigid Flexible Position control Trajectory tracking Identification of one axis, (or ¼ -transit) Detailed instructions will be available in Noppa

Hierarchy of automation Automation devices Programming Lecture 1 12.1.2016 Hierarchy of automation Automation devices Programming

Components on different levels Suuret teollisuuslaitoksen väylät ja tietojärjestelemät voidaan jakaa kuvan mukaisella hierarkialla Eri tasoilla on erilaisia laitteisto ja väyläratkaisuja Rajat eivät välttämättä ole selkeitä esim. kenttä- ja prosessinohjaustaso voivat olla limittäin ja tuotannonohjaustaso voi pienistä laitoksista puuttua.

Metso DNA

Simatic s7-400

From small PLC:s to factory scale Valmistajat Prosessin hallinta Loppukäyttäjät I/O-laajuus Ominaisuudet Premium Quantum OEM / Laitevalmistajat Momentum Premium Micro Momentum Magelis Schneider Automation’s PLC range can be divided into two major segments: “PLCs for independent machine builders” and “PLCs for end users.” This positioning is not rules - most of our PLCs can technically fit most applications - but rather points you to the market segments where each PLC has been “optimized” for price/performance/application fit. PLCs for machine builders Micro and Nano are “optimized” for stand-alone machines because they provide a very compact mix of functions - in a low cost, small footprint package. They can also be used in some distributed applications. Momentum has been optimized for distributed architectures where there are clusters of I/O. It is “optimized” for distributed clusters with 64 I/O points or less (two Momentum blocks max per cluster). It can be used in some stand-alone applications. When a decentralized machine application has I/O clusters with greater than 64 points, or if specialty functions like motion, weighing, safety relays or specialized I/O is required, then the Premium is the “optimal” choice. It can handle large machines with up to 2,048 points. 64 point high density cards make it more cost effective for clusters >64 points. PLCs for end users Quantum can fit most end user applications, but it has been “optimized” for process applications with Concept FBD programming, S908, redundant MB+, hot-standby, conformal coating, and intrinsically safe I/O. It is our high end PLC platform. Premium can fit most end user applications, but it has been “optimized” for discrete manufacturing applications with integrated motion, safety relays, superior FBD programming for sequential applications, memory backup, reflex I/O, and highly distributed architecture. It is our mid-range PLC platform. The Momentum can be used in smaller distributed applications with Premium/Quantum as distributed I/O or as standalone processors. It is “optimized” for I/O clusters less than 64 points, or no more than 2 blocks per cluster. The new Atrium processors fit a wide range of applications where users want the benefits of PC based control with the reliability of a PLC. Strategic Positioning of PLC Platforms Twido Lähde: Scneider

Industrial PC E.g. Beckhoff See e.g. http://download.beckhoff.com/download/Document/catalog/pcc_0313_10_years_ethercat_e.pdf

Unitronics M90 ABB AC500

Modicon Quantum Single-task: This is the more simple default structure, in which only the master task is executed. b Multitask: This structure, which is more suitable for high-performance real-time events, consists of a master task, a fast task, periodic tasks, and high-priority event-triggered tasks. The master, fast and periodic tasks are made up of sections and subroutines. The sections and subroutines can be programmed in any of the following languages: Structured Text (ST), Instruction List (IL), Ladder (LD) or Function Block Diagram (FBD) (1). The event-triggered tasks use the same languages. Sequential Function Chart (SFC) or Grafcet language is reserved for master task sections. The table below lists the possible program tasks for Atrium, Premium and Quantum type processors respectively.

Siemens

Lähde: www.metsoautomation.com

Imatra paper factory, machine 5 operointiasemista OPS Hälytysasemista ALP Prosessiasemista PCS Varmennusasemasta BU Diagnostiikka asemasta DIA Raportointiasemasta REP Liityntäasemista Prosessitietokoneille CIS TARAP (XIS-järjestelmä) PROMAS Ohjelmoitaville logiikoille LIS Selma, kartonkikoneen käyttöjen ohjausjärjestelmä, RS-232 liityntä VIB-kostutuslaite, RS-232 liityntä Sähköinfrat, RS-232 liityntä Damatic järjestelmään DIS Prosessinhallinta järjestelmistä XIS

PLC-programming Tuomo Lindh

Programming environments See Codesys TwinCat 3 (Unitronics) IEC 61131-3 Programming languages (C,C++, Simulink) IEC 61131

Environment Siemens IEC61131 programming, GUI Compiler and loader, ”On-line simulator” Lähde: Kuvat Siemens

CodeSys and ABB AC500 Automation Builder Project tool Creates definition files (electronic data sheets) of devices , fieldbuses, drivers etc. CodeSys IEC61131 programming GUI compiler and loader, ”On-line simulator” Visualization, ’user interface’ Footer

PLC as real time operating system See Different types of tasks Multitasking

Traditional PLC scheduling Source: Siemens

Tasking - Pre-emptive tasks (Full codesys or non-pre-emptive tasks embedded codesys) - System events - Interrupt tasks Which task is being processed? For the execution, the following rules apply: That task is executed, whose condition has been met; i.e., if its specified time has expired, or after its condition (event) variable exhibits a rising edge. If several tasks have a valid requirement, then the task with the highest priority will be executed. If several tasks have valid conditions and equivalent priorities, then the task that has had the longest waiting time will be executed first. The processing of the program calls will be done according to their order (top down) in the task editor. Depending on the target system PLC_PRG might get processed in any case as a free-wheeling task, without being inserted in the task configuration tree. System Events Instead of a "task" also a "system event" can be used to call a POU of your project. The available system events are target specific (definition in target file). The list of the standard events of the target may be extended by customer specific events. Possible events are for instance: Stop, Start, Online Change. The assignment of system events to POUs is also done in the Task configuration editor. Use the dialog 'Events', which will be opened as soon as the entry " System-events" is selected in the task configuration tree: Table for Assigning POUs to System Events Footer

(Pre-emptive Rate-monotonic scheduling (RMS))

Beckhoff ” TwinCAT is a pre-emptive multitasking system” , [Source: Beckhoff Information System]

Step S7 Couple of cyclic tasks can pre-empty lower priority tasks These are called cyclic interupts by Siemens

Programming model funktioiden suorituksen ohjaus CONFIGURATION RESOURCE RESOURCE TASK TASK TASK TASK PROGRAM PROGRAM PROGRAM PROGRAM FB FB FB FB GLOBAL and DIRECTLY REPRESENTED VARIABLES ACCESS PATHS Communication function IEC 61131-5 muuttujan saantitie muuttuja FB toimintolohko, funktiolohko

IEC datatypes see e.g. http://en.wikipedia.org/wiki/IEC_61131-3 Elementary Data Types Data Type Size Description Range BOOL 1 bit Boolean 0 to 1 BYTE 8 bits Unsigned Byte 0 to 255 BYTE 8 bits Signed Byte (SIMATIC mode for SHRB instruction only) -128 to +127 WORD 16 bits Unsigned Integer 0 to 65,535 INT 16 bits Signed Integer -32768 to +32767 DWORD 32 bits Unsigned Double Integer 0 to 4294967295 DINT 32 bits Signed Double Integer -2147483648 to +2147483647 REAL 32 bits IEEE 32 bit floating point +1.175495E-38 to +3.402823E+38 -1.175495E-38 to -3.402823E+38 derived types, structured types Structured TYPE MOTOR STRUCT ON_OFF: BOOL; I_L1: ST_CURR; I_L2: ST_CURR; END_STRUCT END_TYPE Ohjelmoija voi määritellä rakenteellisia tietotyyppejä, joilla yhteenkuuluvat osat saadaan yhdeksi kokonaisuudeksi. Esimerkiksi moottoriin liittyvät muuttujat voidaan kaikki liittää yhteen Moottori-tyyppiin. (IEC 03) Vrt. typedef ja struct Johdetut ja rakenteelliset ei kovin yleisiä, muttei kannata hämääntyä jos näkee TYPE ST_CURR : REAL END_TYPE

variables VAR_INPUT VAR_OUTPUT VAR_INPUT_OUTPUT VAR VAR_RETAIN AT memory address ROGRAM PLC_PRG bitti1 AT %MX0.0.0: BOOL := 0; (*1. input *) bitti_out AT %MX1.0.0: BOOL := 0; (*output bit*) bitti2 AT %MX0.0.1: BOOL := 0; (*2. input *) bitti_out2 AT %MX1.0.1: BOOL := 0; (*out 2*) END_VAR Footer

Programming languages Ladder diagram (LD) Function block diagram (FBD) Structured text (ST) Instruction list (IL), Sequential function chart (SFC) Continuous Function Chart (CFC). Extension to the IEC 61131-3 standard

IEC 61131-3 instructions IL

IEC 61131-3 instructions LAD

Structured text (ST) IF sw1FAULT OR sw2FAULT THEN state:=stateFAULT; ELSIF sw1WARNING OR sw2WARNING THEN state:=stateWARNING; ELSIF NOT sw1OP_ENABLED OR NOT sw2OP_ENABLED THEN STOP_START(); ELSIF ton1.Q THEN state:=stateREADY; (*CW1:=1151; CW2:=1151;*) END_IF

Continuous Function Chart Instructions, Function blocks and functions with given execution order

POU program organization unit POU can be Program: Executed once by event, sceduled .. Function Can be called Function block Footer

Example program PROGRAM application1 VAR appData : REAL; END_VAR

Functions FUNCTION FunctionNameAsReturn :INT VAR_INPUT: X: INT; Y: INT; END_VAR // function code FunctionNameAsReturn =X+Y; END_FUNCTION

Example Function BODY FUNCTION SlipRatioDtNeg : REAL VAR_INPUT LAMBDA_DT: REAL; END_VAR VAR RETVAL: REAL; SLOPE: REAL; RETVAL := 0; IF LAMBDA_DT < SlipRatioDtNegMax THEN RETVAL := 1; ELSE IF ((LAMBDA_DT >= SlipRatioDtNegMax) AND (LAMBDA_DT <= SlipRatioDtNegMin)) THEN SLOPE := (Ymin-Ymax) / (SlipRatioDtNegMin - SlipRatioDtNegMax); RETVAL := LAMBDA_DT*SLOPE + (0-SlipRatioDtNegMin*SLOPE); END_IF SlipRatioDtNeg := RETVAL;

Function block example FUNCTION_BLOCK AVGFILTER VAR_INPUT input: REAL; (* Incoming data *) length: INT; (* Length of the filtering array *) enable: BOOL; (* Enable / disable, if disabled, output := input *) inhibit: BOOL; (* If this is true, filter zeroes the array and outputs only zeros *) END_VAR VAR Staticvariable REAL; VAR_OUTPUT output: REAL; (* Output of the filter, average of the elements in the array*)

S7-200

function block ton1.IN:=(state=0); ton1.PT:=t#5s; ton1(); VAR_GLOBAL send_ena: BOOL; timer_ena: BOOL; timer_counter: TIME; timer_value: TIME; END_VAR VAR ton1: TON; END_VAR ton1.IN:=(state=0); ton1.PT:=t#5s; ton1(); IF timer_ena=FALSE THEN timer_ena:=TRUE; send_ena:=FALSE; END_IF IF timer_value=T#100ms THEN timer_ena:=FALSE; send_ena:=TRUE; Footer

Own function block Implementation FUNCTION_BLOCK FunktioLohkoEsim VAR_INPUT: X: INT; Y: INT; END_VAR VAR_OUTPUT: Z: INT; VAR: % internal ’static’ ID: INT; // function code IF ID=0 THEN ID=1; ELSE ID=0; IF X=1 THEN Z := X+Y+ID; ELSEIF X=2 THEN Z :=X-Y+ID; END_IF END_FUNCTION_BLOCK VAR tulos: int END_VAR Define instance Inst11 : FunktioLohkoEsim Inst11( X:=1,Y:=10) ; read value Tulos:= Inst11.z; or LD 1 ST Inst11.X LD 10 ST Inst11.Y