# Array auf PC bearbeiten



## L.T. (30 März 2010)

Hallo,

ich möchte/soll/muss Daten die auf der Steuerung als Array abgelegt sind auf einem externen Rechner bearbeiten.
Das Array besteht aus Datensätzen die in einem Strukt definiert wurden. (Die Struktur sieht z.B so aus: ID_Nr, StringName, Int1, int2, Int3, Bool_1, Bool2)
Also habe ich ein eindimensionales Array mit z.B. 1200 Datensätzen dieser Struktur.
Wie bekomme ich diese Daten nun möglichst komfortabel für den Benutzer zum editieren auf einen PC (Excel,......) und wieder zurück?
Die Daten müssen nicht übertragen werden. Es kann also ruhig auch 30 Sekunden dauern bis die Daten gelesen/geschrieben wurden.

Danke für jeden Tipp!

Gruß L.T.


----------



## cybertracepda (30 März 2010)

Für welchen Steuerungstyp brauchst du es.
Beckhoff ??? oder andere STeuerung.
Bei Beckhoff könnte ich dir helfen, da ich sowas schon gemacht habe.
Ich habe das in Delphi2007 über die ADS_Dienste realisiert und in eine Datenbank geschrieben.
Man (ich) könnte hier eine Oberfläche entwickeln, die diese Daten dann anzeigt und editierbar macht.


----------



## McNugget (30 März 2010)

Hallo cybertracepda,

nun schalte ich mich auch mal ein.

Ich versuche gerade krampfhaft Delphi 2007 zu lernen, um auf WAGO-Controller zuzugreifen.

Was ist ADS? Funktioniert das hier auch?

Wäre es möglich, von Dir mal ein Beispielprjekt zu erhalten?

Das wäre mir eine Riesenhilfe.


----------



## trinitaucher (30 März 2010)

ADS (Automation Device Specification) ist der Software-seitige Background von Beckhoffs TwinCAT-Steuerungen.
Das System ist schon sehr mächtig, denn damit lässt sich fast jede PC-Software mit einem entsprechend programmierten Interface mit der Beckhoff-Welt verbinden 
:TOOL:

("Grenzen gab's gestern" )

Zur Frage von L.T.:
Wenn's nen TwinCAT-System ist, könnteste mit den Datei-Bausteinen aus der System Bibliothek die Daten in eine csv-Datei schreiben. Das im Excel importieren, bearbeiten, und wieder im TwinCAT mit einem gebastelten Algorithmus einlesen:
http://infosys.beckhoff.de/index.ph...ibsystem/html/tcplclibsys_fb_eof.htm&id=11659
Als zweites fällt mir noch das kostenpflichte Tool "XML Data Server" ein. Geht evtl. etwas leichter, wegen der Formatierung:
http://infosys.beckhoff.de/index.ph...tasrv/html/tcxmldatasrv_overview.htm&id=18372


----------



## McNugget (31 März 2010)

Schade.... 

Gibt´s da auch was für Wago? Speziell in Verbindung mit Delphi 2007.


----------



## L.T. (31 März 2010)

Vielen Dank für die Antworten.

Da werde ich mich mal bei den beiden Links von Trinitaucher schlau machen und wenn ich da nicht weiter komm dann meld ich mich nochmal bei dir cybertracepda.

Gruß L.T.


----------



## cybertracepda (1 April 2010)

Hallo L.T. !
Für Wago muss es auch eine Möglichkeit geben, auf die Variablen zuzugreifen.
Ich kenne da von CodeSys den PLC-Handler, der wahrscheinlich auch bei Wago funktioniert, dies ist ein Hochspracheninterface mit den verschiedensten Hochsprachen. Ist aber meines Wissens kostenpflichtig bei 3S zu beziehen.

Frage einmal bei Wago nach, was die empfehlen.
lg
Cybertracepda


----------



## iwan (1 April 2010)

Hallo 

Auf die Wago kannst du von Aussen via Modbus TCP/UDP zugreiffen.
Ist relativ einfach zu implementieren, hier findest du Infos dazu.

So viel ich weis gibts auch eine fertige DLL von wago (mbt.dll)

Das könnte dir evtl. auch noch helfen:
http://sourceforge.net/projects/delphimodbus/
oder das: 
http://www.inw.hs-merseburg.de/~uheuert/pdf/Studienarbeit/Andreas Grumbach.pdf


Gruss
Iwan


----------



## zotos (1 April 2010)

Wenn Du das ganze eh nicht in Echtzeit brauchst könnte sogar die alte DDE Schnittstelle reichen. Man müsste vielleicht auf beiden Seiten (CoDeSys und Excel) etwas Tüfteln um die 1200 Datensätze rüber zu bekommen aber ich denke das sollte man hinbekommen.

http://forum-en.3s-software.com/viewtopic.php?t=908


----------



## cas (10 April 2010)

Hallo,

für eine Beckhoff habe ich genau das richtige für dich.

http://web569.xps10.microserver.de/forum_visu/index.php?topic=835.0

Ein Sollwert-Manager, der Variablen ließt, speichert und zurückschreibt wenn notwendig. Bearbeitbar (exportieren/importieren) ist natürlich auch möglich.

MfG CAS


----------



## L.T. (14 April 2010)

Also ich hab mich jetzt mal aus Interesse an die ADS Geschichte mit VB.Net gewagt. (auch wenn ich von VB nicht wirklich Ahnung habe  )
Hab von "TwinCat" aus dem Netz geladen, Installiert und das VB-Beispiel versucht abzuändern. 
Integer, Real und Bool Variablen lesen und schreiben klappt schon.
Bei Strings bekomme ich das ganze nur in eine Richtung (von SPS nach VB.Net hin). 
Die String Var ist auf Twincat Seite als String[50] deklariert.

Kann mir hier jemand helfen? (über den Code nicht wundern, wie gesagt das ist mein erster Kontakt mit VB.net)

So wie das ganze jetzt ist, funktioniert das ja nur für die Runtime die auf dem gleichen PC läuft. Wie müsste die Konfiguration des ADS aussehen damit ich auf eine HArdware-SPS komme?

Muss man eigentlich immer Twincat installiert haben oder reicht es später auf dem eigentlichen Rechner die "TwinCAT.Ads.DLL" in c:\Windows/System32 zu kopieren?

Danke für jeden Tipp!! 

Gruß Lars


----------



## Graph&SCL_Freak (14 April 2010)

In jedem Fall muss der DataStream länger sein und dein Offset darf nicht immer bei 0 beginnen, sondern bei Offset+Länge der Variablen davor. DataStream-Länge ist der letzte Offset + Länge der letzten Variablen. So wird die Notification der Werte nicht richtig funktionieren, da der String die anderen überschreibt.

Das Schreiben von Strings geht auch über einen Stream. Lies mal in der Doku unter 'Lesen und Schreiben von String-Variablen'. Da gibt's auch ein VB-Bsp.

Für reine Schreibzugriffe kann man das Variablen-Handle übrigens auch lokal  deklarieren, den Zugriff machen und mit DeleteVariableHandle wieder  freigeben. 

Wenn du mit VisualStudio ein Setup erstellst wird die Dll mit eingebunden und später korrekt installiert.


----------

