Vai al contenuto
PLC Forum


Stampante Datamax Comandata Da Vb - Come si fa a fare funzionare l'esempio del manuale


SABRINA71

Messaggi consigliati

Ciao, e salve a tutti,

vorrei sapere se qualcuno è riuscito a far funzionare l'esempio riportato sui manuali della DATAMAX per stampare da visualbasic?

Il problema è questo ho una stampante DATAMAX W6208 che vorrei far stampare via seriale attraverso un programma VB6 questo è il codice che ho stritto ricalcando quanto indicato nell'appendice B del manuale ma tutto quello che ottengo è un lampeggio:

Private Sub Command1_Click()

MSComm1.Output = Chr$(126) & "L" & Chr$(13) & "D11" & Chr$(13) & "19110080100002510K OHM 1/4 WATT" & "E" & Chr$(13)

End Sub

Private Sub Form_Load()

' Buffer in cui viene memorizzata la stringa di

' input

Dim Instring As String

' Utilizza COM1.

MSComm1.CommPort = 3

' Velocità 9600, nessuna parità, 8 bit di dati e

' 1 bit di stop.

MSComm1.Settings = "9600,N,8,1"

' Comunica al controllo di leggere l'intero buffer

' quando viene utilizzata la proprietà Input.

MSComm1.InputLen = 0

' Apre la porta.

MSComm1.PortOpen = True

' Invia al modem il comando di attivazione.

' modem risponda con "OK".

' Attende il ritorno di dati attraverso la porta

' seriale.

'Do

' DoEvents

'Buffer$ = Buffer$ & MSComm1.Input

'Loop Until InStr(Buffer$, "OK" & vbCrLf)

' Legge il dato di risposta "OK" sulla porta

' seriale.

' Chiude la porta seriale.

'MSComm1.PortOpen = False

End Sub

Private Sub MSComm1_OnComm()

Text1.Text = Text1.Text & MSComm1.Input

End Sub

Qualcuno, ha una idea di cosa sbaglio ?!!

Sabrina

Link al commento
Condividi su altri siti


per prima cosa proverei con HyperTerminal , cavo 2-3-5 (inv 2-3) e 7-8 ponticellati.

stringa Chr$(126) & "L" & Chr$(13) & "D11" & Chr$(13) & "19110080100002510K OHM 1/4 WATT" & "E" & Chr$(13)

Dim Instring As String

' Utilizza COM1.

MSComm1.CommPort = 3

Utilizza COM3 non com 1!

Link al commento
Condividi su altri siti

Sto usando un convertitore USB-RS232 quindi uso la Com3 ma posso modificare la porta e usare una seriale diretta quindi Com1 come da commento (andavo di fretta e non ho corretto)!

Non mi è chiaro il cavo da usare con HyperTerminal devo comunque invertire 2 e 3 perchè una prova l'avevo fatta con un cavo diretto come mi era stato suggerito ma non vedo niente; premesso che è la prima volta che faccio una cosa di questo tipo e non so bene come va configurato HyperTerminal!

Sai aiutarmi?

Grazie Sabrina

Link al commento
Condividi su altri siti

Usando HyperTerminal sono riuscita a capire dove è il buco:

Carattere da mandare non è Chr$(126) ma Chr(2)

Grazie dell'aiuto e alla prossima

Link al commento
Condividi su altri siti

Io ti passo questi piccoli TIPS:

Global Const SOH = 1

Global Const STX = 2

Global Const CR = 13

Global Const ESC = 27

' Controllo stato

sStatus = CommPort.Input

CommPort.Output = Chr(SOH) & "A"

dtSendTime = Now

Sleep 500

While (Not bResponse) And (DateDiff("s", dtSendTime, Now) < 2)

sStatus = CommPort.Input

bResponse = sStatus <> ""

Wend

If Mid(sStatus, 1, 1) = "Y" Then s = s & vbCr & "Interpeter busy"

If Mid(sStatus, 2, 1) = "Y" Then s = s & vbCr & "Paper out or fault"

If Mid(sStatus, 3, 1) = "Y" Then s = s & vbCr & "Ribbon out or fault"

If Mid(sStatus, 4, 1) = "Y" Then s = s & vbCr & "Printing batch"

If Mid(sStatus, 5, 1) = "Y" Then s = s & vbCr & "Busy printing"

If Mid(sStatus, 6, 1) = "Y" Then s = s & vbCr & "Printer paused"

If Mid(sStatus, 7, 1) = "Y" Then s = s & vbCr & "Label presented"

ciao

BR1

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...