Sei sulla pagina 1di 16

ANNOTAZIONI E CONVENZIONI

1. Caratteri in maiuscolo o in minuscolo


Entrambi i formati essere usati per l inserimento dei comandi o delle istruzioni nel linguaggio AS
Per maggior chiarezza in questo manuale saranno applicate le seguenti regole relative all uso delle
lettere maiuscole o minuscole. Tutte le parole chiave dellAS (comandi, istruzioni, etc) saranno in
maiuscolo. Le variabili e tutto ci che pu essere specificato saranno in minuscolo.
2. Abbreviazioni
Le parole chiave possono essere abbreviate. Ad esempio, il comando EXECUTE pu essere
abbreviato come EX. Vedere Appendice 2 Elenco linguaggio AS.
3. Spazio, Tabulazioni
E necessario almeno uno spazio o una tabulazione per delimitare il comando (o istruzione) dal
parametro*. E inoltre necessario uno spazio o una tabulazione fra i parametri che non sono separati
da virgole o altro. Spazi o tabulazioni in eccesso saranno ignorate dal sistema.
NOTA* Un parametro il dato necessario a completare comandi o altre istruzioni. Ad
esempio, nel comando SPEED (velocit), il dato del parametro necessario per specificare la
velocit del robot. Se il comando o la funzione utilizzano diversi parametri, una virgola o uno
spazio separano ciascun parametro.
Esempi o SPEED 50
4. Tasto ENTER
I comandi del monitor e le istruzioni di programma sono elaborate con linvio fatto con il
tasto ENTER .
5. Parametri omessi
Diversi comandi del monitor e istruzioni di programma hanno dei parametri che possono essere
omessi. Se c una virgola dopo questi parametri opzionali, la virgola deve essere mantenuta
anche se il parametro viene omesso. Se tutti i parametri successivi sono omessi, anche la
virgola potr essere omessa.
6. Valori numerici
I valori sono espressi in decimali se non diversamente indicato. Si possono usare delle
espressioni matematiche per definire questi valori come argomenti. Tuttavia, i valori accettabili
sono limitati. Le seguenti regole mostrano come interpretare i valori nei diversi casi.
A) Distanze
Usata per definire la lunghezza del movimento del robot fra due punti. Lunit di misura della
distanza sono i millimetri (mm); nellinserimento lunit omessa. I valori inseriti possono
essere sia negativi che positivi.
B) An g o l i
Definisce e modifica la postura del robot in una specifica posa (locazione); e descrive la lentit
della rotazione dei giunti del robot. I valori possono essere sia negativi che positivi, con angolo
massimo limitato a 180 o 360 gradi, a seconda del comando usato.
C) Variabili scalari
Se non diversamente indicato, queste variabili definiscono dei valori reali. I valori delle
variabili possono essere compresi fra -3.4E+38 e 3.4E+38 (-3.410
38
~ 3.4+10
38
). Se il
valore supera 999999, viene indicato con xE+y (x la mantissa, y un esponente).
D) Numero giunto
Indica il giunto del robot in numero intero dal n.1 al numero di giunti disponibili (il tipo
standard ha 6 giunti). I giunti sono numerati in sequenza partendo dalla base. (Generalmente
indicati come JT1, JT2 ....).
E) Numero segnale
Identifica i segnali binari (ON/OFF). I valori sono dati in numeri interi e sono compresi nei
seguenti intervalli.
Intervallo Standard Intervallo Robot Intervallo massimo

Segnale output esterno
1 - 32 1 - 32 1 - 96
Segnale input esterno
1001 - 1032 1001 - 1032 1001 - 1096
Segnale interno
2001 - 2256 2001 - 2256 2001 - 2256
Un numero positivo indica un segnale ON, se il numero negativo il segnale OFF.
F) Parole chiave
Nel sistema AS, generalmente il nome delle variabili pu essere liberamente assegnato. Tuttavia
alcune parole chiave che definiscono comandi, istruzioni, etc. sono riservate e non possono essere
utilizzate per indicare dati di posa, variabili, etc.


