TIA TP 1500 Skript mit Zeitfunktion

Alex74

Level-1
Beiträge
4
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich würde gerne auf einem TP 1500 Comfort eine kleine Funktion mit einem Skript lösen, bin aber was
die Erstellung von Skripten angeht etwas unerfahren und deshalb bitte ich um eure Hilfe.
Folgendes möchte ich realisieren, ich habe für eine Anlage mit vielen Pumpen und Schiebern eine
Übersichtsseite auf der die komplette Anlage mit Aggregaten und Verrohrung dargestellt wird.
Auf jedem Aggregat liegt eine unsichtbare Schaltfläche mit der wenn diese betätigt wird eine Zahl in
eine interne Varialble geschrieben wird. Durch diese Zahl wird dann im oberen Bildschirmbereich die
passende Bedienleiste für das Aggregat eibgeblendet. Das läuft auch alles so wie gewünscht.
Ich möchte nun wenn die Bedienleiste nicht wieder durch den Benutzer deaktiviert wird diese automatisch
wieder ausblenden.
Was ich benötige wäre ein Skript welches wenn der INT Wert größer 0 ist eine Zeit startet und wenn die
Zeit abgelaufen ist soll der Wert 0 in die Interne Variable geschrieben werden.
Da wäre ich sehr dankbar wenn mir da jemand bei der Erstellung von diesem Skript helfen könnte.
Ist bestimmt keine große Sache aber eben nur wenn man davon auch eine Ahnung hat.
Vielen Dank schon mal.
 
Was ich benötige wäre ein Skript welches wenn der INT Wert größer 0 ist eine Zeit startet
Dann eine INT Variable projektieren, diese auf Erfassungsart "zyklisch fortlaufend" stellen, einen Grenzwert einstellen
und als Reaktion auf "Grenzwert überschritten" das Skript anhängen.

eine Zeit startet und wenn die
Zeit abgelaufen ist soll der Wert 0 in die Interne Variable geschrieben werden.
Das ist jetzt keine so gute Idee, dass über ein Skript zu lösen. Ich würde es an deiner Stelle SPS-seitig lösen.
bzw. wie lange soll denn diese Zeit sein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort, die Zeit soll ca. 30 Sekunden sein.
SPS-seitig habe ich auch schon überlegt, wäre natürlich auch eine Möglichkeit,
allerdings hatte ich das schon mal so gemacht und eine Variable in der SPS verwendet
und da war die Bedienung nicht so flüssig wir direkt intern. Das liegt vermutlich an der Kopplung
welche über MPI zu einer S7 300 läuft.
 
Auf jedem Aggregat liegt eine unsichtbare Schaltfläche mit der wenn diese betätigt wird eine Zahl in
eine interne Varialble geschrieben wird. Durch diese Zahl wird dann im oberen Bildschirmbereich die
passende Bedienleiste für das Aggregat eibgeblendet.

Ich würde als Variable lieber eine aus der SPS nehmen. Dort kannst du dann ganz bequem auf SPS-Seite einfach einen TON laufen lassen, welcher startet sobald diese Variable <> 0 ist. Ist der Timer abgelaufen, Wert auf 0 setzen, fertig. Die Variable muss allerdings auf "zyklisch fortlaufend" gestellt werden.

-chris
 
Ich würde als Variable lieber eine aus der SPS nehmen. Dort kannst du dann ganz bequem auf SPS-Seite einfach einen TON laufen lassen, welcher startet sobald diese Variable <> 0 ist. Ist der Timer abgelaufen, Wert auf 0 setzen, fertig. Die Variable muss allerdings auf "zyklisch fortlaufend" gestellt werden.
Ich würde den Timer starten/nachtriggern, wenn sich der Wert der Variable ändert UND nach der Änderung der Wert <>0 ist.
Für mein Verständnis ist es doch möglich, dass sich durch eine (gewollte) Bedienhandlung der Inhalt der Variablen ändern kann und dabei der Wert trotzdem <>0 bleibt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mich jetzt für die Version Variable in die SPS entschieden, das läuft gut und da habe ich sämtliche Möglichkeiten.
Danke auch an Heinileini für den Tip mit dem nachtriggern, ja Du hast recht das kann durchaus vorkommen das nacheinander
verschiedene Aggregate angewählt werden und dadurch der Wert immer <>0 bleibt was dann zur Folge hätte das mitten
während der Bedienung die Beidienleiste ausgeblendet wird.
 
