patzer103040
Level-1
- Beiträge
- 4
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo allerseits,
das Betriebssystem, das auf meinem Rechner läuft, ist Windows7, und ich habe eine Virtuelle Maschine, auf der ich WinXp starten kann. Sowohl unter Windows7 als auch unter virtuellem WindowsXP ist jeweils TwinCat3 installiert.
Unter virtuellem WinXp starte ich TwinCat3 XAE. Danach lade ich ein Projekt in TwinCat3, unter dem noch keine Variablen definiert wurde. Danach klicke ich mit der rechten Maustaste auf den TwinCat Config Modus in der Desktop-Leiste und gehe auf System -> Start. Damit ist eine Runtime-Environment von TwinCat3 gestartet. Die LAN-Verbindung im virtuellem WinXp hat die IP-Adresse 192.168.1.1.
In Windows 7 starte ich ebenfalls TwinCat3 XAE. Danach erstelle ich eine Projektmappe, in der sich sowohl ein TwinCat-Projekt, als auch ein C# .NET-Projekt befindet. Das C#-Projekt soll eine Variable aus dem TwinCat3-Projekt auslesen, und auf dem Bildschirm darstellen. Im TwinCat-Projekt gehe ich auf SYSTEM (Doppelklick) -> Reiterkarte Allgemein -> Button Zielsystem wählen -> Suchen (Ethernet). Im Feld neben "Enter Name / IP:" 192.168.1.1 eingeben und Enter drücken. Die Runtime-Environment auf der virtuellen Maschine wird gefunden. Siehe angehängte Datei TwinCat3_On_VM.jpg. Auf "Route zufügen" klicken.
Obwohl TwinCat3, das auf der virtuellen Maschine läuft, gefunden wird, erscheint in der Fehlerliste in Microsoft Visual Studio die Fehlemeldung
"Fehler 1 Can not connect to Device '192.168.1.1.1.1'. Ads-Error 0x745 : Timeout has elapsed. 0 0 "
Man kann diese Fehlermeldung auch nicht beseitigen. Im TwinCat-Projekt habe ich unter SPS eine globale Variable namens HMI_Page1_distance : Page1; erstellt. Siehe angehängte Datei HMI_Page1_distance.jpg. Darüber hinaus gibt es zwei POUs POU und MAIN. MAIN ruft POU(); und RETURN auf. POU selbst hat eine Variable index vom Typ int.
Im C#-Projekt möchte ich gerne die Variablen lesen oder schreibend ändern. Dazu verwender ich Ads, wie unter Beckhoff Information System - German dokumentiert:
Das Problem ist, dass es in der Zeile, die mit int handle beginnt, zu einer XamlParseException kommt. Ruft man die Details der Fehlermeldung aufruft, sieht man unter InnerException folgende Fehlermeldung:
"Ads-Error 0x710 : Symbol could not be found."
Das bedeutet also, dass die globale Variable nicht gefunden wird. (Siehe auch die angehängte Datei DebugModus.jpg)
1) Wieso kommt es zu dieser Fehlermeldung?
2) Ist die Verbindung immer noch nicht ok?
3) Oder können nur Variablen gelesen werden, die im TwinCat-Projekt der virtuellen Maschine definiert wurden?
4) Warum gibt es im TwinCat-Projekt für GVLs keine Tabelle wie für POUs, um den Wert der Variable händisch zu ändern?
5) Ist der Port 851 für TwinCat3 der richtige Port?
Für jede Hilfe wäre ich sehr dankbar.
das Betriebssystem, das auf meinem Rechner läuft, ist Windows7, und ich habe eine Virtuelle Maschine, auf der ich WinXp starten kann. Sowohl unter Windows7 als auch unter virtuellem WindowsXP ist jeweils TwinCat3 installiert.
Unter virtuellem WinXp starte ich TwinCat3 XAE. Danach lade ich ein Projekt in TwinCat3, unter dem noch keine Variablen definiert wurde. Danach klicke ich mit der rechten Maustaste auf den TwinCat Config Modus in der Desktop-Leiste und gehe auf System -> Start. Damit ist eine Runtime-Environment von TwinCat3 gestartet. Die LAN-Verbindung im virtuellem WinXp hat die IP-Adresse 192.168.1.1.
In Windows 7 starte ich ebenfalls TwinCat3 XAE. Danach erstelle ich eine Projektmappe, in der sich sowohl ein TwinCat-Projekt, als auch ein C# .NET-Projekt befindet. Das C#-Projekt soll eine Variable aus dem TwinCat3-Projekt auslesen, und auf dem Bildschirm darstellen. Im TwinCat-Projekt gehe ich auf SYSTEM (Doppelklick) -> Reiterkarte Allgemein -> Button Zielsystem wählen -> Suchen (Ethernet). Im Feld neben "Enter Name / IP:" 192.168.1.1 eingeben und Enter drücken. Die Runtime-Environment auf der virtuellen Maschine wird gefunden. Siehe angehängte Datei TwinCat3_On_VM.jpg. Auf "Route zufügen" klicken.
Obwohl TwinCat3, das auf der virtuellen Maschine läuft, gefunden wird, erscheint in der Fehlerliste in Microsoft Visual Studio die Fehlemeldung
"Fehler 1 Can not connect to Device '192.168.1.1.1.1'. Ads-Error 0x745 : Timeout has elapsed. 0 0 "
Man kann diese Fehlermeldung auch nicht beseitigen. Im TwinCat-Projekt habe ich unter SPS eine globale Variable namens HMI_Page1_distance : Page1; erstellt. Siehe angehängte Datei HMI_Page1_distance.jpg. Darüber hinaus gibt es zwei POUs POU und MAIN. MAIN ruft POU(); und RETURN auf. POU selbst hat eine Variable index vom Typ int.
Im C#-Projekt möchte ich gerne die Variablen lesen oder schreibend ändern. Dazu verwender ich Ads, wie unter Beckhoff Information System - German dokumentiert:
Code:
TcAdsClient tcAdsClient = new TcAdsClient();
tcAdsClient.Connect("192.168.1.1.1.1", 851);
int handle = tcAdsClient.CreateVariableHandle(".HMI_Page1_distance.distance");
Das Problem ist, dass es in der Zeile, die mit int handle beginnt, zu einer XamlParseException kommt. Ruft man die Details der Fehlermeldung aufruft, sieht man unter InnerException folgende Fehlermeldung:
"Ads-Error 0x710 : Symbol could not be found."
Das bedeutet also, dass die globale Variable nicht gefunden wird. (Siehe auch die angehängte Datei DebugModus.jpg)
1) Wieso kommt es zu dieser Fehlermeldung?
2) Ist die Verbindung immer noch nicht ok?
3) Oder können nur Variablen gelesen werden, die im TwinCat-Projekt der virtuellen Maschine definiert wurden?
4) Warum gibt es im TwinCat-Projekt für GVLs keine Tabelle wie für POUs, um den Wert der Variable händisch zu ändern?
5) Ist der Port 851 für TwinCat3 der richtige Port?
Für jede Hilfe wäre ich sehr dankbar.