# TwinCat IP-Adresse direkt aus C# - Programm abfragen



## Benni (6 Dezember 2011)

Hi Leute,
für die Kommunikation meines C#-Programms mit TwinCat benötige ich die IP von TwinCat.
Mir ist auch klar wie ich manuell an diese Herankommen.
Mein Frage besteht nun lediglich darin, ob es möglich ist die IP auch automatisch vom C# auszulesen,
sodass ich diese nicht direkt in den Quellcode einbinden muss?
Wenn dies der Fall ist, kann mir dann jemand erläutern wie ich da vorzugehen habe?

Meine Zweite Frage dann noch zu diesem Thema:
Wann genau ist es eigentlich notwendig die IP anzugeben? Ich habe nämlich schon teilweise gelesen, dass diese nicht immer von nöten war.

Vorab schon mal Danke
Gruß
Benni und forher Nikolaustag


----------



## Schnick und Schnack (6 Dezember 2011)

> für die Kommunikation meines C#-Programms mit TwinCat benötige ich die IP von TwinCat.



Wohl eher die AMS-Net-ID oder?

Oder bastelst die aus dem IP-String zusammen?




> Wann genau ist es eigentlich notwendig die IP anzugeben? Ich habe nämlich schon teilweise gelesen, dass diese nicht immer von nöten war.



Musst Du doch wissen für was du sie brauchst oder? Wenns für die kommunikation ist dann brauchts die Ned-ID und den Port (Standard 801)
Ob du jetzt auch mit der MAC arbeiten kannst weis ich nicht. Wenn beides auf dem gleichen System ist könnts evtl. auch mit der Loopback
klappen aber das bezweifle ich, eben wegen der Net-ID





> Mein Frage besteht nun lediglich darin, ob es möglich ist die IP auch automatisch vom C# auszulesen,



Solche sachen findest du ganz schnell beim Herrn Google. 

Suche C# IP Adresse auslesen oder sowas......
http://dotnet-snippets.de/dns/ip-adresse-und-hostname-ausgeben-SID30.aspx



http://msdn.microsoft.com/de-de/library/bb979288.aspx#ID0EYEAChttp://dotnet-snippets.de/dns/ip-adresse-und-hostname-ausgeben-SID30.aspx


----------



## Benni (6 Dezember 2011)

Hi Schnick und Schnack,
habe das ganze schon versucht zu googlen bin aber leider nicht fündig geworden,
sorry für meine schlechte Ausdrucksweise, aber ja ich meinte natürlich die Net-ID...

Die IP etc. des aktuellen Users ist klar wie ich die bekommen kann, aber eben die Net-ID von TwinCat würde ich gerne herauslesen könne, sofern dies möglich ist.

Wie gesagt, habe zu diesem Thema nichts brauchbares im Netz gefunden, sonst hätte ich die Frage nicht hier gestellt.


So viel ich von einem ehemaligen Kollegen mitbekommen habe ist die Net-IP zur Kommunikation zwischen C# und TwinCat notwendig. Wobei ich eben auch schon gelesen habe, dass ich diese weg lassen kann, deshalb stelle ich diese Frage auch noch, da ich mir nicht sicher war was von den beiden Aussagen nun stimmt bzw. inwiefern die eine oder die andere stimmt.

Gruß Benni


----------



## Schnick und Schnack (6 Dezember 2011)

Hast Du denn schon das Beispielprojekt aus dem Help-System angeschaut?

Irgendeine Definition vom Zielsystem wirst Du sicher brauchen. Die Net-ID oder evtl. gehts auch nur mit der MAC. 
Wie Du die Net-ID auslesen kannst weiss ich nicht. 

Der einzige Tip den ich Dir geben kann ist dass Du eben die IP ausliest und daraus selber die Net-ID zusammenbastelst.
 Vorausgesetzt die ID enstpricht der IP + .1.1. Sicher ist die Geschichte halt nicht. Aber wenn da jemand die ID ändern sollte 
funktioniert das Routing ja sowieso nicht mehr. 

Aber ich würde wie gesagt mal in das Beispielprojekt schauen wenn ich Dich wäre


Edit:


Aus dem Information-System:




```
TcAdsClient tcAds = new TcAdsClient(); 
tcAds.Connect("[B]172.16.3.217.1.1[/B]",801);
```


----------



## Benni (7 Dezember 2011)

OK, danke dann werde ich mir das mal anschauen, die Codezeilen die du oben gepostet hast sind mir bereits bekannt, ich dacht nur, dass ich eben die Net-ID irgendwie direkt auslesen könnte oder so ähnlich, naja dann muss es halt zur Not manuell sein.

Gruß Benni


----------



## Benni (7 Dezember 2011)

*Naja so einfach kanns sein^^*

 TwinCAT.Ads.AmsNetId lokale_Net_ID = TwinCAT.Ads.AmsNetId.Local;


----------



## Schnick und Schnack (7 Dezember 2011)

Ja gut das ist die lokal ID. Gehts auch für die Systeme im Netz?

Von wo hast des jetzt?


----------



## Benni (7 Dezember 2011)

Das kann ich dir leider nicht sagen, hab dies noch nicht versucht, da dies nicht meinem Anwendungsfall entspricht... Wenn ich es aber noch herausfinde dann geb ich es hier weiter...

Naja eigentlich ganz simpel bin da aber leider erst jetzt drauf gekommmen...
Ich habe einfach geschaut was es alles für Möglichkeiten gibt wenn ich in den C#-Quellcode "TwinCat." eingebe... Da gab es dann nur "Ads." zur Verfügung und den Rest konnt ich mir dann anhand der Vorschläge aussuchen.
Für die Ports gibt es auch jede Menge Vorschläge aber für meinen Anwendungsfall ist es sowieso immer der "Port 801" von dem her kann ich dies auch manuell drin stehen lassen.


----------

