Sunteți pe pagina 1din 26

Programarea n Statement List

Programarea n Statement List

1.1

Introducere

1.2

Elemente STL
1.2.1

Pai (Step)

1.2.2

Propoziii

1.3

Instruciunea STEP

1.4

Propoziie simpl ntr-un pas

1.5

Propoziii multiple ntr-un pas

1.6

Execuia unui pas cu instruciunea OTHRW (Otherwise)

1.7

Utilizarea comenzii ELSE n loc de comanda OTHRW

Comenzi standard utilizate n STL


2

Comenzi standard utilizate n STL

2.1

Introducere

2.2

Lista de cuvinte cheie


2.2.1

Instruciuni de transfer n STL

2.2.2

Instruciuni logice n STL

Proiectul Dispozitiv de ridicare


3

Proiectul Dispozitiv de ridicare

4.1

Prezentarea problemei

4.2

Soluia problemei i modul de lucru pentru verificarea soluiei

FESTO1

Utilizarea temporizatoarelor
4

Utilizarea temporizatoarelor

4.1

Introducere

4.2

Utilizarea funciei Help

4.3

Inserarea temporizatorului n proiect

Utilizarea numrtoarelor
5

Utilizarea numrtoarelor

5.1

Introducere

5.2

Utilizarea funciei de numrare

5.3

Inserarea numrtorului n proiect FESTO2

Multitasking
6

Multitasking

6.1

Introducere

6.2

Termeni asociai cu Multitasking

6.2.1

CFM Call Function Module

6.2.2

CMP Call Module Program

6.2.3

Apelarea modulelor de program

6.2.4

Apelarea programelor

6.3

Utilizarea Flag-urilor

6.4

Utilizarea modulului de plpire

6.5

Cerine pentru operaii de comand iniiale


6.5.1

6.6

6.7

Structura proiectului i programelor


6.6.1

Arborele proiectului

6.6.2

Programul de principal organizare

6.6.3

Programul secvenial

Cerine pentru operaii de comand suplimentare


6.7.1

6.8

Lista de alocare

Lista de alocare

Structura proiectului i programelor


6.8.1

Arborele proiectului

6.8.2

Programul principal de organizare

6.8.3

Programul secvenial

6.8.4

Programul de plpire FESTO3

Comunicaii n reea
7

Comunicaii n reea

7.1

Introducere

7.2

Verificarea adresei din calculator

7.3

Verificarea adresei IP libere pentru controler

7.4

Modificarea adresei IP a controlerului


7.4.1

Configurarea IO

7.4.2

Setarea controlerului

7.4.3

Descrcarea proiectelor i driverelor n controler

7.5

Conectarea cablurilor bifilare

7.6

Verificarea comunicrii

7.7

Comunicarea cu controlerul

Utilizarea Ethernet
8

Utilizarea Ethernet

8.1

Introducere

8.2

Programarea via Ethernet


8.2.1

Importarea modulelor

8.2.2

Modulul IP_TABLE

8.3

8.2.3

Modulul EASY_R

8.2.4

Modulul EASY_S

Exemplu de utilizare Ethernet pentru un program simplu


8.3.1

Operaii de comand

8.3.2

Componente ale staiei A

8.3.3

Componente ale staiei B

8.3.4

Transfer de date

8.3.5

Lista de alocare

8.3.6

Editarea programului pentru staia A

8.3.7

Program principal pentru staia A

8.3.8

Program secvenial pentru staia A

8.3.9

Program de plpire (Blinking) pentru staia A

8.3.10 Editarea unui program pentru staia B


8.3.11 Program principal pentru staia B
8.3.12 Program secvenial pentru staia B
8.3.13 Program de plpire(Blinking) pentru staia B

1 Programarea n limbajul Statement List


1.1

Introducere

Limbajul STL permite programatorului s rezolve sarcini de comand, utiliznd instruciuni


simple, care descriu operaia de executat a controlerului.
Caracteristica modular a programrii n acest limbaj permite utilizatorului s rezolve sarcini
complexe ntr-un mod eficient i simplu.
Operanzii STL sunt identificatori ai controlerului FEC (Front End Controller, produs de
firma Festo), acetia pot fi intrri, ieiri, temporizatoare, numrtoare, flag-uri, programe i
reprezint numele acestor resurse. Utilizarea unor operanzi n program reprezint modul de
accesare a resurselor din controler pe care le reprezint operanzii.
Operanzii pot fi de un bit (single bit) sau mai muli bii (multibii), n general 16, care
formeaz un cuvnt.
Operanzii de un bit pot fi adevrai sau fali (1 sau 0 logic), pot fi evaluai (interogai) i li
se poate modifica valoarea. Corespunztor fiecrui operand de un bit exist un registru al
procesorului (Single Bit Accumulator) n care se ncarc operandul, n timpul evalurii sau
modificrii acestuia.
Operanzii multibii sunt resurse accesate prin 8 bii (octet) sau cuvnt (16 bii). Operaiile cu
operanzi multibii pot fi: compararea cu valori constante sau ali operanzi multibii, atribuirea
de valori constante sau de valori a altor operanzi, incrementarea/decrementarea cu o unitate a
valorii sale, manipularea valorii operandului prin operanzi multibii aritmetici sau logici.
Corespunztor fiecrui operand multibit, n momentul modificrii valorii acestuia, se ncarc
un registru special al procesorului, numit Multibit Accumulator.
Operatorii sunt simboluri utilizate n programarea STL, care modific sau folosesc valoarea
numeric sau logic a operanzilor. Acetia pot fi: N (negaie), V (valoare zecimal), V$

