Programarea in limbajul Statement List
1.1 Introducere
Limbajul
STL permite programatorului sa rezolve
s
Caracteristica modulara a programarii in acest limbaj permite utilizatorului sa rezolve sarcini complexe intr-un mod eficient si simplu.
Operanzii STL sunt identificatori ai controlerului FEC (Front End Controller, produs de firma Festo), acestia pot fi intrari, iesiri, temporizatoare, numaratoare, flag-uri, programe si reprezinta numele acestor resurse. Utilizarea unor operanzi in program reprezinta modul de accesare a resurselor din controler pe care le reprezinta operanzii.
Operanzii pot fi de un bit (single bit) sau mai multi biti (multibiti), in general 16, care formeaza un cuvant.
Operanzii de un bit pot fi adevarati sau falsi (1 sau 0 logic), pot fi evaluati (interogati) si li se poate modifica valoarea. Corespunzator fiecarui operand de un bit exista un registru al procesorului (Single Bit Accumulator) in care se incarca operandul, in timpul evaluarii sau modificarii acestuia.
Operanzii multibiti sunt resurse accesate prin 8 biti (octet) sau cuvant (16 biti). Operatiile cu operanzi multibiti pot fi: compararea cu valori constante sau alti operanzi multibiti, atribuirea de valori constante sau de valori a altor operanzi, incrementarea/decrementarea cu o unitate a valorii sale, manipularea valorii operandului prin operanzi multibiti aritmetici sau logici. Corespunzator fiecarui operand multibiti, in momentul modificarii valorii acestuia, se incarca un registru special al procesorului numit Multibit Accumulator.
Operatorii sunt simboluri utilizate in programarea STL, care modifica sau folosesc valoarea numerica sau logica a operanzilor. Acestia pot fi: N (negatie), V (valoare zecimala), V$ (valoare hexazecimala), V% (valoare binara), operatii +, -, *, /, <, >, =, <>, <=, >= , () paranteze pentru stabilirea prioritatii in evaluarea unor expresii complexe.
1.2 Elemente STL
· Step
· Propozitii - Parti conditionale
- Parti de executie
1.2.1 Step
· Cu toate ca utilizarea cuvantului cheie STEP este optionala, multe programe STL utilizeaza instructiunea STEP.
· Instructiunea STEP marcheaza inceputul unui bloc logic in codul programului.
· Fiecare program STL poate contine pana la 255 pasi discreti.
· Fiecare STEP poate sa contina una sau mai multe propozitii.
· Fiecarui STEP i se poate atribui un nume optional sau o eticheta.
Eticheta unui STEP este necesara numai daca acelui pas i se atribuie mai tarziu destinatia unei instructiuni de salt (jump)
1.2.2 Propozitii
Propozitia constituie elementul de organizare de baza al programului.
Fiecare propozitie contine o parte conditionala si o parte executiva
.
a. Partea conditionala
· Partea conditionala serveste la declararea uneia sau mai multor conditii care urmeaza sa fie evaluate la rularea programului ca fiind adevarate sau false.
· Aceasta parte incepe uzual cu cuvantul cheie IF si continua cu una sau mai multe linii care descriu conditiile ce urmeaza a fi evaluate.
· Daca conditiile sunt evaluate ca adevarate, atunci se vor executa toate instructiunile din partea executiva.
· De exemplu:
o IF I0.1
o IF I0.2 AND I0.3
b. Partea executiva
Aceasta este sectiunea din propozitie unde sunt activate iesirile daca partea conditionala este evaluata ca adevarata.
· De exemplu:
1.3 Instructiunea STEP
In forma sa cea mai simpla, un STEP include cel putin o propozitie.
STEP (Label) - etichetele pentru STEP pot contine pana la 8 caractere alfanumerice
IF I0.0 - daca Input 0.0 este activ THEN SET O0.3 - atunci activeaza Output 0.3 si treci la pasul urmator |
· Este important sa se inteleaga ca programul VA ASTEPTA la acest pas pana cand conditiile sunt/devin adevarate, moment in care actiunile din partea executiva se vor executa.
Numai dupa aceea programul va trece la pasul urmator.
1.4 Propozitie simpla cu un pas
STEP Start
IF I0.0 - Parte conditionala THEN SET O0.0 - Parte executiva
STEP Stop
IF I0.1 THEN RESET O0.0 |
· Daca conditia este falsa, programul va astepta la pasul Start.
1.5 Propozitii multiple intr-un pas
· Daca partea conditionala din prima propozitie este adevarata, atunci se va executa partea executiva si se va trece la a doua propozitie. Daca nu este adevarata, se va trece la a doua propozitie FARA NICI o executie. Nu se va astepta la prima propozitie.
STEP Start
IF I0.0 prima propozitie THEN SET O0.0
IF I0.1 a doua propozitie THEN SET O0.1
IF I0.2 a treia propozitie THEN SET O0.2
STEP Stop
IF I0.1 THEN RESET O0.0 RESET O0.1 RESET O0.2 |
· Daca partea conditionala din a doua propozitie este adevarata, atunci se va executa partea executiva si se va trece la a treia propozitie. Daca nu este adevarata, se va trece la a treia propozitie FARA NICI o executie. Nu se va astepta la a doua propozitie.
· Daca partea conditionala din a treia propozitie este adevarata, atunci se va executa partea executiva si se va trece la URMATORUL PAS. Daca nu este adevarata, se va trece la a prima propozitie, la a doua propozitie si la a treia propozitie si se vor executa bucle de evaluare a conditiilor din propozitii, in interiorul pasului curent.
· In general, numai cand ultima propozitie din STEP este adevarata, se va trece la pasul urmator.
1.6 Executia unui pas cu instructiunea OTHRW (Otherwise)
STEP Start IF I0.0 THEN SET O0.0 OTHRW RESET O0.0 - Partea executiva
STEP Stop
IF I0.1 THEN RESET O0.0 |
1.7 Utilizarea comenzii ELSE in loc de comanda OTHRW
· FST 4 ofera posibilitatea de a utiliza comanda "ELSE" in loc de "OTHRW".
· Unii dintre programatori sunt mai familiarizati cu comanda "ELSE", pentru ca se utilizeaza in mod curent in limbajele de programare.
· Pentru a utiliza comanda "ELSE", trebuie sa se schimbe preferintele.
· Click pe "Extras", "Preferences" si "STL Editor"
· Activeaza "Use ELSE instead of OTHRW". Click "OK".