Kommunikation neuer Variablen zwischen SPS und HMI funktioniert nicht

fale

Level-1
Beiträge
15
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich melde mich nun schon mit einem dritten Thema. Ich suche in den Hilfethemen, aber die sind bei PC Worx und Visu+ bei diesem Problem unbrauchbar. Hab nun lange probiert und versucht, aber ich gebs jetzt mittlerweile auf. Das Projekt, an dem ich lerne, heißt CrepeBar.

Im Projekt von PC Worx habe ich eine neue Variable namens Milchventill_Hand_HMI erzeugt. Und zwar in der Globalen Variablenliste und per Rechtsklick auch OPC angeklickt. Das eine Mal klickte ich auf "Redundant" und das andere Mal ließ ich das Kontrollkästchen leer, aber bei keine der beiden Varianten führte mich zum Erfolg.
Bei Visu+ habe ich unter Projekte>Ressourcen im Reiter "OPC Client DA (COM)" den entsprechenden OPC-Server angeklickt. Unten bei "Befehle" klickte ich dann auf "Variable hinzufügen" und nannte die Variable exakt so wie bei PC Worx: Milchventill_Hand_HMI. Sie wurde von Visu+ jedoch automatisch CrepeBar.Milchventill_Hand_HMI genannt. Daraufhin erschien diese neue Variable auch im Reiter Kommunikationsobjekte>Variablendatenbank (Tags). Dort hat sie Visu+ automatisch CrepeBar_Milchventill_Hand_HMI genannt. Den Typ habe ich auf "Bit" geändert wie alle anderen Variablen auch.

Ja, der Rechtschreibfehler "Milchventill" ist mir bewusst. :D Ich nenne das Ding nochmal um, aber das ist gerade meine geringste Sorge.
Diese Variable funktioniert leider nicht. Wenn ich im HMI den entsprechenden Schalter drücke, wird diese Variable in PC Worx nicht von FALSE auf TRUE gestellt. Sie reagiert nicht. Ich habe mich bei der Erstellung der neuen Variable an eine bereits existierende Variable namens Zapfventil_Hand_HMI orientiert. Diese Variable funktioniert einwandfrei und daher wundert es mich, dass meine neue Variable nicht erkannt wird.

Hat jemand eine Idee, was ich falsch gemacht haben könnte oder kann mir bitte genau erklären, wie ich eine solche Variable neu zu erstellen habe?
Ich zerbreche mir daran schon seit Tagen den Kopf und komme einfach nicht auf die Lösung. Da ich nur an zwei Tagen in der Woche vor Ort in der Schule an der Anlage arbeiten kann, kann ich zu Hause immer nur offline sozusagen "trocken" programmieren und dann hoffen, dass es nachher an der echten Übungsanlage klappt.



Im Anhang sind einige Screenshots. Die Screenshots 10 bis 13 zeigen die beiden genannten Variablen in PC Worx und in Visu+.

Außerdem ist mir noch etwas aufgefallen, was mich noch mehr verwirrt. Es gibt eine Zustandsanzeige, die in PC Worx Lichtschranke_Front_HMI heißt.
Bei Visu+ heißt sie im Reiter des OPC-Servers wie gewohnt CrepeBar.Lichtschranke_Front_HMI.
Aber im Reiter der Variablendatenbank heißt diese Variable nur Lichtschranke_Front_HMI ohne den Zusatz "CrepeBar_" davor, wie es bei den anderen beiden oben genannten Variablen der Fall ist. Ich begreife nicht, wieso das so ist. Diese Variable funktioniert einwandfrei.
Siehe Screenshots 20 bis 22.






Kann mir da bitte jemand weiterhelfen oder zumindest sagen, wie ich zu Informationen zu diesem Thema komme? Die Handbücher helfen mir absolut nicht weiter. Ich habe keine Idee, was ich sonst tun kann außer einfach mal bei PhoenixContact anzurufen.
 

Anhänge

  • bild10.jpg
    bild10.jpg
    710 KB · Aufrufe: 19
  • bild11.jpg
    bild11.jpg
    390,7 KB · Aufrufe: 18
  • bild12.jpg
    bild12.jpg
    382,8 KB · Aufrufe: 12
  • bild13.jpg
    bild13.jpg
    414,3 KB · Aufrufe: 15
  • bild20.jpg
    bild20.jpg
    718,4 KB · Aufrufe: 14
  • bild21.jpg
    bild21.jpg
    388,2 KB · Aufrufe: 13
  • bild22.jpg
    bild22.jpg
    374 KB · Aufrufe: 18
Moin Fale,

ich kenne mich leider mit PCworx und Visu+ nicht aus. Vielleicht kann ich Dir aber doch mit der Taschenlampe ein wenig Licht ins Dunkle bringen.

Der OPC-Server hat erst einmal eine eigene Datenhaltung und kann Variablen von vielen verschiedenen Tasks/Steuerungen einsammeln. Daher setzt er "Crepebar" vor die Variable, um die Quelle zu identifizieren. Den Punkt zur Trennung von Quelle und Variable.