(valoare hexazecimal), V% (valoare binar), operaii +, -, *, /, <, >, =, <>, <=, >= , (...)
paranteze pentru stabilirea prioritii n evaluarea unor expresii complexe.

1.2

Elemente STL

Step

Propoziii 1.2.1

Pri condiionale
Pri de execuie
Step

Cu toate c utilizarea cuvntului cheie STEP este optional, multe programe STL
utilizeaz instruciunea STEP.

Instruciunea STEP marcheaz nceputul unui bloc logic n codul programului.

Fiecare program STL poate conine pn la 255 pai discrei.

Fiecare STEP poate s conin una sau mai multe propoziii.

Fiecrui STEP i se poate atribui un nume opional sau o etichet.

Eticheta unui STEP este necesar numai dac acelui pas i se atribuie mai trziu
destinaia unei instruciuni de salt (jump)

.
1.2.2

Propoziii

Propoziia constituie elementul de organizare de baz al programului.

Fiecare propoziie conine o parte condiional i o parte executiv

.
a. Partea condiional

Partea condiional servete la declararea uneia sau mai multor condiii


care urmeaz s fie evaluate, la rularea programului, ca fiind adevrate sau false.

Aceast parte ncepe uzual cu cuvntul cheie IF i continu cu una sau


mai multe linii care descriu condiiile ce urmeaz a fi evaluate.

Dac condiiile sunt evaluate ca adevrate, atunci se vor executa toate


instruciunile din partea executiv.

De exemplu:
o

IF I0.1

IF I0.2 AND I0.3

b.

Partea executiv

Aceasta este seciunea din propoziie unde sunt activate ieirile, dac partea
condiional este evaluat ca adevrat.

De exemplu:
o

THEN SET Y1

THEN RESET Y2

1.3

THEN JMP TO START

Instruciunea STEP

In forma sa cea mai simpl, un STEP include cel puin o propoziie.


STEP (Label)
alfanumerice

- etichetele pentru STEP pot conine pn la 8 caractere

IF

- dac Input 0.0 este activ

I0.0

THEN SET O0.3

- atunci activeaz Output 0.3 i treci la pasul urmtor

Este important s se neleag c programul VA ATEPTA la acest pas pn cnd


condiiile sunt/devin adevrate, moment n care aciunile din partea executiv se
vor executa.

Numai dup aceea programul va trece la pasul urmtor.

1.4

Propoziie simpl cu un pas


STEP Start
IF
THEN SET

I0.0
O0.0

- Parte condiional
- Parte executiv

STEP Stop
IF
I0.1
THEN RESET O0.0

Programul va porni cu primul pas, STEP Start.

Dac condiia I0.0 este adevrat, atunci se va executa partea executiv (Set O0.0) i se
va trece la pasul urmtor, STEP Stop.

Dac condiia este fals, programul va atepta la pasul Start.

1.5

Propoziii multiple ntr-un pas


Dac partea condiional din prima propoziie este adevrat, atunci se va executa partea
executiv i se va trece la a doua propoziie. Dac nu este adevrat, se va trece la a doua
propoziie FR NICI o execuie. Nu se va atepta la prima propoziie.
STEP Start
IF
THEN

SET

IF
THEN SET

O0.1

IF
THEN

SET

I0.0
O0.0

prima propoziie

I0.1

a doua propoziie

I0.2
O0.2

a treia propoziie

STEP Stop
IF
THEN

RESET
RESET
RESET

I0.1
O0.0
O0.1
O0.2

Dac partea condiional din a doua propoziie este adevrat, atunci se va executa partea
executiv i se va trece la a treia propoziie. Dac nu este adevrat, se va trece la a treia
propoziie FR NICI o execuie. Nu se va atepta la a doua propoziie.

Dac partea condiional din a treia propoziie este adevrat, atunci se va executa partea
executiv i se va trece la URMTORUL PAS. Dac nu este adevrat, se va trece la a
prima propoziie, la a doua propoziie i la a treia propoziie i se vor executa bucle de
evaluare a condiiilor din propoziii, n interiorul pasului curent.

n general, numai cnd ultima propoziie din STEP este adevrat, se va trece la pasul
urmtor.

1.6

Execuia unui pas cu instruciunea OTHRW (Otherwise)


STEP Start
IF
THEN
SET
OTHRW RESET

I0.0
O0.0
O0.0

- Partea executiv

STEP Stop
IF
THEN

RESET

I0.1
O0.0

Programul va executa primul pas, STEP Start.

