Anfägerproblem: Merker

Programmierung und Software in Steuerungen

Programmierung und Software in Steuerungen

Moderator: Moderatorengruppe

Neuer Beitragvon Borg am Freitag 2. Juni 2006, 07:51

Man nutzt keine Merker mehr?
Und wie frage ich die Lokalvariable in einem anderen Baustein ab?
Wie der Name schon sagt sind diese Variablen "Lokal", gelten also nur für den Baustein in dem sie deklariert sind.
Sie können nur in diesem verwendet (abgefragt, gesetzt, rückgesetzt usw) werden.
Ohne Merker kommst du also nur zurecht solange dein Programm in einem Baustein hinterlegt ist.
Da kenne ich nicht viele.
Borg
......................................................................
....Die Wahrheit ist irgendwo da draussen....
Benutzeravatar
Borg
20147
Gold Mitglied
 
Beiträge: 347
Registriert: Montag 8. März 2004, 18:42
Wohnort: Hessen

Neuer Beitragvon jungprogramierer am Mittwoch 7. Juni 2006, 10:00

entschuldige wenn ich mich falsch ausdrückte.

Ich meine bloß, dass mann bausteininter keine Merker mehr benutzen sollte, weil es dafür STAT-Variablen bzw. TEMP-Variablen gibt, diese brauchen weniger speicher. zum anderen darf man nach din glaube ich nicht M0.0 im baustein schreiben, weil dies ein globaler merker ist und diesen musst du eigentlich lokal belegen. Desweiteren soll man glaube ich für beusteinübergreifende sachen einen global DB nutzen.

Ich weiß aber, dass man im FB oder FC nur lokalvariablen nutzen darf. Nachzulesen in DIN 61131-3

Bitte berichtige mich wenn ich falsch liege.

Grüße Tobi
jungprogramierer
20306
 
Beiträge: 9
Registriert: Montag 29. Mai 2006, 09:31

Neuer Beitragvon Borg am Freitag 16. Juni 2006, 18:31

Also davon ,dass man nur Lokalvariablen benutzen darf ist mir nichts bekannt.
Ich habe mal nach der DIN gegoogelt und zu diesem Thema nichts gefunden.

Richtig ist, dass man einen IEC-Konformen Baustein nur über Lokalvariabeln und STAT-Variabeln programmiert.
Somit ist er auf jeder S7-Steuerung funktionstüchtig.
Die STAT-Variablen werden ja beim Aufruf des Bausteins mit reellen Ein oder Ausgängen (oder was sonst noch geht) versorgt.
Diese Bausteine kann man auch mehrmals (mit unterschiedlichen InstanzDBs) aufrufen.
Z.B eine Motorensteuerung einmal programmiert, und dann für 3 verschiedene Motoren verwendet. Immer mit anderen Ein, und Ausgängen.

Hast du die DIN im Original zur Hand? Würde mich mal interessieren. Ich habe nur beim großen S gelernt. Und die kochen ja teilweise ihr eigenes Süppchen in Sachen DIN. :D
Borg
......................................................................
....Die Wahrheit ist irgendwo da draussen....
Benutzeravatar
Borg
20501
Gold Mitglied
 
Beiträge: 347
Registriert: Montag 8. März 2004, 18:42
Wohnort: Hessen

Neuer Beitragvon Atlantik am Samstag 17. Juni 2006, 15:52

Son X?Y?Z? ...
wenn das wirklich stimmt, beweisst das mal wieder wie praxisfern unsere DINs teilweise sind.
DB Aufrufe dauern ungemein länger als Merker.

Ebenso praxisfern:
- eine Anlage ohne Start-Taster, wahrscheinlich auch ohne NA
- eine Anlage die durch Stop und Run an der SPS gesteuert wird

Für die Fahrt in Mittelstellung würde man einen Befehl Referenzfahrt vorsehen.

Wenn du unbedingt beim Anlauf (also Stop nach Run) der CPU etwas Setzen/Rücksetzen willst kannst du das in den OBs 100 bis 102 (Unterschiede beachten!)machen. Diese werden einmalig vor dem zyklischen bearbeiten des ob 1 ausgeführt.

Guck mal hier, Handbücher von Siemens:
http://support.automation.siemens.com/WW/livelink.exe/15390497?nodeid0=10805161&func=ll&objId=15390497&objAction=csView&lang=de&siteid=cseus&aktprim=0&extranet=standard

Die enthalten eine super Beschreibung, auch was Hardwarekonfig bzw. rem. und nicht rem.merker angeht.

Gruß (zur Zeit aus China)
Thomas

PS: Wie willst du einen Merker beeinflussen, wenn die CPU in Stop geht? Sie geht ja extra in Stop damit das Programm nicht mehr bearbeitet wird !?!?! Überleg Dir das Konzept noch mal ...
Atlantik
20512
 
Beiträge: 9
Registriert: Samstag 17. Juni 2006, 15:22