Ich möchte nun wenn die Bedienleiste nicht wieder durch den Benutzer deaktiviert wird diese automatisch
wieder ausblenden.
Woher weiß die SPS oder das HMI, wann der Bediener die Bedienleiste nicht mehr benötigt?
Setze Deine (Multiplex-)Variable doch wieder auf 0, wenn auf ein anderes Bild gewechselt wird, und nicht erzwungen nach Zeitablauf.

Was ich benötige wäre ein Skript welches wenn der INT Wert größer 0 ist eine Zeit startet und wenn die
Zeit abgelaufen ist soll der Wert 0 in die Interne Variable geschrieben werden.
Diese Logik ist unvollständig. Wenn schon Zeit starten, dann wenn der Wert <> 0 ist und sich der Wert nicht mehr ändert. Bei jeder Wertänderung müsste der Timeout erneut starten (wie auch Heinileini schon anmerkte). Da eignet sich z.B. auch ein TOF.

Harald
 
Die SPS oder das HMI weiß das natürlich nicht, ich kann es aber nicht von einem anderen Bild abhängig machen
weil die Steuerung der Aggregate alle vom Übersichtsbild aus erfolgen. Je nach dem welches Aggregat angeklickt
wird dementsprechend wir in der oberen Leiste das passende Bedienmenü eingeblendet. Z.B. Schieber Auf, Halt, Zu, Automatik.
Die Erfahrung hat es gezeigt dass nach der letzten Bedienung das Menü nicht mehr geschlossen wird, nicht schlimm
aber nicht ganz schön. Das mit dem Timeout neu starten werde ich so übernehmen, ist eine gute Idee.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Alex74,

mit so einem automatischen Bildwechsel muss man aufpassen. Es kann ja sein, dass Jemand gerade etwas bedienen will und dann wechselt das Bild. Dann könnte man Probleme bekommen (Antrieb hält nicht mehr an, weil man einen Button nicht mehr verlassen kann, ...).
Davon abgesehen könnte man ermitteln, wie lange die letzte Bedienaktion zurück liegt (neben Änderung der Bildnummer noch auf Änderung der Objektnummer prüfen).

VG

MFreiberger
 
Ich halte gar nichts von solchen gut gemeinten automatischen "Comfort"-Bildwechseln oder -Ausblendungen. Gerade auch beim Ausblenden des "Faceplates" einer Aggregat-Bedienung. Sehr schön aufregend, wenn plötzlich der Stop-Button verschwindet... :rolleyes:

Was stört es das HMI, wenn die Bedienleiste angezeigt bleibt?

Harald
 
Hallo Zusammen,
ich würde gerne auf einem TP 1500 Comfort eine kleine Funktion mit einem Skript lösen, bin aber was
die Erstellung von Skripten angeht etwas unerfahren und deshalb bitte ich um eure Hilfe.
Folgendes möchte ich realisieren, ich habe für eine Anlage mit vielen Pumpen und Schiebern eine
Übersichtsseite auf der die komplette Anlage mit Aggregaten und Verrohrung dargestellt wird.
Auf jedem Aggregat liegt eine unsichtbare Schaltfläche mit der wenn diese betätigt wird eine Zahl in
eine interne Varialble geschrieben wird. Durch diese Zahl wird dann im oberen Bildschirmbereich die
passende Bedienleiste für das Aggregat eibgeblendet. Das läuft auch alles so wie gewünscht.
Ich möchte nun wenn die Bedienleiste nicht wieder durch den Benutzer deaktiviert wird diese automatisch
wieder ausblenden.
Was ich benötige wäre ein Skript welches wenn der INT Wert größer 0 ist eine Zeit startet und wenn die
Zeit abgelaufen ist soll der Wert 0 in die Interne Variable geschrieben werden.
Da wäre ich sehr dankbar wenn mir da jemand bei der Erstellung von diesem Skript helfen könnte.
Ist bestimmt keine große Sache aber eben nur wenn man davon auch eine Ahnung hat.
Vielen Dank schon mal.

Hey, wenn du meinen Rat haben willst, lass es mit dem automatischen ausblenden der Bedienleiste.
Es gibt nichts schlimmeres für einen Bediener wenn er gerade ein Ventil bedient und dann geht das Fenster von selbst wieder zu.

Wir machen es manchmal so dass wir bei einem Bildwechsel die Bedienfenster wieder shcliessen.
Aber selbst da regen sich manche Kunden auf.
 
Zurück
Oben