Springen naar inhoud


- - - - -

Com Poort Openen En Adam 4017 Uitlezen

com port adam4017 analoog input divice

  • Log in a.u.b. om te beantwoorden
Er zijn 3 reacties in dit onderwerp

#1 edwin

edwin

    Starting Developer

  • Leden
  • 3 berichten
    Laatst bezocht 04 nov 2013 16:45

Geplaatst op 28 oktober 2013 - 16:04

Hallo,

ik probeer in vb 2010 een programma te maken waarbij ik een adam 4017 input device kan lezen,
met de adam utilitie programma kan ik wel de ma per poort lezen,

ik zal die ook graag in een programma te zien krijgen, en dan de waardes verder verwerken.

maar wat ik ook probeer, diverse programmatjes gemaakt, maar kan met geen enkele de adam 4017 uitlezen

wie kan mij hier mee helpen?

#2 Swets

Swets

    Professional Developer

  • Leden
  • PipPipPipPip
  • 367 berichten
    Laatst bezocht 22 feb 2018 16:36
  • LocatieKrimpen a/d IJssel

Geplaatst op 02 november 2013 - 03:45

sorry,  ik weet niet wat een adam 4017 input device is?

#3 edwin

edwin

    Starting Developer

  • Leden
  • 3 berichten
    Laatst bezocht 04 nov 2013 16:45

Geplaatst op 02 november 2013 - 14:59

een adam 4017 kan ma of volt meten en dan doorgeven aan de pc dmv een com kabel,  ik heb inmiddels de adam aan de praat, ik kan de gegevens lezen, deze komt binnen via een com poort, deze komt binnen in sting of bites ik zie dit <xx,xxx-xx,xxx  in de richttextbox waarbij de x getallen zijn die ik nodig ben. 2 voor de komma en 3 achter de komma. nu alleen weer hoe kan ik deze string kan  ontleden en die in 2 textboxen zetten zodat ik ze verder verwerken kan

#4 edwin

edwin

    Starting Developer

  • Leden
  • 3 berichten
    Laatst bezocht 04 nov 2013 16:45

Geplaatst op 04 november 2013 - 16:03

ik heb inmiddels wel iets gecopieerd en getest

via onderstaand progje kan ik de compoort met adam 4017 wel lezen,

alleen loopt dan het richttexbox vol

als ik de & bij
Visual Basic Code:

Me.rtbReceived.Text &= [text] verwijder loopt de box niet meer vol maar gaat het te snel, dan zie ik de gegevens verschijenen en weer verwijderen

als ik het ontvang is het in deze zin >-00000-00.000 en de streepjes staan voor negatief getal met 3 cijvers achter de komma

en nu moet ik ook nog deze getallen in 2 apparte texbox zien te krijgen

wie heeft er nog tips of ideën

Imports


System

Imports


System.ComponentModel

Imports


System.Threading

Imports


System.IO.Ports

?

Public


Class frmMain

?



Dim myPort As Array 'COM Ports detected on the system will be stored here



Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data

?



Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



'When our form loads, auto detect all serial ports in the system and populate the cmbPort Combo box.

myPort = IO.Ports.

SerialPort.GetPortNames() 'Get all com ports available

cmbBaud.Items.Add(9600)

'Populate the cmbBaud Combo box to common baud rates used

cmbBaud.Items.Add(19200)

cmbBaud.Items.Add(38400)

cmbBaud.Items.Add(57600)

cmbBaud.Items.Add(115200)



For i = 0 To UBound(myPort)

cmbPort.Items.Add(myPort(i))



Next

cmbPort.Text = cmbPort.Items.Item(0)

'Set cmbPort text to the first COM port detected

cmbBaud.Text = cmbBaud.Items.Item(0)

'Set cmbBaud text to the first Baud rate on the list

btnDisconnect.Enabled =

False 'Initially Disconnect Button is Disabled



End Sub



Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click

SerialPort1.PortName = cmbPort.Text

'Set SerialPort1 to the selected COM port at startup

SerialPort1.BaudRate = cmbBaud.Text

'Set Baud rate to the selected value on



'Other Serial Port Property

SerialPort1.Parity = IO.Ports.

Parity.None

SerialPort1.StopBits = IO.Ports.

StopBits.One

SerialPort1.DataBits = 8

'Open our serial port

SerialPort1.Open()

btnConnect.Enabled =

False 'Disable Connect button

btnDisconnect.Enabled =

True 'and Enable Disconnect button



End Sub



Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click

SerialPort1.Close()

'Close our Serial Port

btnConnect.Enabled =

True

btnDisconnect.Enabled = False
End Sub

Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
SerialPort1.Write(txtTransmit.Text & vbCr)
'The text contained in the txtText will be sent to the serial port as ascii
'plus the carriage return (Enter Key) the carriage return can be ommitted if the other end does not need it
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting())
'Automatically called every time a data is received at the serialPort
End Sub

Private Sub ReceivedText(ByVal [text])
'compares the ID of the creating Thread to the ID of the calling Thread
If Me.rtbReceived.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.rtbReceived.Text &= [text]
TextBox2.Text = [text]
End If
End Sub

Private Sub cmbPort_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbPort.SelectedIndexChanged
If SerialPort1.IsOpen = False Then
SerialPort1.PortName = cmbPort.Text
'pop a message box to user if he is changing ports
Else 'without disconnecting first.
MsgBox("Valid only if port is Closed", vbCritical)
End If
End Sub

Private Sub cmbBaud_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbBaud.SelectedIndexChanged
If SerialPort1.IsOpen = False Then
SerialPort1.BaudRate = cmbBaud.Text
'pop a message box to user if he is changing baud rate
Else
'without disconnecting first.
MsgBox("Valid only if port is Closed", vbCritical)
End If
End Sub

Private Sub rtbReceived_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtbReceived.TextChanged
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
btnSend.PerformClick()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Enabled = False
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub

Private Sub GroupBox2_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox2.Enter
End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub

End

Class



Veranderd door pascalbianca, 20 november 2013 - 13:10.






Ook met taq com, port, adam4017, analoog, input, divice voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)