# Vebindung zu TwinCat mit W7 und 64Bit



## bonatus (16 April 2010)

Hallo,

es ist eigentlich eine kurze schmerzlose Frage:

Ich habe einen PC mit 64-Bit Windows 7 Betriebssystem mit einer Visualisierung (z.B.: Visual Studio, C#, ...).

Wie stelle ich die Verbindung zwischen Visualisierung und dem TwinCat System her.

gruß bonatus


----------



## Neals (16 April 2010)

Kurze schmerzlose Antwort: ADS


----------



## bonatus (16 April 2010)

Hallo,

muss ich dazu auf dem PC mit der Visualisierung irgendwas installieren um die Verbindung über ADS mit der Steuerung herzustellen? Treiber, Software oder Sonstiges.

gruß bonatus


----------



## Neals (16 April 2010)

Wenn du mit .Net arbeiten willst, brauchst du natürlich die .Net Ads Dll und die Native Dll. Dazu musst du die Registry-Einträge für NetId, Routen, etc. händisch eintragen.


----------



## bonatus (16 April 2010)

Wir haben bis vor kurzem mit WinXP 32Bit gearbeitet und wollen jetzt auf Win 7 64Bit umsteigen. Das Problem war bis jetzt immer das ich auf dem Visu-PC erst immer TwinCat installieren musste um eine Route mit dem TwinCat Rechner zu erstellen. Ohne dieseRoute konnte ich mit dem TwinCat Rechner nicht kommunizieren.
Da TwinCat 64Bit nicht unterstützt wollte ich einfach mal nachfragen.

danke


----------



## AKNOT (2 Dezember 2011)

Neals schrieb:


> Wenn du mit .Net arbeiten willst, brauchst du natürlich die .Net Ads Dll und die Native Dll. Dazu musst du die Registry-Einträge für NetId, Routen, etc. händisch eintragen.



Hallo, auch wenn der Beitrag schon etwas älter ist, ist er für mich gerade aktuell. Ich versuche ebenfalls eine Verbindung über .NET C# auf Win7 64bit zu TWINCAT auf einem 32bit Virtual XP herzustellen. Beim Versuch des Verbindungsaufbaus erhalte ich aber die Fehlermeldung: Unable to load TcAdsDll.
Ich habe als Verweis die TwinCAT.dll eingebunden. Im TWINCAT Verzeichnis habe ich die TcAdsDll.dll gefunden, diese lässt sich aber nicht einbinden, sodass ich sie einfach in denselben Ordner gepackt habe. 
Das Zitat von Neals scheint mir eventuell ein Lösungsansatz zu sein, nur leider kann ich mit der knappen Beschreibung nicht viel anfangen, kann mir da jemand behilflich sein?

Danke im Voraus,
Gruß

AKNOT


----------



## twincatter (2 Dezember 2011)

Hallo AKNOT,

habe die gleiche Konstellation wie Du (Nur statt C# VB.NET).
Ich habe auf Win7 die Engineering Version (Tc211x64engineering_2110_2034) installiert (in das Standardverzeichnis).
Der Verweis aus .NET zeigt auf c:\TwinCAT\ADS API\.NET\v2.0.50727\TwinCAT.Ads.dll

Hiermit funktioniert die Kommunikation problemlos

Damit es funktioniert mußte ich außerdem folgendes tun:
Win7: einrichten eines Loopbackadapters (IP 192.168.1.*1*)
Virtual PC XP: Benutzer anlegen
Virtual PC XP: IP-Adresse 192.168.1.*2
*Win7: Broadcast Search --> Add Route

Schönes WE, Michael


----------



## AKNOT (2 Dezember 2011)

Hallo Michael, vielen Dank für die Hinweise, gut zu wissen, dass es gehen muss. Ich werde mich mal versuchen reinzufuchsen, von Loopbackadaptern und Broadcast Search habe ich noch nie gehört

EDIT:
OK, den Loopback Adapter habe ich installiert, die Engineering-Version auf meinem Entwicklungsrechner auch. Im Gerätemanager habe ich dem Loopbackadapter die IP zugewiesen, die Du aufgeschrieben hast. 
Aber ich weiß nicht, wie und wo ich die zweite IP im Virtual XP setzen muss. Der hängt per WLAN an derselben FritzBox wie der Entwicklungsrechner. Ich habe leider nicht viel Ahnung was Netzwerktechnik anbelangt, vielleicht könntes Du das noch etwas genauer beschreiben.

Vielen Dank
Gruß, Andre


----------



## twincatter (2 Dezember 2011)

Hallo Andre,

bin mittlerweile zuhause...

Die IP-Adressen können bei Dir unterschiedlich sein.
Der Netzwerkkarte im Virtual XP-Betriebssystem solltest Du eine Passende IP-Adresse zuweisen.
Dann würde ich erst einmal versuchen einen Ping auf die jeweilige IP-Adresse auszuführen.
Bevor der Ping nicht funktioniert wird auch keine ADS-Kommunikation funktionieren.

Im TwinCAT-Systemmanager gibt es irgendwo (mußt mal danach suchen) die Funktion "Broadcast Search". Wenn Du diese ausführst sucht der Systemmanager nach allen angeschlossenen Geräten. Alternativ kannst Du diese auch über den TwinCAT Remote Manager durchführen (muß extra installiert werden. Wenn du dann ein Gerät aussuchst kannst Du das Routing mit "Add Rout" einstellen. Bei mit war es so daß es erst dann geklappt hat nachdem ich im Virtual XP einen neuen Benutzer eingerichtet hatte. Davor kam immer die Meldung "zugriff verweigert".
Um ehrlich zu sein habe ich fast eine Tag gebraucht um von VB.NET auf die Soft-SPS zugreifen zu können.

Dieser Link ist ganz hilfreich: http://sps-home.cwsurf.de/phpBB3/viewtopic.php?t=345

Habe in selbst leider zu spät gefunden.

Viel Erfolg, Michael


----------



## AKNOT (2 Dezember 2011)

So, jetzt bin ich etwas weiter. Habe auch einen neuen Benutzer erstellt und habe die Firewall abgeschaltet. Jetzt kann ich vom Entwicklungsrechner das VirtualXP anpingen (192.xxx.xxx.24) und auch vom VirtualXP den Entwicklungsrechner (192.xxx.xxx.26). Ich habe in den jeweiligen Netzwerkadaptereinstellungen diese jeweilige IP auch nochmal fest eingestellt. 
Bei den von Dir angesprochenen IPs handelt es sich um die AmsNetIds, richtig? Ich habe also auf dem VirtualXP in den Systemeigenschaften beim AMS Router die IP 192.xxx.xxx.24.1.1 eingetragen.
Mache ich jetzt einen Broadcast Search vom Entwicklungsrechner findet er nicht. (Spielt die AmsNetId auf dem Entwicklungsrechner ein Rolle? Die kann ich nämlich nicht ändern und kann sie auch nichts zuordnen, weiß nicht, woher er sich die genommen hat).
Dem Loopbackadapter habe ich im Gerätemanager bei "Erweitert" in der Eigenschaft "Netzwerkadresse" die IP 192.xxx.xxx.26.1.1 gegeben. Dessen Rolle verstehe ich allerdings noch nicht so ganz.

Mache ich noch einen Fehler, hab was falsch verstanden oder läuft was anderes schief?
Danke für Deine Mühe 

Gruß, Andre


----------



## twincatter (3 Dezember 2011)

Guten Morgen Andre,

die IPs haben nichts mit AMSNetIds zu tun. Das sind einfach die IPs der (virtuellen) Netzwerkkarten über die die Verbindung zwischen Win7 und VirtualXP (in meinem Fall auf dem gleichen PC) hergestellt wird. Der Loopbackadapter war bei mir notwendig damit es überhaupt möglich war zwischen Win7 und Virtual XP hin und her zu pingen. Nachdem das Pingen funkationierte konnte ich von Win7 aus über Broadcast Search die SoftSPS (auf VirtualXP) 'sehen'. Das TwinCAT-System muß auf dem VirtualPC natürlich gestartet sein.

Viel Erfolg, Michael

P.S.: Ich bin TwinCAT-Anfänger und arbeite z.Z. an meinem ersten Projekt.


----------



## AKNOT (3 Dezember 2011)

Hallo Michael,

Bei Dir war es derselbe Rechner, bei mir sind es zwei verschiedene, vielleicht liegt es daran. Und ich glaube am Netzwerk liegt es nicht, denn wenn ich auf dem Entwicklungsrechner den XPModus starte, dann seh ich dort im TWINCAT Systemmanager sofort das andere XP auf dem Laptop und kann mich verbinden. Ich schätze also, dass es irgendein Problem mit Win7 ist, vor allem mit .NET, denn die Fehlermeldung, die ich bekomme in C# klingt nicht nach "Ziel nicht gefunden", sondern, dass irgendwas mit den Libraries nicht stimmt. Ich werde das C#-Projekt mal im XPModus auf dem Entwicklungsrechner starten und schauen, ob ich da die Funktionen zum Laufen bekomme.
Danke für Deine Hilfe! 

Schönes WE
Gruß, Andre


----------



## JandeFun (19 Dezember 2011)

Hallo Andre,

hast du inzwischen die Verbindung aufbauen können?

Ich stehe vor dem selben Problem.

Folgende Installation:
- Windows XP Rechner auf dem TwinCat läuft
- auf einem separatem PC (Host Win7 64 Bit) in der VM Ware Windows XP
- beide Rechner befinden sich im selbigen Netzwerk und sind untereinader erreichbar
- bei beiden ist die Firewall abgeschaltet

In C# habe ich ein ganz siples Programm nach dem Beispiel von Beckhoff geschrieben, um nur erstmal die Kommunikation zu testen. 
Bei Starten bringt er mir jedes Mal die Meldung "Unable to load TcAdsdll". => tcAds.Connect("192.168.2.108.1.1", 301);

Mir scheint es bald so, dass es sich nicht um ein Problem mit der DLL handelt, sondern er auf den IP Adresse den Port 301 nicht erreichen kann. Hast du auf der TwinCat Seite noch etwas eingerichtet, das die Ads Kommunikation zugelassen wird?


----------



## JandeFun (4 Januar 2012)

Hallo

nun zu eurer Info. Inzwischen kann ich aus der VM Ware mit C# auf die PLC zugreifen. Der Grund für die Fehlermeldung ""Unable to load TcAdsdll" lag darin, dass ich in der VM Ware den AMS Router nicht installiert hatte und die beiden Systeme damit nicht untereinander bekannt waren.

Dies als Info für ähnliche Fälle, indenen TwinCat nicht auf der selben Maschine läuft wie die Entwicklungsumgebung.


----------



## KGU (6 Januar 2012)

AKNOT schrieb:


> Das Zitat von Neals scheint mir eventuell ein Lösungsansatz zu sein, nur leider kann ich mit der knappen Beschreibung nicht viel anfangen, kann mir da jemand behilflich sein?


 Installiere doch TwinCAT 2.11 64bit Engineering auf deinem PC. Das ist der einfachste Weg. Im Common64 Folder ist die entsprechende ADS-Dll bereits enthalten. Auf diese wird von der .NET API automatisch zugefriffen.



AKNOT schrieb:


> (Spielt die AmsNetId auf dem Entwicklungsrechner ein Rolle? Die kann ich nämlich nicht ändern und kann sie auch nichts zuordnen, weiß nicht, woher er sich die genommen hat).


Ja tut sie. Die AmsNetId wird bei der Installtion typischer Weise anhand der eingestellten IP-Adresse ermittelt. Daher bei dir die 192.x.x.26.1.1. Sie sollte darüber hinaus nie auf 127.0.0.1.1.1 stehen.
Den Loopbackadapter braucht man eigentlich nur, wenn die VM auf dem selben Rechner läuft. Bei Dir also nicht. Hast Du die Firewall auf beiden Rechner ausgeschalten? Bzw. kannst Du auch die ADS-Port auf beiden Seiten freischalten (PORTS BF01 und BF02).



JandeFun schrieb:


> Folgende Installation:
> - Windows XP Rechner auf dem TwinCat läuft
> - auf einem separatem PC (Host Win7 64 Bit) in der VM Ware Windows XP
> - beide Rechner befinden sich im selbigen Netzwerk und sind untereinader erreichbar
> ...



Was läuft bei Dir wo? Auf dem XP-Rechner läuft TwinCAT. Wo läuft deine C#-Application? In der VM? Ist dort ebenfalls TwinCAT installiert? Wie ist die Netzwerkverbindung eingestellt? Nutzen der 64bit Host und die VM die selbe IP, dann wird das Murcks. Am Besten für die VM immer die Netzwerkkarte allein freigeben.


----------



## JandeFun (6 Januar 2012)

Was läuft bei Dir wo? Auf dem XP-Rechner läuft TwinCAT. Wo läuft deine C#-Application? In der VM? Ist dort ebenfalls TwinCAT installiert? Wie ist die Netzwerkverbindung eingestellt? Nutzen der 64bit Host und die VM die selbe IP, dann wird das Murcks. Am Besten für die VM immer die Netzwerkkarte allein freigeben.[/QUOTE]

- Auf dem XP Rechner läuft die Twin Cat PLC
- Auf einem separaten Rechner (64 Bit Windows 7 als Host System ) in der VM Ware (Windows XP 32 Bit) läuft C#
- Alle drei Rechner waren im selbigen Subnet unterwegs und hatten unterschiedliche TCP / IP Adressen (Die Netzwerkkarte war in der VM direkt freigegeben)

Das Problem war, dass in der VM kein Twin Cat installiert war. Damit konnte aus der Tcads.dll nicht mit dem AMS Router kommuniziert werden, was die Fehlermeldung"Unable to Load TcAdsdll" hervorgerufen hatte. Ich hatte den AMS Router auch in der VM installiert und die beiden System miteinander bekannt gemacht. (Einrichtung Remote Computer im jeweiligen AMS Router) Danach hat es einwandfrei funktioniert.


----------



## KGU (6 Januar 2012)

Wir hatten parallel geantwortet. Als ich meine Antwort gespeichert hatte, habe ich dann auch deine gelesen


----------

