Phänomen bei versenden von Daten über OPC

Outrider

Level-1
Beiträge
745
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe eine 1512 F CPU mit OPC-UA
auf der anderen Seite befindet sich ein PC der sich von einem DB die Daten abholt
OPC-UA Server ist in den Eigenschaften aktiviert.
Der Partner auf der PC Seite beklagt dass er meine Signale die Dauernd auf True gesetzt sind "Prellend" sieht
Das Dumme ist , dass er von seinem Programm auf Flanken reagiert und ihn das deshalb stört.
Was können die Gründe dafür sein ?
 
Der OPC-UA hat keinen Zyklus Kontrollpunkt.
Das heißt wenn du im Programm dein Signal bearbeitest und nur am Ende des Programms TRUE ist kann es sein das er das Signal auch mal auf FALSE sieht. Weil der OPC-UA während des Zyklus synchronisiert hat.
 
z.b.
set
r opcausgang
u bedingung1 //annahme bedingung 1 ist nicht erfüllt
spbn m001
= opcausgang
m001: nop
...
...wenn der opc server hier aktualisiert ist der ausgang 0
... später im programm
u bedingung2 //annahme bedingung 2 ist erfüllt
spbn m002
= opcausgang
m002: nop
...
...wenn der opc server hier aktualisiert ist der ausgang 1

am zyklusende ist der ausgang 1
 
Sorry, verstehe jetzt nicht mehr.
Wie muss ich ein Signal z.B "Taster Ein" sauber programmieren, so dass am Ende über den OPC was vernünftiges kommt ?!
Danke für die Mühe !
 
Am besten einen eigenen DB (Koppel-DB oder -DB-Bereich) für die OPC-Variablen erstellen und genau einmal im Zyklus die Werte in die OPC-Variablen schreiben/kopieren. Dann flackert der Wert nicht und es ist gleichzeitig die OPC-Schnittstelle sauber dokumentiert und es macht auch nichts, falls der Kommunikationspartner (versehentlich) auf die Variablen schreibt. Außerdem läßt sich die OPC-Kommunikation leichter testen, z.B. mit Testwerten unabhängig vom Prozess.

Harald
 
Wird der Wert nicht eh nur einmal pro Zyklus in den Ausgang z.B geschrieben über das PAA auch wen der Wert die ganze Zeit auf TRUE ist ?
Einen Schnittstellen DB habe ich schon gemacht, von dort holt sich der Partner die Bits
wie würde so ein Programmstück aussehen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wird der Wert nicht eh nur einmal pro Zyklus in den Ausgang z.B geschrieben über das PAA
Das PAA schon aber der OPC-Server wird azyklisch aktualisiert. So wie er gerade Lust hat :)
Am Ende vom OB1 schreibst du alle relevanten Daten in einen DB für den OPC-Server
Dann ist es egal ob Variablen im Programm ihren Status wechseln weil nur das 'ENDE' in den Schnittstellen-DB geschrieben wird
 
Zuviel Werbung?
-> Hier kostenlos registrieren
eine Frage hätte ich noch, habe bischen auf der Seite von Siemens geschaut

Datenaustausch zwischen S7-Station und PC-Station mit dem SIMATIC NET OPC-Server​


was mir auffiel ist, dass in den Projekten eine PC-Station eingebunde ist, auch bei den 1500ern.
Ich habe bei mir lediglich in der HW-config der CPU den OPC-UA Server aktiviert mehr nicht !
mache ich da was fealsch ? Der PC sieht die Daten ja.
Danke
 
Da läuft der OPC-Server auf dem PC und der OPC-Client kommuniziert mit dem OPC-Server auf dem PC, der dann die Daten mit der SPS austauscht.
Bei dir läuft der OPC-Server in der SPS, d.h. der OPC-Client kommuniziert direkt mit der SPS bzw. dem OPC-Server der darauf läuft.
 
Zurück
Oben