Dac condiia I0.0 este adevrat, atunci se va executa partea executiv (Set O0.0) i se
va trece la pasul urmtor, STEP Stop. Altfel , (Otherwise) dac condiia nu este adevrat,
se va executa RESET O0.0 i se va trece la pasul urmtor, STEP Stop.

n acest caz, nu se va mai atepta la pasul STEP Start, ori se va executa SET O0.0 ori
RESET O0.0 i se va trece la pasul urmtor.

1.7

Utilizarea comenzii ELSE n loc de comanda OTHRW

FST 4 ofer posibilitatea de a utiliza comanda ELSE n loc de OTHRW.

Unii dintre programatori sunt mai familiarizai cu comanda ELSE, pentru c se


utilizeaz n mod curent n limbajele de programare.

Pentru a utiliza comanda ELSE, trebuie s se schimbe preferinele.

Click pe Extras, Preferences i STL Editor

Activeaz Use ELSE instead of OTHRW. Click OK.

2 Comenzi standard utilizate n STL


2.1

Introducere
Cuvintele urmtoare din figura alturat
sunt cteva dintre comenzile cele mai
utilizate n STL.

2.2

Lista de cuvinte cheie

2.2.1

Instruciuni de transfer n
STL

Instruciuni

Descriere

STEP

Instruciunea STEP este utilizat pentru a marca nceputul unui bloc logic n codul
programului.

IF
THEN

Cuvnt cheie ce marcheaz nceputul prii condiionale a propoziiei.


Cuvnt cheie ce marcheaz nceputul prii executive a propoziiei.

SET

Instruciunea Set este utilizat pentru a schimba operandul de un bit n starea logic
1.

RESET

Instruciunea Reset este utilizat pentru a schimba operandul de un bit n starea


logic 0.

JMP TO
Step label
NOP

Programul i continu execuia la pasul specificat n etichet (Step label).


Instruciune special care este ntotdeauna adevrat n partea condiional. n partea
executiv, ea este echivalent cu nu face nimic.

OTHRW

2.2.2

Asigur abilitatea de a continua execuia programului dac partea condiional a


propoziiei este fals.

Instruciuni logice n STL

Instruciuni
AND

Descriere
Realizeaz operaia logic I la operanzi de un bit sau multibii i constante.

AND N

Realizeaz operaia logic I NU la operanzi de un bit sau multibii i constante.

OR

Realizeaz operaia logic SAU la operanzi de un bit sau multibii i constante.

OR N

Realizeaz operaia logic SAU NU la operanzi de un bit sau multibii i constante .

LOAD

Permite ncrcarea operanzilor (de un bit sau multibii) specificai i a constantelor


la un acumulator de un bit sau multibii. Este instruciunea echivalent cu =.

DEC

Decrementeaz un operand multibii/acumulator

INC

Incrementeaz un operand multibii/acumulator

Este o negare. Permite s se inverseze o condiie de input.

3 Proiectul Dispozitiv de ridicare


3.1

Prezentarea problemei

Dispozitivul de ridicare din figur are un cilindru pneumatic cu simpl aciune 1A


care ridic/coboar platforma. Cnd platforma este n poziia superioar, cilindrul 2A
va mpinge cutia. Pistonul cilindrului 2A se va retrage, dup care platforma va cobor,
datorit retragerii pistonului cilindrului 1A.

Lista de alocare este:


Simbol

Absolut

SB

I0.0

Buton Start

B1

I0.1

Cilindrul 1A retras

B2

I0.2

Cilindrul 1A extins

B3

I0.3

Cilindrul 2A retras

B4

I0.4

Cilindrul 2A extins

Y1

O0.0

Solenoidul pentru Cilindrul 1A

Y2

O0.1

Solenoidul pentru Cilindrul 2A

3.2

Comentarii

Soluia problemei i modul de lucru pentru verificarea soluiei

Creaz un nou proiect cu numele ridicare1 i apoi un nou program.

Se alege FEC pentru modulul corect IO, la setarea configuraiei IO.

Se declar variabilele din tabelul de mai sus n Lista de alocare.

Pentru scrierea
de program,
se iau n
secvenele descrise mai sus.
AND codului
B1
Cilindrul
1Aconsiderare
retras
Programarea
secvenial, fiecare
pas va
ANDva fiB3
Cilindrul
2Aatepta
retras execuia pasului anterior pentru a
ncepe.
THEN SET
Y1
Solenoid pentru cilindrul 1A

STEP 10
IF

SB

Buton de start

B2
Y2

Cilindrul 1A extins
Solenoid pentru cilindrul 2A

IF
B4
THEN RESET Y2

Cilindrul 2A extins
Solenoid pentru cilindrul 2A

STEP 20
IF
THEN SET
STEP 30

STEP 40
IF
B3
THEN RESET Y1
JMP TO 10

Cilindrul 2A retras
Solenoid pentru Cilindrul 1A

Dup editarea programului, trebuie verificat proiectul.

Click pe icoana Compile Active Module i verific erorile .

Click pe icoana Make Project. Se compileaz astfel toate modificrile fcute n proiect.

