TIA Verschiebungen durch Bool sche Variable einleiten und Drehung erzeugen

Mcmastur

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

ich muss für ein Hochschulprojekt für eine Laboranlage eine HMI erstellen. Grundsätzliches Problem ist, dass ein Flussdiagramm nicht zwangsweise geeignet ist für die Darstellung der Anlage, deswegen soll eine Simulation der Anlage Stattdessen den Überblick verschaffen.

Im folgenden Bild ist der Gesamtprozesse einmal dargestellt(Die Buttons und E/A Felder können ignoriert werden waren nur für Tests):
Visualisierung.jpg

Grundsätzlich sollen die blauen Gebilde in Horizontaler Richtung, die Roten in Vertikaler Richtung, der Grüne in Beide Richtungen, und die Gelben gedreht werden.

Das Problem ist, dass bis auf die beiden markierten Bewegungen am rechten Bildrand, alle nur durch eine Variable des Typ Bool dargestellt werden. (Es wird eine Variable gesetzt, wodurch ein Magnetventil geöffnet wird und bei erreichen eines Näherungsschalters in der Endlage wird die Variable zurückgesetzt)

Das Problem ist, dass die HMI-Variable des Typ Bool nicht gültig ist für die Bewegung. Selbst wenn sie gültig wäre, gäbe es auch nur die zwei Positionen "Startlage" und "Endlage". Die Frage ist jetzt also wie ich am besten über eine Variable des Typ Bool eine Bewegung einleite, die idealerweise als flüssige Bewegung über einen vordefinierten Zeitraum dargestellt wird (Ca. eine Sekunde pro Bewegung)

Das zweite Problem ist die Visualisierung einer Drehung. Die Drehplatte in der Mitte des Bedienbildes soll inklusive der vier Aufnahmepunkte um den Mittelpunkt gedreht werden. Das Gebilde im unteren Bildschirmbereich soll hingegen ein Schwenken darstellen und das Rechteck um den Mittelpunkt des Halbkreises an seinem Ende um 180° geschwenkt werden. Da es leider nur Animationen für die Verschiebung habe ich leider noch gar keinen Ansatz wie dies zu lösen sein könnte und ob dies überhaupt möglich ist.

Ich hoffe ihr könnt mir weiterhelfen

MfG

Mcmastur
 
Ich würde im SPS-Programm entsprechende Werte für die Animation vorsehen, also z.B. wenn das Ventil geschlossen wird, dann einen Integer bis auf 0 herunterzählen, wenn geöffnet bis auf z.B. 100. Alle Inkremente mit einer entsprechenden Zeitflanke oder mit einem entsprechenden Inkrement. Gleiches für die Drehungen.

Das widerspricht zwar etwas der Trennung von Programm und HMI, aber manchmal muss man sich eben so behelfen. Es bietet sich dann an, diese HMI Animationswerte im SPS-Programm in einem vom anderen Programm getrennten Bereich zu berechnenn und abzulegen, dann weiß jemand, dass dieser Bereich wirklich nur fürs HMI und sonst nichts notwendig ist.

Es lassen sich auch ein paar Werte über Skripte im HMI berechnen, da ist das Zeitraster aber eingeschränkt, und ist auch nicht sonderlich übersichtlich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde im SPS-Programm entsprechende Werte für die Animation vorsehen, also z.B. wenn das Ventil geschlossen wird, dann einen Integer bis auf 0 herunterzählen, wenn geöffnet bis auf z.B. 100. Alle Inkremente mit einer entsprechenden Zeitflanke oder mit einem entsprechenden Inkrement. Gleiches für die Drehungen.

Das widerspricht zwar etwas der Trennung von Programm und HMI, aber manchmal muss man sich eben so behelfen. Es bietet sich dann an, diese HMI Animationswerte im SPS-Programm in einem vom anderen Programm getrennten Bereich zu berechnenn und abzulegen, dann weiß jemand, dass dieser Bereich wirklich nur fürs HMI und sonst nichts notwendig ist.

Es lassen sich auch ein paar Werte über Skripte im HMI berechnen, da ist das Zeitraster aber eingeschränkt, und ist auch nicht sonderlich übersichtlich.


Danke das werde ich mal Versuchen, allerdings habe ich bis jetzt nur mit dem Taktmerker der CPU gearbeitet, gibt es andere Möglichkeiten eine sehr individuelle Zeitflanke zu erstellen?

Bezüglich der Drehung weiß ich dennoch noch nicht wie ich diese Visualisieren kann. das Problem ist, dass es die Animation "Drehen" nicht gibt.
 
Danke das werde ich mal Versuchen, allerdings habe ich bis jetzt nur mit dem Taktmerker der CPU gearbeitet, gibt es andere Möglichkeiten eine sehr individuelle Zeitflanke zu erstellen?

Bezüglich der Drehung weiß ich dennoch noch nicht wie ich diese Visualisieren kann. das Problem ist, dass es die Animation "Drehen" nicht gibt.

Du kannst einen Timer dafür verwenden. Mit einem TON-Timer z.B.
Code:
TON_Instanz(IN := NOT Takt; PT := T#1s);
Takt := TON_Instanz.Q;
Dann ist Takt jede Sekunde für 1 Zyklus auf 1-Signal.

Wenn das Drehen nicht möglich ist (auch nicht über VB, da müsstest du mal nennen welche Version du verwendest, und welches Bediengerät), dann kann man sich behelfen und vorher mit einem Zeichenprogramm mehrere gedrehte Bilder zu erstellen (0, 30, 60, ... je nach Bedarf) und diese dann in eine Grafikliste einzufügen. Dein SPS-Programm berechnet dann den Index der gerade angezeigt werden soll.
 
Hallo,

Danke für die Infos, habe jetzt alle Bewegungen, bis auf die Drehungen, umgesetzt und Funktioniert auch soweit.

Ich benutze das TIA Portal V 15.1 und eine WinCC RT Advanced für die HMI, soweit ich das jetzt getestet habe, existieren keine Funktionen für den Rotationswinkel in dieser Version. Werde also dementsprechend die Variante mit den Grafiken. Ich weiß nur nicht wie ich Elegant in der SPS das Weiterschalten der Grafiken realisiere.

<EDIT> Hat sich erst mal erledigt, hatte ne kleine Denkblockade, würde mich nochmal melden falls es doch nicht geht.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Soweit ich weiß ist die Drehung nur bei RT Professional möglich. Bei RT Advanced wirst du mehrere Bilder verwenden müssen, die du entweder über eine Grafikliste auswählst, oder du legst mehrere Grafiken übereinander und zeigst sie über eine Sichtbarkeitsanimation nur bedingt an (z.B. Rotation >= 90 und Rotation <180, usw.)
 
Zurück
Oben