Vai al contenuto
PLC Forum


Comunicazione seriale plotter hp del 1985


rob123

Messaggi consigliati

Salve a tutti.

Ho un plotter a pennino HP con porta seriale, funziona bene ma gli ultimi driver sono stati fatti per Win98, quindi non sono ancora riuscito a stampare nulla da Win7..

Nulla o quasi, perchè essndo HP risponde a tutti i comandi HPGL,(per chi non lo sapesse è una specie di "G code" per plotter).

Per inviare i comandi ho usato un normalissimo convertitore usb/rs232 e il terminale integrato in arduino ide.

Fortunatamente sono riuscito a trovare anche un programma di disegno vettoriale che permette di  salvare il disegno in formato HPGL . Questo file, rinominata l'estensione in .txt ,  risulta essere un normalissimo file di testo, e trascrivendo manualmente nel terminale le varie istruzioni  il plotter fa il suo lavoro magnificamente.

Mi piacerebbe automatizzare la cosa e inviare il testo riga per riga alla seriale automaticamente.

E' una cosa davvero semplice, così semplice che credevo esistesse un programma già belle che pronto... invece zero. non ho trovato niente di niente.

Chi ha un' idea?

Link al commento
Condividi su altri siti


Aggiornamento.  Ho trovato un programma, Cutecom, che permette di inviare un file come script.

Funziona, il problema è che è troppo veloce e il plotter non riesce a tenere il passo.

Temo che la cosa si complichi un poco.

 

 

Link al commento
Condividi su altri siti

proverei da una finestra MS-DOS il comando COPY

"testo.txt" è il testo da inviare scritto col Block Notes
La seriale è una COM1


dai il comando

COPY testo.txt  COM1:

dovrebbe gestire l'invio di testo.txt aspettando la porta libera

Link al commento
Condividi su altri siti

Adelino Rossi

a suo tempo, ho avuto un plotter seriale hp che usavo con autocad e orcad.

se non c'è dialogo bidirezionale tra i due e logico che il pc scarica alla massima velocità il file senza attendere.

il plotter ha una memoria buffer molto, molto piccola e si riempie subito. se il file è piccolo il problema non si nota.

in un dialogo completo il plotter mette in pausa il pc fino alla nuova richiesta dati.

a quel tempo con pc xt e at bus i pc rallentavano parecchio.

mi sembra, che a quel tempo interposi sulla seriale un buffer di memoria misco che liberava subito il pc. 

sono solo lontani ricordi.

 

Link al commento
Condividi su altri siti

Io ti consiglierei di utilizzare un vecchio PC con s.o. Win 98, al quale collegherai il plotter, che poi metterai in condivisione in rete. 

In pratica lo utilizzi come printserver. 

Dovrebbe funzionare, spero.

Link al commento
Condividi su altri siti

Vi ringrazio tutti, abbiamo avuto le stesse idee, ho provato con win 98 virtualizzato sotto windows 7,con un adattatore usb/seriale perchè la mia workstation ha di ogni a bordo tranne che una com vera. Alla fine sono riuscito a far funzionare tutto tranne il plotter, quindi dando la colpa all'adattatore ho provato a virtualizzare win98 sull'altro pc dove ho ubuntu e ben 2 (addirittura 2) porte seriali.

Il problema si ripresenta sempre puntuale, infatti stampando la pagina di prova, il plotter si blocca sempre alla stessa lettera. L'unico modo per  stampare sembra essere ridurre la velocità a 300 baud in modo che il buffer  resti vuoto... 

 

Ho provato  col comando COPY il quale restituisce "1 file copiato/i "

Alla fine ho anche riesumato un portatile pentium3 da1000MHz e 248Mb di ram, sul quale win98 va come un missile, e ripetuto tutto quello che avevo provato precedentemente sulle macchine virtuali sperando che il problema fosse dovuto alla virtualizzazione ma non è cambiato nulla.

