Sunteți pe pagina 1din 10

Limbajul de programare al controlerelor ER

ACL (Advanced Control Language)

MOVELD: similar cu instruciunea MOVEL i MOVED i este utilizabil numai


n modul indirect.

Instruciunile ACL pot fi utilizate n dou moduri: direct (din ecranul ATS pentru
execuie imediat) sau indirect (din editare de programe i execuie la rularea
programului). n aceast documentaie se vor utiliza urmtoarele notaii: <prog>
pentru program, <var> pentru variabil, <value> pentru valoare, <par> pentru
parametru, <axis> pentru axa (cupla cinematic conductoare), <pos> pentru
poziia robotului, <pvect> pentru vector de poziie, <time> pentru timp, <state>
pentru starea controlerului, <arg> pentru argumentul unei funcii. Toate
instruciunile necesit validare prin tastarea lui <enter>, mai puin <Ctrl>+A, care
nseamn ncetarea execuiei comenzii repetitive introduse anterior. Sintaxa
limbajului ACL permite unele cuvinte opionale, care sunt introduse n paranteze
{}.

MOVEC <pos1> <pos2>: comanda de deplasare pe o traiectorie circular din


poziia curent n <pos1>, trecnd prin <pos2>. Valoarea curent a vitezei
determin timpul necesar micrii i precizia de deplasare pe traiectorie. i n acest
caz se pot ntlni limitri mecanice ale robotului care duc la imposibilitatea
execuiei micrii.

Instruciuni pentru comanda roboilor


MOVE <pos> {<time>}: comanda de deplasare a robotului n poziia <pos>
specificat, fr/cu precizarea timpului de micare n sutimi de sec. Comanda de
micare este lansat i se iniializeaz rutinele de program pentru realizarea
efectiv a acesteia, iar programul trece la execuia urmtoarei instruciuni, fr a
mai atepta confirmarea execuiei micrii.
MOVED <pos> {<time>}: comanda de deplasare care asigur secvenialitatea
execuiei n conformitate cu succesiunea liniilor din program. Execuia micrii
robotului este iniiat de instruciunea MOVED, iar trecerea la execuia urmtoarei
linii din program se realizeaz numai cnd se confirm realizarea micrii i
atingerea poziiei din instruciune de ctre traductorii de poziie ai axelor robotului.
MOVEL <pos> {<time>}: comanda de deplasare a punctului caracteristic al
robotului pe o traiectorie liniara din poziia curenta n poziia <pos>. Valoarea
vitezei curente determin precizia deplasrii. Atentie! Micarea nu poate fi uneori
executat din cauza limitrilor mecanice. Instruciunea este similar cu MOVE din
punct de vedere al secvenialitii execuiei liniilor de program.

MOVECD: similar cu instruciunea MOVEC i MOVED i este utilizabil numai


n modul indirect.
MOVES <pvect> <prim punct> <ultim punct> {<timp>}: comanda de deplasare
a punctului caracteristic al robotului printr-un numr de poziii corespunztoare
definiiei unui vector de poziii. Execuia micrii nseamn trecerea succesiv
prin numrul consecutiv de poziii, pornind de la primul punct i terminnd cu
ultimul. Accelerarea/decelerarea micrii se realizeaz numai la nceputul/sfritul
micrii. Se recomand ca poziiile vectorului s permit deplasarea punctului
caracteristic al robotului pe traiectorie astfel nct robotul s se mite lin. Cu ct
distana ntre poziiile succesive este mai mare, cu att robotul se va mica cu o
vitez mai mare.
MOVESD: similar cu instruciunea MOVES i MOVED i este utilizabil numai
n modul indirect.
OPEN {<var>}: deschide dispozitivul de prehensiune cu acionare electric la
cursa maxim. Variabila <var> definit de utilizator determin ca motorul de c.c. al
dispozitivului s realizeze o fora de prehensare suplimentar, proporional cu
valoarea variabilei. Utilizai valori sczute pentru variabila <var> i verificai
valoarea parametrulului corespunztor nainte de a l utiliza (se recomand par 75 <
3500). Uzual <var>=1000.
CLOSE {<var>}: nchide complet dispozitivul de prehensiune. Atentie! Similar cu
OPEN, valoarea prea mare a variabilei <var> poate cauza defectarea motorului sau
a transmisiei mecanice. Instruciunile OPEN i CLOSE determin dezactivarea
buclei de reacie nchise a comenzii dispozitivului de prehensiune.

45

JAW <var> {<time>}: valoarea varibilei <var> definete n procente cursa de


