Funzione che ritorna il registro di diagnostica del satellite desiderato.
|
i32 safe_diag (i32 nIsle, i32 nSat)
|
|
Numero dell'isola (1-:-31).
|
|
Numero del satellite (0-:-16).
|
|
Rende:
|
|
|
|
|
> 0
|
LPSDO8
|
16 -:- 31
|
0xFFFF0000
|
[Z] Zero.
|
15
|
0x8000
|
[COK] Comunicazione OK.
|
14
|
0x4000
|
[SA] Indirizzo Safety scritto nei bit 0-:-10.
|
13
|
0x2000
|
[E] Dispositivo in Errore (override bit 14) codice di errore scritto nei bit 0-:-10.
(vedi documentazione "PhoenixContact 106889 - Axioline F module with integrated safety logic and safe digital outputs")
|
12
|
0x1000
|
[PUR] Richiesta Power Up.
|
11
|
0x0800
|
[OAR] Richiesta Operator Acknowledge.
|
0 -:- 10
|
0x07FF
|
Indirizzo safety o codice di errore.
|
SSDI8 - SSDO8
|
16 -:- 31
|
|
[Z] Zero.
|
15 - 14 - 13 (1 - 0 - 0)
|
0xE000 == 0x8XXX
|
[COK] Comunicazione OK.
|
15 - 14 - 13 (0 - 1 - 0)
|
0xE000 == 0x4XXX
|
[SA] Indirizzo Safety scritto nei bit 0-:-12.
|
15 - 14 - 13 (1 - 1 - 1)
|
0xE000 == 0xEXXX
|
[E] Dispositivo in Errore, codice di errore scritto nei bit 0-:-12.
(vedi documentazione modulo)
|
0 -:- 12
|
0x1FFF
|
Indirizzo safety o codice di errore.
|
-1
|
Parametri illegali.
|
-2
|
nIsle illegale.
|
-3
|
nSat illegale.
|
-4
|
Modulo inesistente.
|
|
|
Rule, Task.
|
|
RTE 34.20.1
|
|
|
Esempio di utilizzo:
int diag_0, diag_1
diag_0 = safe_diag(1, 0)
diag_1 = safe_diag(1, 1)
|
|