-> Hier kostenlos registrieren
Hallo,
ich habe folgendes Problem... ich möchte mit vb.net diverse Ein-, Ausgänge sowie Merker im BC9000 lesen und schreiben.
Die Verbindung zum BC9000 ist siehe FormLoad:
Beim Auslesen kann ich nur Byteweise auslesen, hat jemand eine Idee wie ich auf einzelne Bits zugreifen kann?
Beim Schreiben das Gleich Problem ich habe einen Ausgang an und will einen anderen im gleichen Byte Bereich schreiben, dann wird immer alles überschrieben. Ist ja auch logisch, da ich das Byte vorher nicht bearbeite. Ich würde halt nur gerne direkt auf die Ausgänge auch Bitweise schreiben. Jemand dafür eine Idee?
Ich würde mich freuen wenn jamand eine Idee hat.
Mfg
Paul
ich habe folgendes Problem... ich möchte mit vb.net diverse Ein-, Ausgänge sowie Merker im BC9000 lesen und schreiben.
Die Verbindung zum BC9000 ist siehe FormLoad:
Code:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'Instanz der Klasse TcAdsClient erzeugen
TCclient = New TcAdsClient
'Verbindung mit Port 800 auf dem BC 9000
TCclient.Connect("192.168.54.110.1.1", 800)
Catch ex As Exception
MessageBox.Show("Kein BC 9000 gefunden")
End Try
'## Try erkennt ob TwinCat läuft
Dim state As Object
Try
state = TCclient.ReadState.DeviceState()
state = TCclient.ReadState.AdsState()
state = TCclient.ClientCycle
Catch ex As Exception
MessageBox.Show("Kein BC 9000 gefunden")
Demo = True
End Try
End Sub
Beim Auslesen kann ich nur Byteweise auslesen, hat jemand eine Idee wie ich auf einzelne Bits zugreifen kann?
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ds As New AdsStream(1)
Dim br As New IO.BinaryReader(ds)
TCclient.Read(61472, 0, ds)
ds.Position = 0
TextBox1.Text = br.ReadBoolean().ToString()
End Sub
Beim Schreiben das Gleich Problem ich habe einen Ausgang an und will einen anderen im gleichen Byte Bereich schreiben, dann wird immer alles überschrieben. Ist ja auch logisch, da ich das Byte vorher nicht bearbeite. Ich würde halt nur gerne direkt auf die Ausgänge auch Bitweise schreiben. Jemand dafür eine Idee?
Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ds As New AdsStream(4)
Dim bw As New IO.BinaryWriter(ds)
ds.Position = 0
bw.Write(1)
TCclient.Write(16416, 10, ds)
End Sub
Ich würde mich freuen wenn jamand eine Idee hat.
Mfg
Paul