Variable im EA-Feld

Scouty

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

wir arbeiten in der Schule gerade an einem Projekt, in dem wir eine SPS mit einem Touchpanel verbunden haben und daran angeschlossen eine Station, die über das Touchpanel bedient werden soll. Bedienen ist kein Problem, funktioniert auch alles. Das Touchpanel soll nun aber auch Werte zurückgeben. Im STEP7 ist ein Zähler eingebaut. Der Wert des Zählers soll nun auf dem Touchpanel zurückgegeben werden.
In WINCC Flexible 2005 habe ich ein EA-Feld eingebaut und habe bei den Eigenschaften auf Ausgabe gestellt. Nun verlangt er nach einer Variable. Und da ist mein Problem. Was gebe ich da ein? Ich muss ja irgendwie noch eine Interne Schnittstelle deklarieren, und zwar sicher im FB, richtig? Wenn ja, ist das dann ein IN oder OUT? Und wie verknüpf ich die dann mit dem Zähler?
Kann mir ja da einer helfen?

LG Scouty
 
Tach Scouti,

Ich hab mit WinCC(flex.) noch nicht viel gemacht, aber im Grunde ist das gleiche wie mit ProTool:
Ihr habt prinzipiell mehrere Möglichkeiten Daten zwischen Panel und Steuerung auszutauschen. Das geht zum einen über Merkerbereiche, (MW100) - oder über Speicherbereiche eines Datenbausteins (DBxx).
Normalerweise legt man für die Kommunikation zwischen OP (Operating Panel) und SPS einen Kommunikations-DB vom Typ "Globaler DB" an.
In diesem legt man fest, welcher Speicherbereich welcher Variable zugewiesen wird.
Wenn du einen FB ausrufst, legst du "automatisch" einen zum FB gehörenden Instanz-DB an. Dieser ist quasi das Gedächtnis des FBs, die Bits und Bytes, die im FB verarbeitet werden, werden nachdem der FB durchlaufen wurde nicht vergessen - sondern diesem DB gespeichert.

Sooo - und was heißt das jetzt? Du hast 2 Möglichkeiten:
Schnell und einfach: Schreib den Wert des Zählers in ein Merkerwort.
Das geht am einfachsten in AWL, indem man sagt:
L Z<n>
T MW<xx>
Nun musst du nur noch die Anzeige in der Visualisierung mit dem MW<xx> verknüpfen. Thats all.


... wenn ihr das Projekt noch erweitert und es strukturiert aufbauen wollt, legt ihr am allerbesten einen Kommunikations-DB, der die Schnittstelle zwischen SPS und OP bildet:

"rechtsklick auf Bausteine -> neues Objekt einfügen -> Datenbaustein -> Nummer eintragen (x) -> Global DB -> Symbolik eintragen -> fertig. ...fast

Als nächstes wie erwähnt die Bereichen des DBs deklarieren. Dazu schreibst du in den DB nen sinnigen Namen für die Variable und sagst ihr was sie ist. In deinem Fall empfiehlt sich INTeger, sprich ne Ganzzahl. Links steht die Adresse, unter der sie gespeichert ist. Diese sollte jetzt "0" sein.
Mit ihr kannst du jetzt weiter arbeiten wie mit dem MW.
Die vollständige Adresse in deinem Fall ist: DBx.DBW0

Bin selbst noch ein Greenhorn ... Mal ne Frage an die Cracks hier im Board:
Entlastet das Verwenden eines Kommunikions-DBs wirklich die Zykluszeit?
Und wieso?? Vll kann mir jemand gute Literatur zum detailierten Aufbau einer (Siemens) SPS empfehlen, vor allem wie die verschiedenen Speicher verwaltet werden, was für Prozessoren verbaut werden ... denn darüber weiß ich recht gar nicht :-(

greetz
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sooo - und was heißt das jetzt? Du hast 2 Möglichkeiten:
Schnell und einfach: Schreib den Wert des Zählers in ein Merkerwort.
Das geht am einfachsten in AWL, indem man sagt:
L Z<n>
T MW<xx>
Nun musst du nur noch die Anzeige in der Visualisierung mit dem MW<xx> verknüpfen. Thats all.
greetz

Ok soweit, aber kannst du mir sagen, wie bzw ob ich das auch in FUP umsetzten kann? FUP ist anschaulicher und da versteh ich auch, was da passiert. Von AWL hab ich kaum Ahnung.

LG Scouty

EDIT:
Ich glaub, ich habs jetzt in FUP hinbekommen (mit MOVE). Aber wenn ich jetzt in WINCC Flex bei dem EA-Feld bei Variable den MW1 auswählen will, finde ich den ja dort nicht, weil der ja noch zu den internen Variablen zugefügt werden muss, oder? Meine Frage da jetzt, Eingangs- oder Ausgangsparameter oder gar ein Durchgangsparameter??
 
Zuletzt bearbeitet:
Jep, Move = T . FUP ist schon in Ordnung, find ihn auch in vielen Sachen vieel übersichtlicher. Vor allem bei Programmen, die man nicht selbst geschrieben hat...
Zu deiner Frage: Du musst -soweit ich es in Erinnerung hab- unter Eigenschaften oder so bei Verbindung die Steuerung auswählen, von der du das Wort erhalten willst. Dort kannst du dann "M" wie Merker anwählen und die entsprechende Adresse angeben.
Bist du dir sicher, dass das MW1 nicht von was anderem beschrieben wird?
 
Bist du dir sicher, dass das MW1 nicht von was anderem beschrieben wird?

Ja bin ich, weil ich vorher noch keine Merkerwörter benutzt habe. Das ist auch nicht so umfangreich das Programm.

Den Rest versteh ich nicht. Ich hab im Anhang mal zwei Screenshots angehängt. Ich weiß immernoch nicht so recht, was ich bei dem EA-Feld in dem Feld "Variable" eingeben muss. Ich kann mich da durchklickern bis ich beim DB1 bin und da habe ich aber nur die Symbole zum auswählen, die vorher im FB1 in den Eingangs- und Ausgangsparametern deklariert wurden. Ich hab noch nicht so ganz verstanden, wie ich das jetzt hinbekomme, dass ich in EA-Feld da dieses Merkerwort rein bekomme. Auch versteh ich nicht so ganz, warum ich nicht direkt auf den Zähler zugreifen kann und den einfach auslesen kann.

LG Scouty


EDIT:

Ich glaub, ich hab das jetzt hinbekommen. Vielen Dank für Deine Hilfe. Ich werde das dann Montag in der Schule ausprobieren und hoffen, das das klappt. Wenn nicht, melde ich mich nochmal. ;-)
LG Scouty
 

Anhänge

  • FUP.jpg
    FUP.jpg
    6,6 KB · Aufrufe: 29
  • EA-Feld.jpg
    EA-Feld.jpg
    23,5 KB · Aufrufe: 30
Zuletzt bearbeitet:
Zurück
Oben