Deine Visu wiederum legt eine Variable an, die wiederum aus einer Quelle (von möglicherweise vielen) kommt und identifiziert die Quelle über einen eigenen Eintrag (vermutlich Typ "Standard-Server"?) und einen Namen. Der Quelle übergibt sie wiederum die Objekt-ID, unter der der OPC-Server die Variable identifizieren kann: Crepebar.Milchventil

Der Einfachkeit halber bastelt Dir die Visu aus der Objekt-ID des OPC-Servers einen Variablennamen. Da im Variablennamen aber kein Punkt vorkommen darf, ersetzt sie den durch "_".
Prinzipiell kannst Du die Variable im HMI auch "Hans_Peter" nennen, denn über die Objekt-ID ist sie ja eindeutig zugeordnet. Nur mit gleichem Namen ist sie über die verschiedenen Entwicklungsumgebungen hinweg (HMI, OPC, PCworx) natürlich einfacher nachzuverfolgen, als wenn sie in jedem Teil anders heißt.

Zum eigentlichen Problem:
Du kannst erst einmal versuchen, ob der OPC-Server überhaupt die Variable ansteuert.
Dazu kannst Du Dir
z.B. bei Matrikon
den kostenlosen OPC-Explorer herunterladen. Damit greifst Du dann direkt auf den OPC-Server zu und kannst die Variable manipulieren. Dann siehst Du schonmal, ob die Verbindung OPC/PCworx klappt.
Der nächste Schritt ist dann, zu gucken, ob die Werte aus dem HMI im OPC-Server ankommen. Auch das kannst Du dann im OPC-Explorer sehen.

Wenn Du Variablen hinzufügst, muß man manchmal den OPC-Server neu starten. Hast Du das mal gemacht?
Hast Du das PCworx-Programm mal bereinigt und komplett neu übersetzt und auf die Steuerung gespielt? Manchmal "merken" die Entwicklungsumgebungen nicht, wenn Du so einen Haken setzt und veröffentlichen die Variable dann nicht vernünftig.

So, ich hoffe, da ist was bei, was Dir hilft.
Gruß
Jens
 
Wie ich sehe, habe ich sogar "OPC Test Client" im Softwarepaket zur Verfügung. Anleitungen dazu finden sich keine außer die, die du verlinkt hast. Danke dafür.
Es gibt zahlreiche Anleitungen zu einem Programm, das so ähnlich heißt, aber ganz anders aussieht.

Morgen probiere ich das mal aus. Hoffentlich klappt es.


Ich weiß nicht, wie man so einen OPC-Server neu startet. Wenn ich etwas aus die SPS spiele, dann kompiliere ich natürlich vorher bei PC Worx und übertrage dann erst das Programm. Also nach dem Programmieren kompiliere ich und klicke beim Projekt-Kontrolldialog auf Senden. Dann mache ich den Kaltstart. Bei Visu+ habe ich keine Möglichkeit, direkt über die Software auf das HMI zu überspielen. MS ActiveSync und TCP funktionieren bei Windows 10 wohl nicht. Daher verbinde ich mich simpel mit dem Windows-Explorer via FTP mit dem HMI und überspiele den Ordner VisuProject. Danach resette ich das HMI, damit es die neuen Daten übernimmt.

Morgen bin ich wieder vor Ort an der Anlage und probiere den OPC Test Client mal aus.
 
Mit Visu+ habe ich keine Erfahrung, aber mit PC Worx und OPC schon einiges.
Ist in der "Senden" Dialog der Haken für "OPC-Daten einbeziehen" gesetzt?

1637182836140.png

Der OPC Test Client ist eigentlich sehr einfach, da kannst du nichts falsch machen.
Es gibt aber ein OPC Konfigurator. Da musst du die Kommunikation einstellen.
In der zweiten Baumebene einen Verzeichnis, wo ein CSV bei der Kompilierung generiert wird.
Dann musst du eine Resource anlegen und hier Typ der SPS, sowie Kommunikationsparamter angeben.
Erst wenn diese richtig eingestellt sind, läuft der OPC Server an.

Im Test Client kannst du dich dann mit der Server verbinden. Wenn du nicht allzu viele Variablen hast, kannst du dann mit "Group - Add all items" alle Tags auflisten und den Wert verfolgen.

Solltest du im OPC Konfigurator und in Visu+ alles richtig eingestellt haben, müsste die Kommunikation laufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit Visu+ habe ich keine Erfahrung, aber mit PC Worx und OPC schon einiges.
Ist in der "Senden" Dialog der Haken für "OPC-Daten einbeziehen" gesetzt?

Anhang anzeigen 57481
Ja, der Haken bei "OPC-Daten einbeziehen" ist gesetzt.






Hallo bekesizl,

vielen Dank für den wertvollen Tipp mit dem OPC-Konfigurator! Der hat mich zum Ziel geführt. Nun funktioniert alles wunderbar. Nachdem ich den OPC-Konfigurator eingestellt habe, konnte ich die Variable im OPC-Test-Client manuell setzen und sie wurde in der SPS erkannt und der Aktor auf der Anlage wurde aktiv. Jedoch wurde der Taster auf dem HMI nicht erkannt. So konnte ich die Suche eingrenzen. Da keine Hilfen existieren, kann man nur durch Probieren fündig werden. Und ich wurde (irgendwann nach ewiger Zeit) fündig.