Prin click pe Rebuild Project, se reconstruiete ntreg proiectul.

nainte de descrcarea programului, trebuie verificate setrile de comunicaii ntre


FEC i calculator.

Se deschide Preferences box din mediu prin click pe [Extra] , [Preferences]

Alege Communications Port

Alege portul corect COM i Baudrate la 9600.

Dup construcia proiectului i setarea comunicaiilor, se poate descrca programul.

Click pe icoana Download Project sau apas [F5].

Se poate apela modul Online pentru a vizualiza rularea programului sau a monitoriza
operanzii.

FESTO1

4 Utilizarea temporizatoarelor
4.1

Introducere

Se pot utiliza temporizatoarele ncorporate n FEC. n aplicaia Dispozitiv de ridicare, dup


ce cilindrul 2A s-a retras, ca msur de protecie, cilindrul 1A trebuie s atepte 5 sec nainte
de retragere.

4.2

Utilizarea funciei Help

Click pe Help

Click pe Help Topics

10

Click pe Index tab i scrie Timers

Coninutul documentaiei despre Timers este afiat n dreapta.

controlerul FEC se admit operanzii pentru temporizatorul x:

Tx
- Timer x, operand de un bit care reprezint starea temporizatorului. Poate
avea valoarea 1 sau 0 i poate s-i schimbe valoarea prin SET Tx sau RESET Tx.

TPx - Temporizator presetat pentru Timer x, este un operand multibit de un


cuvnt (16 bii) care reprezint valoarea dat de programator prin: LOAD V200 TO
TPx. Se ncarc valoarea de 2 sec la TPx. Valoarea maxim a temporizatorului
presetat este de 65535, adic 655 sec.

TWx - Timer word x este un operand multibit de un cuvnt care reprezint


valoarea curent a temporizatorului x. La activarea temporizatorului (SET Tx) se
ncarc valoarea lui TPx n TWx, dup care numrul este decrementat la fiecare
impuls de ceas al controlerului. Cnd TWx ajunge la 0, Tx este resetat automat i
temporizatorul este dezactivat.

Formatul uzual al temporizatoarelor este:


STEP 10
IF
THEN SET
SET
with

I0.1
O0.2
T1
5s

Input 0.1
Lamp
Temporizator 1

IF
N
T1
THEN RESET O0.2
JMP TO 10

Temporizator 1
Lamp

STEP 20

Sunt 256 temporizatoare n FEC declarate ca T0 pn la T255.

11

4.3

Inserarea temporizatorului n proiect

n programul de mai sus al proiectului, se modific STEP 40 i apare STEP 50, astfel:
STEP 10
IF
AND
AND
THEN SET

SB
B1
B3
Y1

Buton Start
Cilindru 1A retras
Cilindru 2A retras
Solenoid pentru cilindrul 1A

STEP 20
IF
THEN SET

B2
Y2

Cilindru 1A extins
Solenoid pentru cilindru 2A

STEP 30
IF
B4
THEN RESET Y2

Cilindru 2A extins
Solenoid pentru cilindru 2A

STEP 40
IF
THEN SET
with

B3
T1
5s

STEP 50
IF
N
T1
THEN RESET Y1
JMP TO 10

Cilindru 2A retras
Temporizator 1

Temporizator 1
Solenoid pentru cilindru 1A

Dup ce cilindrul 2A s-a retras, temporizatorul va fi activat pentru 5 sec i dup care cilindrul
1A se va retrage.

Reconstruiete proiectul i testeaz funcionalitatea programului.

5 Utilizarea numrtoarelor
5.1

Introducere

Prin introducerea funciei de numrare, proiectul prezentat mai sus se va modifica astfel nct
dup ce se realizeaz 10 cicluri de funcionare a dispozitivului, acesta s se opreasc.

5.2

Utilizarea funciei de numrare


Numrtoarele sunt structuri de date formate din 3 operanzi, de exemplu pentru
numrtorul X:

CX - Numrator X, operand de un bit, care memoreaz starea numratorului X. Se


activeaz/dezactiveaz cu SET CX, RESET CX.

CPX - Numrtor presetat pentru numratorul X, este un operand multibii de un


cuvnt care ncarc valoarea introdus de ctre utilizator. Aceasta poate fi o constant
sau un operand cuvnt (IW, OW, FW, ..)

CWX - Numrtor multibii de un cuvnt pentru numrtorul X, care memoreaz


valoarea curent a numrtorului. Modificarea valorii numrtorului cu o unitate se
face prin INC CWX.

Sunt disponibile 2 metode de utilizare a numrtoarelor. Prima utilizeaz comanda SET


CX prin care bitul CX este 1 logic i se ncarc n CWX valoarea 0. Se ncarc o valoare
la operandul CPX. La fiecare execuie a instruciunii INC CWX , se mrete cu o unitate
valoarea acestui operand. Cnd CWX=CPX, atunci CX=0, n mod automat. A doua

12

metod nu utilizeaz CPX, ci doar CWX a crei valoare o iniializeaz, o incrementeaz


