Nel linguaggio Instruction List è possibile utilizzare i seguenti modificatori:
|
C |
con JMP, CAL, RET: |
L'istruzione viene eseguita solo se il risultato dell'espressione precedente è TRUE. |
|
N |
con JMPC, CALC, RETC: |
L'istruzione viene eseguita solo se il risultato dell'espressione precedente è FALSE. |
|
N |
con operatori secondo la tabella Operatori riportata di seguito (N nella colonna Modificatori) |
Negazione dell'operando, non dell'accumulatore. |
|
( |
con operatori secondo la tabella Operatori riportata di seguito (( (parentesi sinistra) nella colonna Modificatori) |
Da utilizzare per operandi complessi. Per i dettagli, consultare elenco dei casi di utilizzo per operandi complessi. |
La tabella mostra quali operatori è possibile utilizzare in combinazione con i modificatori specificati.
L'accumulatore memorizza il valore corrente, che risulta dall'operazione precedente.
|
Operatore |
Modificatori |
Significato |
Esempio |
|---|---|---|---|
|
LD |
N |
Carica il valore (negato) dell'operando nell'accumulatore. |
|
|
ST |
N |
Memorizza il contenuto (negato) dell'accumulatore nella variabile dell'operando. |
|
|
S |
– |
Imposta l'operando (tipo BOOL) su TRUE quando il contenuto dell'accumulatore è TRUE. |
|
|
R |
– |
Imposta l'operando (tipo BOOL) su FALSE quando il contenuto dell'accumulatore è TRUE. |
|
|
AND |
N,( |
Bitwise AND dell'accumulatore e dell'operando (negato). |
|
|
OR |
N,( |
Bitwise OR dell'accumulatore e dell'operando (negato). |
|
|
XOR |
N,( |
Bitwise OR esclusivo dell'accumulatore e dell'operando (negato). |
|
|
NOT |
– |
Negazione bitwise del contenuto dell'accumulatore. |
– |
|
ADD |
( |
Addizione di accumulatore e operando, il risultato è copiato nell'accumulatore. |
|
|
SUB |
( |
Sottrazione di accumulatore e operando, il risultato è copiato nell'accumulatore. |
|
|
MUL |
( |
Moltiplicazione di accumulatore e operando, il risultato è copiato nell'accumulatore. |
|
|
DIV |
( |
Divisione di accumulatore e operando, il risultato è copiato nell'accumulatore. |
|
|
GT |
( |
Verifica se l'accumulatore è uguale all'operando, il risultato (BOOL) è copiato nell'accumulatore; > |
|
|
GE |
( |
Verifica se l'accumulatore è maggiore o uguale all'operando, il risultato (BOOL) è copiato nell'accumulatore; >= |
|
|
EQ |
( |
Verifica se l'accumulatore è uguale all'operando, il risultato (BOOL) è copiato nell'accumulatore; = |
|
|
NE |
( |
Verifica se l'accumulatore non è uguale all'operando, il risultato (BOOL) è copiato nell'accumulatore; <> |
|
|
LE |
( |
Verifica se l'accumulatore è minore o uguale all'operando, il risultato (BOOL) è copiato nell'accumulatore; <= |
|
|
LT |
( |
Verifica se l'accumulatore è minore dell'operando, il risultato (BOOL) è copiato nell'accumulatore; < |
|
|
JMP |
C, CN |
Salto non condizionale (condizionale) alla label
|
|
|
CAL |
C, CN |
Chiamata non condizionale (condizionale) di un PROGRAMMA o BLOCCO_FUNZIONE
|
|
|
RET |
C, CN |
Ritorno non condizionale (condizionale) della POU e salto all'indietro alla POU chiamante.
|
|
|
) |
– |
Valuta operazione differita |
– |
Per informazioni su come utilizzare e gestire più operandi, operandi complessi, chiamate di funzione/metodo/blocco funzionale/programma/azione e salti, vedere anche Operatori IEC e Uso dell'editor IL.
Esempio di programma IL con alcuni modificatori
LD TRUE load TRUE to accumulator
ANDN bVar1 execute AND with negative value of bVar1
JMPC m1 if accum. is TRUE, jump to label "m1"
LDN bVar2 store negated value of bVar2...
ST bRes ... in bRes
___________________________________________________________
m1:
LD bVar2 store value of bVar2...
ST bRes ... in bRes
La tabella elenca i casi d'uso per gli operandi:
|
Caso d'uso |
Descrizione |
Esempi |
|---|---|---|
|
Più operandi per un operatore |
Opzioni
|
|
|
Operandi complessi |
Per un operando complesso, immettere la parentesi sinistra Immettere la parentesi destra nella prima colonna in una riga separata seguita dalle voci dell'operando nelle righe seguenti. |
Una stringa viene ruotata di un carattere a ogni ciclo:
|
|
Chiamata blocco funzione, chiamata programma |
Riga 1:
Righe seguenti:
In base allo standard IEC, le espressioni complesse non sono consentite qui. Assegnare tali costrutti al blocco funzione o al programma prima della chiamata. |
|
|
Chiamata di funzione |
Riga 1:
Riga 2:
Il valore restituito viene scritto nell'accumulatore. Riga 3:
|
|
|
Chiamata d'azione |
Simile alla chiamata al blocco funzione oppure alla chiamata al programma. Il nome dell'azione viene aggiunto al nome dell'istanza del blocco funzione o programma. |
|
|
Salto |
|
|