10 'ÚÄ DISOC200.BAS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ E.D.C. S.r.L. Ä¿ 20 '³ TRASFERIMENTO MULTIPLO TRA C200H-ASC02 E C200HS-CPU21-E ³ 30 '³ - Il programma realizza i seguenti trasferimenti: ³ 40 '³ ³ 50 '³ PLC <--- ASCI BASIC ³ 60 '³ ³ 70 '³ SHENCK: 9600, 8 BIT EVEN, HANDSHAKE OFF, STOP BITS 1 ³ 80 '³ ³ 90 '³ DM950,951,952,953 <--- R1%,R2%,R3%,R4% ³ 100 '³ ³ 110 '³ - R1% Peso corrente bilancia nø1 ³ 120 '³ - R2% Prima cifra decimale peso bilancia nø1 ³ 130 '³ - R3% Peso corrente bilancia nø2 ³ 140 '³ - R4% Prima cifra decimale peso bilancia nø2 ³ 150 '³ ³ 160 '³ ³ 165 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 170 CLEAR 5000 180 R1%=0:R2%=0:R3%=0:R4%=0 184 '--------- Generazione della stringa di richiesta di lettura del peso 188 APP5$=CHR$(48)+CHR$(49)+CHR$(35)+CHR$(84)+CHR$(71)+CHR$(35)+CHR$(16)+CHR$(3)+CHR$(1) 190 '- azzera eventuali PC PUT in sospeso 200 REM PC PUT 0 250 '################### LETTURA DALLA BILANCIA Nø2 ##################### 260 '----------------------- Apro la Porta di comunicazione Nø2 270 OPEN #2,"COMU:(67)" 280 '----------------------> Invio STX alla Bilancia 285 PRINT #2,CHR$(2); 290 '<---------------------- Aspetto che la bilancia mi risponda con DLE 300 A$="" 305 WAIT "0.2",1400 310 A$=INPUT$(1,#2) 315 IF A$ <> CHR$(16) THEN GOTO 1400 341 '----------------------> Invio la stringa di richiesta peso sulla porta 2 350 PRINT #2,APP5$; 352 '<---------------------- Aspetto di ricevere in risposta DLE + STX 354 B$="" 355 WAIT "0.4",1400 360 B$=INPUT$(2,#2) 365 IF B$ <> CHR$(16)+CHR$(2) THEN GOTO 1400 370 '----------------------> Spedisco un altro DLE 375 PRINT #2,CHR$(16); 380 '----------------------- Attesa per la lettura della stringa di risposta 390 '************** LETTURA VARIABILI PESO DALLA BILANCIA 2 *************** 400 WAIT "2.0",1400 405 A$=INPUT$(36,#2) 420 '************ FINE LETTURA VARIABILI PESO DALLA BILANCIA 2 ************ 610 ' in R3% vi Š il peso corrente, in R4% la prima cifra decimale 620 R3%=VAL(MID$(A$,7,5)):R4%=VAL(MID$(A$,13,1)) 625 REM PRINT STR$(R3%)+","+STR$(R4%) 630 IF MID$(A$,34,2) <> CHR$(16)+CHR$(3) THEN GOTO 1400 640 PRINT #2,CHR$(16) 1300 '--------------------- FINE LETTURA DALLA PORTA 2 --------------------- 1390 GOTO 1430 1395 '************* GESTIONE ERRORE DI COMUNICAZIONE PORTA 2 ************** 1400 PRINT #2,CHR$(21); 1405 CLOSE #2 1415 GOTO 1440 1420 '********************************************************************* 1430 CLOSE #2 1440 '################### LETTURA DALLA BILANCIA Nø1 ##################### 2260 '----------------------- Apro la Porta di comunicazione Nø1 2270 OPEN #1,"COMU:(67)" 2280 '----------------------> Invio STX alla Bilancia 2285 PRINT #1,CHR$(2); 2290 '<---------------------- Aspetto che la bilancia mi risponda con DLE 2300 A$="" 2305 WAIT "0.2",3400 2310 A$=INPUT$(1,#1) 2315 IF A$ <> CHR$(16) THEN GOTO 3400 2341 '----------------------> Invio la stringa di richiesta peso sulla porta 1 2350 PRINT #1,APP5$; 2352 '<---------------------- Aspetto di ricevere in risposta DLE + STX 2354 B$="" 2355 WAIT "0.4",3400 2360 B$=INPUT$(2,#1) 2365 IF B$ <> CHR$(16)+CHR$(2) THEN GOTO 3400 2370 '----------------------> Spedisco un altro DLE 2375 PRINT #1,CHR$(16); 2380 '----------------------- Attesa per la lettura della stringa di risposta 2390 '************** LETTURA VARIABILI PESO DALLA BILANCIA 1 *************** 2400 WAIT "2.0",3400 2405 A$=INPUT$(36,#1) 2420 '************ FINE LETTURA VARIABILI PESO DALLA BILANCIA 1 ************ 2610 ' in R3% vi Š il peso corrente, in R4% la prima cifra decimale 2620 R1%=VAL(MID$(A$,7,5)):R2%=VAL(MID$(A$,13,1)) 2630 IF MID$(A$,34,2) <> CHR$(16)+CHR$(3) THEN GOTO 3400 2640 PRINT #1,CHR$(16) 3300 '--------------------- FINE LETTURA DALLA PORTA 1 --------------------- 3390 GOTO 3430 3395 '************* GESTIONE ERRORE DI COMUNICAZIONE PORTA 1 ************** 3400 PRINT #1,CHR$(21); 3405 CLOSE #1 3415 GOTO 3440 3420 '********************************************************************* 3430 CLOSE #1 3440 ' 3500 ' ############## SEZIONE DI SCRITTURA VARIABILI AL PLC ################ 3505 '----------- Scrivo R1%,R2%,R3%,R4% in DM950,951,952,953 --------------- 3510 REM PC PUT 2 3515 PC WRITE "@D,950,4,4I4";R1%,R2%,R3%,R4% 3520 ' 3525 REM PC GET D1%,D2% 'attende che il plc abbia letto 3530 REM IF (D2% AND &H1) <> 0 THEN GOTO 3525 'attende che venga settato bit 9 3535 ' del canale 19 3540 '################ FINE PROGRAMMA: INIZIO NUOVA LETTURA ################ 3600 GOTO 190