1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
| 100 '********** LARAY VISKOSITEIT **********
110 '********** MOORS CLAUDE - 1990 ********
120 '
130 'Berekening der viskositeit door middel van regressie analyse
140 'Berekeningen uitgevoerd rekening houdend met een ingevoerde waarde voor
150 'de Gap clearance
160 GoSub 500: 'Initialiseren
170 GoSub 1000: 'Invoer van basis gegevens
180 GoSub 2000: 'Invoer van meetgegevens
190 GoSub 4000: 'Resultaten op scherm
200:00:00
210 If A$ = "2" Then GoTo 170
220 System
230:00:00
400 'Hoofding
410 CLS: Color 6, 0, 0: Print Tab(32); "LARAY VISCOSITY": Color 2, 0, 0
420 L = Len(F$): A = Int((80 - L) / 2): Print Tab(A); F$
430 Return
440:00:00
500 'Initialiseren
510 Key OFF: For K = 1 To 10: Key K, "": Next
520 F$ = "INTRODUCTION": GoSub 400
530 Dim T(5), G(5), G$(6), A(6), KR$(6)
540 For K = 1 To 6: READ G$(K), KR$(K), A(K): Next
550 LOCATE 7, 1: Color 3, 0, 0
560 Print Tab(10); "THE VISCOSITY IS CALCULATED BY MEANS OF THE POWER LAW"
570 Print Tab(10); "THE YIELD VALUE IS AN EXTRAPOLATION BASED ON REGRESSION"
580 Print Tab(10); "ANALYSIS AND THIS IS NOT THE REAL YIELD"
590 Print Tab(10); "RESULTS FROM IRON AND GLASS ROD CAN BE PROCESSED"
600 Print Tab(10); "MINIMAL FOUR DROP TIMES ARE REQUIRED"
610 Print Tab(10); "THE FIRST DROPTIME MUST LIE BETWEEN 1.0 AND 1.2 SECONDS"
620 Print: Print Tab(10); "THE REFERENCE TEMPERATURE IS 21 OF 25 øC.THE AL"; "LOWED"
630 Print Tab(10); "DEVIATION IS 1øC LOWER OR HIGHER THAN THIS TEMPERATURE"
635 Print: Print Tab(10); "THE EXACT GAP CLEARANCE OF YOUR LARAY MUST BE"; " KNOWN FOR CORRECT RESULTS"
640 LOCATE 22, 10: Color 12, 0, 0: Print "PRESS ANY KEY": Beep
650 A$ = INKEY$: If Len(A$) = 0 Then GoTo 650
660 DATA INKNUMBER,[ ],15,GLASS OR IRON ROD (G/I),[ ],1, REFERENCE TEMPERATURE,[ ],2,ACTUAL TEMPERATURE,[ ],4
670 DATA NUMBER OF READINGS (MAX 5),[ ],1,GAP CLEARANCE,[ ],2
680 DATUM$ = Mid$(Date$, 4, 3) + Left$(Date$, 3) + Mid$(Date$, 7)
690 Return
700:00:00
1000 'Invoer van basisgegevens
1010 F$ = "INPUT BASIC DATA": GoSub 400: Color 3, 0, 0: LOCATE 8, 1
1020 For K = 1 To 6
1030 Print Tab(10); G$(K);: Color 7, 0, 0: Print Tab(40); KR$(K): Color 3, 0, 0
1040 Print: Next: K = 1
1050 A = 6 + K * 2: B = 41: C = A(K): IV = 0
1060 If K = 3 Or K = 5 Then IV = 1
1070 If K = 2 Then IV = 3
1080 If K = 4 Then IV = 4
1090 GoSub 2260: If FL = 1 Then K = K - 1: GoTo 1050
1100 If R$ = String$(Len(R$), " ") Then Beep: GoTo 1050
1110 If K = 3 And (Val(R$) <> 21 And Val(R$) <> 25) Then Beep: GoTo 1050
1120 If K = 4 Then GoSub 1250: If VERSCHIL > 1 Then Beep: GoTo 1050
1130 If K = 5 And (Val(R$) < 4 Or Val(R$) > 5) Then Beep: GoTo 1050
1140 If K = 6 And (Val(R$) < 35 Or Val(R$) > 55) Then Beep: GoTo 1050
1150 BASIS$(K) = R$: K = K + 1: If K < 7 Then GoTo 1050
1160 LOCATE 23, 5: Color 6, 0, 0: Print "ACCEPT DATA (Y OR \) ";
1170 A$ = INPUT$(1): IF A$ <> "Y" AND A$ <> "\" THEN 1170
1180 If A$ = "\" Then K = K - 1: Color 3, 0, 0: GoTo 1050
1190 If BASIS$(2) = "I" Then W = 0.13: STAAF$ = "IRON": GoTo 1210
1200 W = 0.0325: STAAF$ = "GLASS"
1210 N = Val(BASIS$(5)): GAPCLEARANCE = Val(BASIS$(6)) / 10000
1220 FACT1 = Int(10 / GAPCLEARANCE): FACT2 = 9280
1230 Return
1240:00:00
1250 'Temperatuursverschil nagaan
1260 REF = Val(BASIS$(3)): TEMP = Val(R$): VERSCHIL = Abs(REF - TEMP): Return
1270:00:00
2000 'Invoer meetgegevens
2010 F$ = "INPUT MEASURING DATA": GoSub 400: Color 3, 0, 0: Print: Print
2020 For I = 1 To N
2030 Print Tab(10); "TIME IN SECNDS."; "[ ]"
2040 Print Tab(10); "WEIGHT IN KG. "; "[ ]"
2050 Print: Next: TEL = 1: A = 5: B = 26: C = 5: IV = 4
2060 J = 0: K = 0: L = 0: M = 0: R = 0
2070 If TEL > N Then GoTo 2160
2080 GoSub 2260: T(TEL) = Val(R$)
2090:00:00
2100 A = A + 1
2110 GoSub 2260: G(TEL) = Val(R$)
2120 If G(TEL) <= 0 Or G(TEL) > 20 Then Beep: GoTo 2110
2130 X = Log(FACT1 / T(TEL)) / Log(10): Y = Log((G(TEL) + W) * FACT2) / Log(10)
2140 J = J + X: K = K + Y: L = L + X ^ 2: M = M + Y ^ 2: R = R + X * Y
2150 A = A + 2: TEL = TEL + 1: GoTo 2070
2160 B = (N * R - K * J) / (N * L - J ^ 2): A = (K - B * J) / N: J = B * (R - J * K / N)
2170: M = M - K ^ 2 / N: R = SQR(J / M): IF R > 1 THEN R = 1
2180 Y = A + B * Log(2500) / Log(10): V = 10 ^ Y / 2500: V = V * (0.1 * (TEMP - REF) + 1)
2190 Y = A + B * Log(2.5) / Log(10): D = 10 ^ Y: D = D * (0.05 * (TEMP - REF) + 1)
2200 H = D / V
2210 Color 12, 0, 0: LOCATE 23, 30: Print "DATA O.K. (Y/N) ? "
2220 A$ = INPUT$(1): IF A$ <> "Y" AND A$ <> "N" THEN 2210
2230 If A$ = "N" Then GoTo 2010
2240 Return
2250:00:00
2260 'Beschermde invoer met signaal
2270 'A = Rijnummer B = Kolomnummer C = Stringlengte
2280 LOCATE A, B, 1: A$ = "": R$ = "": D = B: FL = 0
2290 A$ = INKEY$: If Len(A$) = 0 Then GoTo 2290
2300 A$ = Right$(A$, 1): If A$ <> Chr$(8) Then GoTo 2340
2310 ZL = Len(R$): If ZL < 1 Then GoTo 2290
2320 R$ = Left$(R$, ZL - 1): D = D - 1
2330 LOCATE A, D, 1: Print " ";: LOCATE A, D, 1: GoTo 2290
2340 If A$ = Chr$(92) And K > 1 Then FL = 1: GoTo 2440
2350 If A$ = Chr$(92) Then GoTo 2290
2360 If A$ = Chr$(13) Then GoTo 2430
2370 If Asc(A$) < 32 Or Asc(A$) > 96 Then GoTo 2290
2380 If IV = 1 Then If Asc(A$) < 48 Or Asc(A$) > 57 Then Beep: GoTo 2290
2390 If IV = 3 Then If Asc(A$) <> 71 And Asc(A$) <> 73 Then Beep: GoTo 2290
2400 If IV = 4 Then If Asc(A$) <> 46 And (Asc(A$) < 48 Or Asc(A$) > 57) Then Beep: GoTo 2290
2410 R$ = R$ + A$: If Len(R$) > C Then Beep: R$ = Left$(R$, C): GoTo 2290
2420 Print A$;: D = D + 1: GoTo 2290
2430 If R$ = "" Then GoTo 2330
2440 Return
2450:00:00
4000 'Resultaten op scherm
4010 F$ = "RESULTS": GoSub 400: Color 3, 0, 0
4020 LOCATE 5, 5: Print "INKNUMBER : ";: Color 12, 0, 0: Print BASIS$(1);: Color 3, 0, 0: Print Tab(46); "REFERENCE TEMPERATURE : ";
4030 Color 12, 0, 0: Print BASIS$(3) + ".0": Color 3, 0, 0
4040 Print Tab(5); "ROD : ";: Color 12, 0, 0: Print STAAF$;: Color 3, 0, 0: Print Tab(46); "MEASURED TEMPERATURE : ";: Color 12, 0, 0
4050 Print USING; "##.#"; Val(BASIS$(4)): Color 3, 0, 0
4055 Print Tab(5); "GAPCLEARANCE : ";: Color 12, 0, 0: Print "0.0" + BASIS$(6) + " mm": Color 3, 0, 0
4060 LOCATE 12, 23: Print "APP. VISC. 2500 S-1 ";: Color 12, 0, 0: Print USING; "######.##"; V;: Print " Pa.s": Color 3, 0, 0
4070 LOCATE 13, 23: Print "YIELD VALUE 2.5 S-1 ";: Color 12, 0, 0: Print USING; "######.##"; D;: Print " Pa": Color 3, 0, 0
4080 LOCATE 14, 23: Print "SHORTNESS ";: Color 12, 0, 0: Print USING; "######"; H: Color 3, 0, 0: LOCATE 15, 23
4090 Print "CORRELATION COEFF. ";: Color 12, 0, 0: Print USING; "#.####"; R: Color 6, 0, 0
4100 LOCATE 10, 22: Print String$(37, "_"): For K = 1 To 6: LOCATE 10 + K, 21: Print "|": LOCATE 10 + K, 59: Print "|": Next
4110 LOCATE 16, 22: Print String$(37, "_"): Color 2, 0, 0: LOCATE 22, 1
4120 Print String$(80, "-");
4130 Print " 1 = PRINT 2 = NEW CALCULATION 3 = EXIT"
4140 A$ = INPUT$(1): IF ASC(A$) < 49 OR ASC(A$) > 51 THEN 4140
4150 If A$ = "1" Then GoSub 5000: GoTo 4140
4160 Return
4170:00:00
5000 'Resultaten naar printer
5010 LPRINT TAB(32); "LARAY VISCOSITY": LPRINT TAB(32); STRING$(17, "-")
5020 LPRINT CHR$(10): LPRINT "DATE : "; DATUM$;
5025 LPRINT TAB(55); "GAPCLEARANCE : 0.0" + BASIS$(6) + " mm"
5030 LPRINT "INKNUMBER : "; BASIS$(1): LPRINT "REFERENCE TEMP. : "; BASIS$(3) + ".0": LPRINT "ACTUAL TEMP. : ";
5040 LPRINT USING "##.#"; VAL(BASIS$(4)): LPRINT "USED ROD : "; STAAF$
5050 LPRINT CHR$(10): LPRINT "DATA : WEIGHT ";
5060 FOR K = 1 TO N: LPRINT USING "##.##"; G(K); : LPRINT " "; : NEXT: LPRINT "KG.": LPRINT TAB(21); "DROPTIME ";
5070 FOR K = 1 TO N: LPRINT USING "##.##"; T(K); : LPRINT " "; : NEXT: LPRINT "SEC.": LPRINT CHR$(10): LPRINT "RESULT :"
5080 LPRINT TAB(21); "APP. VISC. 2500 SEC-1 "; : LPRINT USING "######.##"; V; : LPRINT " Pa.s": LPRINT TAB(21); "YIELD VALUE 2.5 SEC-1 ";
5090 LPRINT USING "######.##"; D; : LPRINT " Pa": LPRINT TAB(21); "SHORTNESS "; : LPRINT USING "######"; H
5100 LPRINT TAB(21); "CORRELATION COEFFICIENT "; : LPRINT USING "#.####"; R
5110 LPRINT CHR$(10): LPRINT "THE RESULT IS INCORRECT IF THE DE CORRE"; "LATION COEFFICIENT IS LOWER THAN 0.9990"
5120 LPRINT Chr$(10): LPRINT "CALCULATION METHOD : REGRESSION ANALYSIS": LPRINT "USED MODEL : POWER LAW"
5130 Return |
Partager