Es lag daran, dass ich die Variable in Visu+ falsch erstellt habe. Man erstellt bei Visu+ im Reiter OPC Client DA (COM) das jeweilige OPC Item. Und man erstellt im Reiter Variablendatenbank (Tags) die Variable. In meinem Fall fehlte jedoch der Querverweis von der Variable zum OPC Item. Ich dachte, dass das automatisch kommt, da nunmal nirgends irgendwas darüber steht.
Das Problem ist, dass für eine korrekte Anwendung der Software offensichtlich Programme notwendig sind, die auf Windows 10 nicht mehr laufen und darum konnte ich die Variable nicht so mit dem OPC Item verknüpfen, wie es der Softwareentwickler vorsieht. Daher habe ich dann einfach eine bestehende Variable kopiert und dann entsprechend umbenannt.


Nachfolgend erkläre ich mal alles für diejenigen, die eines Tages dieses Thema finden und das selbe Problem haben.
Ja ich weiß, ich hab mal wieder keine Screenshots gemacht, sondern nur den Monitor abfotografiert. Aber das ging grad nicht anders. :D



So sah die Variable Milchventil aus. Querverweis nur zum Prozessbild, in dem sie verwendet wird.
IMG_20211122_192856.jpg

So sollte es aussehen. Die Variable Zapfventil hat nicht nur Querverweise zu den Prozessbildern, in denen sie genutzt wird, sondern auch einen Querverweis zum OPC Item. Erkennbar am Symbol mit dem Gabelschlüssel.
IMG_20211122_192742.jpg


Ich habe dann einfach die bereits vorhandene und funktionierende Variable und das OPC Item namens Zapfventil in der jeweiligen Liste kopiert, eingefügt und dann umbenannt. Dann war die Verknüpfung da.


Bei Visu+ kann man die Variablen beobachten, wenn man die Simulation des HMI startet (grüner Play-Button oben oder Alt+F12).
Dazu öffnet man den Projektbetrachter bei der Simulation oben im kleinen Fenster mit dem Blitzsymbol (oder STRG+F1). Dann fügt man im Reiter Beobachten die Variablen ein, die man beobachten möchte. Dazu auf die Schaltfläche mit dem "01" anklicken. Siehe Kreise im nachfolgenden Foto. Wenn man dann die entsprechenden Schalter in der Simulation drückt, sollten sich die Werte im Projektbetrachter ändern.
IMG_20211122_184427.jpg





Knifflig wurde aber erst der Teil mit dem OPC-Konfigurator. Was soll man da bloß einstellen...? :D
Zum Glück hatte ich eine bestehende Anlage, sodass ich spicken konnte. HMI neu gestartet und beim Startvorhang die Basiseinstellungen gewählt. Dort kann man den OPC-Server anlegen. Ich hatte bereits zwei, da noch ein zweiter Anlagenteil namens Crepe vorhanden ist.
Voreingestellt waren im OPC Resource Editor die beiden Anlagenteile CrepeBar mit der IP-Adresse 10.4.17.50 und Crepe mit der IP-Adresse 10.4.17.110. Beide waren auf ILC 3xx (FW >= V1.41) eingestellt.
IMG_20211122_180258.jpg
IMG_20211122_180450.jpg


Mich interessierte im OPC-Konfigurator nur CrepeBar. Der OPC-Konfigurator ist ziemlich komisch, da auch dazu keine Anleitungen auffindbar sind. Man muss schon wissen, worum es da geht oder einfach probieren.
Neue Ressource anlegen oder die bestehende Ressource ändern. Und zwar stellt man hier die IP-Adresse der SPS ein. In meinem Fall 10.4.17.50. Dann noch bei Resource type die entsprechende Auswahl. Bei mir ILC 3xx (FW >= V1.41). Benennen kann man diese Ressource, wie man möchte.
IMG_20211122_182503.jpg

Dann kann man den OPC-Test-Client starten. Der ist zwar sehr einfach, aber wenn man damit noch nie gearbeitet hat, muss man auch einfach nur rumklicken, bis man die richtigen Schalter findet.
Mit den Ampeln kann man sich mit dem OPC-Server verbinden und trennen. Mit der Schaltfläche "Add item" lassen sich die Variablen einfügen, die man beobachten möchte. Im Reiter "Item" kann man ein Fenster öffnen, mit dem dann die jeweilige Variable zwanghaft gesetzt und rückgesetzt werden kann.
IMG_20211122_190405.jpg






Das wars im Grunde genommen. Probieren, probieren, probieren... Ist halt keine Anleitung da. :D

Danke für eure Hilfe. Ich hoffe, dass ich mit dieser Anleitung hier eines Tages jemandem helfen kann.
 
Zuletzt bearbeitet:
Zurück
Oben