TIA Realisierung eines Tasters

manuelck99

Level-1
Beiträge
22
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich besitze folgende Hard- und Software:

S7-1512C-1 PN
TP700
TIA Portal V15
WinCC Advanced V15

Als erstes will ich kurz sagen, dass ich noch ein relativer Anfänger bin, deswegen kann es sein das ich einfach etwas die ganze Zeit über übersehen habe.

Mein Problem besteht darin, dass ich auf einem Bild in der HMI einen Taster realisieren will, der eine HMI-Variable einfach, wie ein Taster eben, kurz auf "true" und dann wieder auf "false" setzt. Die HMI-Variable würde ich dann in der SPS auslesen und mit diesem kurzen Impuls arbeiten.

Allerdings finde ich nur die Funktion "SetzeBit", wenn ich auf die Schaltfläche (die als Taster benutzt werden soll) klicke unter "Ereignisse" => "Loslassen" => "Funktion hinzufügen". Und "SetzeBit" würde meine HMI-Variable ja dauerhaft setzen.
 
Na das war ja einfach. War halt wohl doch der Klassiker "Der Anfänger hat das Offensichtliche übersehen", aber trotzdem vielen Dank für die schnelle Antwort.

Eine kleine Frage hätte ich aber noch. Wenn man z.B. die Taste ganz schnell drückt, kann es dann passieren, dass die mit der HMI-Variable verbundene PLC-Variable "nicht mitkommt" bzw. die Änderung nicht erfasst, wenn der Erfassungszyklus zu groß ist?
 
Wenn man z.B. die Taste ganz schnell drückt, kann es dann passieren, dass die mit der HMI-Variable verbundene PLC-Variable "nicht mitkommt" bzw. die Änderung nicht erfasst, wenn der Erfassungszyklus zu groß ist?
Das kann passieren. Es hat aber nichts mit dem Erfassungszyklus zu tun (der ist für das Einlesen in das HMI), sondern mit der Zykluszeit der CPU. Beim Drücken und Loslassen werden vom HMI (evtl. sehr kurz nacheinander) jeweils ein Schreibzugriff auf die PLC-Variable ausgeführt, und nur wenn das SPS-Programm genau dazwischen die PLC-Variable abfragt kriegt es den (kurzzeitigen) Gesetzt-Zustand mit. Man muß länger drücken als die Abfragezeit (OB-Zykluszeit) der CPU lang ist.

Erschwerend kommt hinzu, daß es bei S7-1500 keinen Zykluskontrollpunkt für HMI-Zugriffe gibt, d.h. das HMI greift völlig unkooperativ und nicht verhinderbar auf PLC-Variablen zu während das Anwendungsprogramm läuft, d.h. daß sich HMI-Variablen während dem Programmzyklus ändern (ggf. sogar mehrmals). Deshalb dürfen Variablen vom/zum HMI nur ein einziges mal im Programmzyklus gelesen/geschrieben werden - muß das Programm öfters zugreifen/verknüpfen, dann muß man sich ein "Prozessabbild" der HMI-Variablen selber programmieren (mit Kopien der HMI-Variablen arbeiten).
Code:
HMI-Variable   Programmkopie
-----| |-----+-----( )
             |
             | HMI-Variable
             +-----(R)
Angenehmer Vorteil bei diesem Programm-Konstrukt zur Übernahme der HMI-Tastenbits: im HMI braucht man nicht mehr dieses "SetzeBitWährendTasteGedrückt", sondern man verwendet beim Drücken oder Klicken einfach nur "SetzeBit", und die SPS-CPU rücksetzt das Bit direkt nachdem es das Setzen garantiert mitbekommen hat - die SPS-Zykluszeit und der Zugriffszeitpunkt der HMI spielen so keine Rolle mehr.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit HMI-Variable ist ja die PLC-Variable gemeint, mit der die HMI-Variable verbunden ist und die sie beschreibt. Heißt das jetzt aber auch, dass wenn man die PLC-Variable, wie in deinem Programmkonstrukt, zurücksetzt auch die HMI-Variabe zurückgesetzt wird?