INFORMAZIONI DI POSA
Le informazioni di posa, conosciute anche come informazioni posizionali, sono utilizzate per specificare
la posizione e la postura del robot in una data area di lavoro. La posizione e la postura del robot sono
riferite alla posizione e alla postura del punto centrale dellutensile (TCP) del robot. Posizione e postura
insieme sono denominate posa (locazione) di un robot.
La posa determinata da dove si trova il robot e dal modo in cui orientato, pertanto per istruire un
robot a muoversi due informazioni devono essere date contemporaneamente :
1. Il TCP del robot si sposta in una posizione precisa.
2. Le coordinate utensile del robot ruotano in una specifica postura.
I dati di posa sono descritti da una serie di valori di spostamento dei giunti o da un valore di
trasformazione:
1. Valori di spostamento giunto
Quest informazione di posa data da una serie di valori di spostamento angolare o lineare da ognuno
degli assi del robot. Usando i valori encoder, gli assi di rotazione producono degli spostamenti angolari
rappresentati in gradi, gli assi lineari producono spostamenti lineari rappresentati in millimetri.
Esempio I giunti sono indicati in sequenza dal JT1,...JT6, e il valore di spostamento di ogni giunto
indicato sotto al numero giunto.
J T 1 J T 2 J T 3 J T 4 J T 5 J T 6
#pose = 0.00, 33.00, -15.00, 0, -40, 30
2. Valore di trasformazione
Descrive delle coordinate di posa in relazione a delle coordinate di riferimento. Se non diversamente
specificato, si riferisce ai valori di trasformazione delle coordinate utensile in relazione alle coordinate base
del robot. La posizione data dai valori XYZ sulle coordinate base, la postura dagli angoli di Eulero* OAT.
Alcuni dei valori di trasformazione comunemente usati: il valore di trasformazione utensile che descrive la
posa delle coordinate utensile rispetto alle coordinate utensile nullo, ed il valore di trasformazione basato
sul pezzo che descrive la posa delle coordinate utensile rispetto alle coordinate pezzo.
Nota* vedi Appendice 5 Angoli di Eulero O,A,T
E s e m p i o X Y Z O A T
pos a = 0, 1434, 300, 0, 0, 0
Se il robot ha pi di sei assi, il valore dellasse aggiunto indicato in valori di trasformazione.
E s e m p i o X Y Z O A T J T 7
pos a = 0, 1434, 300, 0, 0, 0 1000
Valori trasformazione utensile


NOTA * Le coordinate utensile nullo hanno la loro origine al centro della flangia di montaggio
utensile del robot, e sono rappresentate dai valori di trasformazione utensile (0,0,0,0,0,0).
NOTA
**
Le coordinate base nulla sono impostate come valore di default, e sono rappresentate dal
valore di trasformazione base (0,0,0,0,0,0).


I valori di spostamento giunto ed i valori di trasformazione presentano vantaggi e svantaggi.
Utilizzare quelli adatti alle proprie esigenze

Valori di spostamento giunto Valori di trasformazione
Vantaggi Si raggiunge la precisione
nellesecuzione e non c
ambiguit circa la
configurazione del robot in
una data posa
Lorigine delle coordinate utensile
usata nel modo repeat non cambia
anche quando viene cambiato
lutensile. (Traslazione delle
coordinate utensile nullo)
Si possono usare coordinate relative
(es. coordinate pezzo)
Conveniente per lelaborazione in
quanto i dati sono presentati in valori
XYZOAT
Svantaggi I valori TCP cambiano
quando cambia lutensile
(le coordinate utensile nullo
restano uguali)
Non possibile usare
coordinate relative (es.
coordinate pezzo etc.)
Le coordinate cambieranno a seconda dei
valori di trasformazione base o utensile,
per cui necessaria una conoscenza
completa degli effetti di ogni
cambiamento per un utilizzo sicuro.
La configurazione del robot pu
cambiare se non impostata prima dei
movimenti automatici.
Uso consigliato Impostare la posa di avvio
di un programma
Impostare la configurazione
del robot nella o subito
dopo una posa descritta da
valori di trasformazione
Usare altre pose comuni
Descrizione di coordinate relative come
fossero coordinate pezzo.
Descrizione di una posa che pu essere
cambiata usando valori numerici con
funzioni come SHIFT
Descrizione di una posa che pu essere
cambiata dalle informazioni
provenienti da un sensore




