SPS

Hier findet Ihr alles zum Thema Berufschule
mechamanu
Newbie
Beiträge: 5
Registriert: So 19. Apr 2009, 23:00

Beitrag von mechamanu » Di 4. Jan 2011, 16:37

Merker sind Speicherplätze für Zwischenergebnisse, die über Bausteingrenzen (z.B. FC1 oder FB33 etc.) hinaus Gültigkeit haben. Merker können in den Formaten Bit, Byte, WORD und Doppelwort verwendet werden. Hierbei ist zu beachten, dass das Merkerbyte2 (MB2) alle Merker von M2.0 bis M2.7 beinhaltet! Bei Verwendung des MB2 dürfen diese also nicht nochmals für andere Zwecke verwendet werden. Gleiches gilt für das Merkerwort2 es beinhaltet das MB2 und das MB3(!!!), also alle Merker von M2.0-M2.7 und M3.0 bis M3.7. Hinweis: Innerhalb eines Bytes werden die einzelnen Bit von rechts nach links gelesen.

Wenn noch Fragen auftreten kann dir dieser Link weiterhelfen, einfach auf Systemsoftware für S7-300/400 Programmentwurf Kapitel 5 und deine Fragen werden beantwortet:
http://www.es.fh-mannheim.de/sp/simatic/s7.htm

Gruß mechamanu
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Re: SPS

Beitrag von D4e2003 » Di 4. Jan 2011, 16:38

Anne hat geschrieben:Hi ich hab mal ne Frage zu Merkern in Step 7, Es gibt ja die Unterteilungen in MB (Merkerbit) die sich nur 0 und 1 zustand merken können und MW (Merkerwort) die sich Zahlen von 0 bis 999 merken können, woher weiß ich wann ich was einsetzen muss???
Kleiner Grundlagenkurs:

Ein MB (Merkerbyte) setzt sich aus 8 Bit zusammen z.B. M0.0-M0.7 entspricht Merkerbyte 0.
Zwei Merkerbyte hingegen (16bit) ergeben zusammen ein Merkerwort
Zwei Wörter ergeben ein Merkerdoppelwort

Merker sind so etwas wie Hilfsspeicher und eigentlich "versiemenst" Wenn man nach IEC Norm programmiert gibt es keine Merker!

Nehmen wir mal an du möchtest den Zustand eines SR oder RS Gliedes in einer anderen Funktion oder in einem anderem Netzwerk erneut abfragen, dann setzt du ein Merkerbit ein (M0.0), da der Zustand nur "low" oder "high" sein kann!


Möchtest du Zählwerte vergleichen oder ausgeben lassen , entweder über den Dual oder Dezimalausgang eines Counters, so wird der Wert in einem Merkerwort abgelegt. Da es sich bei diesem Wert um eine Intergerzahl (Ganzzahl) oder Dualzahl handelt. Diese haben eine länge von 16bit. Also passt dieser Zahlenwert nicht mehr in ein einzelnes Bit sondern man nimmt dafür eine zusammenhängede "Variable" in dem Falle ein ganzes Merkerwort.

Gleiches gilt bei den arithmetischen Operation (Berechnungen)einer SPS. Dort arbeitest du entweder mit Ganzzahlen oder REAL Zahlen. REAL Zahlen haben eine Länge von 32bit und benötigen um abgelegt zu werden ein Merkerdoppelwort.


Wenn man professionell programmiert, nimmt man auf Merker eigentlich keine Rücksicht mehr. Man legt die Daten in Globalen oder Instanzdatenbausteinen ab und kann auf diese dann lesend oder schreibend zugreifen.

Hoffe konnte weiterhelfen.

Wenn Fragen sind einfach fragen!

Gruß Dennis
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
Benutzeravatar
Prayer192
Fachmann
Beiträge: 448
Registriert: So 12. Jul 2009, 23:00

Re: SPS

Beitrag von Prayer192 » Di 4. Jan 2011, 18:35

Anne hat geschrieben:Unterteilungen in MB (Merkerbit) die sich nur 0 und 1 zustand merken können und MW (Merkerwort) die sich Zahlen von 0 bis 999 merken können,
ein merkerbit kann nur zwei zustanden haben (true oder false), das ist richtig aber ein merkerwort kann nicht von 0 bis 999 zahlen speichern, sondern von 0 bis 2 hoch 16 minus eins (16, da es zwei bytes in der sps technik sind). daher sagt man meistens, dass der wertebereich von 0 bis FFFF (Hex) bzw von 0 bis 65535 geht.

