RS 232 Variable opvragen

Status
Niet open voor verdere reacties.

Serizo

Nieuwe gebruiker
Lid geworden
1 feb 2018
Berichten
2
Beste,

Ik zou graag via RS 232 variable op willen vragen uit een machine.
Het protocol is als volgt

GV 0 <CR>
GV 10 <CR>
GV 20<CR>
GV 21 <CR>

en zo enkele variabelen meer
En dan zou ik de opgevraagde in een textbox willen zetten om dit te kunnen printen.

Zou iemand mij hiermee kunnen helpen?
 
Eigenlijk moet je de tech doc van de machine erbij halen. Vaak staat er wel een voorbeeldje bij hoe de communicatie werkt.
En anders kijk je nog even op de support site of mail ze even.
Dat gaat iig sneller dan zelf in het begin met alle goede bedoelingen aanrommelen.
Niet iedereen houdt zich exact aan het protocol is onze ervaring.

Wel handig: om welke machine + model + type nummer gaat het?
 
Beste,

onderstaande heb ik geprobeerd, maar dit wilt niet werken.

Heeft iemand een idee hoe ik dat kan opvangen?

Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

If TextBoxFilePath.Text = "" Then MsgBox("Geen Registratienummer ingegeven!")

If TextBoxFolderPath.Text = "" Then MsgBox("Geen klantnaam ingegeven!")

rtbRecieveData.AppendText(vbTab & lblDate.Text + " : " + txbDateTime.Text + vbNewLine)
rtbRecieveData.AppendText(" " + vbNewLine)
rtbRecieveData.AppendText(vbTab & lblKlantnaam.Text + " : " + TextBoxFolderPath.Text + vbNewLine)
rtbRecieveData.AppendText(" " + vbNewLine)
rtbRecieveData.AppendText(vbTab & lblRegistratienr.Text + " : " + TextBoxFilePath.Text + vbNewLine)
rtbRecieveData.AppendText(" " + vbNewLine)

Try
'SEND "RDO" + CR OUT ON RS232 Port
SerialPort1.Write("GV 0" + Chr(13))
'WAIT 20MS FOR COMMAND TO BE SENT
Thread.Sleep(20)
'SET READ TIMOUT FOR RS232 READ TO 100MS
SerialPort1.ReadTimeout = 100

'READ DATA FROM RS232 INPUT BUFFER UP TO THE NEXT CR ( CHR(13))
rtbRecieveData.Text = (SerialPort1.ReadTo(Chr(13)))
'SEND "RDO" + CR OUT ON RS232 Port
SerialPort1.Write("GV 24" + Chr(13))
'WAIT 20MS FOR COMMAND TO BE SENT
Thread.Sleep(20)
'SET READ TIMOUT FOR RS232 READ TO 100MS
SerialPort1.ReadTimeout = 100
rtbRecieveData.Text = (SerialPort1.ReadTo(Chr(13)))
SerialPort1.Write("GV 20" + Chr(13))
'WAIT 20MS FOR COMMAND TO BE SENT
Thread.Sleep(20)
'SET READ TIMOUT FOR RS232 READ TO 100MS
SerialPort1.ReadTimeout = 100
rtbRecieveData.Text = (SerialPort1.ReadTo(Chr(13)))
SerialPort1.Write("GV 10" + Chr(13))
'WAIT 20MS FOR COMMAND TO BE SENT
Thread.Sleep(20)
'SET READ TIMOUT FOR RS232 READ TO 100MS
SerialPort1.ReadTimeout = 100
rtbRecieveData.Text = (SerialPort1.ReadTo(Chr(13)))
Catch ex As TimeoutException
'IF THERE IS A TIMEOUT, PRINT" No Data " IN TEXTBOX1.TEXT
rtbRecieveData.Text = ""
MsgBox("Geen data aanwezig !")
'THE NEXT LINE ENABLES A SPLASH SCREEN WITH AN ERROR MESSAGE ( DELETE IF NOT DESIRED)
MsgBox(ex.Message)
End Try
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan