TIA OPC UA Client und Server gleichzeitig mit einer S7-1500 CPU

Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann ich mit einer S7-1512SP F-1 PN gleichzeitig OPC UA CLient und Server sein?

Das eine System liest über OPC UA von meiner SPS Daten aus, hierfür habe ich den Server in der HW-Konfig aktiviert. Das funktioniert soweit auch.

Jetzt muss ich zusätzlich Daten von einem anderen OPC UA Server auslesen, das bedeutet ja ich muss in der HW-Konfig zusätzlich den Client noch aktivieren. Hat hier jemand Erfahrung ob das überhaupt funktioniert?

Im Moment geht mal die eine und mal die andere Verbindung, ich kann allerdings nicht genau sagen, ob die Verbindungen sich gegenseitig Stören.

Mit freundlichen Grüßen

Björn
 
Hallo Björn,

Theoretisch sollte dies, wie du es vorhast, gehen.
Interessant wäre ein genauerer Beschreib deines Systemaufbaus. (Was sind das für Daten? Wer ist dein Verbindungspartner? Server/Client)

Generell empfehle ich, die Beispielsoftware OPC UA Tia16 herunterzuladen und damit herumspielen. Das hat mir am meisten geholfen.
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]https://support.industry.siemens.com/cs/document/109762770/s7-anwenderbaustein-für-den-opc-ua-client-einer-simatic-s7-1500-?dti=0&lc=de-WW[/FONT]

Wichtig ist noch, dass die CPU die aktuellste Firmwareversion V2.8.3 drauf hat. Da hat sich in der letzter Zeit einiges getan.

Auf einer produktiven Anlage hab ich es noch nicht am laufen. Deshalb würde ich mich über dein Feedback nach erfolgreichen testen freuen.

Mein eigener Test läuft auf einer 1516F-3 PN/DP 2.8.3 TIA16
Allerdings bin ich mehrheitlich OPC UA Server mit Methoden am testen.

Gruss Rob
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rob,

vielen Dank für deine Antwort.

Ich habe die Firmware 2.8 drauf (zumindest wird mir Offline gerade nichts weiters angezeigt, das kann ich morgen mal prüfen)

Bei der Kommunikation, bei der meine SPS der Server ist, werden einige Real und String Werte vom Client gelesen und geschrieben. Die gleiche Kommunikation, haben wir auf einer anderen Anlage, dort funktioniert es einwandfrei.

Bei der Kommunikation, der der meine SPS der Client ist, greife ich auf einen Server (PC-System) zu und muss 2 Bits lesen und schreiben. Das hatte ich soweit am laufen.
Was dann nur komisch ist, hin und wieder bricht die Verbindung zusammen, bei der meine SPS der Server ist. Das haben wir bei der anderen Anlage noch nie gehabt.

Kann ich denn die Verbinung als Client einmal aufbauen, und dann Zyklisch, zB. jede Sekunde die Daten lesen und schreiben? Oder muss ich nach jedem mal lesen und schreiben der Daten die Verbindung wieder abbauen?

Wenn das soweit funktioniert, kommt noch ein weiterer Schritt hinzu den ich noch nicht hin bekommen habe, und zwar muss ich eine Methode mit 2 Argumenten an den Server schicken.
Da bekommen wir auf dem Server leider immer den Fehler angezeigt, das er 2 Argumente erwatet. Wenn ich die Methode allerdings in meine Methoden-Liste ziehe, wird mir die Methode nur mit einem WString erstellt. Vielleicht hast du dazu ja später auch einen Tipp für mich.

Ich werde mich morgen wieder dran setzen, erstmal die 2 Bits zu senden und zu lesen.

Ein schönes Wochenende

Björn
 
Ich habe die Firmware 2.8 drauf (zumindest wird mir Offline gerade nichts weiters angezeigt, das kann ich morgen mal prüfen)
Von
Firmware 2.8 nach 2.8.3 haben sie noch schwerwiegende Probleme am OPC UA Server gelöst.


Bei der Kommunikation, bei der meine SPS der Server ist, werden einige Real und String Werte vom Client gelesen und geschrieben. Die gleiche Kommunikation, haben wir auf einer anderen Anlage, dort funktioniert es einwandfrei.

Wenn das soweit funktioniert, kommt noch ein weiterer Schritt hinzu den ich noch nicht hin bekommen habe, und zwar muss ich eine Methode mit 2 Argumenten an den Server schicken.
Da bekommen wir auf dem Server leider immer den Fehler angezeigt, das er 2 Argumente erwartet. Wenn ich die Methode allerdings in meine Methoden-Liste ziehe, wird mir die Methode nur mit einem WString erstellt. Vielleicht hast du dazu ja später auch einen Tipp für mich.

