Delta Tau GEO BRICK DRIVE Manuel D’Utilisation

Page de 294
 Geo Brick Drive User Manual 
Macro Connectivity 
 252 
Master Digital I/Os Transfer Example 
I6841=I6841|$000004 
 
; Make sure that I/O node 2 is active 
 
// Open Memory Registers 
#define OpenReg16Y 
M7000  ; Open memory register 16, Y-word 
#define OpenReg16X 
M7001  ; Open memory register 16, X-word 
#define OpenReg15Y 
M7002  ; Open memory register 15, Y-word 
OpenReg16Y->Y:$10FF,0,24,U 
; Holding 24 digital Outputs 
OpenReg16X->X:$10FF,8,16,U 
; Holding 1st 16-bit digital Inputs 
OpenReg15Y->Y:$10FE,8,16,U 
; Holding 2nd 16-bit digital Inputs 
M7000..7002=0   
 
; Initialization 
 
// Latching Words 
M7004..7006->*  
 
; Self referenced 
M7004..7006=0   
 
; Initialization 
#define LatchOut 
M7004  ; Digital Outputs Latch 
#define LatchIn1 
M7005  ; Digital Inputs Latch 1 
 
 
#define LatchIn2 
M7006  ; Digital Inputs Latch 2  
 
// MACRO I/O Node Registers 
#define N2Twenty4 
M7008  ; Node 2, 24-bit register 
#define N2First16 
M7009  ; Node 2, 1st 16-bit register 
#define N2Second16 
M7010  ; Node 2, 2nd 16-bit register 
N2Twenty4->X:$78420,0,24,U 
N2First16->X:$78421,8,16,U 
N2Second16->X:$78422,8,16,U 
 
// Digital I/O Data Transfer PLC  
Open plc 1 clear 
If (LatchOut!=OpenReg16Y) 
; Output Open Register Changed? 
 LatchOut=OpenReg16Y   
; Latch data 
 N2Twenty4=LatchOut 
 
; Update Output Word 
EndIf 
 
If (LatchIn1!=N2First16) 
; Input Node word changed? 
 LatchIn1=N2First16 
 
; Latch data 
 OpenReg16X=LatchIn1   
; Update Input Open Register word 
EndIf 
 
If (LatchIn2!=N2Second16) 
; Input Node word changed? 
 LatchIn2=N2Second16   
; Latch data 
 OpenReg15Y=LatchIn2   
; Update Input Open Register word 
EndIf 
Close