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
Summary of Contents for Geo Brick
Page 5: ...4...
Page 288: ...Geo Brick Drive User Manual Appendix A 288 Limits Flags J4...