Function that returns the diagnostic register of the desired satellite.
|
i32 safe_diag (i32 nIsle, i32 nSat)
|
|
Number of the island (1-:-31)
|
|
Satellite number (0-:-16)
|
|
Returns:
|
|
|
|
|
> 0
|
LPSDO8
|
16 -:- 31
|
0xFFFF0000
|
[Z] Zero
|
15
|
0x8000
|
[COK] OK communication
|
14
|
0x4000
|
[SA] Safety address written in bits 0-:-10
|
13
|
0x2000
|
[E] Device in Error (override bit 14) error code written in bits 0-:-10.
(see documentation "PhoenixContact 106889 - Axioline F module with integrated safety logic and safe digital outputs")
|
12
|
0x1000
|
[PUR] Power Up request
|
11
|
0x0800
|
[OAR] Operator Acknowledge request
|
0 -:- 10
|
0x07FF
|
Safety address or error code
|
SSDI8 - SSDO8
|
16 -:- 31
|
|
[Z] Zero
|
15 - 14 - 13 (1 - 0 - 0)
|
0xE000 == 0x8XXX
|
[COK] OK communication
|
15 - 14 - 13 (0 - 1 - 0)
|
0xE000 == 0x4XXX
|
[SA] Safety address written in bits 0-:-12
|
15 - 14 - 13 (1 - 1 - 1)
|
0xE000 == 0xEXXXXX
|
[E] Device in Error, error code written in bits 0-:-12.
(see module documentation)
|
0 -:- 12
|
0x1FFF
|
Safety address or error code
|
-1
|
Illegal parameters
|
-2
|
Illegal nIsle
|
-3
|
nSat illegal
|
-4
|
Non-existent module
|
|
|
Rule, Task
|
|
RTE 34.20.1
|
|
|
Example of use:
int diag_0, diag_1
diag_0 = safe_diag(1, 0)
diag_1 = safe_diag(1, 1)
|
|