i apoi o compar cu o constant.

Prima metod:
STEP 10
IF
THEN LOAD
TO
SET
RESET

NOP
V10
CP0
C0
Y1

Numrtor 0
Solenoid 1

STEP 20
IF
THEN INC

B1
CW0

Senzor 1
Numrtor 0

STEP 30
IF
N
THEN

B1
NOP

Senzor 1

STEP 40
IF
N
C0
THEN JMP TO 50
OTHRW
JMP TO 20

Numrtor 0

STEP 50
THEN SET
Y1
JMP TO 10

A doua metod:
STEP 10
IF
THEN LOAD
TO
RESET

NOP
V0
CW0
Y1

Solenoid 1

STEP 20
IF
THEN INC

B1
CW0

Senzor 1
Numrtor 0

STEP 30
IF

CW0
=
V10
THEN JMP TO 40
OTHRW
JMP TO 20
STEP 40
THEN SET
Y1
JMP TO 10

5.3

Solenoid 1

Numrtor 0

Solenoid 1

Se pot declara 256 numrtoare n FEC de la C0 la C255.

Inserarea numrtorului n proiect

Trebuie modificat programul cu temporizator pentru a i se aduga funcia de numrare.


Noul proces va fi:

13

La apsarea butonului de Start va ncepe ciclul de funcionare al dispozitivului.

Ciclul se va opri numai dac au fost transportate 10 piese.

Se aplic ntrzierea la retragerea pistonului cilindrului 1A.

Lista de alocare va include:


C0
CP0
CW0
Prima metod
STEP 10
IF

Numrtor 0
Numrtor presetat 0
Cuvnt de numrtor 0

SB
B1
B3
Y1
V10
CPO
C0

Buton de start
Cilindru 1A retras
Cilindru 2A retras
Solenoid pentru cilindrul 1A

B2
Y2

Cilindru 1A extins
Solenoid pentru cilindrul 2A

STEP 30
IF
B4
THEN RESET Y2

Cilindrul 2A extins
Solenoid pentru cilindrul 2A

AND
AND
THEN SET
LOAD
TO
SET
STEP 20
IF
THEN SET

STEPSTEP
40 10
IF IF
B3
THEN
SET
T1
continuareAND
with
5s
STEP 50 AND
THEN N
SET
IF
LOAD
THEN RESET
TO
INC

Numrtor cuvnt
Numrtor 0

SB
B1
B3
Y1
T1
V0
Y1
CWO
CW0

STEP60
20
STEP
IF
B2
IF
N
CO
THEN
SET
Y2
THEN JMP TO 10
OTHRW
STEP 30
IF 70
B4
STEP
THEN RESET Y2
STEP 40
IF
THEN SET
with

Cilindrul
2Astart
retras
Buton
Temporizator
Cilindrul11A retras
Cilindrul 2A retras
Solenoid pentru
Temporizator
1 cilindrul 1A
Solenoid pentru cilindrul 1A
Cuvnt de numrtor
0
Numrtor
0
Cilindrul 1A
Numrtor
0 extins
Solenoid pentru cilindrul 2A
NOP
Cilindrul 2A extins
Solenoid pentru cilindrul 2A

B3
T1
5s

Cilindrul 2A retras
Temporizator 1

A doua metod:

STEP 50
IF
N
T1
THEN RESET Y1
INC
CW0

Temporizator 1
Solenoid pentru cilindrul 1A
Cuvnt de numrtor

STEP 60
IF

Cuvnt de numrtor 0

CWO
=
V10
THEN JMP TO 10
OTHRW
STEP 70
IF

B1
AND B3
THEN SET
Y1
JMP TO 20

NOP
Cilindrul 1A retras
Cilindrul 2A retras
Solenoid pentru cilindrul 1A

14

Modific proiectul i verific funcionalitatea acestuia succesiv pentru cele dou variante de
contorizare.

FESTO2

6 Multitasking
6.1

Introducere

Multitasking este termenul utilizat pentru execuia SIMULTAN a unui numr de sarcini
diferite n PLC.
Aceast funcie organizeaz seciunile de program prin utilizarea tehnicilor de programare
modulare. Programul din PLC poate s conin mai multe pri, fiecare parte fiind un program
propriu-zis, cu funcii diferite.
Avantajele multitasking-ului sunt: o structur arborescent de programe mai clar i timpi de
ciclu mai scuri.
Prin aceast metod este mai uor s programezi diferite moduri de operare ale
echipamentului i s le apelezi oricnd s ruleze n paralel cu programul principal.

6.2

Termeni asociai cu Multitasking

n Multitasking, se pot utiliza mai multe programe n proiect. Acestea pot rula n paralel cu
programul principal, cnd sunt apelate i sunt numerotate cu P1, P2, etc.
Pe lng programe, se pot utiliza i module. Acestea sunt n general subrutine. Exist dou
tipuri diferite de module:

15

CFM

Apelare modul funcie

CMP

Apelare modul program

P0
Program
principal
care este
activat
oricnd
PLC-ul
este
alimentat

P1

CMP 0