wenn du wissen möchtest welche zahlen du mit einen datentyp darstellen kannst musst du einfach 2 hoch die bitanzahl rechnen (zumindest bei den ganzzahligen ohne komma), dann erhält man die anzahl der möglichen zustände. da du meistens von 0 bis x zählst (also im positiven bereich bleibst) kannst du einfach die maximale anzahl der zustände minus eins rechnen und erhältst die höchste zahl die du darstellen kannst.
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Re: SPS

Beitrag von D4e2003 » Di 4. Jan 2011, 20:59

Prayer192 hat geschrieben:
Anne hat geschrieben:Unterteilungen in MB (Merkerbit) die sich nur 0 und 1 zustand merken können und MW (Merkerwort) die sich Zahlen von 0 bis 999 merken können,
ein merkerbit kann nur zwei zustanden haben (true oder false), das ist richtig aber ein merkerwort kann nicht von 0 bis 999 zahlen speichern, sondern von 0 bis 2 hoch 16 minus eins (16, da es zwei bytes in der sps technik sind). daher sagt man meistens, dass der wertebereich von 0 bis FFFF (Hex) bzw von 0 bis 65535 geht.

wenn du wissen möchtest welche zahlen du mit einen datentyp darstellen kannst musst du einfach 2 hoch die bitanzahl rechnen (zumindest bei den ganzzahligen ohne komma), dann erhält man die anzahl der möglichen zustände. da du meistens von 0 bis x zählst (also im positiven bereich bleibst) kannst du einfach die maximale anzahl der zustände minus eins rechnen und erhältst die höchste zahl die du darstellen kannst.
Wohhhoohooo............immer langsam! Sie sagt doch sie fängt gerade mal an. Ist ja richtig was du sagst, aber nicht sofort mit HEX um die Ecke. Man fängt ja nicht sofort mit der Mantisse und Bias an.
Ersteinmal ist es wichtig die Arbeitsweise einer Siemens S7 zu kennen. Wie ist sie aufbaut, wie sieht das mit dem Blockschaltbild aus, wie arbeitet eine SPS überhaupt. Warum sollte man keinen Ausgang doppelt zu weisen.
Was ist ein Bit, was ein Byte usw. Danach sollte man mal etwas mit dem dualen Zahlensystem zu tun bekommen ;)
In diesem Zusammenhang kann man dann auf die Elementaren Datentypen eingehen.

Ist genau so wenn man jemandem sagt.........eh BCD ist ja die Untermenge von HEX oder nicht...?
Zuletzt geändert von D4e2003 am Do 6. Jan 2011, 17:50, insgesamt 2-mal geändert.
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Re: Frage zu Merkerbit

Beitrag von D4e2003 » Do 6. Jan 2011, 16:36

Anne hat geschrieben:Hi hab noch ne frage. Und zwar: Wie kann ich ein Merkerbit in mein Programm einfügen? Bei einem Timer zum Beispiel kann ich ja das Merkerwort am Ausgang Dual oder Dezimal anbringen. Aber wo kann ich ein Merkerbit einbringen???
Gruß
An den beiden Ausgängen gar nicht.

Du kannst den Zustand des Timers aber abfragen, da der ja nur zwei Zustände annehmen kann, reicht dafür ein bit.

Dazu miusst du z.B am nächsten Netzwerk folgendes eingeben

AWL: (einfache Zuweisung)

u T1 // Zustand des Timers T1
= M 20.0 // "true" or "false" Zustand im Merkerbit 20.0

Den Merker M 20.0 kannst du dann an einer beliebigen Stelle deines Programmes weiterverarbeiten.

Damit hast du den Zustand des Timers in einem Merkerbit abgelegt.

Eine andere Alternative ist den Ausgang "Q" des Timer zu verwenden

U E 0.0 //Eingang E0.0 setzt den Timer
L S5T#1S // Lade Zeitwert von 1s
SE T 1 // Einschaltverzögerung Timer "T1"
U T 1 // Verknüpfe nachfolgend den Timer mit dem Merker M20.0
= M 20.0


Gruß Dennis
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Re: Merker

Beitrag von D4e2003 » Do 6. Jan 2011, 17:39