INFORMAZIONI NUMERICHE
Nel sistema AS si usano numeri ed espressioni per fornire informazioni numeriche. Unespressione
numerica una combinazione di numeri, variabili, operatori e funzioni che produce un valore. Le
espressioni numeriche sono usate non solo per calcoli matematici ma anche come parametri, per
comandi del monitor e istruzioni di programma.
Ad es. nel caso del comando DRIVE, sono tre i parametri da precisare: numero giunto, grado, velocit. I
parametri possono essere espressi sia come valori numerici sia in espressioni come nell esempio
seguente:
DRIVE 3,45,75 Muovere il giunto numero 3 di 45 al 75% della velocit max.
DRIVE joint, (start+30)/2, 75 Se specificato joint=2, start=30 muovere il giunto 2 di +30 al 75% della
velocit massima
I valori numerici usati nel sistema AS si dividono in tre tipologie:
1. Numeri reali
I numeri reali possono avere sia la parte intera che quella decimale. Possono essere un valore positivo
o negativo compreso fra -3.4 E+38 e 3.4 E+38(-3.4x10
38
and 3.4x10
38
) o zero. I numeri reali
possono essere rappresentati in formato scientifico. Il simbolo E divide la mantissa e lesponente.
Lesponente pu essere sia negativo (potenza in base 1/10) che positivo (potenza in base 10).

NOTA
1. Al contrario del caso in cui una posa sia definita dai valori di spostamento giunto, dove impostata per
il robot una configurazione unica, quando una posa definita da valori di trasformazione, il robot pu
assumere configurazioni diverse in base a tale posa. Questo accade poich i valori di trasformazione
impostano soltanto i valori XYZOAT
delle coordinate utensile senza definire il valore dell asse di ogni giunto. Prima di
avviare il robot in modo automatico, assicurarsi quindi di stabilire la configurazione del robot
usando i comandi di configurazione (LEFTY, etc.) o registrando i valori di spostamento giunto.
2. Dal momento che i valori di trasformazione sono tracciati rispetto alle coordinate base, quando le
coordinate base sono spostate usando il comando/istruzione BASE, il TCP (punto centrale utensile) del
robot sar anchesso spostato della stessa entit. Questo uno dei vantaggi nell uso dei valori di
trasformazione, ma attenzione alleffetto che si ottiene sui punti trasformati cambiando le coordinate
base. Un errore in questa procedura potrebbe causare incidenti quali interferenze con le
apparecchiature periferiche.
Prestare la stessa attenzione quando si usa il comando/istruzione TOOL.

Esempio 8.5E3 8.5*10
3
(+ nellesponente omesso)
6.64 6.64*10
0
(E, 0 omesso)
-9E-5 -9.0*10
-5
(il punto decimale omesso)
-377 -377*10
0
(i punti decimali, E, 0 sono omessi)
Le prime sette cifre sono quelle significative, ma il numero delle cifre valide potrebbe diminuire
attraverso le procedure di calcolo.


I valori reali senza la parte decimale sono numeri interi.
Lintervallo compreso fra -16,777,216 e +16,777,215 e per i valori che superano tale limite, le prime sette
cifre sono quelle significative.
I valori interi sono normalmente inseriti come numeri decimali sebbene a volte pu essere pi conveniente
esprimerli in formato binario o esadecimale.
^B stabilisce che il numero inserito binario.
^H stabilisce che il numero inserito esadecimale.
Esempio ^B101 (5 in decimale)
^HC1 (193 in decimale )
-^B1000 (-8 in decimale)
-^H1000 (-4096 in decimale)