CFM 0

P2

CMP 49

P63

Program
(Multitasking)

6.2.1

CFM 49

CMP 99

CFM 99

Modul de program
(subrutin)

Modul funcie
(predefinite de Festo)

CFM Apelare modul funcie

Instruciunea Call Function Module (CFM) este utilizat pentru a cere execuia unei rutine de
program externe. Modulele funcie pot fi considerate ca apelri de funcii speciale.
Cnd se apeleaz CFM,
funcia respectiv va fi
activat i va rula n paralel
cu programul principal.
Aceste
CFM
sunt
disponibile n programul
FST, trebuie cutat n
Help pentru a gsi modul
de editare a CFM.
Pentru
modul:

Click Import;

Se deschide o cutie de dialog cu modulele predefinite;

Alege modulul dorit;


Click OK";
Modulul ales va fi n proiect.

6.2.2

inserarea

unui

Click dreapta pe CFM


n Project Tree;

CMP Apelare modul program


16

Instruciunea Call Module Program (CMP) este utilizat pentru a cere execuia unei rutine de
program exterioare. Modulele de program sunt considerate similare cu subrutinele.
Cnd se apeleaz CMP, programul principal se oprete i va sta la un pas (STEP) i
subprogramul va fi activat. Numai cnd subprogramul este executat complet, se va sri napoi
la programul principal n punctul unde l-a prsit.

6.2.3

Apelarea modulelor

Pentru a apela modulele, se adaug THEN CFM x sau THEN CMP x unde x
este numrul modulului.
De exemplu, creaz un program de plpire Blinking. Acesta poate fi fie CFM sau
CMP.
STEP Blink
THEN CFM 0
LOAD FU32
TO
FW10
JMP TO Blink

Modul Blink

Se poate apoi utiliza FW10 (cuvnt de flag-uri 10) n program.

sau

STEP Initial
THEN SET

P2

Program de plpire

STEP Start
IF
THEN SET
OTHRW

FBlink1
Lamp
RESET Lamp

0.25s plpiri
Lamp
Lamp

Start
P1
Lamp

Buton Start
Program Secvenial
Lamp

IF
THEN SET
SET

STEP Initial
THEN SET

P2

Program de plpire

STEP Start

6.2.4

THEN LOAD FBlink1


TO
Lamp

0.25s plpiri
Lamp

IF
THEN SET
SET

Buton Start
Program Secvenial
Lamp

Start
P1
Lamp

Apelarea programelor

Programul principal trebuie s fie Program 0, toate celelalte subprograme vor avea numele
Program 1, Program 2, etc.
In programul principal se pot apela mai multe module de program, prin setarea numelui
programului, de exemplu SET P1, SET P2, etc. i cnd vrei s opreti programul, se reseteaz
acesta RESET P1, RESET P2, etc.
Cnd se apeleaz un subprogram, acesta ruleaz n paralel cu programul principal.

6.3

Utilizarea Flag-urilor
17

Pn aici, n programe s-au utilizat numai intrrile i ieirile din FEC. Flag-urile sunt aa
numitele memorii sau marcaje sau relee interne, etc.
Flag-urile sunt eseniale cnd lucrm cu multitask-ing i se dorete legarea mai multor
programe diferite. Operandul absolut pentru flag este atribuit diferitelor echipamente pe care
le utilizm.
De exemplu:
F0.0 F0.15 pn la F999.0 F999.15
Ar trebui utilizai operanzi simbolici care s fie corelai cu sarcinile de comand. De exemplu:
Start_Flag, Stop_Flag, etc.

6.4

Utilizarea modulului de plpire (Blink)

n multe programe trebuie s aprindem i s stingem leduri (lmpi). Pentru asta utilizm
Blink Module. Acest modul este utilizat pentru ieiri cu iluminare intermitent. De
exemplu, dac trebuie ca lampa butonului de start s ilumineze intermitent nainte de pornirea
programului, putem folosi acest modul.
Pentru a avea funcia de iluminare intermitent, importm Blink Module n CFM.

Click dreapta pe CFM

Click pe Import

Se deschide o fereastr de dialog.

Alege Blink

Modulul
Blink
Module
va
fi
inserat n CFM.

Cu
acest
modul
importat, trebuie scris
un program pentru
alocarea ledurilor cu
iluminare intermitent
la flag-uri.

Click drepta pe Programs

Click pe Insert Program

Scrie numele programului

Alege numele corect al programului

Alege versiunea corect

Adaug comentarii.

18

Scrie un program scurt.

STEP Blink
THEN CFM 0
Modul Blink
LOAD
FU32
Compileaz i salveaz programul.
TO
FW10
Cuvnt de flag pentru moduri de iluminare
Acest program va ncrca modurile Intermitent
de iluminare(plpire)
intermitent n cuvntul de flag 10.
JMP TO Blink

Trebuie s declari aceste moduri de iluminare n Lista de alocare

Absolut

Simbol

Comentarii

F10.1

FBlink1

0.25s Blink

F10.2

FBlink2

0.5s Blink

F10.3

FBlink3

