epos programming terms programming tool: projects basics of the plc programming programming...
TRANSCRIPT
EPOS Programming
Terms
Programming Tool: Projects
Basics of the PLC Programming
Programming Language IEC 61131-3 Standard
Sample Programs
EPOS P Training
2,
© b
y m
axon
mot
or a
g, J
an 0
5
Description of some terms
PLC Programmable Logic Control
PLCopen An Industrial Control organisation
IEC 61131-3 Programming Standard created by
PLCopen (in the past IEC 1131)
OpenPCS Programming tool for EPOS P(from Infoteam)
3,
© b
y m
axon
mot
or a
g, J
an 0
5
What is a PLC?
roots in the wiring logic– originally hardware based: Relays
increasingly software based– more flexible, easier to modify
– more efficient, lower costs
needs a programming device– industrial PC = PLC + programming device
– programming device will be removed after programming
special requirements: rough environment– no moving parts such as harddisks
PLCinputssensors
outputsactuatorsmotors, valves
4,
© b
y m
axon
mot
or a
g, J
an 0
5
A PLC program works in a cyclic manner
Cyclic calculation of the output pattern according to the input pattern– it starts again when it’s finished
– no inputs during the cycle
cycle time depends on the application
smart living technology: < min; drives: several ms
particular programming languages
program
inputs
outputs
cycle time
inputs
5,
© b
y m
axon
mot
or a
g, J
an 0
5
What is PLCopen?
User organisation for the promotion of
IEC 61131-3 standards
develops and publishes the standards (e.g. for Motion Control, Safety, …)
certification authority
PLCopen and maxon EPOS P– motion functionality based on PLCopen Motion
Control
– The use of the PLCopen Logo is expensive; therefore we do not advertise with it!
6,
© b
y m
axon
mot
or a
g, J
an 0
5
What is IEC 61131-3 ? describes concepts and directives for building a PLC
project, respectively PLC program– use of defined terms (key words)
– contains 5 equal programming languages
– drive/motion function library
advantages– widely spread in the PLC world and motion control industry
– well known “look and feel”, no need to learn new language
– independent of used hardware
– “a certain” re-usability of PLC programs
– widely accepted
7,
© b
y m
axon
mot
or a
g, J
an 0
5
OpenPCS the programming tool for the EPOS P
– from company: Infoteam
follows the standard IEC 61131-3
not described in the IEC 61131-3 standard:– How does a program editor have to look?
– management of projects and libraries
– documentation
– online functions, e.g. software modification, debugging
– file and data base structures
and this is where the programming tools differ!
8,
© b
y m
axon
mot
or a
g, J
an 0
5
Configuration
PLC configuration in general
Project in the EPOS-Studio
Project in the OpenPCS
9,
© b
y m
axon
mot
or a
g, J
an 0
5
Project in the EPOS Studio
Project in the EPOS Studio
– describes involved components and its communication
– EPOS P: for 1 EPOS P
– EPOS: for 1 EPOS
– MCD EPOS: for 1 MCD EPOS
– MCD EPOS P: for 1 MCDEPOS P
– For Network: Create New Project
– Info will be handed over to OpenPCS
tools and wizards depend on involved components
communication, network connections
11,
© b
y m
axon
mot
or a
g, J
an 0
5
OpenPCS Project project contains
– resources, runtime programs
– allocation of variables to physical PLC addresses
– references to other programs: global variables, data types
– corresponds to PLC configuration
resource = processing unit of the PLC– e.g.: EPOS P “master function", CPU’s, special processors
– on one resource several runtime programs can run
program sequence controlled by "Task"– importance = priority
– execution type: periodic, cyclic, interrupt
12,
© b
y m
axon
mot
or a
g, J
an 0
5
Programming
POU Program Organisation UnitPrograms, Function Blocks, Functions
Variables declaration, types
Programming languages
13,
© b
y m
axon
mot
or a
g, J
an 0
5
Program Organisation Unit (POU)
For structuring IEC 61131-3 application programs
3 types of POU– Functions (FUN)
– Function Blocks (FB)
– Programs (PROG)
PROG
FB
FB
FUN
FUN FUN
FUNFUN
POU’ s have a strict hierarchy– recursion is not allowed
– memory demand is known from the beginning
– memory allocation can be made
14,
© b
y m
axon
mot
or a
g, J
an 0
5
Program Organisation Unit (POU)
structure of a POU– begin and end with KEY WORD
(taken care of by OpenPCS)
1. declaration section
interface variables, local variables
2. instruction section in one of the 5 programming languages
Interfacevariables
local Variables
InstructionPOU body
FUNCTION
END_FUNCTION
FUNCTION_BLOCK
PROGRAM
END_FUNCTION_BLOCK
END_PROGRAMM
15,
© b
y m
axon
mot
or a
g, J
an 0
5
Characteristics of POU‘s
closed unit– can be compiled independently
– can be called within the whole project
– can be used in the whole project
– unique name within a project
new POU– File -> New -> POU
libraries can be built of FUN’s and FB’s – reusability and modularisation
– e.g.: standard library, MC library, CAN library
16,
© b
y m
axon
mot
or a
g, J
an 0
5
POU – variable declaration
VAR local data
VAR_INPUT input parameter
VAR_OUTPUT output parameter
VAR_INOUT input and output
VAR_GLOBAL global data
VAR_EXTERNAL reference to
global data
END_VAR key word
for the end
17,
© b
y m
axon
mot
or a
g, J
an 0
5
POU – type declaration
for each variable a type has to be defined
optionally an initial value can be specified– else standard value
– or value of previous call
types can also be defined by the programmer– File -> New -> Declarations ->Types
– global valid
– TYPE … END_TYPE
18,
© b
y m
axon
mot
or a
g, J
an 0
5
Variable declaration in OpenPCS
VAR_GLOBAL– global data of the resource
File -> New -> Declarations -> Global
– global data of the program
upper panel of the program
all other VAR– upper panel of the POU
19,
© b
y m
axon
mot
or a
g, J
an 0
5
Functions (FUN) return exactly one output value
– call with input variable (VAR_INPUT)
– for the same input, there is always the same output value
without memory– only local variables allowed (VAR), which will be
initialised at every call
– no global or external variables allowed
FUN can only call other functions
standard functions are predefined– arithmetic functions and comparisons
– e.g. sin (x)
FUNCTION Hallo: BOOLVAR…END_VAR……Hallo := TRUEEND_FUNCTION
20,
© b
y m
axon
mot
or a
g, J
an 0
5
Function Blocks (FB)
work with an own data record– with memory for internal state
– instantiation
output depends on the inputs and state information– input parameter and output parameter
can call FUN’s and other FB’s
predefined standard FB’s– e.g. for timer and counter
predefined Motion Control FB’s– e.g. for relative movements
21,
© b
y m
axon
mot
or a
g, J
an 0
5
Program (PROG)
main program– “brain" of an PLC application program
– There is only one instance
defines the access to the PLC periphery– allocation to the physical address (e.g. input and output of the PLC)
declaration of the variables of the whole program (VAR_GLOBAL)
has no input and output parameter
22,
© b
y m
axon
mot
or a
g, J
an 0
5
Programming languages in IEC 61131-3 5 equivalent programming languages
– IL: Instruction List similar to assembler
– ST: Structured Text similar to high level programming language
– LD: Ladder Diagram graphical
– FBD: Functional Block Diagram graphical
– SFC: Sequential Function Chart graphical
It doesn’t matter with which language the user writes his program. It is even possible to write different parts (POU’s) of the program in different languages.
23,
© b
y m
axon
mot
or a
g, J
an 0
5
FBD Function Block Diagram
graphical, strong accentuation of the function blocks and the functions
– Similar to LabView
relatively big overhead for parameters and FB
no conditional code programmable(all FB will always be loaded and called)
realistic cycle times >= 10 ms – (@ 30 IL/ms)
24,
© b
y m
axon
mot
or a
g, J
an 0
5
Sample FBD: SimpleMotionSequence
FUNCTIONwithout name
FUNCTION_BLOCKwith instantiation
variables, constants,virtual connections
25,
© b
y m
axon
mot
or a
g, J
an 0
5
Libraries
standard library– for timer functions, arithmetical functions, …
– see OpenPCS help
motion control (MC) library– for axis control
– according to PLCopen standard
– see Programming Reference 6.1
CANopen library– for reading and writing of SDO objects
– according to CANopen Standard
– see Programming Reference 6.2
26,
© b
y m
axon
mot
or a
g, J
an 0
5
LD / LDD Ladder Diagram
graphical– in the style of
current logic, relay technique
– Boolean logic
widely used in USA and Asia
– Rockwell LD-Editor as reference
27,
© b
y m
axon
mot
or a
g, J
an 0
5
SFC Sequential Function Chart
graphical
for process control engineering
conditions (transitions)
– will be executed after the previous step is finished
– deactivates previous step and activates next step
steps: will be executed if activated
28,
© b
y m
axon
mot
or a
g, J
an 0
5
IL Instruction List widely used in Europe
textual programming similar to assembler
– PLC assembler
line oriented– 1 line = 1 instruction
CR = current result– the virtual accumulator for
all data types
realistic cycle times:– optimised down to 1 ms
VARFirst, Second, Result: INT:=10;StringOp: String[30]:='123456789';StringRes: String[25]END_VAR…B1:LD First (* 10(INT) *)
ADD Second (* 20(INT) *)ST Result (* 20(INT) *)GT 0 (* True(BOOL) *)JMPC B2 (* because
CR=True *)JMC FarAway (* CR undefined,
reaction depends on implement.*)
B2:LD StringOp (* 123456789 (String) *)
ST StringRes (* 123456789 *)
29,
© b
y m
axon
mot
or a
g, J
an 0
5
ST Structured Text widely used in Europe
textual, similar to high level language (e.g. Pascal or C+)
some features– instructions separated with “ ; ”
– loops: FOR, WHILE, REPEAT
– conditions: CASE, IF…THEN…ELSIF...ELSE
– complex expressions
realistic cycle times:– optimised down to 1 ms
31,
© b
y m
axon
mot
or a
g, J
an 0
5
Exercise 1:
Download SimpleMotionSequence Program to the controller and execute it.
32,
© b
y m
axon
mot
or a
g, J
an 0
5
Exercise 1a:
Create a program that will enable the drive and move the motor to an absolute position.– Position = 20000
– Velocity = 1000
– Acceleration = 10000
– Deceleration = 10000
33,
© b
y m
axon
mot
or a
g, J
an 0
5
Exercise 1b:
Create a program that will oscillate the motor between two positions using FBD.– Position 1 = 0
– Position 2 = 20000
– Velocity = 1500
– Acceleration = 15000
– Deceleration = 15000
34,
© b
y m
axon
mot
or a
g, J
an 0
5
Exercise 1 continued…
Step 1: Double Click on “IEC 61131 Programming”
Step 2: Click on Open Programming Tool
Step 3: Click on File Project New
Step 4: Select maxon motor ag
Step 5: Select EPOS P Project
Step 6: Enter Project Name
Step 7: Click OK
Step 8: Click on File New
Step 9: Select FBD
Step 10: Verify POU-Type is Program
Step 11: Enter POU Name
Step 12: Click OK
Step 13: Click Yes to add to Active Resource