2 serial communication with checksum – INFICON IC/5 Thin Film Deposition Controller User Manual

Page 186

Advertising
background image

7 - 44

IP

N 07

4-

23

7A

E

IC/5 Operating Manual

7.8.2.2 Serial Communication with Checksum

5 ‘——IC/5 RS-232C COMMUNICATIONS PROGRAM WITH CHECKSUM——

10 OPEN “COM1:2400,N,8,1” FOR RANDOM AS #1

20 STX$ = CHR$(2) : NAK$ = CHR$(21) : ACK$ = CHR$(6)

22 CMD$ = “RG 01”

23 GOSUB 80

24 CMD$ = “RG 02”

25 GOSUB 80

30 INPUT “ENTER COMMAND”; CMD$

40 GOSUB 80

41 IF RESPONSE$ = “RECEIVE TIMEOUT” THEN 50

42 L = LEN(RESPONSE$): L = L - 1

44 RESPONSE$ = RIGHT$(RESPONSE$,L)

50 PRINT RESPONSE$

60 GOTO 30

70 ‘

80 ‘——TRANSMIT COMMAND AND RECEIVE RESPONSE SUBROUTINE——

90 ‘

100 ‘——SEND COMMAND——

110 SIZEM$ = CHR$(LEN(CMD$) / 256)

120 SIZEL$ = CHR$(LEN(CMD$) MOD 256)

130 CHECKSUM = 0

140 FOR X = 1 TO LEN(CMD$)

150 CHECKSUM = CHECKSUM + ASC(MID$(CMD$,X,1))

160 NEXT X

170 CHECKSUM$ = CHR$(CHECKSUM AND 255)

180 PRINT #1, STX$ + SIZEM$ + SIZEL$ + CMD$ + CHECKSUM$

190 ‘

200 ‘——RECEIVE RESPONSE——

210 TOUT = 4: GOSUB 390

220 IF I$ <> STX$ THEN 180

230 TOUT = 3: GOSUB 390

240 SIZE = 256 * ASC(I$)

250 TOUT = 3: GOSUB 390

260 SIZE = SIZE + ASC(I$)

270 CHECKSUM = 0

280 RESPONSE$ = “”

290 FOR I = 1 TO SIZE

300 TOUT = 3: GOSUB 390

310 RESPONSE$ = RESPONSE$ + I$

320 CHECKSUM = CHECKSUM + ASC(I$)

330 NEXT I

340 TOUT = 3: GOSUB 390

350 N = ASC(I$)

360 IF N <> (CHECKSUM AND 255) THEN PRINT “RESPONSE CHECKSUM ERROR”

370 RETURN

380 ‘

390 ‘——READ CHARACTER FROM INSTRUMENT TO I$——

400 ON TIMER (TOUT) GOSUB 430: TIMER ON

410 IF LOC(1) < 1 THEN 410 ELSE TIMER OFF: I$ = INPUT$(1,#1)

420 RETURN

430 TIMER OFF: RESPONSE$ = “RECEIVE TIMEOUT”: RETURN 440

440 RETURN 370

Advertising