TIA HMI Animation

HolzHer

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich bräuchte bitte Hilfe.
Ich muss das Aus,- Einfahren eines Zylinder in der HMI animieren und hab keine Ahnung wie das geht hab mir viele Videos angesehen und Themen in Foren durchgelesen aber nach zwei Tagen ohne Erfolg. Habe immer Probleme mit den Datentypen und ich weiß nicht welche Bausteine das man für so eine Animation verwendet.
LG
 

Anhänge

  • Zylinder Animation HMI.jpg
    Zylinder Animation HMI.jpg
    139,8 KB · Aufrufe: 106
Hallo
Man könnte z.b. 10 Bilder von dem Zylinder nehmen . Immer in einer anderen Stellung.
Und diese dann nacheinander anzeigen lassen.
Mit der Funktion Sichtbarkeit.


So eine Art daumenkino.

Gesendet von meinem Nokia 6.1 mit Tapatalk
 
Moin HolzHer,

hast Du denn einen Analogwert für die Kolbenposition?

Wenn ja, kannst Du doch einfach eine Bewegung (in Deinem Fall horizontal) einfügen. Dass Du das gemacht hast sieht man ja schon an dem gestrichelten, blauen Pfeil.
Dann brauchst Du noch die Positionsvariable und gibst den minimalen und maximalen Positionswert unter "Variable" vor.

Wo eckst Du an? Wo kommst Du nicht weiter?

VG

MFreiberger
 
Hallo,
zum Animiren brauchst du erstmal einen Positionswert. Zum Beispiel über ein Wegemesssystem. Diesen Wert musst du dann als zb. INT an dein HMI übergeben.
Der Bereich muss dann den Min.Max Werten deines Positionswertegebers entsprechen.

Da dein Zylinder sicherlich kein Wegemessystem haben wird, musst du dies in der SPS Simulieren. Also ein Zähler der Hochzählt (Ausfahren), und dann wieder Runterzählt (Einfahren).
Zum Nachlesen:
HMI-Bild Erstellen mit Animation:
https://w3.siemens.com/mcms/sce/de/...ocuments/SCE_DE_010-080_R1209_S7-1200_HMI.pdf
Simulations-FB Erstellen (Ab Seite 29 ff):
https://w3.siemens.com/mcms/sce/de/...CE_DE_010-030_R1209_S7-1200_Zeiten_Zähler.pdf

MfG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich weiß nicht welche Bausteine das ich verwenden kann im OB1 um die Aktion auszuführen. Habe 2 Reedkontakte am Zylinder (Zylinder eingefahren / Zylinder ausgefahren) und möchte das Aus bzw Einfahrverfahren animieren. Habe das hier ausprobiert Animationen erstellen war erfolglos. Bin mit den Datentypen nicht zusammen gekommen. Ich hab das Problem das ich nicht weiß was diese Bausteine machen und was die Beschriftungen bedeuten. Hatte alles gleich gemacht nur mit dem [CV] hatte ich Probleme beim Datentyp. Die HMI_Variable_1 hat den Datentyp INT und wird beim OB1 bei den Bausteinen immer als Timer angezeigt.
LG
 
Moin HolzHer,

also hast Du kein analoges Wegmesssystem. Dann kannst Du, wie trabant601 schon schrieb, eigentlich nur eine zeitabhängige Variable nehmen.
Ist eigentlich eine "Mittelstellung" interessant? Also wenn der Zylinder schnell ein- / ausfährt ist meistens nur die Endlage interessant.
Du kannst mit einer zeitabhängigen Variablen auch nur eine vorausberechnete Sollposition und halt nicht die Istposition anzeigen.
Wenn der Schlosser an den Drosseln rumspielt ist die Animation wieder für die Katz'
Ich persönlich würde auch nur Istwerte anzeigen.
z.B. drei Stellungen:
ausgefahren => Stellung 1
nicht ausgefahren und nicht eingefahren => Stellung 2 (Mitte)
eingefahren => Stellung 3

Das könnte man jetzt auch mit einer "Bewegung" machen oder einfach drei Bilder ein- und ausblenden.

VG

MFreiberger


P.S. was ist denn der [CV]? Eigentlich sollte die Animation einwandfrei mit int-Variablen funktionieren.
 
Zuletzt bearbeitet:
Hallo MFreiberger,
diese Methode kling am einfachsten und am besten nur weiß ich nicht wie ich das im OB1 programmiere also welche Bausteine verwende ich hierfür. Ich erstelle also 3 Bilder im HMI die jeweils sichtbar oder unsichtbar sind. Und diese Variablen von 0-.... woher finde ich heraus wie weit zb. 0-15 ist. Und warum kann ich meine Variable nicht zB HMI_Zylinder_ein oder HMI_Zylinder_1 nennen?
LG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin HolzHer,

der OB1 soll eigentlich dazu dienen das Programm strukturiert zu organisieren (daher auch Organisationsbaustein). Aber man kann hier natürlich auch einen "Spaghetti-Code" schreiben.

Besser: eine Funktion (FC) aufrufen, die man z.B. Zylinderanimation nennen kann.

Dann eine Int-Variable (z.B. aus einem DB) nutzen.

Dabei stellt sich die Frage, wie Dein Wissensstand bzw. Erfahrung im Programmieren con SPSen ist?

Welche Programmiersprache nutzt Du?

Allgemein gesprochen:

Code:
ausgefahren   eingefahren   Wert
       0                  0               2
       0                  1               1
       1                  0               3
       1                  1               0 (Fehler?)


VG

MFreiberger
 
Hallo MFreiberger

Hatte Beruflich nie mit SPS Programmieren zu tun nur in der Berufsschule und da baut man auch nur ein Grundwissen auf wenn man das aber in der Firma nie benutzt vergisst man so manches.

Als Programmiersprache nutze ich FUP.

''Dann eine Int-Variable (z.B. aus einem DB) nutzen.'' könntest du mir das genauer erklären?

LG
:|


 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo MFreiberger

Danke dir für deine Bemühungen mir dabei zu Helfen meine Probleme zu lösen.
Stehe nun bereits beim nächsten Problem und zwar wie kann ich Variablen der HMI im FC verwenden?
Und beim ersten MOVE Baustein welche Zylinder Position ist da zu verwenden?


LG
 

Anhänge

  • FC.PNG
    FC.PNG
    12 KB · Aufrufe: 27
  • HMI_Variable.PNG
    HMI_Variable.PNG
    9,8 KB · Aufrufe: 20
Zuletzt bearbeitet:
Besser als HMI Variablen in der SPS (also im FC) zu verwenden ist es alles in der SPS zu machen und am HMI nur anzeigen zu lassen.
 
Ich möchte bei meinen MOVE Bausteinen bei OUT zb. die VAriable HMI_Zylinder_Aus einfügen um die Animation zu programmieren ich weiß aber nicht wie ich die Variablen dort einfüge.
 
Mach in der SPS in dem FC eine entsprechende Variable in der du die Zustände abbildest.

im HMI erstellst du dann die Zustände abhängig von dieser Variable.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich es nicht schaffe eine Variable der HMI in den FC einzufügen schaff ich es umgekehrt auch nicht hab's gerade probiert aber hat nicht funktionier. Weiß nicht welche Datentypen ich im FC beim MOVE habe bzw brauche beim HMI habe ich INT Datentypen. Habe 3 Tags erstellt MW1 / MW2 / MW3 sind Datentyp INT kann ich im HMI aber nicht aufrufen.
 
Wenn ich es nicht schaffe eine Variable der HMI in den FC einzufügen schaff ich es umgekehrt auch nicht hab's gerade probiert aber hat nicht funktionier. Weiß nicht welche Datentypen ich im FC beim MOVE habe bzw brauche beim HMI habe ich INT Datentypen. Habe 3 Tags erstellt MW1 / MW2 / MW3 sind Datentyp INT kann ich im HMI aber nicht aufrufen.
Sie brauchen 1 variabele fur die animation. Sie habe die Tags false erstellt, Die bereiche uberlappen elkander. MW 1 besteht aus MB1 und MB2, MW2 = MB2 und MB3.
Hier unter ein beispiel mit ein Var aus ein DB Display (DB3)

Zylinder.jpg

zylinder 2.JPG

Nach einmal einfüggen steht der VAr auch in der HMI variabele liste

Joop
 
Hallo HolzHer,

Dir hapert es unter anderem an Grundwissen. JoopB hat schonmal geschrieben das die Tags falsch erstellt wurden. MW1/2/3 überlappen sich. Vielleicht schaust Du dafür auch mal in Lektion 1.9. Ansonsten kann Dir die Seite bestimmt an einigen Stellen helfen.

Was MFreiberger in #11 erstellt hat ist schonmal die Grundlage für Deine Erkennung der Endlagen.
Move 0 = Zylinder ist unkontrolliert, keine Position bekannt
Move 1 = Zylinder ist eingefahren
Move 2 = Zylinder ist weder ein- noch ausgefahren, also Mittelstellung
Move 3 = Zylinder ist ausgefahren.
Alle Move-Befehle werden an MW0 = Animationswert geschrieben.
Du brauchst für die Bewegung lediglich diese eine Variable. Das ist auch schon alles was in der SPS programmiert werden muss.


Für die HMI:
JoopB hat in #19 zwei Bilder erstellt:
Zylinder 2 - Du gehst auf Deine Gruppe in die Animationen, dort auf Anzeige, aber nicht auf Sichtbarkeit sondern auf Bewegungen. Dann Neue Animation erstellen - Horizontale Bewegung.
Dort kann nun als Variable wie in Bild "Zylinder" von JoopB in #19 die Variable in der SPS ausgewählt werden "Animationswert".
JoopB hat dafür ja 1,2,3,4 erstellt:
1 - "..." klicken, dann öffnet das obere Fenster
2 - Die SPS auswählen
3 - PLC-Variablen - Standard-Variablentabelle anwählen
4 - Rechts nun "Animationswert" wählen
5 - Haken anklicken.
Nun wird vom TIA-Portal automatisch die Verbindung zwischen SPS und HMI erstellt und die Variable miteinander verlinkt: CPU<>HMI

Nun steht als Variable in der HMI-Bewegung Animationswert drin.
Darunter ist Bereich - der muss von 0 bis 3 eingestellt werden.
Startposition ist in meinem Bild(unten) die 66, Zielposition ist 300. Das hängt nun davon ab wie weit der Kolben sich bewegen soll. Du kannst z.B. einfach in der Zielposition bei X mit den Pfeilen auf/ab bestimmen wie weit er herausgucken soll, das siehst Du direkt im Bild beim einstellen.


Position XAnimationswertBedeutung
660Kolben ist "ganz" drin, z.B. reinschieben wo er gar nicht sichtbar ist, dies ist ein ungültiger Wert.
1441Kolben ist eingefahren
2222Kolben ist in der Mitte
3003Kolben ist ganz ausgefahren

Diese Positionen X werden automatisch berechnet. Du musst nur 0 = 66 und 3 = 300 einstellen, den Rest, die mittleren Stellungen übernimmt die Software.

Das Bild mit der horizontalen Bewegung. Da wo "Datenbaustein_Varibale_HMI_Kolben" bei mir nun steht sollte bei die Animationswert stehen nachdem Du die oberen Punkte abgearbeitet hast.
AnimationHoriz.jpg

Viel Erfolg!
 
Zurück
Oben