&PARAM EDITMASK = *
DEF RSIEthernet( )
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
HALT
PTP $POS_ACT ; The current position will be used as SAK movement!
; Create RSI Object ST_Ethernet, read object configuration .../INIT/ERXConfig.xml
err = ST_ETHERNET(hEthernet,0,"RSIethernet.xml")
IF (err <> #RSIOK) THEN
HALT
ENDIF
;FOLD RSI-Objects to link in ST_Ethernet
; read $IN[1-16]
err = ST_DIGIN(hDin,0,1,2,0)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hDin,1,hEthernet,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
; read $OUT[1-3]
err = ST_DIGOUT(hDout1,0,1,0,0)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_DIGOUT(hDout2,0,2,0,0)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_DIGOUT(hDout3,0,3,0,0)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hDout1,1,hEthernet,2)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hDout2,1,hEthernet,3)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hDout3,1,hEthernet,4)
IF (err <> #RSIOK) THEN
HALT
ENDIF
; make sine signal
UNIT_RSI = 3601
err = ST_SOURCE(hsource,0,UNIT_RSI)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_SETPARAM(hsource,1,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_SETPARAM(hsource,3,50)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hsource,1,hEthernet,5)
IF (err <> #RSIOK) THEN
HALT
ENDIF
;ENDFOLD
;FOLD RSI-Objects to link out of ST_Ethernet
; link RKorr to correction on path
err = ST_PATHCORR(hPath,0)
IF (err <> #RSIOK) THEN
HALT
ENDIF
;set X Y Z range
err=ST_SETPARAM(hPath,1,-50)
err=ST_SETPARAM(hPath,2,-50)
err=ST_SETPARAM(hPath,3,-50)
err=ST_SETPARAM(hPath,7,50)
err=ST_SETPARAM(hPath,8,50)
err=ST_SETPARAM(hPath,9,50)
err = ST_NEWLINK(hEthernet,1,hPath,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hEthernet,2,hPath,2)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hEthernet,3,hPath,3)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hEthernet,4,hPath,4)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hEthernet,5,hPath,5)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_NEWLINK(hEthernet,6,hPath,6)
IF (err <> #RSIOK) THEN
HALT
ENDIF
; DiO map to $OUT[8-24]
err = ST_MAP2DIGOUT(hMapDio,0,hEthernet,19,2,2)
IF (err <> #RSIOK) THEN
HALT
ENDIF
; show RKorr on $SEN_PREA[1-6]
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,1,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,2,2)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,3,3)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,4,4)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,5,5)
IF (err <> #RSIOK) THEN
HALT
ENDIF
err = ST_MAP2SEN_PREA(hmap,0,hEthernet,6,6)
IF (err <> #RSIOK) THEN
HALT
ENDIF
; show DiO on $SEN_PINT[1]
err = ST_MAP2SEN_PINT(hmap,0,hEthernet,19,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
;ENDFOLD
err=ST_BREAKMOVE(hBreak,0,hEthernet,19)
err = ST_ON1(#BASE,1)
IF (err <> #RSIOK) THEN
HALT
ENDIF
ST_SKIPSENS() ;Hold on - until RSI-Break reason occur
PTP $POS_ACT
END
Display More
I think the object ST_BREAKMOVE should connect with the output $OUT[16] and the RSI global variable RSIBREAK should be assigned a value.