Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Beckhoff BC9000 mit VB.net

  1. #1
    Registriert seit
    26.01.2010
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> 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:

    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
    Zitieren Zitieren Beckhoff BC9000 mit VB.net  

  2. #2
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Zitat Zitat von paul1010 Beitrag anzeigen
    Ich würde mich freuen wenn jamand eine Idee hat.

    Mfg
    Paul
    Moin,

    ich versuchs mal, mein letztes VB-Projekt ist allerdings schon ne weile her und meine ersten Geh-Versuche mit C# und Beckhoff sind 10 Tage und gingen ne halbe Stunde. Sprich ich bin gerade erst am Anfang.

    Aber von der Programmierer-Seite her würde ich sagen ist die Sprache erst mal Wurst.

    Zitat Zitat von paul1010 Beitrag anzeigen
    Beim Auslesen kann ich nur Byteweise auslesen, hat jemand eine Idee wie ich auf einzelne Bits zugreifen kann?
    Nachdem du das ganze Byte ja schon in der Hand hast (in ner Variable) musst du dir nur noch die Info rauspicken die du haben willst.
    Sagen wir du willst Bit 2 haben, dann würdest du das Byte-Ergebnis mit der Maske 0x04 (wir beginnen bei 0) verunden.
    In C wäre das
    Code:
    my-bit = byte & 0x04
    bzw. wo ich das so tippe, das würde dir nur (in C) die Info true oder false liefern, da in C alles größer 0 true ist.
    Um genau 1 oder 0 zu bekommen müsstest wohl noch das entsprechende Bit so weit nach rechts schieben und dann ggf. weitere Bits ausmaskieren.
    Nochmal in C:
    Code:
    my-bit = (byte >> 0x2) & 0x01
    Zitat Zitat von paul1010 Beitrag anzeigen
    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?
    Gibts dir ja schon selbst die Antwort.
    Zuerst musst du wissen wie das ganze Byte in der SPS aus schaut.
    Danach kannst du das entsprechende Bit zusätzlich setzen oder löschen und dann den wert wieder zur SPS senden.

    Hier lass ich mal das C Beispiel. VB ist ja doch etwas anders. Aber evtl. hilft der Ansatz zum suchen wie in VB Bit-Operationen erledigt werden.

    Hoffe das Hilft die weiter
    --
    ohm200x

  3. #3
    Registriert seit
    20.01.2012
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    http://infosys.beckhoff.de/index.php...apping.htm&id=

    Unter diesem Link findet man die nötigen Codes der IndexGroup um Eingänge oder Ausgänge Bit oder Byteweise auszulesen. Habe gestern endlich die Lösung mit Hilfe diesem links gefunden.

    Jedoch konnte ich beim schreiben ebenfalls nur in DINT Format schreiben, ein einzelnes Bit ohne die anderen zu Überschreiben, habe ich NOCH NICHT geschafft.

    Im Beispiel könnten Tippfehler sein, da ich aus dem Kopf es getippt habe und nicht aus meinem Projekt kopiert.

    Beispiel zum E0.2 auslesen und true oder False Ausgabe bzw. Entscheidung!:

    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()
    TCclient.Read(61473, 0, ds)
    ds.Position = 2

    IF br.ReadBoolean=true THEN
    TextBox1.Text = True
    Else
    TextBox1.Text = false
    END_IF

    End Sub

Ähnliche Themen

  1. beckhoff cpu bc9000 want
    Von andreautomation im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 10.09.2011, 13:40
  2. [ Beckhoff BC9000 ] Netzwerkkommunikation
    Von caret im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 30.07.2009, 11:39
  3. Beckhoff BC9000
    Von TomCatShS im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 31.03.2009, 23:30
  4. BC9000 Beckhoff OPC
    Von Crossbones im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 01.06.2006, 14:37
  5. Beckhoff BC9000 + SMS Versand
    Von rgeber im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 24.05.2006, 18:08

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •