# ABB AC500 + OPC UA Server



## mmax (7 September 2015)

Hallo,

Ich möchte gerne auf die Daten einer PM564-T-ETH (ABB AC500) CPU  zugreifen und dass via OPC UA. Ich bin auf dem SPS Gebiet noch Neuling,  hab mich nur ein wenig auf die Thematik eingelesen. Hat das schon mal  jemand gemacht und kann mir weiterhelfen welchen OPC UA (muss unbedingt  Unified Architecture sein) Server ich da verwenden kann.  ABB ist ja stark in der OPC UA Entwicklung involviert aber bieten sie einen Sever für die Anbindung an Ihre SPSen an?

ABB verwendet ja CodeSys als Programmierumgebung und CodeSys bietet auch einen OPC UA Server an:
https://de.codesys.com/produkte/codesys-runtime/opc-ua-server.html

Kann man den in Verbindung mit einer AC500 verwenden?

Thanks,
Max


----------



## mmax (8 September 2015)

Ich befürchte dass CoDeSys doch keinen fertig einsetzbaren OPC UA Server anbieter, zumindest konnt ich nichts brauchbares finden. Das scheinen nur Bibliotheken zu sein auf denen Hersteller aufbauen können, oder irre ich mich da?

OPC UA wurde doch bereits 2006 verabschieded. Es kann doch nicht sein dass es noch immer keine vernünftigen Implementationen dafür gibt. Matrikon bietet OPC UA auch nur als Libraries an.
Kennt hier jemand eine Möglichkeit um via OPC UA auf eine ABB AC500 zuzugreifen?

Bin wirklich für jeden Tip dankbar!
lG,
Max


----------



## testor (8 September 2015)

Hallo Max,
CoDeSys in der Version 3.5 hat einen OPC UA-Server. Wir  haben das bei uns gestern auf einem Raspberry PI ausprobiert. Das ganze  läuft über die Symbolkonfiguration, welche man in dem Projekt hinzufügen  muss. Dort kann man dann die Variablen auswählen, welche man auf dem  OPC UA Server abbilden will. 

Wie das nun bei der benannten ABB-Steuerung aussieht hängt auch von der verwendeten CoDeSys Version ab. Wie gesagt die neueste Version unterstützt es, ich vermute aber das diese Version bei vielen Steuerungsherstellern noch nicht zum Einsatz kommt.

 Mich selbst würde die Unterstützung von ABB und OPC UA auch interessieren, insbesondere aber auch in den 800xA und Freelance-Systemen. Hier habe ich im Internet verschiedene Informationen bekommen.

lg


----------



## MaRc3l (8 September 2015)

Hallo mmax,
ich bin gestern auch zufällig über das Thema gestolpert, allerdings möchte ich mit Codesys (Control for Raspberry Pi SL) auf einem Raspberry Pi Modell B unter Raspbian einen OPC UA Server aufsetzen. Getestet habe ich mit CODESYS V3.5 SP7 Patch 1.

Um in einem SPS-Projekt in CODESYS den *OPC UA Server* zu aktivieren, ist lediglich die *Symbolkonfiguration *hinzuzufügen, um die gewünschte Variable zu publizieren:



Man kann sich beim Starten des Projekts auch das Logfile ansehen, dort steht auch die OPC UA Server URL (opc.tcp://raspb:4840), welche der Client benötigt:




Dann kann man z. B. mit dem kostenfrei erhältlichen UaExpert Tool (OPC UA Client) von Unified-Automation auf den Server zugreifen:


Für den Raspberry gibt es auch mitgelieferte Beispielprogramme.


----------



## MaRc3l (8 September 2015)

Löschen....


----------



## mmax (8 September 2015)

Aber der OPC UA Server für den Raspberry stellt ja die IOs (GPIOs) via OPC UA zur Verfügung ... so hab ich das halt verstanden. Ich will aber die IOs von einer SPS (AC500 PM564 via Ethernet) via OPC UA auslesen. Sollte der OPC UA Server, der am RPi läuft auch den Treiber mitliefern um die SPS auszulesen, mach ich Luftsprünge, ich kanns mir aber fast nicht vorstellen. Wär mir eh am liebsten den Server auf Linux laufen zu lassen aber den Wunsch hab ich schon sehr weit hinten angestellt. Zugreiffen will ich via node.js, da gibts eine schöne OPC UA Client Implementation.

Ich werd mir das am Raspberry auch mal anschaun, hab eh noch einen zu Hause rumliegen.

Danke aber für den Tip!


----------



## testor (8 September 2015)

Naja der OPC UA Server der in CoDeSys "eingebaut" ist, kann alle  Variablen einer POU abbilden. Wenn man CoDeSys auf einem Raspberry  ausführt, kann man mit dem OPC UA Server natürlich auf die Raspberry  spezifische Peripherie zugreifen. Ein in CoDeSys integrierte OPC UA  Server sollte dann auch das Gleiche für eine andere Steuerung machen,  welche die entsprechende Codesys-Version verwendet und einen OPC UA  Server integriert. 

Um nochmal konkreter auf deine Frage einzugehen: *Ich denke *der  AC500-Controller unterstützt noch kein OPC UA Server. Entsprechend  kannst du auch den NodeOPCUA nicht verwenden um auf die Daten  zuzugreifen. CoDeSys an sich unterstützt das aber schon und kann z. B.  auf dem Raspberry getestet werden. Auch die Verbindung zwischen CoDeSys  und NodeOPCUA sollte kein Problem darstellen. Im Grunde wäre es sogar möglich an den Raspberry iwelche Remote I/O über ein Bussystem (Auf dem Raspberry scheinen PROFINET, Modbus etc integriert zu sein) anzuschließen und so auf die I/O zuzugreifen. (https://www.youtube.com/watch?v=_MeQBfQObgk)

Falls du umbedingt die AC500-Steuerung und OPC UA client sein muss hilft wohl nur ein OPC-Server und ein entsprechender Wrapper.


----------



## MaRc3l (8 September 2015)

Wie testor schon schrieb: Der integrierte OPC UA Server in CODESYS stellt nicht nur die spezifischen GPIOs für den RPI zur Verfügung sondern primär die ,,normalen" Variablen und Bausteine in einem SPS-Projekt. Herauszufinden ist also auf deiner Seite, ob die AC500 das neue CODESYS V3.5 mit dem integrierten OPC UA Server unterstützt...

Einen OPC UA Clienten habe ich allerdings nicht in CODESYS direkt gefunden.

Meine Idee geht auch in die selbe Richtung, wie von dir mmax! Ich werde im nächsten Schritt den CODESYS OPC UA Server mit einem angespassten Client Script mit *Open-Source NodeOPCUA* (https://node-opcua.github.io) verheiraten. Diese Node.js Implementation meinst du auch oder?


----------



## mmax (8 September 2015)

Also ich denke dass die Steuerung, also AC500, nicht direkt was mit OPC UA zu tun hat. Man braucht "nur" einen OPC UA Server der den Treiber für die AC500 integriert hat. Dann kann er die Variablen (IOs) auslesen und via OPC UA Interface einem kompatiblen Client zu Verfügung stellen. Der Standard OPC (DA) Server von CoDeSys kann ja schon mit der SPS kommunizieren, also sollte dass doch die UA Version auch könnten. Ja, ich werde das auch mit dem https://node-opcua.github.io Modul machen.

Eine Andere Möglichkeit wäre auch noch den alten OPC Server weiter zu verwenden und zusätzlich einen OPC UA Wrapper zu nutzen - Das ist das nächste was ich jetzt testen werde. Da hab ich bis jetzt zwei gefunden:
https://www.matrikonopc.com/opc-ua/products/ua-wrapper-com-opc-servers.aspx
https://www.unified-automation.com/de/produkte/wrapper-und-proxy/uagateway.html

Im Moment hab ich Windows noch im VMPlayer laufen und ich denke dass macht auch einige Probleme. Muss zuerst also mal einen Rechner neu aufsetzten und dann kann ich weiter testen.


----------



## MaRc3l (8 September 2015)

Dann viel Erfolg und halte uns auf dem Laufenden 
Besonders im Hinblick auf Node-OPCUA...


----------



## mmax (17 September 2015)

OK, hab mich mittlerweile viele Stunden damit herumgeschlagen und JA es funktioniert grundsätzlich. Verwende ich den OPC DA Simulation Server von Matrikon in Verbindung mit dem OPC UA Wrapper kann ich items lesen und bekomm auch das Callback wenn ich mich für ein item subscribe. Ich hab es aber nicht geschaft Items via Wrapper von OPC DA Server von CoDeSys zu lesen. Zum Testen hab ich den UAExpert OPC UA Client von Unified Automation verwendet mit dem man recht konfortabel durch den Adressraum browser kann aber leider scheinen da die Variablen, die ich auslesen will, nicht auf.

Und der OPC UA Wrapper ist nur eine 30 Tage Demoversion und die Lizenz kostet 1000 EUR - damit fällt das sowieso ins Wasser. Andere Wrapper sind auch nicht kostenlos. CoDeSys hat anscheinen nur einen OPC UA Server der direkt auf der SPS läuft und das nicht auf einer AC500 Steuerung. Einen Server für den Rechner bieten sie nicht an.

Mein nächster Versuch ist mit der alten Technologie (OPC DA) und node.ja, direkt auf den CoDeSys server zuzugreifen ... leider. Dazu hab ich mal folgenden Code gefunden, aber noch nicht ausprobiert:
Topic: Node.JS Projects??? (1/1) Online Forums - OPC Labs

lG,
Max


----------

