# Visu auf Beckhoff TouchPanel



## Nameless (9 April 2009)

Hallo,

hab da ein kleines Problem und hoffe ihr könnt mir weiterhelfen. 
Ich wollte ein in TwinCat erstelltes Programm auf einem TouchPanel visualisieren. Zuerst mit der integrierten Visu in TwinCat(TargetVisu), hab dann aber festgestellt das die Übertragung wieder 300€ kostet und auch nicht gerade Schick aussieht. 
Bin dann auf VisualBasic 08 mit AdvancedHMI umgestiegen. Weiß vielleicht jemand wie ich die in VB 08 erstellte Visu auf das TouchPanel bekomme, oder hat jemand irgendeine andere Idee wie ich auf dem TouchPanel ne Visu bekomme?
Danke schon im voraus...


----------



## trinitaucher (9 April 2009)

Das Zauberwort heißt ja "ADS".
Du musst dann einfach eine Programm erstellen, was auf dem Panel bzw. der Steuerung läuft. Ne .exe bei Windows XP oder das Pendant für Windows CE.
Dieses Programm muss beim Start ne ADS-Verbindung zur PLC aufbauen und fertig ist die Visu:

http://infosys.beckhoff.com/index.p.../tcconnectivity/html/tcconnectivity_intro.htm


----------



## Nameless (9 April 2009)

Super, danke für die schnelle Antwort.

Hab mal die Infos durchgelesen, werde daraus aber irgendwie nicht schlau. Also mein TwinCat Programm hat ne Verbindung zu VB, also wenn ich in VB einen Taster betätige schaltet er in TwinCat auch.
Hab das Programm auch auf dei Steuerung geladen und weiß jetzt halt nicht weiter wie das mit dem ADS funktioniert.
Muss ich über das TouchPanel irgendwelche Einstellungen in der Steuerung vornehmen oder vielleicht im System-Manager von TwinCat?


----------



## trinitaucher (9 April 2009)

Wo läuft denn das Programm? Auf dem Panel? Falls nicht, läuft auf dem Panel ein Betriebssystem und ist das ganze per Ethernet zur Steuerung verbunden?

Dann muss die Verbindung zur SPS, so wie du sie bisher gemacht hast, nur halt über die ADS-Schnittstelle gehen. Wichtig: auf dem abgesetzten System muss ein TwinCAT laufen, sonst geht ADS nicht.

Du kannst aber laut Doku auch den ADS-Webservice nurtzen. Dann brauchst du kein TwinCAT auf dem Panel.

Lies dich mal nen bisschen weiter ins Thema ein, vielleicht wird's dir dann klarer


----------



## Nameless (9 April 2009)

trinitaucher schrieb:


> Wo läuft denn das Programm? Auf dem Panel? Falls nicht, läuft auf dem Panel ein Betriebssystem und ist das ganze per Ethernet zur Steuerung verbunden?
> 
> Dann muss die Verbindung zur SPS, so wie du sie bisher gemacht hast, nur halt über die ADS-Schnittstelle gehen. Wichtig: auf dem abgesetzten System muss ein TwinCAT laufen, sonst geht ADS nicht.
> 
> ...


 
Also auf meiner CX 1001 läuft WinCE und ist mit dem PC via Ethernet-Kabel verbunden. Auf dem TouchPanel hab ich also meine CE Oberfläche. Auf der Steuerung ist TwinCat PLC-Runtime installiert. 
Komm nicht klar mit dem ADS-Thema, hab zwar im System-Manager von TwinCat alle Häckchen mit ADS gesetzt, tut sich aber nix. Ebenso kommuniziert TwinCat mit VisualBasic, und das läuft ja über ADS,oder?
Komme echt nicht darauf wie ich jetzt ne 1:1 Kopie von meinem Visu-Projekt über die CX aufs TouchPanel bekomme.


----------



## trinitaucher (9 April 2009)

Nameless schrieb:


> Also auf meiner CX 1001 läuft WinCE und ist mit dem PC via Ethernet-Kabel verbunden. Auf dem TouchPanel hab ich also meine CE Oberfläche. Auf der Steuerung ist TwinCat PLC-Runtime installiert.


zur Klarstellung:
CX = Steuerung
PC = zur Programmierung des CX
Panel = nur CE drauf, soll zur Visualisierung mit dem CX-Programm Kontakt aufnehmen
... richtig?


Nameless schrieb:


> Komm nicht klar mit dem ADS-Thema, hab zwar im System-Manager von TwinCat alle Häckchen mit ADS gesetzt, tut sich aber nix.


Du musste deine Anwendung für's Panel selbst programmieren (mit VB, C#, C++, o.Ä.).


Nameless schrieb:


> Ebenso kommuniziert TwinCat mit VisualBasic, und das läuft ja über ADS,oder?


Na was denn nun? Wenn ich das lesen, denke ich, dass auf dem Panel schon eine VB-Applikation mit ADS-Schnittstelle existiert... oder wie?


----------



## Neals (9 April 2009)

trinitaucher schrieb:


> Dann muss die Verbindung zur SPS, so wie du sie bisher gemacht hast, nur halt über die ADS-Schnittstelle gehen. Wichtig: auf dem abgesetzten System muss ein TwinCAT laufen, sonst geht ADS nicht.


Das stimmt so nicht, du musst nur die TcAdsDll.dll auf das Remote System kopieren und der jeweiligen dll zur Verfügung stellen.
Siehe dazu diesen Thread



Nameless schrieb:


> Komme echt nicht darauf wie ich jetzt ne 1:1 Kopie von meinem Visu-Projekt über die CX aufs TouchPanel bekomme.


Also hast du dir eine Visu innerhalb der CoDeSys-Oberfläche zusammengeklickt oder hast du eine eigene Applikation, also *.exe Datei?


----------



## Nameless (10 April 2009)

War beim letzten mal wohl etwas schlecht von mir formuliert.
Schaut euch bitte erst mal das Video an, dann wird es klarer was ich meinte.

http://www.youtube.com/watch?v=oHoPLYDVpa4

Und diese Visu wo dort erstellt wurde möchte ich auf meinen TouchPanel anzeigen. Das TouchPanel is via DVI-Kabel an meine CX angeschlossen. Vielleicht hat ja jemand damit schon Erfahrung.


----------



## trinitaucher (10 April 2009)

Neals schrieb:


> Das stimmt so nicht, du musst nur die TcAdsDll.dll auf das Remote System kopieren und der jeweiligen dll zur Verfügung stellen.
> Siehe dazu diesen Thread


Hä 
Wenn du die ADS-DLLs nutzt, brauchst du doch den ADS Message Router. Also zumindest den TwinCAT-Level "I/O". Wie soll sonst mittels der DLL die Route zum Zielsystem aufgebaut gefunden werden?

Ich muss sagen, dass ich persönlich bisher die Bibliotheken noch nicht eingesetzt habe. Aber was ich bisher immer für mich als Fazit gezogen habe, ist, dass nur beim WebService auf dem Rechner kein Message Router laufen muss.


----------



## Neals (10 April 2009)

trinitaucher schrieb:


> Hä
> Wenn du die ADS-DLLs nutzt, brauchst du doch den ADS Message Router. Also zumindest den TwinCAT-Level "I/O". Wie soll sonst mittels der DLL die Route zum Zielsystem aufgebaut gefunden werden?



Die Ads-Dll baut dann eine einfache TcpIp Verbindung auf, ohne Router.

Falls das Zielsystem eine unterschiedliche NetId und Ip hat, muss die Router per Hand in die Registry eingetragen werden, auf welche die Ads-Dll dann zugreift und diese nutzt. Das ist ja der Vorteil, Ads ist unabhängig von Protokoll und Betriebssystem. Man kann einfach die Spezifikation implementieren und sich auch eine Ads-Dll für Linux schreiben, die dann einen einfachen Socket benutzt, welcher per TcpIp sich auf den Ads-Port des Remote Systems verbindet.


