Skip to main content

Modificatori e operatori in IL

Tabella 5. Modificatori

Modificatore

Combinato con operatore

Descrizione

C

JMP, CAL, RET

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

N

JMPC, CALC, RETC

Il comando viene eseguito solo se 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,(

A bit AND del valore dell'accumulatore e dell'operando (negato).

AND bVar2

OR

N,(

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

OR xVar

XOR

N,(

OR bit a bit esclusivo 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

(

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

Il risultato (BOOL) viene scritto nell'accumulatore.

GT 23

GE

(

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

Il risultato (BOOL) viene scritto nell'accumulatore.

GE iVar2

EQ

(

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

Il risultato (BOOL) viene scritto nell'accumulatore.

EQ iVar2

NE

(

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

Il risultato (BOOL) viene scritto nell'accumulatore.

NE iVar1

LE

(

Verifica se il valore dell'accumulatore è inferiore o uguale al valore dell'operando

Il risultato (BOOL) viene scritto nell'accumulatore.

LE 5

LT

(

Controllare se il valore dell'accumulatore è inferiore al 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

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

CAL prog1

RET

Esci dalla casella e torna alla casella di chiamata

RET

RET

C

Se il valore dell'accumulatore è TRUE: uscire dalla casella e tornare alla casella chiamante

RETC

RET

CN

Se il valore dell'accumulatore è FALSE: uscire dalla casella e tornare alla casella chiamante

RETCN

)

Valutazione dell'operazione di reset



Esempio 9. Esempio
_cds_img_il_example.png


Utilizzo

Descrizione

Esempi

Più operandi per 1 operatore

. Opzioni
  • Si immettono gli operandi in righe consecutive, separate da virgole nella 2a 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, inserire la parentesi aperta ( nella prima colonna. Immettere 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 ogni ciclo.

_cds_img_il_complex_oparand.png

Richiamo del blocco funzione, richiamo del programma

Colonna 1: CAL operatore o CALC operatore

Colonna 2: nome dell'istanza del blocco funzione o del programma e parentesi aperta (

Se non seguono parametri, allora la parentesi di chiusura ) è inserito qui.

Righe da seguire che:

Colonna 1: nome del parametro seguito da := per parametro di input o => per parametro di uscita

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

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

Come limitazione secondo lo standard IEC, qui non possono essere utilizzate 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 di input

Riga 2: Colonna 1: Nome della funzione Colonna 2: Ulteriori parametri di input 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 restituito

_cds_img_il_function_call.png

Chiamata d'azione

Come il richiamo del blocco funzione o il richiamo del 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

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

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

_cds_img_il_jmp.png
. Per ulteriori informazioni, vedere: