Read Anweisung für TwinCat

Parallax

Level-1
Beiträge
88
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

nach dem letzten Selbststudium hab ich es nun geschafft das mein Program richtig und zuverlässig verbindet.

So nun brauch ich im Prinzip noch 2 Dinge

Erstens:

Meine Lese-Anweisung lautet:

varTest = tcAds.Read(61472, 0, sStream, 2, 2)

mit folgender Syntax Read(Gruppe, Offset, Stream, nochn Offset??, Länge)

leider wird hierdurch n Fehler produziert

die Frage ist warum.

Der Stream wurde mit

Dim sStream As New AdsStream(2) dimensioniert. Das Problem ist ich weiß nicht genau was die "2" hinter dem Stream aussagt. Also normal ist das die Länge des Streams aber was bedeutet das für die Praxis.

oder eben dieser zweite Offset nach dem Stream (is das der gleiche oder was bedeutet jener)


So Frage 2:

Wenn nun ein Fehler auftritt würde ja mein Programm amstürtzen deswegen muss ich ja noch diese Fehler abfangen.

Nur wie mach ich das und auf welche Fehler muss ich achten.

im Prinzip kann das ja nur der Read Befehl sein und das die Verbindng unterbricht. Da das scheinbar keine Normalen Fehler sind wir On Error Goto nichts bringen.??

An sonsten is ja alles ok oder??


Mfg
Parallax

PS: Heute kamen die letzten Teile für die Maschine aber ich hoffe das mir nicht mehr viel fehlt.

Beim Ereignis Form_Closing hab ich tcAds.Dispose() eingefügt.
Damit sollte dich alles wieder getrennt werden oder???
 
Ich mach das immer so:

Code:
        Dim reader As AdsBinaryReader
        Dim value As Int16

        reader = New AdsBinaryReader(Me.Stream)
        Me.adsClient.Read(Me.hVar, Me.adsStream)
        Me.adsStream.Position = 0
        value = reader.ReadInt16()
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Kapitel zu den Exceptions findest du im Buch :)

Ein Bsp:
Code:
        Try
            If Not (Me.tcADS Is Nothing) Then
                    SyncLock Me.tcADS
                    Me.tcADS.Dispose()
                    Me.tcADS = Nothing
                End SyncLock
            End If
        Catch ex As TwinCAT.Ads.AdsException
            ....Do something here... or nothing
        End Try
Damit fängt man die Exceptions ab. Es gibt noch eine Form, in der man sicher stellt, dass eine Deinitialisierung abgearbeitet wird. Siehe auch die Hilfe zu den Exceptions
 
Zurück
Oben