----------



## trinitaucher (11 April 2009)

Neals schrieb:


> Falls das Zielsystem eine unterschiedliche NetId und Ip hat, muss die Router per Hand in die Registry eingetragen werden, auf welche die Ads-Dll dann zugreift und diese nutzt.


Und *wo* in der Registry trägst du die IP und NetId ein? Ich kenne nur den "Remote"-Eintrag bei den TwinCAT-Schlüsseln. Und die gibts doch ohne installiertem TwinCAT gar nicht:
http://infosys.beckhoff.com/index.p...moteaccess_sample_adsroutingviagatewaypc.html


----------



## Neals (11 April 2009)

Diese Einträge musst du dann per Hand, oder durch übergeordneten Code, anlegen. Auf dies Registry-Einträge greift die Dll zurück, sieht das kein TwinCAT Service läuft und baut dann einen eigenen TcpIp Tunnel ohne Router auf. Probier es doch einfach mal aus, geh auf Dienste und stoppe den TwinCAT Dienst, mach Wireshark an und dann siehst du, das du trotzdem mit ner Visu auf den CX oder was auch immer kommst.

Die RoutenEinträge befinden sich unter
HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\Remote\“DNS_Name”
Address (REG_SZ) IpAddress as String
AmsNetId (REG_BINARY) NetId as ByteArray
[Flags (REG_DWORD) ??? -> 0]
[Timeout (REG_DWORD) ??? -> 0]
TransportType (REG_DWORD) TcpIp -> 1

Wenn du bereits eine Router auf deinem PC zu nem Remote System eingetragen hast, müssten dort bereits Einträge drinne stehen, kannst ja mal gucken wie die gemacht worden.


----------



## trinitaucher (11 April 2009)

Neals schrieb:


> Die RoutenEinträge befinden sich unter
> HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\Remote\“DNS_Name”
> Address (REG_SZ) IpAddress as String
> AmsNetId (REG_BINARY) NetId as ByteArray
> ...


Reden wir hier aneinander vorbei?
Wenn du auf einem PC *KEIN* TwinCAT installiert hast, dann findest du doch auch deinen o. g. Registry-Schlüssel nicht.

WO die ADs-Routen eingetragen sind, ist mir klar. Hab auch schon öfters daran manipuliert. Aber was machst du ohne TwinCAT? Und darum gehts doch: Um die Frage, ob du auf einem Panel ohne TwinCAT mit der gewöhnliche ADS-DLL (für VB) arbeiten kannst.

Ich meine, man muss dann den kleinen Umweg über den ADS-WebService machen. Also auf dem Zielsystem mit der PLC einen Webserver einrichten und die entsprechende ADSWebService-DLL dort anbieten. Und dann dem Panel-PC sagen, dass er auf dem Webserver des TwinCAT-Systems eine DLL findet, worüber er auf die Variablen zugreifen kann:
http://infosys.beckhoff.com/index.php?content=content/1031/tcadswebservice/html/webservice_intro.htm


----------



## Neals (11 April 2009)

trinitaucher schrieb:


> Und *wo* in der Registry trägst du die IP und NetId ein?



Sorry, dachte die Frage währe nach dem Ort.



trinitaucher schrieb:


> Reden wir hier aneinander vorbei?
> Wenn du auf einem PC *KEIN* TwinCAT installiert hast, dann findest du doch auch deinen o. g. Registry-Schlüssel nicht.



Da musst du dich dann selbst drum kümmern.



Neals schrieb:


> Diese Einträge musst du dann per Hand, oder durch übergeordneten Code, anlegen.


----------



## ge_org (11 April 2009)

Habe da eine Vermutung. Nameless hat eine CX mit CE und DVI-Schnittstelle mit einem TouchPanel dran, die Visualisierung möchte er mit einer Visual Studio Express Edition gestalten. Meiner Meinung nach geht das nicht, da er dazu mind. irgendeine Visual Embedded Version (C++ oder Basic) verwenden müsste (oder Visual Prof. Version). Wenn ich falsch liege würde ich mich freuen, würde einen haufen Kohle sparen!

Georg


----------



## trinitaucher (11 April 2009)

Die eigentliche Frage lautet doch:

@ Nameless:
Läuft auf dem Panel eine eigenes Betriebssystem mit der VB-Applikation, oder wird die Visu später auf dem CX laufen und das Panel nur als Anzeigeeinheit+Touch genutzt?


----------



## Nameless (12 April 2009)

trinitaucher schrieb:


> Die eigentliche Frage lautet doch:
> 
> @ Nameless:
> Läuft auf dem Panel eine eigenes Betriebssystem mit der VB-Applikation, oder wird die Visu später auf dem CX laufen und das Panel nur als Anzeigeeinheit+Touch genutzt?



Die Visu soll nacher nur als Anzeige+Touch laufen.


----------



## trinitaucher (12 April 2009)

Nameless schrieb:


> Die Visu soll nacher nur als Anzeige+Touch laufen.


Das ist doch klar, aber auf welchem PC wird diese Visu (.exe o.Ä.) *ausgeführt*?
Auf dem CX oder auf dem Panel?

Wenn Panel nur als Anzeige/Bedieneinheit ohne eigene Programme drauf => Visu läuft auf dem CX => keine "Remote"-Verbindung nötig

Wenn Panel mit eingem Betriebsystem und Programm => Visu läuft auf Panel => "Remote"-Verbindung zum CX nötig.

Also... welcher der Fälle ist es nun???????? 

Zusatzfrage: Funktioniert das Panel auch wenn der CX nicht angeschlossen ist? Kann auf dem Panel alleine eine Applikation laufen?


----------



## Nameless (12 April 2009)

trinitaucher schrieb:


> Das ist doch klar, aber auf welchem PC wird diese Visu (.exe o.Ä.) *ausgeführt*?
> Auf dem CX oder auf dem Panel?
> 
> Wenn Panel nur als Anzeige/Bedieneinheit ohne eigene Programme drauf => Visu läuft auf dem CX => keine "Remote"-Verbindung nötig
> ...



Es handelt sich um das TouchPanel CP7802-0001, dass Panel startet und läuft nur wenn die CX läuft. Panel hat auch keine Programme darauf, also nur als Anzeige und Bedieneinheit. Also die Visu soll nachher auf der CX sein und von dort auch laufen und auf dem Panel nur angezeigt bzw. bedient werden.


----------



## trinitaucher (12 April 2009)

Warum nicht gleich so? 

Dann musst du nur irgendwie die ADS-Verbindung hinbekommen. Dabei sollten die Beispiele doch eigentlich Hilfe genug sein, oder nicht?
http://infosys.beckhoff.com/index.php?content=content/1031/tcsample_vb/html/tcsample_vb_intro.htm

Da die SPS auf dem gleichen System wie die Visu läuft, nimmst du als NetId die des CX. Der Rest sollte mittels der Beispiele eigentlich einfach zu lösen sein. Du musst ein Variablen-Handle erzeugen, der dir die Verbindung zwischen VB und den SPS-Variablen herstellt.


----------



## Nameless (14 April 2009)

Vielen Dank erstmal für eure Hilfe. 

Hab jetzt die Visu fertig erstellt, ne .exe daraus gemacht und auch schon auf dem Laptop getestet. Klappt wunderbar. Das ADS Thema klappt glaub ich auch, jetzt hab nich noch ne Frage:

Die Visu startet auf der CX nicht->Fehlermeldung:fehlende Komponenten, is auch klar weil ja einige Daten von AdvancedHMI(also Bitmaps und sonstiges Zeugs) nicht auf der CX sondern nur auf dem Laptop sind. Muss ich die .exe der Visu also anders erstellen oder ,was natürlich viel schöner wäre, die fehlenden Daten auf meine CX kopieren. Und wenn ja, wohin?


----------

