A4: Digital and analog NCK I/Os for SINUMERIK 840D sl
1.3 Access via PROFIBUS
Extended Functions
Function Manual, 03/2013, 6FC5397-1BP40-3BA1
67
This results in the following configuration of the machine data:
MD10510 $MN_DPIO_LOGIC_ADDRESS_OUT[5] = 1200 (log. start address I/O-range)
MD10511 $MN_DPIO_RANGE_LENGTH_OUT[5] = 0
(a single useful-data slot is to be used)
MD10512 $MN_DPIO_RANGE_ATTRIBUTE_OUT[5]
Bit0 = 1 (Big-Endian-Format)
Bit1 = 0 (writing only via system variable)
Bit3 = 0 (Slot-lifespan-alarms issued)
Programming
before an access query the status of RangeIndex = 5
N3 check: ; Jump marker
N5 IF $A_DP_OUT_STATE[5]==2 GOTOF write ; if data range valid
; => jump to N15
N10 GOTOB check ; jump back to check
N15 write: ; Jump marker
N20 $A_DPB_OUT[5,6]=128 ; Writing the data byte
Query, whether all configured ranges/slots are valid
N3 check: ; Jump marker
N5 IF $A_DP_OUT_CONF==$A_DP_OUT_VALID GOTOF
write
; if data range valid
; => jump to N15
N10 SETAL(61000) ;Set alarm no. 61000
N15 write: ; Jump marker
N20 $A_DPB_OUT[5,6]=128 ; Writing the data byte
Query, whether the configured RangeIndex = 5 is valid
N3 check: ; Jump marker
N5 IF $A_DP_OUT_VALID B_AND ’B100000’ GOTOF
write
; if data range valid
; => jump to N15
N10 SETAL(61000) ;Set alarm no. 61000
N15 write: ; Jump marker
N20 $A_DPB_OUT[5,6]=128 ; Writing the data byte
Querying the length of the configured, valid I/O-range with RangeIndex = 5
N100 R1=$A_DP_OUT_LENGTH[5] ; Length of the I/O-range (slot) in bytes
;Result: R1 = 32