Multitasking




Multitasking




Introducere


Multitasking este termenul utilizat pentru executia SIMULTANA a unui numar de sarcini diferite in PLC.


Aceasta functie organizeaza sectiunile de program prin utilizarea tehnicilor de programare modulare. Programul din PLC poate sa contina mai multe parti, fiecare parte fiind un program propriu-zis, cu functii diferite.




Avantajele multitasking-ului sunt: o structura arborescenta de programe mai clara si timpi de ciclu mai scurti.



Prin aceasta metoda este mai usor sa programezi diferite moduri de operare ale echipamentului si sa le apelezi oricand sa ruleze in paralel cu program ul principal.



Termeni asociati cu Multitasking


In Multitasking, se pot utiliza mai multe programe in proiect. Acestea pot rula in paralel cu program ul principal, cand sunt apelate si sunt numerotate cu P1, P2, etc.


Pe langa programe, se pot utiliza si module. Acestea sunt in general subrutine. Exista doua tipuri diferite de module:

CFM          - Apelare modul functie

CMP          - Apelare modul program




















Modul de program Modul functie

(Multitasking)                           (subrutina) (predefinite de Festo)

 






CFM - Apelare modul functie


Instructiunea Call Function Module (CFM) este utilizata pentru a cere executia unei rutine de program externe. Modulele functie pot fi considerate ca apelari de functii speciale.


Cand se apeleaza CFM, functia respectiva va fi activata si va rula in paralel cu program ul principal.

Aceste CFM sunt disponibile in programul FST, trebuie cautat in "Help" pentru a gasi modul  de editare a CFM.


Pentru inserarea unui modul:


Click dreapta pe CFM in "Project Tree";

Click "Import";

Se deschide o cutie de dialog cu modulele predefinite;

Alege modulul dorit;

Click "OK';

Modulul ales va fi in proiect.



CMP - Apelare modul program


Instructiunea Call Module Program (CMP) este utilizata pentru a cere executia unei rutine de program exterioare. Modulele de program sunt considerate similare cu subrutinele.


Cand se apeleaza CMP, programul principal se opreste si va sta la un pas (STEP) si subprogramul va fi activat. Numai cand subprogramul este executat complet, se va sari inapoi la programul principal in punctul unde l-a parasit.




Apelarea modulelor


Pentru a apela modulele, se adauga "THEN CFM x" sau "THEN CMP x" unde "x" este numarul modulului.

De exemplu, creaza un program de palpaire "Blinking". Acesta poate fi fie CFM sau CMP.



THEN      CFM 0 'Modul Blink

LOAD FU32

TO FW10

JMP TO Blink


















 








Se poate apoi utiliza FW10 (cuvant de flag-uri 10) in program.





THEN      SET P2 'Program de palpaire


STEP Start

IF                             FBlink1 '0.25s palpairi

THEN      SET Lamp 'Lampa

OTHRW RESET Lamp 'Lampa


IF                             Start 'Buton Start

THEN      SET P1 'Program Secvential

SET Lamp 'Lampa














 













sau



THEN      SET P2 'Program de palpaire


STEP Start


THEN      LOAD FBlink1 '0.25s palpairi

TO           Lamp 'Lampa


IF                             Start 'Buton Start

THEN      SET P1 'Program Secvential

SET Lamp 'Lampa
















 














Apelarea programelor


Programul principal trebuie sa 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. si cand vrei sa opresti programul, se reseteaza acesta RESET P1, RESET P2, etc.


Cand se apeleaza un subprogram, acesta ruleaza in paralel cu program ul principal.


Utilizarea Flag-urilor


Pana aici, in programe s-au utilizat numai intrarile si iesirile din FEC. Flag-urile sunt asa numitele memorii sau marcaje sau relee interne, etc.


Flag-urile sunt esentiale cand lucram cu multitask-ing si se doreste legarea mai multor programe diferite. Operandul absolut pentru flag este atribuit diferitelor echipamente pe care le utilizam.

De exemplu:


F0.0 . F0.15 pana la F999.0 . F999.15


Ar trebui utilizati operanzi simbolici care sa fie corelati cu sarcinile de comanda. De exemplu:  "Start_Flag", "Stop_Flag", etc.



Utilizarea modulului de palpaire (Blink)


In multe programe trebuie sa aprindem si sa stingem leduri (lampi). Pentru asta utilizam "Blink Module". Acest modul este utilizat pentru iesiri cu iluminare intermitenta. De exemplu, daca trebuie ca lampa butonului de start sa ilumineze intermitent inainte de pornirea programului, putem folosi acest modul.


Pentru a avea functia de iluminare intermitenta, importam "Blink Module" in CFM.


Click dreapta pe "CFM"

Click pe "Import"

Se deschide o fereastra de dialog.



Alege "Blink"

Modulul Blink Module va fi inserat in CFM.


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


Click drepta pe "Programs"

Click pe "Insert Program"

Scrie numele programului

Alege numele corect al programului

Alege versiunea corecta

Adauga comentarii.
















Scrie un program scurt.


THEN      CFM 0 'Modul Blink

LOAD      FU32

TO FW10 'Cuvant de flag pentru moduri de iluminare

Intermitenta (palpaire)

JMP TO Blink
















 








Compileaza si salveaza programul.

Acest program va incarca modurile de iluminare intermitenta in cuvantul de flag 10.

Trebuie sa declari aceste moduri de iluminare in "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

FW10


Cuvant de flag sau moduri de iluminare



THEN      SET P2 'program palpaire


STEP Start

IF                             FBlink2 'palpaire 0.5s

THEN      SET oStart 'Lampa Start

OTHRW RESET oStart 'Lampa Start


IF                             iStart 'Buton Start

AND B1 'Ridicare cilindru

THEN      SET P1 'Program Secvential

SET oStart 'Lampa Start


 















Se pot utiliza aceste flag-uri in program.

De exemplu, daca butonul de start trebuie sa palpaie la intervale de 0,5 sec, se poate adauga acest pas in program.

In pasul Start, lampa de start va palpai cand programul porneste.

Cand butonul de start este apasat, lampa nu va mai palpai si va ramane aprinsa.


Cerinte pentru operatii de comanda  initiale


In programele propuse anterior, sarcina (operarea dispozitivului) a fost executata pentru un ciclu, de fiecare data ce se apasa pe butonul de start. La majoritatea masinilor, functionarea acestora necesita existenta unor butoane pentru realizarea unui ciclu, pentru ciclu automat, pentru resetarea programului si pentru oprire de urgenta.


Acestea pretind utilizarea multitasking.


Operatiile de comanda initiale ar trebui sa permita operatorului sa aleaga intre functionarea ciclu cu ciclu sau in cicluri continue. 


Programul care corespunde acestor cerinte va contine:


Program principal de organizare

Program secvential


Lista de alocare


Absolut

Simbol

Comentarii

I0.0

iStart

Buton Start

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

Comutator Auto/Manual

I0.6

iStop

Buton Stop

O0.0

Y1

Solenoid pentru cilindrul 1A

O0.1

Y2

Solenoid pentru cilindrul 2A

F11.0

FCStop

Stop ciclu

P1


Program secvential


Structura proiectului si a programelor


Arborele proiectului


Arborele proiectului este acel meniu in care se insereaza programele si subprogramele. In acest proiect exista doua programe.

Pentru ca proiectul are cerinte diferite, este necesar sa se realizeze programe multitask. Acestea sunt:


Programul de organizare principal

Programul secvential


Programul de organizare principal este acel program care coordoneaza proiectul. In acest program toate celelalte programe si module sunt activate sau dezactivate. Programul secvential este programul care ruleaza continuu si determina functionarea continua a dispozitivului pana butonul de stop este apasat.











Programul principal de organizare



IF                             iStart 'Buton start

AND B1 'Cilindrul 1A retras

AND B3 'Cilindrul 2A retras

THEN      SET P1 'Program secvential


STEP Stop


IF                             iStop 'ButonStop

THEN      SET FCStop 'Ciclu Stop


IF N P1 'Program secvential

THEN      RESET FCStop 'Ciclu Stop

JMP TO Start

















 















Programul secvential


Acesta este un program pentru functionarea secventiala a dispozitivului de ridicare. Pentru functionare in ciclu continuu, programul secvential va rula continuu si se va opri numai cand se apasa butonul de stop. Pentru functionare intr-un singur ciclu, se va rula programul secvential numai o data. Aceste moduri de rulare ale programului secvential sunt comandate de programul principal de organizare.




IF                             B1 'Cilindru 1A retras

THEN      SET Y1 'Solenoid pentru cilindrul 1A


STEP BPlus


IF                             B2 'Cilindru 1A extins

THEN      SET Y2 'Solenoid pentru cilindrul 2A


STEP BMinus


IF                             B4 'Cilindru 2A extins

THEN      RESET Y2 'Solenoid pentru cilindrul 2A


STEP AMinus


IF                             B3 'Cilindru 2A retras

THEN      RESET Y1 'Solenoid pentru cilindrul 1A


STEP Check


IF                             FCStop 'Stop ciclu

THEN      JMP TO End


IF                             AutoMan 'Comutator Automatic/Manual

THEN      JMP TO Aplus

OTHRW NOP


STEP End


THEN                      NOP




 




























Cerinte de operatii suplimentare de comanda


Se va extinde programul principal, care a fost scris pentru cerinte de comanda initiale, cu noi cerinte de comanda pentru operatorul dispozitivului.

Noile operatii de comanda permit operatorului, pe langa alegerea intre functionarea intr-un ciclu sau in ciclu automat, si activarea unui Stop de urgenta (Emergency Stop) si a unui buton de Reset.

Se vor include si cativa indicatori vizuali pentru butoanele de "Start", "Stop" si "Reset" si, de asemenea, palpairea lampilor.