2. Valori logici
Il valore logico ha solo due stati, ON e OFF, o TRUE (vero) e FALSE (falso). E assegnato il valore -
1.0 per lo stato TRUE o ON, ed il valore 0 (o 0.0) per lo stato FALSE o OFF. ON, OFF, TRUE e
FALSE sono parole riservate del linguaggio AS.
Valore logico vero = TRUE, ON, -1.0
Valore logico falso = FALSE, OFF, 0.0
3. Valori ASCII
Mostra il valore numerico di un carattere ASCII. Il carattere viene specificato mettendo un apostrofo ()
davanti per differenziarlo da altri valori.
A 1 v %

INFORMAZIONI CARATTERE
L informazione di carattere come intesa nel sistema AS una stringa di caratteri ASCII racchiusa
tra virgolette (). Poich le virgolette indicano linizio e la fine della stringa, non possono essere
utilizzate come parte della stringa stessa. Non possono inoltre essere inclusi nella stringa i caratteri
di controllo ASCII (CTRL, CR, LF, etc.).
Esempio
>PRINT KAWASAKI PRINT (comando) KAWASAKI (sringa di caratteri)



VARIABILI
Nel sistema AS, si possono assegnare dei nomi alle informazioni di posa, informazioni numeriche e stringhe.
Questi nomi sono le variabili, che possono essere divise in due tipologie: variabili globali e variabili locali.
Se non diversamente indicato la variabile globale indicata come variabile.

VARIABILI (VARIABILI GLOBALI)
Le variabili per le informazioni di posa, le informazioni numeriche e le stringhe sono chiamate
rispettivamente variabili di posa, variabili reali*, variabili stringa. E possibile raggruppare diversi valori
identificandoli con un unico nome usando la variabile vettore.
NOTA* Siccome molti valori numerici usati in AS sono numeri reali, le variabili numeriche sono
indicate come variabili di numero reale o variabili reali. Tuttavia, i numeri interi, i valori logici ed i
valori ASCII sono tutti espressi con numeri reali. Una variabile reale quindi pu riferirsi ad uno
qualsiasi di questi valori.
Una volta definite, la variabile viene salvata in memoria con quel dato valore. Pu pertanto essere
utilizzata in qualsiasi programma.

VARIABILI LOCALI
Al contrario delle variabili globali sopradescritte, le variabili locali sono ridefinite ogni volta che il
programma viene eseguito, e non sono salvate nella memoria. Una variabile con un punto . all inizio
del suo nome considerata una variabile locale.
Le variabili locali sono utili in quei casi in cui alcuni programmi usano lo stesso nome di variabile dove il
valore della variabile cambia ogni volta che il programma viene eseguito. Le variabili locali possono inoltre
essere usate come parametro di una subroutine.

NOTA
1. Le variabili locali non possono essere definite usando comandi monitor (immediati).
2. Siccome le variabili locali non sono salvate in memoria, il valore di una variabile locale non pu essere
visualizzato nella modalit monitor.

NOME DELLA VARIABILE
Il nome della variabile deve iniziare con una lettera dellalfabeto e pu essere composta da altre lettere,
numeri, punti e il trattino inferiore _ . Le lettere possono essere inserite in maiuscolo o in minuscolo
(appariranno in minuscolo sul video). La lunghezza del nome della variabile limitata a quindici caratteri. In
nomi pi lunghi saranno considerati validi solo i primi quindici caratteri. Seguono alcuni esempi di nomi che
non possono essere usati:
3p .......................................................... il primo carattere non una lettera dell alfabeto
part#2 .................................................... il simbolo # il prefisso del nome della variabile di
spostamento giunto e non pu essere usato allinterno di un nome di variabile.

Le variabili che descrivono dei valori di spostamento giunto sono precedute dal simbolo # per
differenziarle dai valori di trasformazione.
Le variabili stringa sono precedute dal simbolo $per differenziarle dalle variabili reali.
pick (valore di trasformazione) #pick (valore di spostamento giunto)
count (variabile reale) $count (variabile stringa)
Tutte le variabili possono essere usate come variabili vettore.
Un vettore composto da diversi valori sotto lo stesso nome e tali valori sono distinti l uno dallaltro dal
valore del loro indice. Ogni valore del vettore chiamato elemento vettore. Per definire un elemento vettore,
aggiungere al nome del vettore i valori dell indice racchiusi fra parentesi.
Ad es., part [7] indica il settimo elemento del vettore part. Gli indici devono essere dei numeri interi
compresi fra 0 to 9999. Per vettori tridimensionali usare una sintassi simile a questa: part [7, 1,1]=1.
Definita una variabile, questa pu essere usata in diversi programmi. Tuttavia, attenzione a non fare delle
modifiche non necessarie alle variabili che sono usate in programmi diversi

DEFINIZIONE DELLE VARIABILI DI POSA
Le variabili che descrivono delle informazioni di posa sono chiamate variabili di posa. Una variabile di
posa viene definita solo quando le viene assegnato un valore. Rimane indefinita finch il valore non
viene assegnato. Se un programma usa una variabile indefinita, avviene un errore.
Le variabili di posa sono utili nei seguenti casi
1. Gli stessi dati di posa possono essere usati continuamente senza dover assegnare ogni volta la
posa.
2. Una variabile di posa definita pu essere usata in diversi programmi.
3. Una variabile di posa definita pu essere usata o modificata per definire una posa diversa.
4. I valori calcolati possono essere usati come informazioni di posa anzich impiegare tempo per
programmare le pose del robot usando lunit di programmazione
5. Assegnare una posa ad una variabile rende i programmi pi leggibili. Le variabili posa sono
definite come segue: .

DEFINIZIONE CON I COMANDI DEL MONITOR
1. Il comando HERE memorizza la posa attuale del robot sotto il nome specificato.
Esempio 1 Usando i valori di spostamento giunto
Iniziare il nome della variabile con il simbolo # per differenziarlo dai valori di trasformazione. In
seguito al comando, i valori di spostamento giunto della posa corrente appariranno:
> HERE #pose
J T 1 J T 2 J T 3 J T 4 J T 5 J T 6
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
Change (if not, hit RETURN only) ___ Cambiare (Se no, premere RETURN)
>
Esempio 2 Usando i valori di trasformazione
In seguito al comando, appariranno i valori di trasformazione della posa attuale:
>HERE pose
X[mm] Y[mm] Z[mm] O[deg] A[deg] T[deg]
xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx
Change (if not, hit RETURN only) ___ Cambiare (Se no, premere RETURN)
>
2. Il comando POINT usato per definire una posa usando unaltra variabile di posa definita o
definendola con i dati inseriti da terminale.

Example 1 Usando valori di spostamento giunto
(1) Definizione di una nuova variabile indefinita
>POINT #pose

J T 1 J T 2 J T 3 J T 4 J T 5 J T 6
0 . 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 0 0 0
Change (if not, hit RETURN only) ___ Cambiare (Se no, premere RETURN)
>
Inserire i nuovi valori separando ogni valore con una virgola xxx, xxx, xxx, xxx, xxx, xxx


(2) Modificare il valore di una variabile indefinita
>POI NT #pose
J T 1 J T 2 J T 3 J T 4 J T 5 J T 6
10. 000 20. 000 30. 000 40. 000 50. 000 40. 000
Change (if not, hit RETURN only) ___ Cambiare (Se no, premere RETURN)
Inserire il valore da modificare:
30, , , ,20, ;cambia il valore di JT1 e JT 5 in 30 e 20


(3) Sostituire il valore di una variabile definita
>POINT pose_1=pose_2

J T 1 J T 2 J T 3 J T 4 J T 5 J T 6
10. 000 20. 000 30. 000 40. 000 50. 000 40. 000
Change (if not, hit RETURN only) ___ Cambiare (Se no, premere RETURN)

Il valore da definire come pose_1 (il valore recente di pose_2) appare.
Premere per impostare i valori come sono, o modificarli nello stesso ordine del punto (2) qui sopra.
NOTA
Esempio 2 Usando valori di trasformazione
Seguire la stessa procedura sopra riportata, solo che il nome della variabile non inizier con #.

DEFINIZIONE CON LE ISTRUZIONI DI PROGRAMMA
1. L istruzione HERE memorizza la posa attuale del robot sotto il nome specificato. HERE pose
2. Listruzione POINT sostituisce una variabile di posa con i valori della posa definita precedentemente.

POINT pose_1=pose_2

I valori di pose _1 sono sostituiti con i valori della variabili definita pose_2. Si verificher un errore
se pose _2 non definita.
Quando si usa un nome di variabile di posa che inizia con #, la variabile descrive i valori di spostamento
giunto (#pick, #start).
Se una variabile di posa non ha prefisso ed inizia con una qualsiasi lettera, la variabile descrive valori di
trasformazione (pick, start).

UTILIZZANDO I VALORI DI TRASFORMAZIONE COMPOSTA
I valori di trasformazione fra due coordinate possono essere espressi come una combinazione di valori
di trasformazione fra due o pi coordinate di transizione. Viene chiamata valore di trasformazione
composta o valore di trasformazione relativa.
Per esempio, se plate il nome della variabile del valore di trasformazione che indica le coordinate
della piastra rispetto alle coordinate base, e se la posa di un oggetto rispetto alla posa della piastra
definito come object, il valore di trasformazione composta delloggetto rispetto alle coordinate base
del robot pu essere descritto come plate+object.
I valori di trasformazione composta possono essere definiti usando i comandi o le istruzioni usate per
definire le variabili di posa.
Come sopra indicato, i valori di trasformazione composta sono definiti dalla combinazione di diversi
valori di trasformazione separati dal segno +. Non inserire spazi fra il segno + ed i valori di
trasformazione. Usando questo metodo, possibile combinare tutti i valori di trasformazione che sono
necessari.
Se il robot deve prendere loggetto nella posa specificata come pickup definita rispetto a object, il
programma sar scritto come segue:
JMOVE plate+object+pickup

NOTA
1. Non cambiare lordine nel quale la trasformazione relativa espressa. Se, ad es., la variabile di
trasformazione b definita rispetto alla variabile di trasformazione a, a+b dar il risultato
che ci si aspetta, ma non b+a.
I dati di posa object e pickup dallesempio di cui sopra sono definiti rispetto ad altri dati di posa.
Non usare pertanto comandi come JMOVE object, LMOVE pickup senza essere certi del loro scopo
e del loro effetto nel programma.

Quando si usa ripetutamente un valore di trasformazione composta, usare il comando POINT per ridurre il
tempo di calcolo del valore di trasformazione composta. Ad es. per avvicinarsi alla posa pickup e
raggiungerla, si pu inserire :
JAPPRO plate + object + pickup,100 si avvicina 100mm sopra pickup
JMOVE plate + object + pickup raggiunge con movimento lineare pickup

Invece, inserendo ci che segue, sar risparmiato del tempo di calcolo:
POINT x = plate + object + pickup calcola la posa di destinazione
JAPPRO x,100 si avvicina 100mm sopra la destinazione
LMOVE x raggiunge con movimento lineare la destinazione
Il risultato di questi due programmi equivalente, ma lultimo calcola la trasformazione composta solo
una volta, il tempo di esecuzione quindi pi breve quando viene usato il comando POINT . In questo
semplice esempio la differenza piccola ma in programmi pi complicati, produrrebbe una differenza
maggiore migliorando il tempo ciclo complessivo.


DEFINIZIONE DELLE VARIABILI REALI
Le variabili reali sono definite usando l istruzione di assegnazione (=). Il formato per l assegnazione di
una variabile reale :
Real_variable_ name = numeric_value (nome variabile=valore numerico)
Esempio
a=10.5
count=i*2+8
Z[2]=Z[1]+5.2
La variabile di sinistra pu essere una variabile scalare (ad es. count) oppure un elemento di un vettore
(ad es. x[2]). Una variabile definita solo quando le viene assegnato un valore. Fino ad allora la
variabile indefinita e se un programma che utilizza una variabile indefinita viene eseguito, si
verificher un errore.
Il valore numerico a destra pu essere una costante, una variabile o unespressione numerica. Quando si
esegue un istruzione di assegnazione, il valore di destra dellistruzione di assegnazione viene dapprima
calcolato e poi assegnato alla variabile di sinistra.
Se la variabile di sinistra nuova e prima non gli stato mai assegnato un valore, il valore a destra viene
automaticamente assegnato a questa variabile. Se la variabile di sinistra era gi stata definita, il nuovo
valore sostituir il corrente valore.
Ad esempio, listruzione x=3 assegna il valore 3 alla variabile x. Va letta, assegna 3 a x e non x
uguale a 3. Il seguente esempio illustra chiaramente l ordine di esecuzione:
x= x+1.
Se questesempio fosse unequazione matematica, sarebbe letto x uguale a x pi 1, e non avrebbe
senso. Ma considerata come unistruzione di assegnazione va letta, assegna il valore di x pi 1 a x. In
questo caso viene calcolata la somma del valore attuale di x pi 1, in seguito il risultato viene assegnato
ad x come nuovo valore. Tale equazione richiede che il valore di x sia definito prima, come segue:
x=3
x=x+1
In questo caso il valore risultante di x 4.

DEFINIZIONE DELLE VARIABILI DI STRINGA
Le variabili delle stringhe di caratteri sono definite usando listruzione di assegnazione (=). Il formato
per l assegnazione di una variabile stringa :
$string_variable=string_value (variabile stringa=valore stringa)
Esempio $a1=$a2
$error mess[2]="time over"
La variabile stringa a sinistra pu essere una variabile (ad es. $name), o un elemento di vettore (ad es.
$line[2]). Una variabile definita solo quando le viene assegnato un valore. Fino ad allora rimane
indefinita, e se un programma che utilizza una variabile indefinita viene eseguito, si verificher un errore.
La stringa di caratteri a destra pu essere una costante di stringa, una variabile di stringa o unespressione di
stringa. Quando viene eseguita un istruzione di assegnazione, il valore a destra viene dapprima determinato
ed in seguito il valore viene assegnato alla variabile di sinistra.
$name = "KAWASKI HEAVY INDUSTRIES LTD."
Nellistruzione di cui sopra la stringa racchiusa fra virgolette sar assegnata alla variabile $name
(nome). Se la variabile a sinistra dellistruzione non mai stata usata prima, la stringa sar
automaticamente assegnata a questa variabile. Se la variabile di sinistra era gi stata definita, quest
istruzione sostituir la stringa attuale con la nuova stringa di destra.
ESPRESSIONI NUMERICHE
Le espressioni numeriche sono delle combinazioni di numeri, variabili, funzioni specifiche o altre
espressioni numeriche collegate da operatori. Tutte le espressioni numeriche valutate dal sistema danno
come risultato un numero reale. Le espressioni numeriche possono essere usate ovunque al posto di valori
numerici. Possono essere usate come parametri in comandi monitor ed istruzioni di programma, o come
indici di vettori.
L interpretazione del valore dipende dal contesto nel quale lespressione utilizzata. Ad esempio, l
espressione usata per un indice di vettore interpretata come valore intero. L espressione usata per un valore
logico interpretata come falsa quando vale 0 e vera se il valore diverso da 0.
OPERATORI
Per descrivere le espressioni sono presenti degli operatori aritmetici, logici e binari. Tutti gli operatori
combinano due valori ed ottengono come risultato un unico valore. Ci sono delle eccezioni: i due
operatori (NOT e COM) operano su un singolo valore e loperatore () che pu operare su uno o due
valori. Gli operatori sono descritti qui sotto.

Operatori
aritmetici
+

*
/
^
MOD
Addizione Sottrazione
o negazione
Moltiplicazione
Divisione Potenza
Resto
Operatori
relazionali
<
<=, =<
== <>
>=, =>
>
Minore di
Minore o uguale a
Uguale
Non uguale a
Maggiore o uguale a
Maggiore di
Operatori logici
AND
NOT
OR
XOR
AND logico
Complemento logico
OR logico
OR logico esclusivo
Operatori binari
BAND
BOR
BXOR
COM
AND binario
OR binario
XOR binario
Complemento


NOTA
1. Loperatore relazionale == un operatore che controlla se due valori sono uguali ed
diverso dall indicatore di assegnazione = .
2. L operatore binario BOR esegue loperazione OR su ciascun bit binario dei due valori numerici. In
questesempio il valore espresso in formato binario ma questoperazione pu essere usata con
qualsiasi formato
^B101000 BOR ^B100001 > ^B101001
Questo risultato diverso da quanto si ottiene con l operatore logico OR.
^B101000 OR ^B100001 > - 1( TRUE)
In questo caso, ^B101000 e ^B100001 sono interpretati come valori logici, e siccome nessuno 0
(FALSE), l espressione valutata come TRUE.

SEQUENZA DELLE OPERAZIONI
Le espressioni sono calcolate in base ad una sequenza di priorit . La priorit elencata di seguito dal punto 1 al
14. L ordine delle operazioni pu essere determinato dall uso delle parentesi che raggruppa i componenti di
unespressione. Calcolando unespressione con parentesi, per prima viene calcolata l espressione compresa all
interno delle parentesi pi interne, continuando poi con le parentesi pi lontane.
1. Calcolo delle funzioni e dei vettori
2. Esecuzione degli operatori relazionali riguardanti le stringhe di caratteri
3. Esecuzione delle elevazioni a potenza ^
4. Esecuzione di operatori unari - (negazione), NOT, COM
5. Esecuzione di moltiplicazioni * e divisioni / da sinistra a destra
6. Calcolo del resto (operazione MOD) da sinistra a destra
7. Esecuzione delle addizioni+ e sottrazioni- da sinistra a destra
8. Esecuzione degli operatori relazionali da sinistra a destra
9. Esecuzione degli operatori BAND da sinistra a destra
10. Esecuzione degli operatori BOR da sinistra a destra
11. Esecuzione degli operatori BXOR da sinistra a destra
12. Esecuzione degli operatori AND da sinistra a destra
13. Esecuzione degli operatori OR da sinistra a destra
14. Esecuzione degli operatori XOR da sinistra a destra


ESPRESSIONI LOGICHE
Le espressioni logiche danno come risultano un valore logico TRUE (vero) o FALSE (falso). Unespressione
logica pu essere usata come condizione per determinare loperazione successiva da eseguire in un programma.
Nellesempio seguente, unespressione logica semplice, x>y, usata in una subroutine quale fra due variabili
il valore da assegnare alla variabile max.
IF x>y GOTO 10 max=y
GOTO 20
10 max=x
20 RETURN
Quando si calcolano delle espressioni logiche, il valore zero considerato FALSE e tutti i valori diversi
da zero sono considerati TRUE. Perci tutti i valori reali o le espressioni di valore reale possono essere
usate come valore logico.
Ad esempio, le due seguenti espressioni hanno lo stesso significato, ma la seconda pi semplice da
capire.
IF x GOTO 10
IF x<>0 GOTO 10


ESPRESSIONI STRINGA
Le espressioni stringa sono la combinazione di stringhe di carattere, variabili stringa, funzioni specifiche
o altre espressioni stringa collegate da operatori. I seguenti operatori sono usati con le espressioni
stringa.
Operatore stringa + Combinazione
< Minore di
<=, =< Minore o uguale a
Operatori == Uguale a
relazionali <> Non uguale a
>=, => Maggiore di o uguale a
> Maggiore di

Il risultato delluso di un operatore stringa sar una stringa, e loperatore relazionale sar un valore
reale.
Quando si usano operatori relazionali con stringhe di carattere, le stringhe sono comparate carattere per
carattere a partire dal primo carattere stringa. Se tutti i caratteri sono uguali, le due stringhe sono considerate
uguali, ma se c anche solo una differenza, la stringa con un numero di caratteri maggiore calcolata come
la stringa maggiore. Se una delle stringhe pi piccola, la pi piccola calcolata come minore. Nelle
operazioni di relazione con stringhe, gli spazi e le tabulazioni sono considerate come un carattere.
"AA" < "AB"
"BASI C" == "BASI C"
"PEN. " > "PEN"
"DESK" < "DESKS"


NOTA
Le lettere minuscole e maiuscole di unespressione stringa sono considerate come caratteri diversi .