Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Input / Output
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Instruction Lists
2.3.5.9 Programming environment
PLC = Programmable Logic Controller: Definition
Formerly: cabled relay control (hence 'logic'), analog (pneumatic, hydraulic) “governors”
Distinguish Instrumentation
flow meter, temperature, position,…. but also actors (pump, …)
Control
programmable logic controllers with digital peripherals & field bus
Visualization
Human Machine Interface (HMI) in PLCs (when it exists) is limited
to service help and control of operator displays
Simple PLC
digital outputs
PLC in a cabinet
CPU1 CPU2
serial connections
redundant field
bus connection
inputs/outputs
example: turbine control (in the test lab)
PLC: functions
• Measure
• Control (Command and Regulation)
• Protection
•Event Logging
•Communication
•Human interface
PLC: Characteristics
• large number of peripherals: 20..100 I/O per CPU, high density of wiring, easy assembly.
• digital and analog Input/Output with standard levels
• operate under harsh conditions, require robust construction, protection against dirt,
water and mechanical threats, electro-magnetic noise, vibration, extreme temperature
range (-30C..85C), sometimes directly located in the field.
• programming: either very primitive with hand-help terminals on the target machine
itself, or with a laptop
• network connection for programming on workstations and connection to SCADA
• field bus connection for remote I/Os
• primitive Human-Machine-Interface for maintenance, either through LCD-display or
connection of a laptop over serial lines (RS232) or wireless.
• economical - €1000.- .. €15'000.- for a full crate.
• the value is in the application software (licenses €20'000 ..€50'000)
PLC: Location in the control architecture
Enterprise Network
Engineer Operator Supervisor
station station Station gateway
Control Bus
(e.g. Ethernet)
PLC
large
COM1
COM 2
Control Station
COM1
COM 2
COM1
CPU
PLC
CPU
CPU
I/O
with Field Bus gateway
PLCs
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
direct I/O
Field Bus Field Bus
COM
COM
COM
COM
CPU
CPU
CPU
COM
I/O
I/O
I/O
I/O
I/O
I/O
I/O
directly connected
I/O
Field Stations FB
gateway Field Devices
small PLC
data concentrators,
not programmable,
but configurable
Sensor Bus (e.g. ASI)
Why 24V / 48 V supply ?
Photo TEPCO
Global players
(1) Compact
Monolithic construction
Monoprocessor
Fieldbus connection
(3) Soft-PLC
Linux or Windows NT or CE-based automation products
Direct use of CPU or co-processors
Compact PLC
Thermocouple
inputs
binary I/Os,
CAN field bus
RS232 to HMI
courtesy Turbec
cost: € 1000.-
Modular PLC
• primitive or no HMI
CPU CPU Analog I/O Binary I/O
• cost effective if the rack can be filled fieldbus
courtesy ABB
courtesy Backmann
field bus
€ extension
# I/O modules
Industry- PC
• PC as engineering workstation
• PC as human interface (Visual Basic, Intellution, Wonderware)
23 12 • PC as real-time processor
4 2 2 • PC assisted by a Co-Processor (ISA- or PC104 board)
3
3 • PC as field bus gateway to a distributed I/O system
I/O modules
Protection devices
trip relay
Protection devices are highly specialized PLCs that measure the current and voltages in an electrical
substation, along with other statuses (position of the switches,…) to detect situations that could
endanger the equipment (over-current, short circuit, overheat) and trigger the circuit breaker (“trip”) to
protect the substation.
In addition, they record disturbances and send the reports to the substation’s SCADA.
Sampling: 4.8 kHz, reaction time: < 5 ms.
costs: € 5000
Comparison Criteria – what matters
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Structured Text
2.3.5.5 Sequential Function Charts
2.3.5.6 Ladder Diagrams
2.3.5.7 Instruction Lists
2.3.5.8 Programming environment
Implementation
y y(i) y(i)
1
processing
binary transistor
binary
variable filtering sampling or
variable
(e.g. 0..24V)
0001111
relay
non-volatile
counter memory
y
time
General PLC architecture
RS 232 Ethernet
Can you find all the components from the previous slide?
In addition this device uses a DSP module for complex computations.
2.3.5 Programming languages
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 Programming languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Input / Output
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Instruction Lists
2.3.5.9 Programming environment
The long march to IEC 61131
IEC 61131-3
name change
70 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
C
P1
P2
PLC
"Real-Time" languages
Function Block Diagram (FBD) graphical languages Sequential Flow Chart (SFC)
CALC1
START STEP
CALC PUMP
bFB(A:=1, B:=‘OK’);
Instruction List (IL) Z := X - INT_TO_REAL (bFB.OUT1);
A: LD %IX1 (* PUSH BUTTON *) IF Z>57.0 THEN aFB(A:=0, B:=“ERR”);
ANDN %MX5 (* NOT INHIBITED *) ELSE aFB(A:=1, B:=“Z is OK”);
ST %QX2 (* FAN ON *) END_IF
61131 Elementary Data Types
80% of all PLCs support it, all new developments are based on it.
Depending on the country, some languages are more popular than others.
More information:
http://www.plcopen.org/pages/tc1_standards/downloads/plcopen_iec61131-
3_feb2014.pptx
http://www.plcopen.org/pages/pc2_training/downloads/index.htm
2.3.5.2 Input and Output
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Input & Output
2.3.5.3 Function blocks
2.3.5.4 Program Execution
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Instruction Lists
2.3.5.9 Programming environment
Connecting to Input/Output, Method 1: dedicated I/O blocks
The Inputs and Outputs of the PLC must be connected to (typed) variables
IN_1 OUT_1
All program variables must be declared with name and type, initial value and volatility.
A variable may be connected to an input or an output, giving it an I/O address.
Several properties can be set: default value, fall-back value, store at power fail,…
These variables may not be connected as input, resp. output to a function block.
predefined addresses
2.4.2.3 Function Blocks Language
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Input / Output
2.3.5.3 Function blocks language
2.3.5.4 Program Execution
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Instruction Lists
2.3.5.9 Programming environment
Function Block Languages
Example 1:
A
B & C
Example 2:
external inputs external outputs
Trigger
Tempo &
S Q Spin
Running
Reset R
Example "continuously"
set point PID command executing block,
overflow independent,
measurement no side effects
There exist exactly two rules for connecting function blocks by signals
(this is the actual programming):
• Each signal is connected to exactly one source.
This source can be the output of a function block or a plant signal.
• The type of the output pin, the type of the input pin and the signal type
must be identical.
The function plan should be drawn so the signals flow from left
to right and from top to bottom. Some editors impose additional rules.
Retroactions are an exception to this rule. In this case, the signal direction is
identified by an arrow (forbidden in some editors – use global variables instead).
a
b x
c y
Types of Programming Organisation Units (POUs)
1) “Functions”
- are part of the base library.
- have no memory.
Examples: and gate, adder, multiplier, selector,....
The library describes the pinning of each block, its semantics and the
execution time.
The programmer may extend the library by defining function block macros
composed of library elements.
MoveAbsolute
Axis Axis
AXIS_REF AXIS_REF
BOOL Execute Done BOOL
REAL Position CommandAborted BOOL
REAL Velocity Error BOOL
REAL Acceleration ErrorID WORD
REAL Deceleration
REAL Jerk
MC_Direction Direction
Time Diagram:
0 T
x y x
y
T
Truth Table:
x1 x2 y
x1 S 0 0 previous state
x2 R 0 1 0
1 0 1
1 1 1
t
x dx y
Mathematical Formula:
Kpx Kd Ki xd
dt 0
Textual Description: Calculates the root mean square of the input with a filtering constant
defined in parameter „FilterDelay“
Function Block specification in Structured Text
IEC 61131-3 library (extract)
Boolean Functions Selector Arithmetic Functions
Binary
selection
Select one of N
inputs depending
ADD adder
on input K
Flip-flop
SUB subtractor
Up counter
dominant set
Q:=S1|(Q&!R)
MUL multiplier
DIV divider
dominant reset CU – input (rising
Q:=!R1&(Q|S) edges count up)
Trigger R – reset counter
(CV:=0) Integrator
INT
PV – preset value (if reset)
Reset
Q – 1 if CV >= PV PV Out := PV,
rising edge CV – current value In else
detector Out:= Δt *In +
Out
More details http://calc1.kss.ia.polsl.pl/content/dydaktyka/PC/PLC_IEC61131-3.pdf
Exercise: What do the following blocks do ? (Δt = 1)
2. In1 Remember:
1. INT
In
(1024)
Reset = 0
INT
ADD
Out DIV PV If (Reset) :
(10)
(initially 2) In2 Out
In (initially 0) Out := PV,
(2)
Else:
What are the values of Out? Out := Δt *In + Out
What are the values
of Out? What happens if out is initially 1024?
3. t1 t2 t3 t4 t5 t6 t7 t8
CTU
CU
RESET Q CU
PV CV
Reset = 0, PV = 3, CV = #up Q = (CV >= PV) ?
http://tinyurl.com/IAFunctionBlock
https://docs.google.com/forms/d/1ynmoXf3JTcRn2yv2_4bKhcK0HJNDYpiTnQQm13lDSso/viewform
Exercise: What do the following blocks do ?
1. 2.
3.
CV = 1, 1, 2, 2, 3, 3, 4, 4
Q = 0, 0, 0, 0, 1, 1, 1, 1
4.
S SR dominant set
S1 Q:=S1|(Q&!R)
R R Q
https://docs.google.com/forms/d/1ynmoXf3JTcRn2yv
2_4bKhcK0HJNDYpiTnQQm13lDSso/viewform ftp://advantechdownloads.com/Traini
ng/KW%20training/
Exercise: Asymmetric Sawtooth Wave
-25
Exercise: Asymmetric Sawtooth Wave
-25
Hints:
- Compute the slopes
- Use integrators, comparators, flip-flops and selectors
Exercise: Saw-tooth FBD
Out
75.0
0
-25.0
+ 8.3
-20.0
=
Function Block segmentation
X1
M2 M1
Y1
Segment B
X2 Y2
M1
X3 M2
2.3.5.3 Program execution
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Input / Output
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Instruction Lists
2.3.5.9 Programming environment
Execution of Function Blocks
function F1
Machine Code: input1 A
input2 B
The function blocks are output X01
translated to machine language F2
(intermediate code, IL), X01
that is either interpreted or X
F3
compiled to assembly language B
C
Blocks are executed in sequence, X02
normally from upper left to lower right F4
X
X02
The sequence is repeated every t ms. Y
Input-Output of Function Blocks
Run-time:
read write
inputs outputs
I X O I X O I X O
time
execute individual period
If the execution time of these operations take more than one period,
they are executed in background.
configuration
resource resource
task task task task
FB FB FB FB
access paths
communication function
Function blocks are particularly well suited for true multiprocessing (parallel
processors).
The performance limit is given by the needed exchange of signals by shared memory.
Semaphores are not used since they could block an execution and make the concerned
processes non-deterministic.
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Input / Output
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Programming environment
Structured Text
Caution: writing programs in structured text can breach the real-time rules !
Data Types
Function Blocks are typed: the types of connection, input and output must match.
TYPE
ANALOG_CHANNEL_CONFIGURATION
STRUCT
RANGE: ANALOG_SIGNAL_RANGE;
MIN_SCALE : ANALOG_DATA ;
MAX_SCALE : ANALOG_DATA ;
END_STRUCT;
ANALOG_16_INPUT_CONFIGURATION :
STRUCT
SIGNAL_TYPE : ANALOG_SIGNAL_TYPE;
FILTER_CHARACTERISTIC : SINT (0.99)
CHANNEL: ARRAY [1..16] OF ANALOG_CHANNEL_CONFIGURATION;
END_STRUCT ;
END_TYPE
Structured Text Examples
[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]
Structured Text Example
Move ASCII characters from a SINT array into a string tag. (In a SINT array, each element holds one
character.) Stop when you reach the carriage return.
element_num := 0;
SIZE(SINT_array, 0, SINT_array_size);
WHILE SINT_array[element_num] <> 13 DO
String_tag.DATA[element_num] := SINT_array[element_num];
element_num := element_num + 1;
String_tag.LEN := element_num;
IF element_num = SINT_array_size then
exit;
END_IF;
END_WHILE;
Explanations:
1. Initialize element_num to 0.
2. Count the number of elements in SINT_array (array that contains the ASCII characters) and store the result
in SINT_array_size (DINT tag).
3. If the character at SINT_array[element_num] = 13 (carriage return), then stop.
4. Set String_tag[element_num] = the character at SINT_array[element_num].
5. Add 1 to element_num. This lets the controller check the next character in SINT_array.
6. Set the Length member of String_tag = element_num. (This records the number of characters in String_tag
so far.)
7. If element_num = SINT_array_size, then stop. (You are at the end of the array and it does not contain a
carriage return.)
8. Go to 3. [http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]
Structured Text Exercise
A user-defined data type (structure) stores information about an item in an Inventory array:
• Inventory[i].ID: Barcode ID of the item (string data type)
• Inventory[i].Qty: Quantity in stock of the item (DINT data type)
An array of the above structure contains an element for each different item in your inventory. You
want to search the array for a specific product (by its barcode) and determine the quantity in stock.
Pseudocode:
1. Get size (number of items) of Inventory array and store result in Inventory_Items (DINT tag).
2. Loop over positions in array.
3. If Barcode matches the ID of an item in the array, then:
a. Set the Quantity tag = Inventory[position].Qty
b. Stop.
[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]
Structured Text Exercise Solution
A user-defined data type (structure) stores information about an item in an Inventory array:
• Inventory[i].ID: Barcode ID of the item (string data type)
• Inventory[i].Qty: Quantity in stock of the item (DINT data type)
An array of the above structure contains an element for each different item in your inventory. You
want to search the array for a specific product (by its barcode) and determine the quantity in stock.
Pseudocode:
1. Get size (number of items) of Inventory array and store result in Inventory_Items (DINT tag).
2. Loop over positions in array.
3. If Barcode matches the ID of an item in the array, then:
a. Set the Quantity tag = Inventory[position].Qty
b. Stop.
Solution:
SIZE(Inventory,0,Inventory_Items);
FOR position:=0 to Inventory_Items - 1 DO
IF Barcode = Inventory[position].ID THEN
Quantity := Inventory[position].Qty;
EXIT;
END_IF;
END_FOR;
[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]
2.3.5.6 Sequential Function Charts
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.3 PLCs: Functions and construction
2.3.5 PLC Programming Languages
2.3.5.1 IEC 61131 Languages
2.3.5.2 Function blocks
2.3.5.3 Program Execution
2.3.5.4 Input / Output
2.3.5.5 Structured Text
2.3.5.6 Sequential Function Charts
2.3.5.7 Ladder Diagrams
2.3.5.8 Programming environment
SFC (Sequential Flow Chart)
START STEP
T1
N ACTION D1 D1_READY
STEP A STEP B
D ACTION D2 D2_READY
T2
S0
event condition
"1"
("1" = always true) transitions
Sa example transition condition
Eb
token
Sc
State which come into existence with a token are called initial states.
All initial states receive exactly one token, the other states receive none.
"1" E0
Sc
Ec
Sb Sd
Ed
token forking : when the transition Ee is true, the token Se
is replicated to all connected states Ee
Note: transition is before the fork
Ef Sg
token join : when all connected states have tokens Sf
and transition Eg is true, one single token is forwarded.
Note: transition is after the join
Eg
SFC: P1, N and P0 actions
The actions are described by a code block written e.g. in Structured Text.
Special action: the timer
rather than define a P0 action “ reset timer….”, there is an implicit variable defined as
<state name>.t that express the time spent in that state.
Sf
SFC: graphic rules
The input and output flow of a state are always in the same vertical line (simplifies structure)
Alternative paths are drawn such that no path is placed in the vertical flow
(otherwise would mean this is a preferential path)
intentional displacement to
avoid optical preference of a
path.
Priority:
• The alternative path most to the left has the
highest priority, priority decreases towards the right.
Input: Variables
I0, I1, I2, I3 (boolean);
Output:
Trap = {0: closed; 1: open}
Speed = {+20: +1 m/s; +1: +5 cm/s; 0: 0m/s}
Register = {0: closed; 1: open}
negative values: opposite direction
Register = {0: closed; 1: open}
+speed
trap
A
a
A
B
a
b d
B d
C
b
c
C
c B' b
d
A' a
SFC: Complex structures
These general rules serve to build networks, termed by DIN and IEC as flow charts
Principle:
procedure
xy(...);
begin
...
end xy;
S
a
"1"
b R c
NOT d
c
d
a
Flow Charts Or Blocks ? (2)
H1 T temperature
(sensor)
heater
(actor)
V4
MD
2.3.5.7 Ladder Diagrams
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.2 PLCs: Kinds
2.3.3 PLCs: Functions and construction
Rung 0
Rung 1
Rung 2
Ladder Diagrams (2)
The contact plan or "ladder diagram" language allows an easy transition from the
traditional relay logic diagrams to the programming of binary functions.
It is not suited for process control programming (there are no analog elements).
make contact
origin: (contact travail)
02
electrical 01 relay coil
circuit (bobine)
03 50
break contact
(contact repos)
01 02
corresponding 50 rung
03
ladder diagram
50 50
02
Parallel + 01
40 01
02 40
02
The Ladder Diagrams is more intuitive for complex binary expressions than literal languages
textual expression
1 2 3 4
50 ! 1 & 2 & ( 3 & ! 4 | ! 5 & 6 ) = 50
5 6
Or
0 1 4 5 12
50 N0 & 1 STR 2 & 3 / STR STR 4
2 3 6 7 & 5 STR N 6 & 7
/ STR & STR STR 10
10 11 & 11 / STR & 12 = 50
Ladder Diagrams (6)
00 01
literal expression:
FUN 02 200
!00 & 01 FUN 02 = 200
Ladder Diagrams diagram for a batch process: filling a container with a liquid,
mixing the liquid, and draining the container. The sequence of events is as follows:
1. fill valve opens and lets the liquid into the container until it is full.
2. liquid in the container is mixed for 3 minutes.
3. a drain valve opens and drains the tank.
O = output
I = input
Address of variable
(module number, port
number)
Source: http://teacher.buet.ac.bd/zahurul/ME6401/ME6401_PLC.pdf
Ladder Diagrams Exercise
Consider a PLC with one input module and one output module. Two external switches (SW-0
& SW-1) are connected via terminal IN-0 and In-1 of input module. Two terminals of the output
module (OUT-0 & OUT-1) drive two indicator lamps (Lamp-0 & Lamp-1).
The top rung will light Lamp-0 if both SW-0 and SW-1 are closed. The bottom rung will light
Lamp-1 if either SW-0 or OUT-0 are closed.
IEC 61131 does not prescribe the minimum requirements for a compiler / interpreter
such as number of rungs per page nor does it specifies the minimum subset to be
implemented.
Therefore, it should not be used for large programs made by groups of people
It is very limited when considering analog values (it has only counters)
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.2 PLCs: Kinds
2.3.3 PLCs: Functions and construction
Accumulator-based pogramming:
• First, values are loaded into the accumulator (LD instruction)
• Then, operations are executed with first parameter taken out of accumulator
and second parameter of operand.
• Result put in the accumulator, from where it can be stored (ST instruction)
Syntax:
- each instruction begins on a new line and contains an operator and,
depending on the type of operation, one or more operands separated by commas
- before an instruction there can be a label, followed by a colon (:), as target for jumps
- use brackets to define order of execution
- comments must be placed last
- empty lines are allowed.
Instruction Lists Example (3)
Instructions Lists is the most efficient way to write code, but only for specialists.
Labels
LD TRUE (*load TRUE into the accumulator*)
ANDN BOOL1 (*execute AND with the negated value of the BOOL1 variable*)
JMPC mark (*if the result was TRUE, then jump to the label "mark"*)
LDN BOOL2 (*load the negated value of BOOL2 into the accumulator*)
ST RES (*store the content of the accumulator in RES*)
JMP continue (*jump to label “continue"*)
mark:
LD BOOL2 (*save the value of *)
ST RES (*BOOL2 in RES*)
continue:
…
a) Temp1 = 10 b) Temp1 = 10
Temp2 = 15 Temp2 = 5
Speed1 = 50 Speed1 = 50
Speed2 = 100 Speed2 = 100
Exercise IEC 61131 Languages
A B C
?
-| |--|/|----------------( ) A ? C
?
B
? ?
? ? C:= ?
? ?
http://tinyurl.com/IA61131
https://docs.google.com/forms/d/1lGkFXQrlwlnoKc8gUg-_ESAdtVy-RgIOLnFbkIOGNa8/viewform
Exercise IEC 61131 Languages
A B C
-| |--|/|----------------( ) A AND C
B
LD A
ANDN B C:= A AND NOT B
ST C
http://tinyurl.com/IA61131
https://docs.google.com/forms/d/1lGkFXQrlwlnoKc8gUg-_ESAdtVy-RgIOLnFbkIOGNa8/viewform
2.3.5.9 Programming environment
2.1 Instrumentation
2.2 Control
2.3 Programmable Logic Controllers
2.3.1 PLCs: Definition and Market
2.3.2 PLCs: Kinds
2.3.3 PLCs: Functions and construction
- run simulations
configuration, editor,
compiler, library
symbols workstation
code
variable
firmware monitoring
and
download forcing
for debugging
network
PLC
Program maintenance
The source of the PLC program is generally on the laptop of the technician.
This supposes that the instruction lists in the PLC can be mapped directly to graphic
representations -> set of rules how to display the information.
Names of variables, blocks and comments must be kept in clear text, otherwise the
code, although correct, would not be readable.