externer Zugriff auf globale Variablen

patti_9000

Level-2
Beiträge
13
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

folgende Situation:

Beckhoff TwinCat 2.xx
Delphi Oberfläche eines firmeninternen Programmes, welches immer ein Array einer Datenstruktur ausliest

und wir wollen einzelne Variablen (BOOL) dieser Datenstruktur irgendwie auslesen - ohne TwinCat und ohne dieses Programm.
sozusagen eine Gegenkontrolle, da das Programm in der Entwicklungsphase ist!

gibt es eine Möglichkeit die globalen Variablen irgendwie extern auszulesen?
wo werden diese Daten von der TwinCat eigentlich abgespeichert?? die müssen doch irgendwo geloggt werden?!

--------------------------------

und noch eine andere Frage, die nichts damit zu tun hat :D

CoDeSys - Beckhoff

wie ist hier der Zusammenhang/Unterschied?? sind die ähnlich aufgebaut? das sind ja 2 verschiedene Programmierprogramme oder?


Danke im Voraus
patti_9000
 
Guten Morgen,

folgende Situation:

Beckhoff TwinCat 2.xx
Delphi Oberfläche eines firmeninternen Programmes, welches immer ein Array einer Datenstruktur ausliest

und wir wollen einzelne Variablen (BOOL) dieser Datenstruktur irgendwie auslesen - ohne TwinCat und ohne dieses Programm.
sozusagen eine Gegenkontrolle, da das Programm in der Entwicklungsphase ist!

gibt es eine Möglichkeit die globalen Variablen irgendwie extern auszulesen?
wo werden diese Daten von der TwinCat eigentlich abgespeichert?? die müssen doch irgendwo geloggt werden?!

--------------------------------

und noch eine andere Frage, die nichts damit zu tun hat :D

CoDeSys - Beckhoff

wie ist hier der Zusammenhang/Unterschied?? sind die ähnlich aufgebaut? das sind ja 2 verschiedene Programmierprogramme oder?


Danke im Voraus
patti_9000


Wozu hast du dich entschieden? Was kannst du über den externen Zugriff auf Variablen sagen?

Liebe Grüße

Niko
 
Guten Morgen,

folgende Situation:

Beckhoff TwinCat 2.xx
Delphi Oberfläche eines firmeninternen Programmes, welches immer ein Array einer Datenstruktur ausliest

und wir wollen einzelne Variablen (BOOL) dieser Datenstruktur irgendwie auslesen - ohne TwinCat und ohne dieses Programm.
sozusagen eine Gegenkontrolle, da das Programm in der Entwicklungsphase ist!

gibt es eine Möglichkeit die globalen Variablen irgendwie extern auszulesen?
wo werden diese Daten von der TwinCat eigentlich abgespeichert?? die müssen doch irgendwo geloggt werden?!

--------------------------------

und noch eine andere Frage, die nichts damit zu tun hat :D

CoDeSys - Beckhoff

wie ist hier der Zusammenhang/Unterschied?? sind die ähnlich aufgebaut? das sind ja 2 verschiedene Programmierprogramme oder?


Danke im Voraus
patti_9000

Mal ganz grundsätzlich: Die Daten der SPS werden dort abgespeichert, wo der Compiler dies als sinnvoll erachtet. Etwas genauer: sie liegen irgendwo im RAM der Steuerung rum. Sind sie als remanente Daten deklariert, dann müssen sie natürlich auch an anderer Stelle sein, damit sie nach einem Spannungsausfall noch vorhanden sind. Das geschieht dann entweder in einer Datei auf dem Zielsystem oder in einem NOVRAM, sofern das Zielsystem eins hat.

Am einfachsten wäre - zwecks Lösung deines Problems - ein kleines Programm zu schreiben, dass mittels ADS auf die Steuerung zugreift. Der Link zu den entsprechenden Dokumenten (für Delphi) wurde schon gepostet. Die ADS-Bibliothek existiert aber auch für andere Programmiersprachen. Das schöne an ADS ist, dass du keinerlei Änderungen am SPS-Programm machen musst. Du initiierst eine Verbindung zum Zielsystem, holst dir Handles auf die gewünschten Variablen (was auch per symbolischem Namen funktioniert) und kannst dann diese Variablen lesen und schreiben.

Zu deiner Grundsatzfrage:
CoDeSys ist eine Programmierumgebung (mit Laufzeit) der Firma 3S, TwinCAT ist eine Programmierumgebung mit Laufzeit der Fa. Beckhoff. Die Verbindung ist recht einfach: Als Steuerungshersteller kannst du CoDeSys quasi kaufen und dann in deine eigene Programmierumgebung "einbauen". TwinCAT 2 nutzt im Prinzip die Editoren von CoDeSys, baut aber mit dem ADS-Router und vor allem dem SystemManager noch einiges drumherum. Andere Hersteller (Bosch Rexroth z.B.) machen das ganz ähnlich um Beispielsweise Editoren für Kurvenscheiben oder so einzubinden.

Der eigentliche Programmcode ist aber - da IEC61131-3-konform - kompatibel.
 
Zurück
Oben