Neuer Beitragvon Borg am Samstag 17. Juni 2006, 16:06

Joh hab ich doch gesagt, das mit dem Starttaster.

Und zur DIN sag ich mal nichts mehr.
Ich habe gestern bei Google danach gesucht. Und in allen Beiträgen die ich mir angeschaut habe, war niemals nie nich was dazu geschrieben, wie man mit Merkern zu arbeiten hat. Geschweige denn davon das man keine mehr benutzen darf.

Soweit mir bekannt ist wurde diese DIN von verschiedenen Herstellern ausgearbeitet, um einen gewissen einheitlichen Standard der Steuerungen und der Programmiersprachen zu erreichen. Nicht mehr und nicht weniger.
Borg
......................................................................
....Die Wahrheit ist irgendwo da draussen....
Benutzeravatar
Borg
20514
Gold Mitglied
 
Beiträge: 347
Registriert: Montag 8. März 2004, 18:42
Wohnort: Hessen

DIN und so...

Neuer Beitragvon jungprogramierer am Montag 19. Juni 2006, 09:13

Moin Leute.

Ich bin dabei mir mit hilfe eines automatisierungstechniklehrers selbst das sps programieren mit s7 beizubringen.

Dieser Lehrer hat automatisierungstechnik nach DIN gelernt und sagt dass baustinintern Globale symbole bzw. eingangs- und ausgangsadressen nichts zu suchen haben.

STAT Variablen sind wie merker. sie werden nicht mit adressen belegt ich debnke du verwechselst was. lokalvariablen werden mit symbolen belegt.Das geschieht im ob1.

Alles andere ist nicht nur unsinnvoll (natürlich gibt es ausnahemn, irgendwo im mexikanischen Jungel ist den Leuten die IEC [Biep] natürlich egal und die hauptsache ist, dass es funktioniert), sondern auch nicht vorschriftsgemäß. Das ist die meinung meines Lehrers. Ich bin in dieser sache immer ein wenig hin und hergerissen.

Grüße Tobi

PS: Beispiel für ein nicht nach DIN Konformes Programm in AWL:

U E0.0
=A4.0

NAch din

U #eintaster
= #motoran

Natürlich alles nur beispiele!!!!!
jungprogramierer
20536
 
Beiträge: 9
Registriert: Montag 29. Mai 2006, 09:31

Neuer Beitragvon Borg am Mittwoch 21. Juni 2006, 16:39

Und diese Lokalvariabeln #eintaster und #motoran beschreibe ich beim Bausteinaufruf mit real exestierenden Adressen wie z.B. E 0.0 und A 4.0. Das ist mir schon klar.
Jedoch muss man bei diesen Bausteinen immer einen InstanzDB miterzeugen.
Ab einer gewissen Größe wird das Ganze dann Zeitkritisch, hier hat Atlantik widerum Recht.
Ich habe bei Siemens einige Programmierkurse mitgemacht, in keinem Kurs war jedoch die Rede davon, dass man nur nach IEC programmieren darf.

Letztendlich ist doch der Programmierer dafür verantwortlich das die Anlage das tut was sie soll. Und, dass das Programm in Ordnung ist und keine Sicherheitsmängel aufweist.
Wenn nun jemand nur nach der IEC programmiert und seine
Aufgabe gelöst bekommt, ist das doch in Ordnung.
Kein Ansatz für eine Streiterei, finde ich.

Ich für meinen Teil benutze diese IEC-konformen Bausteine nur für immer wiederkehrende Funktionen (siehe meinen Einwurf mit der Stern-Dreieck Schaltung), und habe keine Scheu in den anderen Bausteinen auch Merker zu verwenden.
Borg
......................................................................
....Die Wahrheit ist irgendwo da draussen....
Benutzeravatar
Borg
20566
Gold Mitglied
 
Beiträge: 347
Registriert: Montag 8. März 2004, 18:42
Wohnort: Hessen

super

Neuer Beitragvon jungprogramierer am Donnerstag 22. Juni 2006, 11:07

Ok da ist jedem seine meinung gestattet.

Mein Lehrer siehgt das alles ein wenig eng.

Aber OK.

Etwa diese Meinung teile ich auch, jedoch versuche ich immer einigermaßen nach iEC zu programieren.

Wir hören uns.
Tobi

Man sieht dich hier ja schließlich überall
jungprogramierer
20589
 
Beiträge: 9
Registriert: Montag 29. Mai 2006, 09:31

Neuer Beitragvon Borg am Donnerstag 22. Juni 2006, 17:29

Aber nicht so oft wie Erfinderlein :D
Borg
......................................................................
....Die Wahrheit ist irgendwo da draussen....
Benutzeravatar
Borg
20605
Gold Mitglied
 
Beiträge: 347
Registriert: Montag 8. März 2004, 18:42
Wohnort: Hessen

Vorherige

Zurück zu SPS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste