Skip to main content

Modificatori e Operatori in IL

Tabella 5. Modificatori

Modificatore

Combinato con l'operatore

Descrizione

C

JMP, CAL, RET

Il comando viene eseguito solo quando il risultato dell'espressione precedente è TRUE.

N

JMPC, CALC, RETC

Il comando viene eseguito solo quando il risultato dell'espressione precedente è FALSE.

N

Altrimenti

Negazione dell'operando (non dell'accumulatore)



Tabella 6. Operatori con i possibili modificatori

Operatore

N

Senso

Esempio

LD

N

Carica il valore (negato) dell'operando nell'accumulatore

LD ivar

ST

N

Memorizza il contenuto (negato) dell'accumulatore nell'operando

ST iErg

S

Imposta l'operando (tipo BOOL ) A TRUE se il contenuto dell'accumulatore è TRUE

S bVar1

R

Imposta l'operando (tipo BOOL ) A FALSE se il contenuto dell'accumulatore è TRUE

R bVar1

AND

N,(

Bit a bit AND del valore dell'accumulatore e dell'operando (negato)

AND bVar2

OR

N,(

OR bit a bit del valore dell'accumulatore e dell'operando (negato)

OR xVar

XOR

N,(

OR esclusivo bit a bit del valore dell'accumulatore e dell'operando (negato)

XOR N,(bVar1,bVar2)

NOT

Negazione bit a bit del valore dell'accumulatore

ADD

(

Somma del valore dell'accumulatore e dell'operando

Il risultato viene scritto nell'accumulatore.

ADD ivar1

SUB

(

Sottrazione dell'operando dal valore dell'accumulatore

Il risultato viene scritto nell'accumulatore.

SUB iVar2

MUL

(

Moltiplicazione del valore dell'accumulatore e dell'operando

Il risultato viene scritto nell'accumulatore.

MUL ivar2

DIV

(

Somma del valore dell'accumulatore e dell'operando

Il risultato viene scritto nell'accumulatore.

DIV 44

GT

(

Controlla se il valore dell'accumulatore è maggiore del valore dell'operando

Il risultato (BOOL ) viene scritto nell'accumulatore.

GT 23

GE

(

Controlla se il valore dell'accumulatore è maggiore o uguale al valore dell'operando

Il risultato (BOOL ) viene scritto nell'accumulatore.

GE iVar2

EQ

(

Controlla se il valore dell'accumulatore è uguale al valore dell'operando

Il risultato (BOOL ) viene scritto nell'accumulatore.

EQ iVar2

NE

(

Controlla se il valore dell'accumulatore non è uguale al valore dell'operando

Il risultato (BOOL ) viene scritto nell'accumulatore.

NE iVar1

LE

(

Controlla se il valore dell'accumulatore è minore o uguale al valore dell'operando

Il risultato (BOOL ) viene scritto nell'accumulatore.

LE 5

LT

(

Controlla se il valore dell'accumulatore è minore del valore dell'operando

Il risultato (BOOL) viene scritto nell'accumulatore.

LT cVar1

JMP

CN

Salto incondizionato (condizionale) all'etichetta di salto specificata

JMPN next

CAL

CN

Chiamata (condizionale) di un programma o di un blocco funzione (se il valore dell'accumulatore è TRUE)

CAL prog1

RET

Esci dalla modulo e torna alla modulo di chiamata

RET

RET

C

Se il valore dell'accumulatore è TRUE: Esci dalla modulo e torna alla modulo chiamante

RETC

RET

CN

Se il valore dell'accumulatore è FALSE: Esci dalla modulo e torna alla modulo chiamante

RETCN

)

Valutazione dell'operazione di reset



Esempio 9. Esempio
_cds_img_il_example.png


Applicazione

Descrizione

Esempi

Più operandi per un operatore

. Opzioni
  • Inserire gli operandi in righe consecutive, separati da virgole nella seconda colonna.

  • Ripeti l'operatore in righe consecutive.

Variante 1:

_cds_img_il_add_multiple_operands_1.png

Variante 2:

_cds_img_il_add_multiple_operands_2.png

Operandi complessi

Per un operando complesso, si inserisce la parentesi di apertura ( nella prima colonna. Inserire la parentesi di chiusura nella prima colonna, in una riga separata, dopo le voci degli operandi delle righe successive.

Una stringa viene ruotata di un carattere a ogni ciclo.

_cds_img_il_complex_oparand.png

Chiamata al blocco funzione, chiamata al programma

Colonna 1: CAL operatore o CALC operatore

Colonna 2: Nome dell'istanza del blocco funzione o del programma e parentesi di apertura (

Se non segue alcun parametro, allora la parentesi di chiusura ) viene inserito qui.

Righe da seguire:

Colonna 1: Nome del parametro seguito da := per parametro ingresso o => per parametro uscita

Colonna 2: valore del parametro seguito da una virgola , se seguono ulteriori parametri

La parentesi di chiusura ) viene ingresso dopo l'ultimo parametro.

Come limitazione secondo lo standard IEC, in questo caso non è possibile utilizzare espressioni complesse. È necessario assegnare tali costrutti al blocco funzione o al programma prima della chiamata.

_cds_img_il_fb_call1.png

Chiamata di funzione

Riga 1: Colonna 1: LD

Colonna 2: Variabile Ingresso

Riga 2: Colonna 1: Nome della funzione Colonna 2: Ulteriori parametri ingresso separati da virgola

CODESYS scrive il valore di ritorno nell'accumulatore.

Riga 3: Colonna 1: ST Colonna 2: Variabile in cui viene scritto il valore di ritorno

_cds_img_il_function_call.png

Chiamata all'azione

Come la chiamata al blocco funzione o la chiamata al programma.

Il nome dell'azione viene aggiunto al nome dell'istanza FB o del programma.

_cds_img_il_action_call.png

Salto

Colonna 1: JMP operatore o JMPC operatore

Colonna 2: Nome dell'etichetta di salto della rete di destinazione

Nel caso di un salto incondizionato, la sequenza di istruzioni precedente deve terminare con uno dei seguenti comandi: ST,STN, S, R, CAL, RET, JMP

Nel caso di un salto condizionato l'esecuzione del salto dipende dal valore caricato.

_cds_img_il_jmp.png
. Per ulteriori informazioni, vedere quanto segue: