Funzione per forzare lo stato degli IO
|
i32 force (what, value)
|
|
Oggetto da forzare. Può essere:
|
|
inp(nCh)
|
Dove nCh è il canale input da forzare. Può essere un'espressione qualsiasi.
|
inp_w(nW)
|
Dove nW è l'indice della input word da forzare. Può essere un'espressione qualsiasi.
|
inp_w(nW).(iB)
|
Dove nW è l'indice della input word e iB è il bit della input word da forzare. Può essere un'espressione qualsiasi.
|
out(nCh)
|
Dove nCh è il canale output da forzare. Può essere un'espressione qualsiasi.
|
out_w(nW)
|
Dove nW è l'indice della output word da forzare. Può essere un'espressione qualsiasi.
|
out_w(nW).(iB)
|
Dove nW è l'indice della output word e iB è il bit della output word da forzare. Può essere un'espressione qualsiasi.
|
|
|
Valore da forzare.
|
|
Rende:
|
|
0
|
Operazione eseguita con successo.
|
-1
|
Versione di RTE non compatibile.
|
-2
|
Indice non valido.
|
-3
|
Bit non valido.
|
|
|
Rule, Task.
|
|
Si ricorda che:
•Forzare un input vuol dire che il sw vedrà lo stato dell'input forzato, indipendentemente dallo stato reale dell'input fisico
•Forzare un output vuol dire che l'uscita fisica assumerà il valore forzato indipendentemente dal valore desiderato impostato da sw |
Esempio di utilizzo:
$LIT iw_rem 401
...
...
$LIT pbStart inp_w(iw_rem).(4)
...
...
esitoF = force(pbStart, 0)
if(esitoF < 0)
...
endif
dwell(0.02)
esitoF = force(pbStart, 1)
if(esitoF < 0)
...
endif
dwell(0.2)
|
Esempio di utilizzo:
$LIT iw_base_rem 401
...
...
$LIT pbStop inp((iw_base_rem-1)*16+5)
...
...
esitoF = force(pbStop, 0)
if(esitoF < 0)
...
endif
dwell(0.1)
esitoF = release(pbStop)
if(esitoF < 0)
...
endif
...
...
|
Esempio di utilizzo:
esitoF = force(out(r(1000)), r(1001))
if(esitoF < 0)
...
endif
...
...
|
|