nchidere/deschidere fa de cursa maxim. Dac valoarea timpului se omite,
micarea se realizeaz la vitez maxim. Acest instruciune activeaz bucla de
reglare nchis, dezactivat de instruciunea OPEN/CLOSE. <var>=de la 0 pn la
100. Alte valori pot produce defectarea motorului de acionare!
SPEED{A/B} <value>: atribuie valoare vitezei curente de deplasare a robotului n
procente. <value> poate fi de la 1 la 100 i reprezinta procente din valoarea
maxim posibil de micare a robotului. Valoarea recomandat a lui <value> este
de 50 sau mai puin. A i B nseamn ca instruciunea SPEED se refer la grupul
de axe comandate ale robotului (A) respectiv axe suplimentare (B). Instruciunile
de micare care nu includ valori de timp, se realizeaz cu viteze curente introduse
de ctre utilizator. Valorile maxime/minime ale vitezei sunt determinate de ctre
parametrii par298/299.
SHOW SPEED: instruciune pentru afiarea pe ecran a valorilor curente ale
vitezei pentru axele robotului (A) i axele suplimentare (B).
EXACT {OFF} A/B: instruciune care determin ca la comenzile de micare
MOVE+D, controlerul s verifice, prin valorile traductoarelor de poziie, dac s-a
atins, cu o anumita toleranta, poziia memorata anterior. Dac se lucreaz n modul
EXACT OFF, micarea comandat de MOVE+D va fi ntrziat (cu o anumit
valoare a timpului) pn cnd controlerul consider ca axele au atins poziia
corect. Parametrii par261-271 determin valoarea toleranei pentru precizia de
poziionare a punctului caracteristic.
MPROFILE PARABOLE A/B, MPROFILE TRAPEZE A/B: atribuie un profil
de vitez parabolic sau trapezoidal pentru rutinele de calcul a micrilor
axelor robotului A sau suplimentare B. Profilul trapezoidal de vitez
determin acceleraii/deceleraii rapide la nceputul/sfritul micrii i o
micare cu vitez constant pe majoritatea lungimii traiectoriei. Profilul
parabolic de vitez determin accelerarea lin a micrii pn se atinge
viteza maxim, dup care decelerarea se realizeaz cu aceeasi valoare.
Valoarea maxim a vitezei pentru poriunile de accelerare/decelerare este
determinat prin valoarea parametrului par76.

INT_ON <axis1> {<axis2>,<<axis4>}, INT_OFF< axis1> {<axis2>,


<<axis4>}: realizeaz introducerea/scoaterea parametrului integrativ din bucla de
reglare nchis (comanda PID). Se pot specifica pn la 4 axe comandate ntr-o
singur instruciune.
HOME {<n>} (HHOME {<n>}): instruciune pentru rularea programului
memorat n EPROM pentru gasirea poziiei de acasa a fiecarei axe, prin deplasare
la capat de cursa i activarea microintrerupatorului de capat de cursa. Se poate gasi
poziia de acasa i numai pentru o anumita axa <n>. Instruciunea HHOME este
utilizata atunci cnd axa comandata nu prezinta, la capatul de cursa, un
microintrerupator. Initializarea traductorului de poziie se realizeaz prin ajungerea
la capat de cursa i, prin limitarea valorii intensitatii de alimentare a motorului de
c.c., se comanda oprirea micrii. Parametrii 200-212, 295 definesc conditiile de
rulare a programului HOME. De exemplu: valoarea par 212 incetineste micarea n
timpul initializarii axelor robotului, valoarea parametrului 200 comanda gradul de
precizie al initializarii axelor robotului, mai incet (precis) sau mai rapid (mai
imprecis).
CLR <n>: initializeaza (=0) valoarea traductorului de poziie de pe axa <n>.
CLRBUF {A/B}: goleste bufferul de memorie alocat rezultatelor calculelor
necesare realizarii micrii pentru toate axele, ceea ce opreste micarea robotului
dup care se continua rularea programului cu urmatoarea instruciune.
CLRCOM <n> sau CLRCOM 0: unde <n> este portul n de comunicatie seriala
RS232 sau unde 0 este pentru toate porturile de comunicatie seriala. Instruciunea
curata bufferele de memorie ale porturilor. Aceast instruciune se utilizeaz
pentru a iniializa (reseta) porturile de comunicare dac a aparut o eroare ce a
cauzat ntreruperea sau suspendarea comunicarii RS232.
CON{A/B}: realizeaz conectarea axelor robotului la controler, a motoarelor la
sistemul de alimentare cu tensiune pentru axele din grupele A sau B.
COFF{A/B}: instruciune pentru o actiune inversa instructiunii CON.

46

TON {<n>} activeaz (comuta pe ON) protecia termic a motoarelor tuturor


axelor comandate sau numai pe o axa specificata n.

CONTINUE <prog>: continua rularea programului exact de la linia la care acesta


a fost suspendat printr-o instruciune SUSPEND.

TOFF {<n>}: dezactiveaz (comuta pe OFF) protecia termic a motoarelor tuturor


axelor comandate sau numai pe o axa specificata n. Atentie! n urma execuiei
instructiunii motoarele nu vor mai avea protecie termic prin programe.

PRIORITY <prog> <var>: cnd se execut mai multe programe deodat, cele cu
prioritate mai mare vor rula mai nti. Programele cu aceeasi prioritate utilizeaz
procesorul pentru acelai interval de timp prin algoritmi de distribuie egali. 10 este
cea mai nalt prioritate, 1 cea mai sczut.

SET ANOUT [<axis>]=<DAC>: atribuie o valoare la ieirea analogic pentru axa