Mir ist es auch schon aufgefallen, dass sich Strings in OPC UA nicht gut vertragen. Deshalb verwende ich auch in den DBs nur WStrings. Der Nachteil ist ganz klar die Grösse vom WString gegenüber String.
Und wie du es schon erwähnt hast, sind Strings bei den OPC UA Methoden unzulässig.

Wenn du Zyklisch abfragst, würde ich die Verbindung aufrecht halten.
Gruss Rob
 
Hallo Rob,

schon einmal vielen Dank für deine Hilfe, der Tipp mit der Firmware war schon mal sehr gut. Nachdem ich diese aktualisiert habe, kann ich zyklisch die Daten lesen und schreiben. Das funktioniert sehr gut und die Kommunikation bei der ich Server bin bricht auch nicht mehr ab.

Jetzt muss ich mich mal noch mit der Methoden Sache beschäftigen.
Vielleicht hast du hier ja noch einen Tipp für mich.

Wenn ich die Methode aus der Schnittstelle bei mir in die Methodenliste kopiere, sieht die Methode wie folgt aus:
Next Job Info | Array [0 .. 0] of WString
Next Job Info [0] | WString

Also mit nur einem WString.

Der Server erwartet aber 2 String. Gibt es im WString ein Trennzeichen damit der Server das versteht?
Ich kann ja schlecht die Methode von Hand anpassen.

MfG Björn
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rob,

ich hoffe du kannsrt mir evtl noch einen Tipp geben.

Die Kommunikation läuft Stundenlang und auf einmal kommt ein Error "Fehler bei der Frreigabe einer Schreibliste"

Gibt es eine Möglichkeit diesen Error zu quittieren? Die Schreibliste hat ja funktioniert.

MfG Björn
 
Hallo,

die Kommunikation zwischen dem Server und dem Client läuft nun einwandfrei. Hier gab es noch ein IP-Konflikt im Firmennetzwerk, wodurch nach einer x beliebigen Zeit die Kommunikation zusammen brach.

Ich schreibe nun eine Methode, diese benötigt ein Input Argument mit 2 WString, das funktioniert mittlerweile auch, hier war die Methode auf dem Server als Variable Anzahl an Argumenten erstellt. Jetzt steht Sie auf Statsich und ich habe nun auch die beiden WStrings in meiner Liste zum schreiben.

Jetzt habe ich habe noch ein Problem, zu einer anderen Zeit soll eine 2. Methode ausgeführt werden, diese Methode besitzt kein Input Argument und muss nur ausgeführt werden.

Wie kann ich jetzt die beiden Input Argumente an dem Baustein von Siemens tauschen, ich benutze den FB1. Irgendwie stehe ich gerade auf dem Schlauch.

MfG Björn
 
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]Hallo Björn,

[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]Ich war leider einige Zeit abwesend. Es freut mich zu hören, dass dein Projekt voranschreitet.[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]Dein Herausforderung bezüglich den beiden Input Argumenten und Siemens ab ich allerdings nicht ganz verstanden. Kannst du dies ein bisschen besser beschreiben?
Wer ist der Server welcher die Methode anbietet? Und welcher Client den, der die Methode abfragt?

[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]Gruss Rob

[/FONT]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rob,

in dem Fall ist meine SPS der Client, der Server ist ein ich glaube auf Windows basierender Rechner, genau kenne ich das System nicht.

Wenn ich mir die 1. Methode in meine Methodenliste ziehe, wird dieser Methode ein Input Argument und ein Output Argument hinzugefügt. Diese muss ich an den FB1 von Siemens mit angeben.
Das funktioniert ja auch soweit.

Wenn ich mir jetzt zusätzlich die 2. Methode mit in die Methodenliste ziehe, dann bekommt dies Methode nur ein Outputargument (aussage vom Hersteller des Servers ist, das diese Methode kein Input Argument benötigt, da diese Methode nur aufgerufen werden muss.)

In der Beschreibung von Siemens steht nur, das ich die den MethodenIndex der auf zu rufenden Methode angeben muss. Für die 1. Methode ist das die 0 und für die 2. Methode die 1, wenn ich das richtig verstanden habe.

Aber wass passiert mit den Input und Output Argumenten? Oder lasse ich die Eingänge einfach frei an dem Bausstein? Oder übersehe ich noch etwas?

MfG Björn
 
Zurück
Oben