# Mit Wago OPC-Server eine Wago 750-481 auslesen?



## Reto Hasler (24 Juni 2008)

Hallo Zusammen

Ich habe erst seit kurzem mit CoDeSys und OPC-Servern zu tun. Als SPS dient mir ein Wago I/O-System. Nun wollte ich Werte aus der Wago per OPC-Server auslesen, was mir allerdings nicht so ganz gelingen will.

Eine Verbindung vom Server zur SPS ist möglich, es wird mir jedoch immer nur ein Wert (der leider nicht dem entspricht was ich mir erhoffe) angegeben. 

Ich vermute dass Problem liegt daran dass mir die Speicheraufteilung nicht genau verstanden habe. Wie muss man eine Variable definieren, dass sie anschliessend per OPC ausgelesen werden kann? Und wie muss ich die Sache beim OPC-Server definieren, damit auch wirklich die Werte ausgelesen werden?

Ich habe zwar bereits die Dokumentationen durchgelesen, wurde aber leider bislang noch nicht schlau aus ihnen. 

Ich hoffe jemand kann mir weiterhelfen.

Danke jetzt schon für jede Antwort.

Gruss Reto Hasler


----------



## MTec (24 Juni 2008)

Hallo,

welche Variablen für den OPC-Server verfügbar sein sollen, wird über die Symbolkonfiguration parametriert.

Dazu einfach unter Projekt --> Optionen --> Symbolkonfiguration --> "Symboleinträge erzeugen" aktivieren. 
Zusätzlich dann noch unter "Symbolfile konfigurieren..." die benötigten Variablen auswählen und "Variablen des Objekts ausgeben" aktivieren.

Beim nächsten Projekttransfer landet die compilierte Symboldatei im Gateway, auf welche dann auch der OPC-Server zugreift. (Der Kommunikationskanal beim CoDeSys-Projekt und OPC-Server muss identisch sein)

Viele Grüße
MTec


----------



## Reto Hasler (24 Juni 2008)

Hallo MTec

Zuerst einmal vielen Dank für die schnelle Antwort.

Ich habe die von dir geschilderten schritte im CoDeSys ausgeführt, dass Projekt bereinigt, neu geladen und gestartet.

Nun wollte ich die Werte auslesen, was mir aber nicht gelingen wollte. Ich weiss ehrlichgesagt nicht was ich für eine Adresse bei der OPC-Konfiguration eingeben muss. Also habe ich mehrere Werte eingegeben, um das ganze einfach mal zu testen.

Auslesen möchte ich eine Temperatur, welche als Real gespeichert ist und momentan an der Messstelle 25.5°C beträgt.

Wird 400001 als Real ausgelesen, so erhalte ich den Wert 0.
Wird 300001 als Real ausgelesen, so erhalte ich den Wert 6.0877e-019.
Wird 300001 als Word ausgelesen, so erhalte ich den Wert 225.

Das Spiel mit den Tests Hab ich noch ein wenig weitergeführt, hat aber lauter Nullen keinen Effekt. Ausser 300002 als WORD ist gleich 8500.


Die Variable ist aber defninitiv als REAL definiert, daher ist mir auch nicht klar, wieso 300001 als WORD ausgelesn den um Faktor 10 falschen Wert ausgiebt.



Ich währe euch dankbar, wenn jemand mir aufzeigen könnte, was die Adressen (400001 usw.) genau bedeuten bzw. nach welchem Schema man auf diese Zahlen kommt.



Zu den Variablen habe ich auch noch eine Frage, reicht es eine Variable global in dieser Form zu definieren:

Aussentemperatur:REAL;

oder muss man noch etwas beachten, wenn man die Variable über OPC auslesen möchte?


Vielen Dank für eure Bemühungen.

Gruss Reto Hasler


----------



## MTec (24 Juni 2008)

Hallo Retro Hasler,

ich hab im Moment keinen 841er greifbar und mit der Simulation funktioniert der OPC-Server nicht. Deshalb nur mal ein paar Sachen so "aus dem Bauch heraus".

Der Client kann normalerweise direkt auf die Symbolik zugreifen und die Adressierung ist demzufolge auch symbolisch möglich.
Vorgehensweise:
- Verbindung des Clients zum OPC-Server herstellen (Server-ID: CoDeSys.OPC.02)
- Item hinzufügen (z.B.  PLC1:.Aussentemperatur:REAL) / evtl. vorher ItemGruppe anlegen
  PLC1 = Name der CPU wie unter OPCConfig parametriert
  .Aussentemperatur:REAL = Variable die in der Symbolkonfiguration freigegeben wurde



> Zu den Variablen habe ich auch noch eine Frage, reicht es eine Variable global in dieser Form zu definieren:
> Aussentemperatur:REAL;


Das reicht aus. 

Im Projektverzeichnis muss eine .SYM - Datei liegen. 
Prüfe doch erstmal ob darin auch die benötigten Variablen (bei Dir z.B.  ".Aussentemperatur:REAL") vorhanden sind.

EDIT: Mit "Wago 750-481" ist der 841er Controller gemeint oder?

Viele Grüße
MTec


----------



## Reto Hasler (25 Juni 2008)

Hallo MTec




> EDIT: Mit "Wago 750-481" ist der 841er Controller gemeint oder?


Natürlich meinte ich damit die 750-841, Schreibfehler .


Habe nun deine Anleitung befolgt, wobei ich bislang nur Versuche mit dem Wago OPC-Server gestartet hatte. Bin gar noch nicht auf die Idee gekommen, mit dem CoDeSys-OPC-Server zu arbeiten. 

Die Paramentierung ist mir gelungen, leider lassen sich die Werte aber immer noch nicht auslesen. Ein da aber momentan ein Firewall dazwischen hängt, werde ich es mal mit einer Direktverbindung versuchen. Evtl. liegen die Probleme darin.

Sollte dies dann immer noch nicht klappen, werde ich mich wieder melden. Ich hoffe dass ich bis heute Abend Zeit für einen Test gefunden habe. 

Auf jeden Fall mal herzlichen Dank für deine Hilfe

Gruss Reto


----------



## Reto Hasler (25 Juni 2008)

Hallo zusammen

Hab also das ganze nochmals mit einer Direktverbindung versucht doch leider blieb ein Erfolg aus. 

Ich glaube es liegt an meiner Server-Konfiguration, die Verbindung zum OPC-Server funktioniert jedenfalls. Ich kann einfach keine Werte auslesen. Daher währe ich euch dankbar, wenn mir jemand sagen könnte, wie der OPC-Server genau zu erstellen ist.



> Im Projektverzeichnis muss eine .SYM - Datei liegen.
> Prüfe doch erstmal ob darin auch die benötigten Variablen (bei Dir z.B. ".Aussentemperatur:REAL") vorhanden sind.


Die Symboltabelle wurde jedenfalls erstellt. und meine Variablen, die ich auslesen will, ist in der Datei enthalten.

Ich weiss nur nicht genau wie ich den OPC-Server nun dazu bringe, auch die Konfiguration zu lesen. 

Noch eine Frage nebenbei, welchen OPC-Client könnt ihr empfehlen, um OPC-Server auf die Funktionalität zu testen?

Danke für eure Hilfe

Gruss Reto


----------



## MTec (25 Juni 2008)

Hallo Retro Hasler,

also am CoDeSys OPC-Server kann man eigentlich nicht viel einstellen.
Wichtig ist noch, dass Du überall den gleichen Projektnamen verwendest. 
d.h.: Wenn Dein CoDeSys-Projekt "Testprojekt" heisst, dann auch den Projektnamen im OPC-Server mit "Testprojekt" angeben.
Auch muss der Kommunikationskanal beim CoDeSys-Projekt und OPC-Server identisch eingestellt sein.

Als Testclient verwende ich den Rockwell-Client aus dem Inat-Downloadbereich.

Viele Grüße
MTec


----------



## Reto Hasler (26 Juni 2008)

Hallo MTec

Habe nun das ganze nochmals probiert und es lief anschliessend auch. Der Grund war, dass ich zuerst die Kommunikationsparameter falsch eingestellt hatte.
Anschliessend waren noch ein paar Probleme mit den Firewalls zu lösen, aber jetzt funktioniert es.

Vielen Dank nochmals für deine Hilfe, hat mich wirklich ein ganzes Stück weitergebracht.

Gruss Reto Hasler


----------



## MTec (26 Juni 2008)

Hallo Reto Hasler,

das hört sich doch gut an! Ohne eigenen Testaufbau wäre mir auch nicht mehr viel dazu eingefallen... 

Viele Grüße
MTec


----------