specificat.
5000<DAC<5000. Atentie! Se utilizeaz numai valori n domeniul specificat.
SHOW DAC <n>: unde <n> este numrul de ordine al axei comandate (cupla
cinematic conductare). Afieaz pe ecran valoarea tensiunii motorului de c.c. n
milivolti.
Instruciuni pentru comenzi directe i pentru controlul programelor
RUN <prog1> {<var>}: pornete execuia programului <prog1> de la prima linie.
Dac n modul indirect (editare <prog1>) se utilizeaz instruciunea RUN <prog2>,
ambele programe <prog1> i <prog2> sunt executate simultan. <var> este
prioritatea de rulare a programului <prog1>: 1 cea mai sczut, 10 cea mai ridicat
prioritate. Valoarea ce se atribuie automat fr indicaie din partea utilizatorului
este 5. Rularea simultan a programelor n modul direct/indirect ine cont de
valoarea prioritii acestora. Programele cu aceeai prioritate sunt executate
simultan.
A (ABORT) oprete rularea tuturor programelor din controler, A<prog> oprete
numai rularea programului <prog>.
STOP {<prog>}: opreste rularea tuturor programelor i oprete micarea axelor
comandate sau opreste numai rularea programului <prog>.
SUSPEND <prog>: suspenda execuia programului specificat. Continuarea
programului se realizeaz prin instruciunea CONTINUE de la linia unde a ramas
n suspendare.

SET <var>=TIME: atribuie valoarea variabilei <var> la TIME. TIME este o


variabila de sistem care este exprimata n impulsuri de 10 milisecunde din
momentul conectrii la tensiune a controlerului.
DELAY <var>: introduce o temporizare n execuia liniei urmatoare de program
egala cu valoarea variabilei <var> n sutimi de secunda.
WAIT <var1> <cond> <var2>: execuia programului se suspend pn la
ndeplinirea condiiei. Instruciunea WAIT utilizeaz puin din puterea procesorului
atta timp ct programul ateapt apariia evenimentului.
TRIGGER <prog> BY IN/OUT <n> {<state>}: programul <prog> ncepe
execuia atunci cnd pe portul de intrare/ieire IN/OUT <n> se ndeplinete
condiia de stare a lui <state> (adica valoarea 0 sau 1). Dac <state> este
omis, condiia de pornire a programului este realizata la schimbarea starii
intrarii/iesirii specificate. De exemplu: TRIGGER DRIL BY N 15 1
(porneste programul DRIL cnd intrarea 15 are starea 1.
PEND <var1> FROM <var2> i
POST <var3> TO <var2>: instruciunile sunt utilizate pentru a sincroniza
execuia simultan de programe. Dac <var2> este zero, execuia
programului este suspendat pn un alt program care se execut n acest
timp trimite o valoare diferit de zero variabilei <var2> prin instruciunea
POST <var3> TO <var2>. Dac <var2> nu este zero, aceast valoare este
atribuit lui <var1> i valoarea <var2> devine zero. De exemplu:
PROGRAM DOACT
programul DOACT este suspendat pn un alt
SET SIGN =0
program (SEND) este
PEND VALUE FROM SIGN
activat i trimite valoarea 1 variabilei SIGN, iar

47

RUN ACT
END
PROGRAM SEND
POST 1 TO SIGN
END

VALUE devine 1

QPOST <var3> TO <var2> i


QPEND <var1> FROM <var2>: QPOST realizeaz un sir de valori pentru a fi
prelucrate i QPEND ia valorile din sir n aceeasi ordine n care au fost introduse
de ctre QPOST. Sirul de elemente trebuie mai intai initializat prin anularea tuturor
valorilor. De exemplu:
PROGRAM INIT
DIMG SIR[10]
defineste i initializeaza sirul de valori
FOR I=1 TO 10
SET SIR[I]=0
ENDFOR
END
PROGRAM DOACT
LABEL 1
Programul DOACT ia o valoare din sir.
QPEND VALUE FROM SIR
Programul ACT va rula atunci cnd
RUN ACT
se introduc valori n SIR prin programul
GOTO 1
SEND. DOACT este suspendat pn la sosirea
END
unei valori n SIR
PROGRAM SEND
QPOST 1 TO SIR
END
COPY <prog1> <prog2>: unde prog1 i prog2 sunt programe definite de ctre
utilizator. Copiaza continutul programului prog1 sub un nume nou, prog2. Vor
exista, n urma execuiei n modul direct a instructiunii COPY, doua programe
identice sub doua nume, prog1 i prog2.
RENAME <prog1> <prog2>: schimba numele prog1 n prog2. Dac programul
cu numele prog2 exista, nu se realizeaz actiunea.

REMOVE <prog>: sterge programul din memoria RAM i variabilele locale ale
programului respectiv.
EDIT <prog>: unde <prog> este numele programului dat de ctre utilizator.
Activeaza modul de editare al programelor. Dac <prog> este un program nou, se
creaza automat un program nou cu acest nume. Prima linie afisata pe ecran n
modul editare este prima linie din programul <prog>.
Instruciuni pentru definirea pozitiilor robotului
DEFP{A}/B <pos>: defineste o poziie pentru grupul de axe A sau B. Poziiei
definite prin instruciunea DEFP trebuie s i se atribuie valori pentru fiecare ax
comandat, printr-o instruciune HERE sau SETPV.
DIMP{A}/B <pvect[n]>: unde <pvect[n]> este un vector cu n poziii pentru grupul
de axe A sau B. Instruciunea defineste un vector cu n poziii, de exemplu
CIM[1000], care se vor numi CIM[1], CIM[2], CIM[3],,CIM[1000].
HERE <pos>: instruciune care inregistreaza valorile curente ale traductorilor de
poziie pentru poziia curenta a robotului, n memoria RAM a controlerului n
locaia poziiei <pos>. <pos> trebuie s fie predefinit prin instruciunea DEFP sau
DIMP.
HERER <pos2> {<pos1>}: inregistreaza valorile impulsurilor traductorilor de
poziie ale <pos2> egale cu valorile corespunzatoare ale <pos1>. Dac <pos1>
este modificata, <pos2> se modifica i ea automat. HERER <pos2> este o
instruciune care inregistreaza valorile impulsurilor traductorilor de poziie relativ
la poziia curenta a robotului. Pentru aceast sintaxa a instructiunii HERER este
necesar a se introduce pentru fiecare axa comandata valoarea numarului de
impulsuri a traductorului de poziie pentru axa respectiva care adaugata la valoarea
curenta a acestuia va determin numrul de impulsuri a poziiei <pos2>. n
paranteze [ ] sunt afisate valorile introduse anterior.
TEACH <pos>: unde <pos> este o poziie a robotului (grup A). Instruciunea
introduce valori coordonatelor carteziene ale poziiei dorite <pos> pentru axele
comandate ale robotului. Valorile coordonatelor punctului caracteristic fata de

48

sistemul de axe de referin ataate bazei robotului X, Y, Z se vor introdce n


zecimi de mm, iar valorile pentru unghiurile de orientare (P) i (R) n zecimi de
grade. Valorile afiate pe ecranul calculatorului n paranteze [ ] sunt cele atribuite
anterior.
TEACHR <pos2> {<pos1>}: atribuie valori coordonatelor carteziene ale poziiei
<pos2> relativ la o alt poziie. Dac <pos1> nu este specificat, <pos2> va fi
atribuit relativ la poziia curent. Dac <pos1> este specificat, <pos2> va fi
definit n coordonate carteziene relativ la <pos1>. Valorile coordonatelor X, Y, Z,
P, R vor fi introduse n zecimi de mm sau de grade.
SETPV <pos>, SETPV <pos> <axis> <value>: instruciune similar cu TEACH,
dar valorile corespunztoare unei poziii a robotului vor fi atribuite impulsurilor de
la traductoarele de poziii ale axelor comandate. Dac se doreste numai
modificarea unei axe, se va utiliza cea de-a doua sintaxa pentru valoarea
impulsurilor traductorului de poziie pe acea axa <axis>.
SETPVC <pos> <coord> <value>: instruciune necesar pentru modificarea unei
coordonate carteziene a unei poziii a robotului nvate anterior. De exemplu:
SETPVC V[I] X XV nseamn c pentru poziia V[I] coordonatei carteziene pe axa
OX i se atribuie valoarea variabilei XV.
SHIFT <pos> BY <axis> <value>: unde <pos> este poziia definita de utilizator,
<axis> este numrul axei comandate. Instruciunea realizeaz redefinirea poziiei
<pos>, care fata de poziia definita anterior, n urma execuiei instruciunii, va avea
pentru axa indicata o poziie nou. Valoarea pentru axa indicata va fi schimbata
din valoarea anterioara n valoarea indicata n aceast instruciune.
SHIFTC <pos> BY <coord> <value>: unde <pos> este poziia robotului, definita
de ctre utilizator, n coordonate carteziene, <value> trebuie specificata n zecimi
de mm pentru coordonatele X, Y, Z i zecimi de grade pentru P i R. Noua poziie
memorata n urma execuiei instructiunii va avea pentru coordonata indicata,
valoarea <value>.
SETP <pos2>=<pos1>: copiaz valorile de definire a <pos2> n valorile de
definire a <pos1>. n acest mod, ambele poziii vor avea aceelasi valori de

localizare. Instruciunea este necesar pentru definirea unor poziii ntre care exist
diferene ntre valorile impulsurilor traductoarelor de poziie pentru 1-3 axe
comandate (este utilizabil apoi instruciunea SETPV sau SHIFT).
UNDEF <pos>, UNDEF <pvect>: initializeaza valorile unei poziii sau vector de
poziii. <pos> sau <pvect> mai sunt definite, dar valorile prin care se defineste
localizarea poziiei sunt sterse. Instruciunea se poate utiliza impreuna cu
APPEND.
DELP <pos>, DELP <pvect>: sterge positia <pos> sau vectorul de poziie
<pvect> din memoria RAM, n modul direct. Se pot sterge acele poziii care nu
sunt utilizate n programe. Nu se pot sterge poziii individuale apartinand vectorilor
de poziii.
SET <var>= PVAL <pos> <axis>: atribuie valoarea variabilei <var> impulsurilor
traductorului de poziie a axei comandate specificate <axis> din poziia <pos>, n
coordonatele cuplelor.
SET <var> = PVALC <pos> <coord>: atribuie valorii coordonatei specificate
<coord> din poziia <pos> o anumita valoare de variabila <var>, n coordonate
carteziene. <pos> trebuie s fie o poziie a robotului.
SET <var> = PSTATUS <pos>: atribuie valoarea variabilei <var> la starea
poziiei specificate. Codul agreat pentru specificarea strii unei poziii este: 0
localizare nedefinita, 1 poziie fixa, 2 relativa n coordonatele cuplelor la o alta
poziie, 3 relativa n coordonate carteziene la o alta poziie, 12 relativa n
coordonatele cuplelor la poziia curenta, 13 relativa n coordonate carteziene la
poziia curenta. De exemplu, SET ST=PSTAT P1: P1 este o poziie fixa, variabila
ST va fi 1.
LISTPV <pos> sau LISTPV POSITION: afieaz valorile impulsurilor
traductoarelor de poziie ataate poziiei nvate a robotului i valorile
coordonatelor carteziene ale punctului caracteristic n raport cu sistemul de axe
atasat robotului. LISTPV POSITION afieaz situarea curenta a punctului
caracteristic al robotului.
1: 3657 2:-25366
3:42536
4:0
5:-43

49

x:5467 y:0
z:9586
sunt afisate n zecimi de mm i de grade.

P:657

R:-65,

valorile

carteziene

Instruciuni pentru definirea variabilelor


DEFINE <var1> {<var2>.<var12>}: une var1, var2, , var 12 sunt variabile
definite de ctre utilizator. Instruciunea defineste variabile locale i se utilizeaz
numai n modul indirect, n editare de program. Variabilele trebuie s aiba numele
cu primul caracter o litera.

SET <var1>=<var2> <oper> <var3>: atribuie valoarea rezultatului operatiei


matematice dintre variabila 2 i 3 la valoarea variabilei 1. Dac <oper> este AND
sau OR, se aplica operatia logica ntre bitii variabilei 2 i 3. Pentru operatia AND,
dac <var2>=0 i <var3>=1, <var 1>=0. Dac <var2>=1 i <var3>=1, <var1>=1.
SET <var1>= <var2> COS (SIN, TAN) <var3>: se realizeaz operatia
trigonometrica pentru <var3>, rezultatul este inmultit cu <var2>. Controlerul are o
unitate logica/aritmetica care efectueaza operatii cu numere intregi (Z). SET
<var1>= <var2> ATAN (EXP, LOG) <var3>: valoarea variabilei <var3> este
impartita la 1000 inainte de calcul. Rezultatul calculului cu functia ATAN este
exprimat n radiani. De exemplu: SET A= 1000 COS 60 (cos60=0.5, A=500)

GLOBAL <var1> {<var2><var12>}: defineste variabile globale care pot fi


utilizate n orice program al utilizatorului.
Instruciuni pentru controlul rularii comenzilor
DIM <var[n]>: unde <var[n]> este un vector de n variabile locale, dimensiunea
vectorului de variabile locale este n. O variabila locala este utilizabila numai n
legatura cu programul n care a fost definita.
DIMG <var[n]>: defineste un vector de variabile globale cu n elemente.
Variabilele globale pot fi utilizate de ctre toate programele de utilizator.
DELVAR <var>: sterge variabila <var> din memoria RAM a controlerului. Se pot
sterge numai acele variabile care nu sunt utilizate n programe. n modul direct,
instruciunea DELVAR sterge numai variabilele globale. n modul indirect,
DELVAR sterge variabile locale i sterge variabilele globale, dac nu mai exista
variabile locale n acel program.
SET <var1>=<var2>: atribuie valoarea variabilei 2 la valoarea variabilei 1.
SET <var1>=NOT<var2>: atribuie valoarea variabilei 2 negate logic la valoarea
variabilei 1. De exemplu <var2><=0, <var1>=1, <var2>>=0, <var1>=0.
SET <var1>=COMPLEMENT<var2>: atribuie valoarea complementara a
variabilei 2 la valoarea variabilei 1. Valoarea variabilei 2 este binarizata, fiecare bit
al acesteia este negat, rezultatul este atribuit variabilei 1. Dac <var2>=0, <var1>=1.
SET <var1>=ABS<var2>: atribuie valoarea absoluta a variabilei 2 la valoarea
variabilei 1. Dac <var2>=-1, <var1>=1.

IF <var1> <cond> <var2>: unde <var1>, <var2> sunt variabile i <cond> este o
conditie de indeplinit ntre aceste variabile. Condiia poate fi <,>,=,<=,>=,<>. Dac
condiia este indeplinita, se executa o subrutina, dac nu este indeplinita, se executa
o alta subrutina care urmeaza instructiunii ELSE.
ANDIF <var1> <cond> <var2>: unde var1 i var 2 sunt variabile definite de ctre
utilizator sau constante i <cond> poate fi <,>,=,<=,>=,<>. Instruciunea ANDIF
combina logic cu o conditie cele doua variabile.
ORIF <var1> <cond> <var2>: unde var1 i var 2 sunt variabile definite de ctre
utilizator sau constante i <cond> poate fi <,>,=,<=,>=,<>. Instruciunea ORIF
combina logic cu o conditie cele doua variabile.
ELSE: instruciune care urmeaza dup instruciunea IF i precede instruciunea
ENDIF. ELSE marcheaza nceputul portiunii de program care se va executa dac
condiia n declaratia IF nu este adevarata.
ENDIF: instruciune de sfarsit al subrutinei al carei inceput este dat de
instruciunea IF.
FOR <var>=<value1> TO <value2>: unde <var> este o variabila definita de
utilizator, <value1>, <value2> sunt variabile definite de ctre utilizator sau

50

constante. Instruciunea FOR determin nceputul unei rutine care se executa


repetitiv de atatea ori cate numere naturale consecutive exista ntre <value1> i
<value2>.
ENDFOR: instruciune de sfarsit al subrutinei al carei inceput este dat de
instruciunea FOR.

FORCE N/OUT <n> <state>: unde N/OUT n sunt intrarea/iesirea n din


controler, <state> poate avea valoarea 1(ON) sau 0 (OFF). Instruciunea FORCE
forteaza schimbarea starii intrarii/iesirii specificate prin n. Acesta instruciune este
activa numai cnd intrarile/iesirile au fost deconectate prin instruciunea anterioara
DISABLE. FORCE N 5 1 nseamn activarea intrarii 5 la starea 1 (ON).

LABEL <labeln>: marcheaza nceputul rutinei de program unde se realizeaz


saltul cu instruciunea GOTO.

SET OUT[<n>]=<value>: instruciune de schimbare a starii iesirii <n> n


conformitate cu valoarea binara a lui <value>.

GOTO <label n>: unde <label n> poate fi orice numr de linie. Se realizeaz o
saritura n program la linia cu numrul de ordine egal cu <label n>. <label n>
trebuie s fie un numr al unei linii din programul care contine instruciunea
GOTO.

Instruciuni pentru schimbarea parametrilor

GOSUB <prog>: transfera controlul programului principal n programul <prog> i


il executa de la prima s linie. La sfritul programului <prog> adica instruciunea
END, se realizeaz saltul n programul principal la linia urmatoare liniei GOSUB.

LET PAR <n> <value>: unde n este numrul de identificare al parametrului i


<value> este o constant. Atribuie o valoare parametrului <par>. Atentie!
Introduceti valori recomandate pentru parametrii i nu executati instruciunea n
timp de programele ruleaza!
SHOW PAR <n>: afieaz pe ecranul calculatorului valoare parametrului de
sistem <n>.

Instruciuni pentru comanda porturilor de intrare/iesire


Instruciuni pentru instalare/initializare
LSON: conecteaza intrerupatoarele de capat de cursa la portul de intrare al
controlerului. n modul LSON, intrarile de la senzori sunt inactive.
LSOFF: deconecteaza intrerupatoarele de capat de cursa a axelor comandate ale
robotului de la portul de intrare al controlerului. n modul LSOFF intrarile de la
senzori sunt active. Programul HOME comuta automat n modul LSON i apoi n
LSOFF.
SHOW DIN: afieaz pe ecranul calculatorului starea porturilor de intrare, n
urmatorul format 1-16: 1 0 0 .1..0. O.K.

CONFIG: activeaza fisierul de configurare pentru definirea informatiilor


referitoare la tipul controlerului. Instruciunea va sterge toate programele de
utilizator, poziiile i vectorii!! Informatiile despre tipul de controler sunt: numr de
intrari/iesiri, numr de axe comandate, tipul robotului, marimea memoriei pentru
linii de program, varibile, poziii, comentarii. CONFIG ? afieaz pe ecranul
calculatorului configuratia curenta.
INIT CONTROL: initializeaza parametrii de control ai sistemului. Instruciunea
trebuie executata dup orice modificare a parametrilor de control ai sistemului.

SHOW DOUT: similar cu SHOW DIN, pentru porturile de iesire.


ENABLE N/OUT <n>: reactiveaza controlul (functionarea sau conectarea
normala) pentru o intrare/iesire n. Este instruciunea cu actiune inversa instructiunii
DISABLE.

INIT EDITOR: initializeza spatiul de memorie RAM al utilizatorului, variabilele


i programele. Tot continutul memoriei RAM va fi sters! Aceast instruciune este
utilizata mai rar pentru ca instruciunea CONFIG executa automat aceast operatie.

51

INIT PROFILE: initializeza profilele de vitez (parabolica i trapezoidala) n


concordanta cu valoarea parametrului 76. Parametrul 76 determin valoarea
maxim a vitezei la acceleraie/deceleraie. O valoare mai mare crete valoarea
acceleraiei. INIT PROFILE trebuie s se execute dup orice modificare a
parametrului 76.

fiecare axa comandata a statiei de lucru a sistemului. Afiarea se va intrerupe dac


se tasteaza <CTRL + C>.
FREE: afieaz o lista a spatiului disponibil al memoriei RAM: linii de program,
locasuri (n memorie) de variabile, poziii pentru grupele A i B i pentru
comentarii.

Instruciuni de generare a rapoartelor


Instruciuni pentru afisare i interfata cu utilizatorul
DISABLE?, DISABLE IN/OUT <n>: unde IN/OUT sunt intrrile/ieirile la
portul corespunztor al controlerului i n este numrul de ordine al acestora.
DISABLE N/OUT <n> deconecteaza intrarea/iesirea fizica n de la intrarea/iesirea
logica (din program). Totusi instruciunea FORCE permite schimbarea starii iesirii
n chiar dac acesta este deconectata. DISABLE ? afieaz pe ecranul calculatorului
starea intrrilor/iesirilor deconectate.
DIR: afieaz pe ecranul calculatorului toate numele programelor scrise de
utilizator, valabilitatea acestora din punct de vedere al sintaxei, identitatea acestora
(numrul de identificare corespunde cu numrul de acces al acestora de la panoul
de invatare) i prioritatea lor, dac exista o rulare simultana a mai multor programe.
LIST {<prog>}: afieaz toate liniile de program ale utilizatorului sau afieaz
liniile programului <prog>.
LISTP afieaz pe ecranul calculatorului toate poziiile definite de ctre utilizator.
LISTVAR: afieaz pe ecranul calculatorului toate variabilele de sistem i ale
utilizatorului. Variabilele locale sunt afisate astfel: I(PROGR), adica variabila I din
programul PROGR.
STAT: afieaz pe ecranul calculatorului starea programelor de utilizator active.
Starea unui program poate fi: DELAY (execuia unei intarzieri), PEND (ateapt
apariia unui eveniment), SUSPENDED.
SHOW DIN, DOUT, ENCO, DAC, PAR, SPEED. Consulta instruciunile
corespunzatoare. Instruciunea SHOW ENCO afieaz intermitent (la fiecare 0.5 s)
pe ecranul calculatorului valorile curente ale traductoarelor de poziie pentru

NOQUIET: n timpul rularii programelor toate instruciunile care incep cu @ sunt


afisate pe ecran cnd sunt executate.
QUIET: instruciune opusa lui NOQUIET.
ECHO: afieaz pe ecranul calculatorului toate caracterele care sunt transmise la
controler.
NOECHO: instruciunea opusa lui ECHO este NOECHO.
{DO} HELP: instruciune care asigura explicatii pe scurt cu privire la instruciuni.
n modul direct se tasteaza HELP, iar n modul indirect se tasteaza DO HELP.
PRINT <arg1> {<arg2>, <arg4>}: unde <arg> sunt fie variabile, fie sir de
caractere ntre ghilimele ( ). Afieaz pe ecran valori de variabile sau textul ntre
ghilimele. Textul afisat odata prin instruciunea PRINT poate de maximum 40 de
caractere i spaii (fr a include ghilimelele) i poate contine pn la 4 argumente
i/sau variabile.
PRINTLN <arg1> {<arg2>, <arg4>}: instruciune similara cu precedenta, dar
afiarea se va realiza pornindu-se de la nceputul unei linii pe ecran noi, dup care
cursorul sare la o linie noua. PRINTLN fr <arg> va aduce cursorul la o linie de
ecran noua.
READ <arg1> {<arg2>, <arg4>}: dac <arg> este un sir de caractere,
instruciunea este similara cu PRINT. Dac <arg> este o variabila, cursorul ? va
astepta introducerea unei valori numerice variabilei indicate. Apasarea tastei
<enter> n acest caz, introduce valoarea 0 variabilei.

52

GET <var>: unde <var> este variabila definita de ctre utilizator. Cnd execuia
din program intalneste instruciunea GET, programul se opreste i ateapt ca s se
tasteze un caracter de la tastatura. Variabila va capata valoarea caracterului ASCII a
tastei apasate. Instruciunea GET ar trebui s fie precedata de instruciunea
PRINTLN astfel incat utilizatorul s stie ca se ateapt introducerea unei valori
variabilei <var>.
Instruciuni pentru comunicarea RS232
SENCOM <n> <var>: unde <n> este numrul portului de comunicarea RS232 (18), iar <var> este o variabila. Instruciunea trimite un sir de 8 biti pe portul de
comunicare specificat. De exemplu, SENDCOM 2, 27 trimite pe portul 2 codul
ASCII 27 (pentru <Esc>).
GETCOM <n> <var>: unde <n> este numrul portului de comunicarea RS232 (18), iar <var> este o variabila. Instruciunea determin primirea unui cuvant (byte)
pe portul de comunicatie specificat. Valoarea cuvantului (byte) este memorata ca
valoare a variabilei <var>. Instruciunea se utilizeaz n tandem cu instruciunea
SENCOM.
PRCOM <n> <arg1> {<arg2> <arg3>}: unde n este portul de comunicare RS232
i <arg> este fie o variabila fie un sir de caractere notate cu . Instruciunea
trimite valoarea variabilei sau sirul de caractere pe portul de comunicare. Textul
poate avea lungimea de pn la 30 caractere i spatii libere i poate contine pn la
3 argumente i/sau variabile. Un sir de pn la 10 caractere este un argument. De
exemplu: PRCOM 6 TESTING nseamn ca textul TESTING este trimis pe
portul de comunicare 6.
PRLNCOM <n> <arg1> {<arg2> <arg3>}: instruciune asemanatoare cu
PRCOM, dar adauga efectul apasarii tastei <Enter> dup ce se realizeaz
transmisia pe portul de comunicare.

Instruciuni pentru editarea programelor


S {<line n>}: realizeaz mutarea cursorului la linia de inceput a programului curent
de editat sau la linia specificata n.
P: n modul indirect, instruciunea determin saltul cursorului de editare la linia
precedenta.
L <line1> <line2>: afieaz pe ecranul calculatorului liniile de program de la
<line1> la <line2>.
DEL: sterge linia de program aflata deasupra liniei cu cursorul curent, n modul
editare de program.
<enter>: n modul direct apasarea tastei <enter> nseamn validarea instructiunii
curente scrise de ctre utilizator, n modul indirect apasarea tastei <enter>
nseamn trecerea la linia urmatoare.
* <user comment>: unde <user comment> este un sir de pn la 40 de caractere
sau spatii. Instruciunea permite introducerea n program a comentariilor
utilizatorului.
@ <DIRECT command>: permite, i dintr-un program, execuia instructiunilor
utilizabile numai n modul direct. Se mai adauga o mica intarziere dup fiecare
linie de program care ncepe cu @ pentru a se asigura timpul necesar execuiei
instructiunii. De exemplu, n program poate fi editat: @ SHOW DIN sau
@LISTPV POSITION.
END: instruciune scrisa automat de ctre programul ATS la iesirea din modul de
editare al unui program, cnd se iese prin instruciunea EXIT.
EXIT: determin parasirea modului de editare i verifica sintaxa i logica
programului. Dac este gasita o eroare, acesta informatie este afisata pe ecranul
calculatorului.

READCOM <n> <var>: instruciune care se utilizeaz n tandem cu PRLNCOM.


Instruciunea ateapt ca un sir care s contina coduri ASCII urmate de <Enter> s
soseasc pe portul de comunicare specificat. Acea valoarea numerica este atribuita
variabilei specificate.

53

Instruciuni pentru salvare/reincarcare a programelor


SEND, SEND <prog>, SENDPROG, SENDVAR, SENDPOINT, SENDPAR:
instruciunea produce liste n format compatibil cu instruciunile RECEIVE sau
APPEND. Transmisia unei liste create de SEND la calculator creaza o copie de
rezerva (back-up) a datelor. SEND produce o lista de programe, variabile, poziii,
parametri. Celelalte variante de instruciuni produc numai pari din list, cu
programe, variabile, poziii sau parametrii.
RECEIVE <prog>: instruciunea incarca datele dintr-un fisier de rezerva n
memoria RAM a controlerului prin port serial. Aceast instruciune sterge
continutul memoriei RAM! Transmisia de date de la calculator la controler se
realizeaz n modul urmator: PC transmite continutul fisierului linie cu linie. Dupa
fiecare linie transmisa, calculatorul ateapt un semnal : de la controler care
nseamn ca urmatoarea linie poate fi transmisa. La ultima linie trebuie transmis
mesajul (END), la care controlerul raspunde cu END OF LOADING. RECEIVE
<progr> accepta datele de la calculator cu continutul programului specificat pe care
le introduce ca linii de program, fr a modifica continutul celorlalte programe.
APPEND: incarca continutul unui fisier de rezerva (back-up) al utilizatorului de pe
un calculator n memoria RAM a controlerului. Instruciunea este similara
cu instruciunea RECEIVE, dar nu sterge sau modifica programele
existente. Fisierul trebuie s fie intr-un format generat de o instruciune
SEND. Se accepta prin aceast instruciune noi programe, variabile, poziii.
Pozitiilor definite anterior, la care nu s-au atribuit inca valori, li se pot
atribui noi valori.

ATTACH OFFA/B este instruciunea inversa, care detaseaza vectorul de poziii


de la comanda prin panoul de invatare pentru grupul de axe comandate A sau B.

Instruciuni pentru detectarea defectiunilor


TEST: ruleaza un program interactiv de testare. Se verifica functionarea fiecarei
axe comandate n bucla nchis prin miscari corespunzatoare. Se mai verifica i
functionarea iesirilor i scaneaza starea intrrilor. ncetarea rularii programului de
testare se realizeaz numai cu a(bort).
Instruciuni generale pentru sistem
DO <EDIT command>: unde EDIT command este oricare dintre instruciunile
care se pot scrie n modul indirect. Aceasta instruciune realizeaz execuia n
modul direct a unei instruciuni care n mod normal se scrie numai n modul
indirect (modul editare program).
AUTO: este un nume rezervat pentru programul de utilizator care ruleaz automat
cnd controlerul este pus sub tensiune sau resetat. De exemplu:
Program AUTO
HOME iniializarea axelor robotului la punerea sub tensiune a controlerului
RUN <prog>
rularea programului <prog>
END

Instruciuni pentru panoul de invaare


ATTACH <pvect>, ATTACH, ATTACH ?: instruciune care ataseaza vectorul de
poziii specificat la panoul de invatare. Dac, de exemplu, s-a atasat vectorul
CIM[1000] la panoul de invatare, la comanda data de utilizator, MOVE 1 de la
tastele panoului de invatare, robotul se va mica n poziia CIM[1]. Se poate atasa
panoului de invatare la un moment dat numai un singur vector de poziii.
ATTACH ? afieaz pe ecranul calculatorului starea curenta a instructiunii
ATTACH.

~: activeaz/dezactiveaz modul manual de comand al robotului de la tastatura


calculatorului (funcionare asemntoare cu panoul de nvare). Tastele 1, 2,7
corespund comenzii manuale a axelor 1, 2, .., 7 pentru o rotaie ntr-un sens,
respectiv Q, W,,U pentru o rotaie n sens opus, C/F CON/COFF, S cu SPEED.
VER: afieaz versiunea de program din EPROM i data realizrii acestuia.

54

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