Abilitare JavaScript per vedere questo sito.

I metacomandi sono degli identificatori destinati a condizionare la fase di compilazione. Non generano direttamente nessun codice ma specificano la modalità di elaborazione del programma sorgente R3.

I metacomandi si suddividono in quattro gruppi:

metacomandi di definizione di modalità di programmazione diagramma tempo generale

metacomandi di condizionamento del listato

metacomandi per scopi generali

pseudo istruzioni

Metacomandi di definizione di modalità di programmazione diagramma tempo generale

$rule

Definizione task 0 che contiene le rule

$task n

Definizione Task (1-:-8)

$rule_periodic

Definizione regola periodica rule_periodic

$rule_time

Definizione regole asincrone int_timer , int_after

$rule_inp

Definizione regola asincrona int_inp

Metacomandi di condizionamento del listato

$define

Definisce un simbolo

$undef

Rimuove la definizione di un simbolo

$ifdef-$else-$endif

Se il simbolo è definito, allora il programma viene compilato

$ifndef-$else-$endif

Se il simbolo non è definito, allora il programma viene compilato

$expand

Se presente, in fase di compilazione viene gestita l'espansione dei LIT all'interno del file listato

Metacomandi per scopi generali

$include

Include un file esterno nella compilazione (*.i3). Utile per la definizione simbolica delle risorse hardware

$close_loop

Simula la chiusura dell'anello di posizione. Se presente, RTE simula i valori di cp e cv degli assi

$check_array

verifica, run-time, se vi è un accesso ad un elemento di un array inesistente. Ovviamente penalizza il tempo di esecuzione.

$write_on_extern

Abilita possibilità di scrivere le variabili definite come extern (public)

$use_rpe

Abilita l'estensione al linguaggio RPE (Robox Path Executor). Aggiunto in automatico usando il configuratore di progetto RDE (gruppi di assi)

$error "messaggio"

Da RC3E v33.1.21

Forza il compilatore a dare un errore di compilazione (utile ad es. all'interno di un blocco condizionato, per accorgersi se il blocco viene o meno compilato)

$step

Per ottenere il massimo delle prestazioni dalle rule interruptanti è stato eliminato il superfluo. Volendo riabilitare la 'marcatura' dei passi di un task di rule asincrone (RULE_PERIODIC incluso) al fine di poter mettere dei breakpont sull'esecuzione dei passi, bisogna aggiungere in testa al file (dopo la definizione del tipo di file) la linea $step

Esempio:

$rule_periodic

$step

$warning "messaggio"

Da RC3E v33.1.21

Forza il compilatore a dare un warning di compilazione (utile ad es. all'interno di un blocco condizionato, per accorgersi se il blocco viene o meno compilato)

Pseudo istruzioni

Le variabili di tipo BIT_MASK permettono di definire e inizializzare particolari variabili intere (di tipo U32) da utilizzarsi come maschere di bit.

Tipicamente l'impostazione dei bit avviene in automatico tramite le scelte di configurazione che l'utente opera nel configuratore di progetto dci RDE.

Le variabili di tipo BIT_MASK possono comunque essere lette e modificate anche da sorgente R3

bit_mask_set nomevar valore

La variabile nomevar viene inizializzata a valore

bit_mask_add nomevar valore

In nomevar vengono posti a 1 i bit specificati da valore, senza alterare gli altri

bit_mask_remove nomevar valore

In nomevar vengono posti a 0 i bit specificati da valore, senza alterare gli altri

Annotazioni:

anche l'istruzione lit che permette di definire dei simbolici alle grandezze.

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC