Strukturen lesen und schreiben

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von lieuthnant.

    Strukturen lesen und schreiben

    Liebe Forumler,

    Ich schreibe momentan an einem Projekt. Ich habe auf einer Seite Visual Basic und auf der anderen Seite eine Beckhoff Steuerung. Ich habe Strukturen mit Twincat3 geschrieben und ich setze die Werte von der Struktur in Beckhoff und ich lesen sie in Visual Basic. Es funktioniert nicht so richtig und zwar:
    Ich habe ein READ-Button in Visual basic für das Lesen der Positionen, die ich in einer Struktur habe. Die Positionen haben 12 Elemente. Jetzt kommt das Problem.
    Wenn ich 1X den READ Button klicke. Es stehen "0" in allen Positionen, obwohl ich ein paar Werte in die Positionen auf der Seite von Beckhoff geschrieben habe.
    Wenn ich ein 2tes Mal den READ Button klicke, dann werden die Positionen angezeigt aber nicht richtig. Zum Beispiel. Ich habe 12 Positionen: 10, 20, 30, 40, 50, 60, 70, 80,90,100,110,120. Visual Basic zeigt: 20,30, 40, 50, 60, 70, 80, 90, 100 , 0 und 0 an. Das heißt, er verschluckt den 10 und schiebt 0 am Ende.
    Ich verstehe das nicht. Kann mir jemand das erklären oder hat jemand schon Erfahrung mit sowas?????
    Ich bedanke mich im Voraus und hoffe, ich konnte das Problem richtig erklären.

    Grüsse

    ~blaze~: Thema verschoben

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    Hi lieuthnant,

    wie sprichst du die Steuerung an?
    Kannst du ein Codestück herzeigen, wie das Read aussieht?

    Mandy
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:
    Private hPCToBeckhoff As Integer
    Public PCToBeckhoffStruct As PcToBeckhoff = New PcToBeckhoff

    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=96)> Public XPositionen(12) As Double
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=96)> Public YPositionen(12) As Double

    ----------------------------------Funktion READ --------------------------------------------------------
    Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click

    Try

    hPCToBeckhoff = tcAds.CreateVariableHandle("GVL.SchnittstelleZuBeckhoff")
    PCToBeckhoffStruct = (tcAds.ReadAny(hPCToBeckhoff, GetType(PcToBeckhoff)))
    tbPositionen.Text = String.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}", PCToBeckhoffStruct.XPositionen(0).ToString, PCToBeckhoffStruct.XPositionen(1).ToString, PCToBeckhoffStruct.XPositionen(2).ToString, PCToBeckhoffStruct.XPositionen(3).ToString, PCToBeckhoffStruct.XPositionen(4).ToString, PCToBeckhoffStruct.XPositionen(5).ToString, PCToBeckhoffStruct.XPositionen(6).ToString, PCToBeckhoffStruct.XPositionen(7).ToString, PCToBeckhoffStruct.XPositionen(8).ToString, PCToBeckhoffStruct.XPositionen(9).ToString, PCToBeckhoffStruct.XPositionen(10).ToString, PCToBeckhoffStruct.XPositionen(11).ToString)


    Catch ex As Exception
    MessageBox.Show(ex.Message)

    End Try

    End Sub
    Wenn du den Code in [vbnet] [/vbnet] einbettest wird er lesbar...

    Wie ist denn PcToBeckhoff definiert?

    Sind in der Steuerung die Arrays 1-basiert?
    Versuch mal XPositionen und YPositionen mit 13 Elementen zu definieren und die Werte ab 1 auszulesen.
    Ich denke da ist der Hund irgendwo begraben...
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:

    lieuthnant schrieb:

    die ich in einer Struktur habe
    Definiere Struktur.
    Möglicherweise verwenden wir NET-Programmierer4 diesen Begriff anders als Du, der Du SPSse programmierst.
    Ich hab auch schon mal mit ner Beckhoff "geredet", wahrscheinlich ne andere, da gab es keine Probleme.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!