Teledyne 7500 Instruction Manual page 41

Infrared gas analyzer communication functions (modbus)
Hide thumbs Also See for 7500:
Table of Contents

Advertisement

Teledyne Analytical Instruments
1510 '------------- Data receive ----------------------------
1520 PRINT
1530 LENGTH=LOC(1) 'Number of data in receiving buffer
1540 IF LENGTH=0 THEN PRINT "No answer" :END
1550 PRINT "Receiving data < ";
1560 FOR I=1 TO LENGTH
1570 X$=INPUT$(1,#1) 'Taking data from receiving buffer
1580 CC(I)=ASC(X$) 'Digitizing and storing
1590 PRINT RIGHT$("0"+HEX$(CC(I)),2);" "; 'Displaying on screen
1600 NEXT I
1610 CLOSE #1
1620 COUNT=LENGTH-2
1630 GOSUB *CRC.CALC
1700 '
1710 '------------- Transmission error check -----------------------
1720 PRINT
1730 CRC.L$=RIGHT$("0"+HEX$(CRC.L),2)
1740 CRC.H$=RIGHT$("0"+HEX$(CRC.H),2)
1750 PRINT "CRC calculation = ";CRC.L$;" ";CRC.H$
1760 IF CC(LENGTH-1)<>CRC.L THEN GOTO *ER.MESSAGE
1770 IF CC(LENGTH)<>CRC.H THEN GOTO *ER.MESSAGE
1780 GOTO *PRT.RESULT
1790 *ER.MESSAGE
1800 PRINT "Communication error"
1810 END
1900 '
1910 '------------- Display of result ---------------------------
1920 *PRT.RESULT
1930 PRINT
1940 PRINT " Range change ended "
1950 END
3000 '
3010 '------------ CRC calculation ------------------------------
3020 *CRC.CALC 'For contents, refer to CRC calculation flow
3030 CR=&HFFFF
3040 FOR I=1 TO COUNT
3050 CR=CR XOR CC(I)
3060 FOR J=1 TO 8
3070 CT=CR AND &H1
3080 IF CR<0 THEN CH=1 ELSE CH=0:GOTO *CRC.CALC.10
3090 CR=CR AND &H7FFF
3100 *CRC.CALC.10
3110 CR=INT(CR/2)
3120 IF CH=1 THEN CR=CR OR &H4000
3130 IF CT=1 THEN CR=CR XOR &HA001
3140 NEXT J
3150 NEXT I
3160 CRC.L=CR AND &HFF 'Lower byte of CRC calculation
3170 CRC.H=((CR AND &HFF00)/256 AND &HFF) 'Upper byte of CRC
calculation
3180 RETURN
41

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

7600

Table of Contents