1s Blink

F10.4

FBlink4

2s Blink
Cuvnt de flag sau moduri de
iluminare

FW10

STEP Initial
THEN SET

P2

STEP Start
IF
THEN SET
OTHRW

FBlink2
plpire 0.5s
oStart
Lampa Start
RESET oStart
Lampa Start

IF
AND
THEN SET
SET
..

iStart
B1
P1
oStart

program plpire

Buton Start
Ridicare cilindru
Program Secvenial
Lampa Start

19

Se pot utiliza aceste flag-uri n program.

De exemplu, dac butonul de start trebuie s plpie la intervale de 0,5 sec, se poate
aduga acest pas n program.

n pasul Start, lampa de start va plpi cnd programul pornete.

Cnd butonul de start este apsat, lampa nu va mai plpi i va rmne aprins.

6.5

Cerine pentru operaii de comand iniiale

n programele propuse anterior, sarcina (operarea dispozitivului) a fost executat pentru un


ciclu, de fiecare dat ce se apsa pe butonul de start. La majoritatea mainilor, funcionarea
acestora necesit existena unor butoane pentru realizarea unui ciclu, pentru ciclu automat,
pentru resetarea programului i pentru oprire de urgen.
Acestea pretind utilizarea multitasking.
Operaiile de comand iniiale ar trebui s permit operatorului s aleag ntre funcionarea
ciclu cu ciclu sau n cicluri continue.
Programul care corespunde acestor cerine va conine:

Program principal de organizare

Program secvenial

6.5.1

Lista de alocare
Absolut

Simbol

I0.0

iStart

I0.1

B1

Cilindrul 1A retras

I0.2

B2

Cilindrul 1A extins

I0.3

B3

Cilindrul 2A retras

I0.4

B4

Cilindrul 2A extins

I0.5

AutoMan

I0.6

iStop

O0.0

Y1

Solenoid pentru cilindrul 1A

O0.1

Y2

Solenoid pentru cilindrul 2A

F11.0

FCStop

P1

6.6
6.6.1

Comentarii
Buton Start

Comutator Auto/Manual
Buton Stop

Stop ciclu
Program secvenial

Structura proiectului i a programelor


Arborele proiectului

Arborele proiectului este acel meniu n care se insereaz programele i subprogramele. n


acest proiect exist dou programe.

20

Pentru c proiectul are cerine diferite, este necesar s se realizeze programe multitask.
Acestea sunt:

Programul de organizare principal

Programul secvenial
Programul de organizare principal este acel
program care coordoneaz proiectul. n acest
program toate celelalte programe i module
sunt activate sau dezactivate. Programul
secvenial este programul care ruleaz continuu
determin
funcionarea
continu
a
dispozitivului pn butonul de stop este apsat.

6.6.2

Programul principal de organizare

STEP Aplus
STEP Start
IF
THEN SET
IF
iStart
AND B1
STEP
ANDBPlus
B3
THEN SET
P1
IF
THEN SET
STEP Stop

B1
Y1

B2
Y2

STEP BMinus
IF
iStop
THEN SET
FCStop
IF
B4
THEN
RESET
Y2
IF
N
P1
THEN RESET FCStop
STEP
JMPAMinus
TO Start

6.6.3

Cilindru 1A retras
pentru cilindrul 1A
Buton Solenoid
start
Cilindrul 1A retras
Cilindrul 2A retras
Program secvenial
Cilindru 1A extins
Solenoid pentru cilindrul 2A
ButonStop
Ciclu Stop
Cilindru 2A extins
Solenoid
pentru cilindrul 2A
Program
secvenial
Ciclu Stop

IF
B3
Cilindru 2A retras
Programul
secvenial
THEN RESET Y1
Solenoid pentru cilindrul 1A

Acesta este un program pentru funcionarea secvenial a dispozitivului de ridicare. Pentru


STEP
funcionare
n Check
ciclu continuu, programul secvenial va rula continuu i se va opri numai cnd
se apas butonul de stop. Pentru funcionare ntr-un singur ciclu, se va rula programul
IF numai o dat. FCStop
Stop
cicluale programului secvenial sunt comandate
secvenial
Aceste moduri de
rulare
THEN JMP TO End
de programul principal de organizare.
IF
AutoMan
THEN JMP TO Aplus
OTHRW
NOP

21

STEP End
THEN

Comutator Automatic/Manual

NOP

6.7

Cerine de operaii suplimentare de comand

Se va extinde programul principal, care a fost scris pentru cerine de comand iniiale, cu noi
cerine de comand pentru operatorul dispozitivului.
Noile operaii de comand permit operatorului, pe lng alegerea ntre funcionarea ntr-un
ciclu sau n ciclu automat, i activarea unui Stop de urgen (Emergency Stop) i a unui buton
de Reset.
Se vor include i civa indicatori vizuali pentru butoanele de Start, Stop i Reset i, de
asemenea, plpirea lmpilor.
n concluzie, organizarea programului principal va include urmtoarele:

Selectarea modului Automat sau Manual prin comutator.

