100 ' programma per ASC02 --> DATAMAX M Mark II 110 ' 120 ' ***************************** 130 ' *********** iogio *********** 140 ' ************ for ************ 150 ' ********** Elmasu *********** 155 ' ***************************** 160 ' 170 CLEAR 5000 180 DIM TBNUM(20) 190 LTPREC%=0:TBSTR$="":INIZIO%=0:FLAGINCH%=0 200 'Lettura flag di stampa DM1200 210 PC READ "@D,1200,1,I4";INIZIO% 220 IF INIZIO% <> 0 AND LTPREC% <> INIZIO% THEN GOSUB 300 230 LTPREC%=INIZIO% 240 GOTO 200 300 'routine lettura dati da plc 310 PC READ "@D,1100,21,21A3";TBSTR$ 320 PC READ "@D,1201,10,S10I4";TBNUM(1) 325 'Descrizione prodotto da DM1100 a DM1109 326 'ovvero da DM1100 per 20 caratteri (2 caratteri ogni DM) 330 PRODOTTO$=MID$(TBSTR$,1,20) 335 'Codice prodotto da DM1110 a DM1119 340 PLANT$=MID$(TBSTR$,21,20) 345 'Testa che ha riempito DM1120 350 TESTA$=MID$(TBSTR$,41,1) 395 'Formatto la data e l'ora 400 S$=STR$(TBNUM(1)) 410 M$=STR$(TBNUM(2)) 420 O$=STR$(TBNUM(3)) 430 GIORNI$=STR$(TBNUM(4)) 440 MESI$=STR$(TBNUM(5)) 450 ANNI$=STR$(TBNUM(6)) 452 'La DM1207 contiene il peso, verifico i decimali 454 DEC%=TBNUM(7) MOD 10 455 'se decimale<4 il peso diviso 10 altrimenti il peso diviso 10+1 in eccesso 458 IF DEC% < 4 THEN PESO%=TBNUM(7)\10 ELSE PESO%=TBNUM(7)\10+1 460 NETTO$=STR$(PESO%) 465 'Tara nella DM1208, qui viene sommata al peso netto e stampata come lordo 470 TARA$=STR$(TBNUM(8)+ PESO%) 475 ' formatto il progressivo di riempimento DM1209 e DM1210 480 P1$=STR$(TBNUM(10)) 482 P20$=STR$(TBNUM(9)) 486 P2$="0000"+RIGHT$(P20$,((LEN(P20$))-1)) 490 IF TBNUM(10)<>0 THEN PROG$=P1$+RIGHT$(P2$,4) ELSE PROG$=P20$ 495 'composizione ora 500 T$=O$+"."+M$+"."+S$ 505 ' composizione giorno 510 TDATA$=GIORNI$+"/"+MESI$+"/"+ANNI$ 600 'Apro la Porta di comunicazione Nø2 650 OPEN #2,"COMU:(59)" 710 'Vado a inizio stampa 720 GOSUB 2000 730 ' chiusura porta di stampa 750 CLOSE #2 760 ZERO%=0 770 PC WRITE "@D,1200,1,I4";ZERO% 780 RETURN 2000 'comandi per stampante 2010 PRINT #2,CHR$(2)+"M3000" 2020 PRINT #2,CHR$(2)+"s" 2030 PRINT #2,CHR$(2)+"f258" 2040 PRINT #2,CHR$(2)+"O0225" 2050 PRINT #2,CHR$(2)+"V0" 2060 PRINT #2,CHR$(2)+"L" 2070 PRINT #2,"D11" 2080 PRINT #2,"PA" 2090 PRINT #2,"SA" 2100 PRINT #2,"H14" 2110 PRINT #2,"N" 2111 PRINT #2,"e" 2120 'inizio stampa, descrizioni fisse di stampa 2130 'significato del formato numerico passato alla stampante: 2140 '1 = no rotazione (4 = rotazione carattere) 2150 '9 = tipo font 2160 '11 = moltiplicatore del font 2170 '004 = dimensioni font 2180 '0250 = riga di stampa 2190 '0025 = colonna di stampa 2200 PRINT #2,"191100402500025"+ "Product description:" 2210 PRINT #2,"191100402100025"+ "Date:" 2220 PRINT #2,"191100401700025"+ "Time:" 2230 PRINT #2,"191100401300025"+ "Product Code:" 2240 PRINT #2,"191100400900025"+ "Gross kg.:" 2250 PRINT #2,"191100400500025"+ "Net Weight kg.:" 2260 PRINT #2,"191100400100025"+ "Head & Bag Number:" 2300 'Scivo i dati provenienti dal plc 2400 PRINT #2,"191100402500210"+ PRODOTTO$ 2410 PRINT #2,"191100402100210"+ TDATA$ 2420 PRINT #2,"191100401700210"+ T$ 2430 PRINT #2,"191100401300210"+ PLANT$ 2440 PRINT #2,"191100400900210"+ TARA$ 2450 PRINT #2,"191100400500210"+ NETTO$ 2460 PRINT #2,"191100400100230"+ PROG$ 2470 PRINT #2,"191100400100210"+ TESTA$ 2500 'comandi di chiusura per la stampante 2810 PRINT #2,"W" 2820 PRINT #2,"Q0001" 2830 PRINT #2,"E" 2840 RETURN