Anne hat geschrieben:Ah ok, danke.
Wenn ich jetzt aber in FUP programmiere wie mach ich es dann? oder kann ich merker nur in AWL programmieren?
Weil unser Lehrer meinte dass wir nur lernen in FUP zu programmieren und uns AWL und KOP gar nicht anschauen...
Gruß
Das zeugt ja nicht gerade von der Lust eures Lehrers euch zu unterrichten.

Die verschiedenen Sprachen sollte man sich mal angeschaut haben.

Verbale und grafische Programmiersprachen.

Ist ja keine große Sache sich mal FUP Netzwerke in AWL anzuschauen.

Habe dir ein kleines Beispiel hochgeladen.

Aber bitte nicht wie ich das Programm im OB1 schreiben. War jetzt nur zu Testzwecken.
Das Programm gehört in eine Funktion oder in einen Funktionsbaustein


http://img413.imageshack.us/i/unbenanntfux.jpg/

EDIT: habe das Bild nochmal neu hochgeladen. In der Eile sind da nen paar Schreibfehler drin gewesen
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
Benutzeravatar
Prayer192
Fachmann
Beiträge: 448
Registriert: So 12. Jul 2009, 23:00

Beitrag von Prayer192 » Do 6. Jan 2011, 23:51

aber hat dein lehrer dir gesagt, dass ihr am besten mit merkerbits arbeitet?
du kannst ja auch recht leicht variablen erstellen, in den du zustände speichern kannst und meines wissens nach ist das direkte einbinden der merkerbits durch eine norm verboten (berechtigter weise).
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Beitrag von D4e2003 » Fr 7. Jan 2011, 16:23

Prayer192 hat geschrieben:aber hat dein lehrer dir gesagt, dass ihr am besten mit merkerbits arbeitet?
du kannst ja auch recht leicht variablen erstellen, in den du zustände speichern kannst und meines wissens nach ist das direkte einbinden der merkerbits durch eine norm verboten (berechtigter weise).
Die parametrierbaren FC`s mit Variablen kommen in der Schule recht spät.
Die Deklarationtabelle lernt man leider meistens viel zu spät kennen.

Aber man muss sich einfach mal vor Auge halten, das zu 90% in den Schulen die Lernplattformen von Siemens stammen. Und man soll ja lernen eine S7 (meistens) zu programmieren. Also muss es nicht nach Norm sein. Siemens bietet nun mal die Möglichkeiten. Nachteil ist, man lernt kaum bibliotheksfähige Bausteine zu erstellen, die man eventuell später einmal wieder verwenden kann.


Aber richtig ist, dass nach IEC 61131 Merker nicht verwendet werden dürfen. Und Funktionen dürfen nur einen Ausgang, den ret_val besitzen.
Zuletzt geändert von D4e2003 am Fr 7. Jan 2011, 23:20, insgesamt 1-mal geändert.
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
Benutzeravatar
Prayer192
Fachmann
Beiträge: 448
Registriert: So 12. Jul 2009, 23:00

Beitrag von Prayer192 » Fr 7. Jan 2011, 23:15

D4e2003 hat geschrieben:Die parametrierbaren FC`s mit Variablen kommen in der Schule recht spät.
Die Deklarationtabelle lernt man leider meistens viel zu spät kennen.
...
Aber ist richtig ist, dass nach IEC 61131 Merker nicht verwendet werden dürfen. Und Funktionen dürfen nur einen Ausgang, den ret_val besitzen.
bei mir in der berufsschule haben wir blos gleich instanzbausteine verwendet (ok wir wussten nicht genau warum) und haben bis zum ende nie mit merkern gearbeitet. deswegen war ich über die programmierung auch zu anfang etwas erstaunt aber ok wenn die meisten zuerst mit merkern arbeiten ist es wahrscheinlich leichter zu verstehen was sie machen.
D4e2003
Member
Beiträge: 114
Registriert: Fr 7. Mär 2008, 00:00

Re: SPS

Beitrag von D4e2003 » Sa 8. Jan 2011, 13:38

Anne hat geschrieben:HI
weiß jemand ob man das Programm zur Siemens Step7 auch irgendwo kostenlos downloaden kann?
gru
Es gibt eine Demo Version vom Step 7 lite. Die ist zum Üben recht gut.

http://support.automation.siemens.com/W ... aller=view
* freiberuflicher Dozent SPS-Technik und Mechatronik
* SPS Techniker
* Industriefachkraft SPS Technik
* angehender staatlich geprüfter Techniker Fachrichtung Elektrotechnik Schwerpunkt Automatisierungstechnik (2009-13)
Antworten