TwinCat 2 / Visual Studio 2010

pumba

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

im Rahmen eines Technikerprojektes stehe ich vor dem Problem eine Visual Basic Oberfläche mit einem PLC Programm bei Twincat zu verknüpfen.
Das Programm+Visu läuft auf einem TouchPanel PC, ich arbeite mit TwinCat2 und Visual Studio 2010 (Forms Anwendung)
Sowohl ST als auch VB sind für mich relativ neu...

Ich habe mich schon etwas in die Thematik eingelesen und hab auch schon erste Erfolge!
Es gibt aber ein paar Sachen die ich nicht nachvollziehen kann!:confused:


Ich verstehe nicht woher die Visualisierung weiß um welche Variable es sich aus dem PLC programm handelt? Wird das mit Adressen geregelt?


Von der Beckhoff infosys Seite:

Lesen einer SPS-Variablen:
' creates a stream with a length of 4 byte
Dim ds = New AdsStream(4)
Dim br = New BinaryReader(ds)
' reads a DINT from PLC
tcAds.Read(&H4020, 0, ds)
ds.Position = 0
TextBox1.Text = br.ReadInt32().ToString()

Vielleicht wird es für mich etwas verständlicher wenn einer die 5 zeilen VB Code mit aussagekräftigen Kommentaren versieht.

Vielen Dank
 
Das VB-Programm "weiß" natürlich nicht um welche Variable es sich handelt. Auf der SPS speicherst du etwas auf eine bestimmte Adresse, z.B. Merkerbyte MB100. Im VB-Programm greifst du dann mit ADS auf das jeweilige Prozessdatenregister zu, mit entsprechendem Offset (100 z.B. für MB100). Sogesehen bist Du derjenige der weiß um welche Variable es geht.
Wenn du mit einem neueren Controller arbeitest (CX oder PC) kannst du auch die Variablen direkt über ihre Namen ansprechen, das ist vielleicht etwas einfacher, vor allem weil dann nicht alle SPS-Variablen adressiert sein müssen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo pumba,

es gibt unzählige Beispiele im InfoSys dazu. Schau mal hier: http://infosys.beckhoff.com/content/1031/tcsample_net/html/tcsample_net_intro.htm?id=19769

Zu deinem Code-Ausschnitt:
Mit tcAds.Read(&H4020, 0, ds) greifst du auf eine Variable in der PLC zu, die wie folgt angelegt wurde:
MyVar AT%MB0 : DINT;
"ds" definiert hier die Größe bzw. Anzahl der zu lesenden Bytes: Dim ds = New AdsStream(4) --> 4 Byte = DINT
ds.Position = 0 --> Stream Position auf Anfang
TextBox1.Text = br.ReadInt32().ToString() -->4 Byte am Anfang des Streams lesen und in die TextBox1 schreiben

Gruß,
mac203
 
Danke für eure Antworten!
Habe mich jetzt dazu entschieden die Visualisierung nun doch mit TwinCat zu machen. Mit visual Basic Code komm ich irgendwie nicht klar..:confused:
 
Zurück
Oben