TIA HMI Variablen setzen

snow-man-01

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

ich bin relativ neu in der SPS-Programmierung und habe eine Frage zur Umsetzung meiner Vorgehensweise:

Ich möchte ein HMI programmieren. Im HMI sollen über Buttons Parameter an die CPU übergebenen werden. Dazu habe ich zunächst eine HMI variable einer PCL Variable zugeordnet. Die PLC Variable war ein Input (zB i0.0). Kann ich statt eines Inputs auch zB Merker aus der PCL einer HMI Variable zuordnen oder vielleicht auch was anderes? Denn ich habe sehr viele Buttons zu programmieren und wenn ich jedem Button eine Input-Adresse übergebe, dann würde ich zu viele haben.

Danke im Voraus.
 
Zuletzt bearbeitet:
Kann ich statt eines Inputs auch zB Merker aus der PCL einer HMI Variable zuordnen oder vielleicht auch was anderes?
Das kannst Du nicht nur sondern solltest es auch tun. Am besten Du erstellst Dir zwei..drei neue DB (*), darin kannst Du dann so viele Variablen definieren wie Du willst und hast gleichzeitig eine prima zusammengefasste Schnittstelle zwischen SPS-Programm und HMI. HMI-Zugriffe auf PLC-Variablen sieht man nicht im PLC-Programm, wenn man das HMI-Projekt nicht hat, deshalb sollte das HMI nicht auf Merker und Eingänge und Ausgänge zugreifen, sondern nur über eine deutlich bezeichnete Schnittstelle - eben die HMI-Koppel-DBs. Die DB dienen auch dem Rangieren von Signalen, damit das HMI-Projekt unabhängig von der E/A-Hardware-Konfiguration der PLC wird.

Das Beschreiben von Eingangsadressen (wie I0.0) mit der HMI ist außerdem keine besonders gute Idee, weil (bei S7 zumindest die Adressen im Prozessabbild der Eingänge, wo Peripherieadressen dahinterstecken) beim Zyklusbeginn die Werte der Eingangsadressen überschrieben werden und Schreibzugriffe vom HMI dann nicht zum SPS-Programm durchkommen.

(*) ein DB für Werte zum HMI + ein DB für Bits und Werte von HMI zur PLC

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank erst mal für die sehr hilfreiche Antwort.

1) Sieht es dann so aus, dass ich die Variable aus dem DB heraus ziehe und sie in das PLC Programm einfüge, also zB so: "HMI Buttons"."Button A"

2) Wenn ich die Kommunikation über DB´s erstelle, kann ich diese Variablen dann in PLC-SIM simulieren? Weil ich habe viel ausprobiert, ich konnte zB simulieren, dass ein Button eine Lampe zum Leuchten bringt. Dazu hatte ich eine Input PLC-Variable genommen. Mit PLC-Merker und DB Variablen konnte ich keinen Effekt feststellen. Oder müsste es funktionieren und ich hab irgendwo einen Denkfehler drin?

3) Ich habe in einigen Beispielprogrammen solche Rauten # vor Variablennamen gefunden. Konnte mir leider nicht erklären, warum man solche # setzt oder woher diese kommen.
 
Zuletzt bearbeitet:
1) :cool: :D
2) DB-Variablen und Merker kann man ganz einfach in Beobachtungstabellen steuern, oder per Rechtsklick an der Verwendungstelle im SPS-Programm
3) # kennzeichnet lokale Variablen (die oben im Bausteinkopf deklariert sind): Temp, Static, Input, Output, InOut, Return

Harald
 
Danke.

Eine Frage noch:

Ich habe 3 Buttons im HMI. In Abhängigkeit der Zustände dieser Buttons möchte ich über ein SCL Programm einen Ausgang setzen.

Die HMI Variablen der Buttons habe ich DB-Variablen In PLC zugeordnet.

Wie greife ich im SCL Programm auf die Variablen im DB Baustein zu?

Der DB heißt HMI Buttons. Die PLC Variablen in diesem DB heißen Button1, Button2 und Button3. Wenn ich im SCL Programm "HMI Buttons" eingebe, so erscheint dann nur der DB im SCL-Programm, und nicht die Variablen Button1, Button2 oder Button3.

Danke im Voraus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich im SCL Programm "HMI Buttons" eingebe, so erscheint dann nur der DB im SCL-Programm, und nicht die Variablen Button1, Button2 oder Button3.
Nach Auswahl des DB-Namens "." drücken (die Punkt-Taste drücken), dann werden die Variablen des DB angeboten (ganz allgemein: die Variablen der nächsttieferen Strukturebene. Der Punkt ist der Struktur-Separator).

Harald
 
Eine Frage habe ich noch:

Wie kann ich eine Zahl, die ich in einem E/A-Feld eintippe, in die PLC übergeben? Und wie kann ich die Eingabe bestätigen?

Vielen Dank im Voraus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei dem E/A-Feld als Prozessvariable eine PLC-Variable angeben, und das E/A-Feld auf Modus Ein-/Ausgabe einstellen.
Die Eingabe wird mit betätigen der ENTER-Taste bestätigt und das HMI sendet dann einmalig den eingegebenen Wert an die PLC.

Harald
 
Zurück
Oben