Anche col mitico autocad r14 mandando in stampa il disegno succede la stessa cosa. Sinceramente non so più cosa provare, si blocca anche col suo driver originale...

 

Come dite, il plotter dovrebbe mettere in attesa la trasmissione quando il buffer si riempie, ma penso che questo non avvenga.

Ho provato tutti i tipi di controllo di flusso, hardware, software, e xon xoff. il cavo è buono perchè se chiedo la posizione o il codice errore il plotter risponde.

 

Grazie ancora per le risposte che avete dato.

 

 

 

 

 

Link al commento
Condividi su altri siti

Problema in parte risolto.

La causa del malfunzionamento sembra essere quella che si era ipotizzata, il buffer si riempie e il pc continua ad inviare dati come se niente fosse.

Il plotter permetterebbe il settaggio di tutti i tipi di handshake esistenti, ma non accetta il carattere di escape indicato sul manuale.(o più probabilmente sono io ad inserirlo nel modo scorretto).

In ogni caso, se si imposta la stampa su file e si utilizza  realterm per inviare questo file in un secondo momento, fila tutto liscio. L'unica diferenza tra realterm e tutti gli altri programmi che ho provato è che alla voce "hardware flow control" da la possibilità di impostare specificatamente  DTR/SD. 

 

 

Signori questo è quanto. Spero che possa venire utile a qualcuno.

Link al commento
Condividi su altri siti

Ciao, hai verificato il cavo seriale sia quello giusto? Forse utilizzi un cavo a tre fili ma non basta per regolare il flusso dei dati. Se imposti il flusso sul canale DTR ti occorre un cavo a 5 fili con il DTR incrociato. Verifica.

Link al commento
Condividi su altri siti

Grazie per la risposta, comunque il cavo è giusto. Sia quello che mi hanno dato insieme al plotter quando l'ho comprato che un altro fatto da me funzionano, solo che devo inviare il file manualmente con realterm , con windows 98 installato su pc con seriale sulla scheda madre. 

Ho provato più pc, più sistemi operativi, e milioni di macchine virtuali ma non c'è scampo.

 

L'unica soluzione potrebbe essere abilitare l'handshake software, la macchina lo permette ma non riesco a inviare il carattere di escape necessario ad impostarlo.

 

Sul manuale c'è scritto:

Le isruzioni di controllo sono codici di tre caratteri escape coposti da " ESC" e "." seguito da uno dei caratteri @,B,E,H,I,J,K,L,M,N,O,R,Y o Z.

per quanto ne so i caratteri di escape si scrivono tali e quali ma con "\" davanti, però quando provo ad inviare ESC.B che è la richiesta di quanto spazio resta disponibile sul buffer, l'unica risposta che ottengo è la spia ERROR che inizia a lampeggiare.

ho provato con "\ESC.E"   "\E\S\C.E"  anche seguiti da ";" che sarebbe il carattere di terminazione ma non funziona in nessun caso.

 

 

 

Link al commento
Condividi su altri siti

una procedura per inviare codici da tastiera a seriale. Da una finestra DOS:
COPY CON  COM1:   // trasmetti dalla CONsolle alla porta COM1:
[ALT 27] ABC              // il carattere Esc si compone da tastierino con la combinazione tasto ALT premuto e numero 27, rilasciando si vede una freccetta.
 --------                        // poi gli altri caratteri/codici
 ctrl + Z                       // alla fine si conclude con la combinazione CTRL+Z (fine del file) , compare ^Z 

Link al commento
Condividi su altri siti

  • 4 weeks later...

Anche se molto in ritardo, ringrazio per le risposte.

 

Confermo che il plotter funziona, ma soltanto con linux oppure windows ante NT, infatti per qualche strano motivo con xp, 7, e 8 la seriale non si ferma e i dati si perdono.

 

visto che adesso so come inserire il caratte esc, penso che scriveroò un programmino con processing, per inviare i dati gestendo il flusso in base a quanto buffer resta disponibile vuoto.

 

Alla prossima.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...