Rockwell Automation 2706-F11J_F11JC_F21J_F21JC DL50 INSTALLATION MANUAL User Manual
Page 93

Chapter 6
Slave Mode Operation / Examples
6–29
5300
REM ASSIGN FIELD 6 BYTE 3
5310
F63=129
5320
RETURN
5330
END
5400
REM CHECKSUM CALCULATION
5410
TCSUM=0:CHD=0:CSUM=0
5420
PUSH 0
:REM GET LENGTH $(0)
5430
CALL 68
5440 POP
SL
5450
BAD=0
5460
IF SL=0 THEN GOTO 5500
5470
FOR POSIT = 1 TO SL STEP 1
5480
TCSUM=TCSUM+ASC($(0),POSIT)
5490
NEXT POSIT
5500
CSUM=CTBT+CLR+24+TCSUM+SLADD+LINO
5510
CSUM=CSUM+13+F6+F62+F63
5520
CHH=INT(CSUM/256)
5530
CHL=CSUM–(256*CHH)
5540
IF CHL=13 .OR. CHL=18 THEN CHD=1:BAD=1
5550
IF CHH=13 .OR. CHH=18 THEN CHD=CHD+127:BAD=1
5560
IF BAD=1 THEN GOTO 5420
5570
RETURN
5580
END
5700
REM SEND OUTPUT SUBROUTINE
5710
PRINT# CHR(CTBT),CHR(CLR+24),$(0),
5720
PRINT# CHR(SLADD),CHR(LINO),CHR(13),
5730
PRINT# CHR(F6),CHR(F62),CHR(F63),
5740
PRINT# CHR(CHD),CHR(CHH),CHR(CHL),
5750
DLY=TMOUT:GOSUB 5800
:REM TIME DELAY
5760
RETURN
5770
END
5800
REM TIME DELAY SUBROUTINE
5805
FOR I = 1 TO DLY
5810
NEXT I
5820
RETURN
5830
END
5900
REM GET DL50 RESPONSE
5910
REM WAIT FOR DL50 RESPONSE
5920
IF SLADD=255 THEN RETURN
5930
J = 0
5940
PUSH1:CALL 36 :
REM GET INPUT BUFFER LENGTH
5950
POP BL
5960
J = J + 1
5970
IF J > RTMOUT THEN GOTO 6030
5980
IF BL < 5 THEN GOTO 5940 ELSE 5990
5990
FOR I = 1 TO BL STEP 1
6000
RESP(I) = GET#
6010
PRINT RESP(I)
6020
NEXT I
6030
PUSH 1
:REM CLEAR INPUT BUFFER
6040
CALL 37
6050
RETURN
6060
END