In concluzie, organizarea programului principal va include urmatoarele:


Selectarea modului Automat sau Manual prin comutator.

Modul Automat inseamna functionarea in ciclu continuu.

Modul Manual inseamna functionarea cu un singur ciclu.

Odata pornit programul secvential, lampa de Start trebuie stinsa.

Cand programul secvential ruleaza, lampa de Stop trebuie sa palpaie.

Cand se apasa butonul de Stop de urgenta, programul secvential trebuie sa se opreasca indiferent daca este selectat modul manual sau automat.

Cilindrii se vor retrage si lampa de reset va palpai.

Daca se apasa butonul de reset, lampa de reset se va stinge.


Proiectul va contine urmatoarele programe:

Program principal de organizare

Program secvential

Program de palpaire


Lista de alocare


Absolut

Simbol

Comentarii

I0.0

iStart

Buton Start

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

Comutator Auto/Manual

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

Palpaire 0.25s

F10.1

FBlink2

Palpaire 0.5s

F10.2

FBlink3

Palpaire 1s

F10.3

FBlink4

Palpaire 2s

F11.0

FCStop

Stop Ciclu

FU32



P1


Program Secvential

P2


Program de palpaire


Structura proiectului si programelor


Arborele proiectului


Se vor insera programele si subprogramele in arborele proiectului. Vom avea 3 programe si un modul de program.


In programul principal de organizare, prin care se va comanda proiectul, se vor activa/dezactiva alte programe si module de program.












Programul principal de organizare



STEP Initial


THEN     SET P2 'Program de palpaire


STEP Start


IF iEStop 'Buton de Emergency Stop

THEN     JMP TO Emergency


IF FBlink1 'Palpaire 0.25s

THEN     SET oStart 'Lampa Start

OTHRW                RESET oStart 'Lampa Start


IF iStart 'Buton Start

AND B1 'Cilindrul 1A retras

AND B3 'Cilindrul 2A retras

THEN     SET P1 'Program Secvential

RESET oStart 'Lampa Start


STEP Stop


F                              iEStop 'Buton Emergency Stop

THEN     JMP TO Emergency


IF FBlink2 'Palpaire 0.5s

THEN     SET oStop 'Lampa Stop

OTHRW                RESET oStop 'Lampa Stop


IF iStop 'Buton Stop

THEN     SET FCStop 'Stop Ciclu


IF            N P1 'Program Secvential

THEN     RESET FCStop 'Stop Ciclu

RESET oStop 'Lampa Stop

JMP TO Start


STEP Emergency


IF NOP

THEN     RESET Y1 'Solenoid pentru cilindru 1A

RESET Y2 'Solenoid pentru cilindru 2A

RESET P1 'Program Secvential

RESET oStart 'Lampa Start

RESET oStop 'Lampa Stop


IF            N iEStop 'Buton Emergency Stop

THEN NOP


STEP Reset


IF iEStop 'Buton Emergency Stop

THEN     JMP TO Emergency


IF FBlink3 'Palpaire 1s

THEN     SET oReset 'Lampa Reset

OTHRW  RESET oReset 'Lampa Reset


IF iReset 'Buton Reset

THEN     RESET oReset 'Lampa Reset

JMP TO Start


Programul secvential


Acesta este programul pentru operarea secventiala a dispozitivului de ridicare. Pentru ciclu continuu, dispozitivul se va opri numai cand se apasa butonul de Stop. Pentru un singur ciclu, se va executa secventa numai o data. Programul secvential este comandat de programul principal de organizare.






























Program de palpaire


Acest program apeleaza modulul de palpaire.




THEN      CFM 0 'Modul de palpaire

LOAD FU32

TO FW10

JMP TO Blink
















 












ECoduri.com - Coduri postale - adresa, caen, cor

Politica de confidentialitate



Copyright © Contact | Trimite document


Ultimele documente adaugate
Mihai EminescuMihai Eminescu
   - Opere romantice - autori si opere reprezentative Gioacchino Rossini, Giuseppe Verdi, Richard Wagner
Mihai Beniuc
   - Mihai beniuc - „poezii"
Mihai EminescuMihai Eminescu
   - Mihai eminescu - student la berlin
Mircea EliadeMircea Eliade
   - Mircea Eliade - Mioara Nazdravana (mioriţa)
Vasile AlecsandriVasile Alecsandri
   - Chirita in provintie de Vasile Alecsandri -expunerea subiectului
Emil GirlenuEmil Girlenu
   - Dragoste de viata de Jack London
Ion Luca CaragialeIon Luca Caragiale
   - Triumful talentului… (reproducere) de Ion Luca Caragiale
Mircea EliadeMircea Eliade
   - Fantasticul in proza lui Mircea Eliade - La tiganci
Mihai EminescuMihai Eminescu
   - „Personalitate creatoare” si „figura a spiritului creator” eminescian
George CalinescuGeorge Calinescu
   - Enigma Otiliei de George Calinescu - geneza, subiectul si tema romanului



Scriitori romani