Presentation is loading. Please wait.

Presentation is loading. Please wait.

BL40A Electrical Motion Control

Similar presentations


Presentation on theme: "BL40A Electrical Motion Control"— Presentation transcript:

1 BL40A2800 - Electrical Motion Control
Lectures /discussion/group works Associate professor Tuomo Lindh room. 6409 3. period: Tuesdays , in room 7332 4. period: Tuesdays , 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

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

3 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.

4 contents As drawn diagrams

5 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

6 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

7 Hierarchy of automation Automation devices Programming
Lecture Hierarchy of automation Automation devices Programming

8 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.

9 Metso DNA

10 Simatic s7-400

11 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

12 Industrial PC E.g. Beckhoff See e.g.

13 Unitronics M90 ABB AC500

14 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.

15 Siemens

16 Lähde: www.metsoautomation.com

17 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

18 PLC-programming Tuomo Lindh

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

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

21 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

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

23 Traditional PLC scheduling
Source: Siemens

24 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

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

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

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

28 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 muuttujan saantitie muuttuja FB toimintolohko, funktiolohko

29 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) to +127 WORD 16 bits Unsigned Integer 0 to 65,535 INT bits Signed Integer to DWORD 32 bits Unsigned Double Integer 0 to DINT 32 bits Signed Double Integer to REAL 32 bits IEEE 32 bit floating point E-38 to E E-38 to E+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

30 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

31 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 standard

32 IEC instructions IL

33 IEC instructions LAD

34 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

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

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

37 Example program PROGRAM application1 VAR appData : REAL; END_VAR

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

39 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;

40 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*)

41 S7-200

42 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

43 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


Download ppt "BL40A Electrical Motion Control"

Similar presentations


Ads by Google