Weil sonst würde ja aufgrund der "SetzeBit"-Funktion in der HMI, die HMI-Variable gesetzt bleiben. Und dadurch wird ja beim nächsten Zyklus der Programmkopie wieder der Wert "true" zugewiesen.
 
Moin,
Mit HMI-Variable ist ja die PLC-Variable gemeint, mit der die HMI-Variable verbunden ist und die sie beschreibt. Heißt das jetzt aber auch, dass wenn man die PLC-Variable, wie in deinem Programmkonstrukt, zurücksetzt auch die HMI-Variabe zurückgesetzt wird?
japp
Außerdem wollte ich noch fragen, ob man irgendwo sehen kann wie lange die SPS für einen Zyklus braucht?
dafür kannst du den Baustein RT_INFO verwenden. Der hat unterschiedliche Modi (einfach mal in der TIA-Hilfe nachschauen) um dir bspw. die maximale, minimale letzte Zykluszeit/OB-Ablaufzeit auszugeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ich noch fragen will ist folgendes:

Wenn ich jetzt die von PN/DP vorgeschlagene Programmstruktur verwende, dann würde ich ja gleich nach dem kopieren der PLC-Variable (die mit der HMI-Variable verbunden ist) sie gleich wieder zurücksetzen. Dadurch wird dann auch wie schon vorher gefragt auch die HMI-Variable in der HMI zurückgesetzt, aber würde die HMI die HMI-Variable nicht erst nach Ablauf der Erfassungszeit der HMI als zurückgesetzt erkennen.

Das würde dann ja bedeuten, dass wenn ich als Erfassungszeit in der HMI z.B. 100ms eingestellt habe, nach dem Setzen der HMI-Variable die PLC-Variable beschreibe, diese kopiere (um sie im Programm weiter zu verwenden) und dann die PLC-Variable gleich wieder zurücksetze und in der HMI wird die verbundene HMI-Variable erst ca. 100ms später als zurückgesetzt erfasst.

Stimmt das so oder habe ich da was falsch verstanden?
 
Die HMI-Variable im HMI wird erst nach dem nächsten Lesen nach der Erfassungszeit als rückgesetzt erkannt. Ist für Tastenbits zur SPS aber relativ unwichtig.
Für die Erfassungszeit der Tastenbits zur SPS reichen die standardmäßigen 1s völlig aus.

Ausprobieren: nimm im Touchpanel einen Schalter/Schaltfläche auf das Tastenbit (HMI-Variable in meinem Beispiel). Drücke den Schalter - er wird als betätigt dargestellt - kurz nachdem die HMI-Variable in der SPS rückgesetzt wurde, wird der Schalter wieder als nicht betätigt angezeigt. Wenn sofort nach dem betätigen die Verbindung zur SPS unterbrochen wird (Netzwerkkabel ziehen) dann sollte der Schalter als "betätigt" angezeigt bleiben (eventuell nach längerer (Timeout?-)Zeit wieder auf "unbetätigt" gehen?)

Harald
 
Das mit dem Ausprobieren wird problematisch für mich, weil ich für das Programmieren zuständig bin in dem Projekt und die Leute für den Aufbau hinken ziemlich hinterher, weswegen ich nicht wirklich was ausprobieren kann und vieles gedanklich durchspielen muss.

Aber im Grunde ist das was mich also gedacht habe richtig oder? Denn du hast ja selbst geschrieben "Drücke den Schalter - er wird als betätigt dargestellt - kurz nachdem die HMI-Variable in der SPS rückgesetzt wurde, wird der Schalter wieder als nicht betätigt angezeigt.". Und mit "... - kurz nachdem die HMI-Variable in der SPS rückgesetzt wurde, wird der Schalter wieder als nicht betätigt angezeigt." ist dann wohl die Erfassunszeit gemeint oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja. "kurz" ist die projektierte Erfassungszeit.

Ausprobieren: Du könntest die Panel-Projektierung in TIA simulieren (RT starten) mit einer simulierten SPS (PLCSIM) auf dem Entwicklungs-PC.

Harald
 
Danke für die Hilfe. Ich wusste zwar, dass man die Steuerungen und HMI seperat simulieren kann, aber nicht zusammen. Werde es gleich morgen ausprobieren.
 
Zurück
Oben