Modul Automat nseamn funcionarea n ciclu continuu.

Modul Manual nseamn funcionarea cu un singur ciclu.

Odat pornit programul secvenial, lampa de Start trebuie stins.

Cnd programul secvenial ruleaz, lampa de Stop trebuie s plpie.

Cnd se apas butonul de Stop de urgen, programul secvenial trebuie s se opreasc


indiferent dac este selectat modul manual sau automat.

Cilindrii se vor retrage i lampa de reset va plpi.

22

Dac se apas butonul de reset, lampa de reset se va stinge.

Proiectul va conine urmtoarele programe:

Program principal de organizare

Program secvenial

Program de plpire

6.7.1

Lista de alocare
Absolut

Simbol

Comentarii

I0.0

iStart

I0.1

B1

Cilindrul 1A retras

I0.2

B2

Cilindrul 1A extins

I0.3

B3

Cilindrul 2A retras

I0.4

B4

Cilindrul 2A extins

I0.5

AutoMan

I0.6

iStop

Buton Stop

I0.7

iReset

Buton Reset

I1.0

iEStop

Buton Emergency Stop

O0.0

Y1

Solenoid pentru cilindrul 1A

O0.1

Y2

Solenoid pentru cilindrul 2A

O0.2

oStart

Lampa Start

O0.3

oStop

Lampa Stop

O0.4

oReset

Lampa Reset

F10.0

FBlink1

Plpire 0.25s

F10.1

FBlink2

Plpire 0.5s

F10.2

FBlink3

Plpire 1s

F10.3

FBlink4

Plpire 2s

F11.0

FCStop

Stop Ciclu

Buton Start

Comutator Auto/Manual

FU32

6.8
6.8.1

P1

Program Secvenial

P2

Program de plpire

Structura proiectului i programelor


Arborele proiectului

23

Se vor insera programele i subprogramele n


arborele proiectului. Vom avea 3 programe i un
modul de program.
n programul principal de organizare, prin care se
va comanda proiectul, se vor activa/dezactiva alte
programe i module de program.

6.8.2

Programul principal de organizare


STEP Initial
THEN SET

P2

Program de plpire

STEP Start
IF
iEStop
THEN JMP TO Emergency

Buton de Emergency Stop

IF
THEN SET
OTHRW

FBlink1
oStart
RESET oStart

Plpire 0.25s
Lampa Start
Lampa Start

IF

iStart
B1
B3
P1
oStart

Buton Start
Cilindrul 1A retras
Cilindrul 2A retras
Program Secvenial
Lampa Start

AND
AND
THEN SET
RESET
STEP Stop

F
iEStop
THEN JMP TO Emergency

Buton Emergency Stop

IF
THEN SET
OTHRW

FBlink2
oStop
RESET oStop

Plpire 0.5s
Lampa Stop
Lampa Stop

IF
THEN SET

iStop
FCStop

Buton Stop
Stop Ciclu

IF
N
P1
THEN RESET FCStop
RESET oStop
JMP TO Start

Program Secvenial
Stop Ciclu
Lampa Stop

STEP Emergency
IF

NOP

24

THEN RESET
RESET
RESET
RESET
RESET

Y1
Y2
P1
oStart
oStop

Solenoid pentru cilindru 1A


Solenoid pentru cilindru 2A
Program Secvenial
Lampa Start
Lampa Stop

IF
N
THEN

iEStop
NOP

Buton Emergency Stop

STEP Reset
IF
iEStop
THEN JMP TO Emergency
IF
THEN SET
OTHRW

FBlink3
Plpire 1s
oReset
Lampa Reset
RESET oReset
Lampa Reset

IF
iReset
THEN RESET oReset
JMP TO Start

6.8.3

Buton Emergency Stop

Buton Reset
Lampa Reset

Programul secvenial

Acesta este programul pentru operarea secvenial a dispozitivului de ridicare. Pentru ciclu
continuu, dispozitivul se va opri numai cnd se apas butonul de Stop. Pentru un singur ciclu,
se va executa secvena numai o dat. Programul secvenial este comandat de programul
principal de organizare.

STEP Aplus
IF
THEN SET

B1
Y1

Cilindru 1A retras
Solenoid pentru cilindrul 1A

B2
Y2

Cilindru 1A extins
Solenoid pentru cilindru 2A

IF
B4
THEN RESET Y2

Cilindru 2A extins
Solenoid pentru cilindru 2A

STEP BPlus
IF
THEN SET
STEP BMinus

STEP AMinus
IF
B3
THEN RESET Y1

Cilindru 2A retras
Solenoid pentru cilindru 1A

25

STEP Check
IF
FCStop
THEN JMP TO End

Stop Ciclu

IF
AutoMan
THEN JMP TO Aplus
OTHRW
NOP

Comutator Automat/Manual

STEP End
THEN

NOP

6.8.4

Program de plpire

Acest program apeleaz modulul de plpire.


STEP Blink
THEN CFM 0
LOAD FU32
TO
FW10
JMP TO Blink

Modul de plpire

FESTO3

26

S-ar putea să vă placă și