Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Übungsaufgabe Safe mit 3 Zahlen

  1. #1
    Registriert seit
    25.02.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi@ all,

    zunächst einmal möchte ich mich jetzt schon bei euch für die ganzen Infos bedanken, die mir bis jetzt schon viel geholfen haben. (Dank der Sufu)
    Nun habe ich aber doch ein Problem das ich aktuell nicht lösen kann (sehe den Wald vor lauter Bäumen nicht mehr und mein Hirn schaltet aus)

    Kurz zur Aufgabe ...
    Wie in der Überschrift schon steht möchte ich ein kleines Zahlenschloss zu übungszwecken umsetzen. (Und da ich es gern kompliziert mag muss man mehr drücken als an einem normalen Zahlenschloss)
    Damit sich das Schloss Öffnet muss mit dem Schalter "GO" begonnen werden -> Eingabe der ersten Zahl -> "GO" -> zweite Zahl ... usw. -> "OPEN" -> Bolzen entriegelt.
    Mit "CLOSE" wird wieder verriegelt und der Timer läuft (hier 10sek. ... weil ja nur Übung).
    Wird eine Zahl falsch eingegeben und am ende mit "OPEN" bestätigt sperrt sich der Schrank auch wieder über den Timer.
    Wenn ich was vergessen haben einfach fragen

    Hier mein bisheriges Programm ...
    01.jpg
    02.jpg
    Momentane Probleme:
    1. Bis zur Eingabe der ersten (korrekten) Zahl läuft alles. Problem ist nur, das ich am ende ja meine Weiterschaltbedingung (M3.0) zurücksetze. Diese kann ich auch nicht wieder neu setzen (um die 2te Zahl einzugeben).
    Die Lösung ist bestimmt einfach ... aber ich sitze jetzt schon zu lange an dem Teil als das mein Hirn da noch was sinnvolles hervorbringt
    2. Ich habe in der Simulation gemerkt, das ich, wenn ich bei der ersten Zahl einfach mal jeder Ziffer Drücke und dann wieder auf "GO" drücke die SPS weiter schaltet. Was ja auch nicht Sinn und zweck ist.

    Bitte an alle fleißigen Helfer:
    Eine fertige Lösung ist zwar schön und gut ... aber wenn möglich erst mal nur ein paar Winks mit dem Zaunpfahl. Will es ja lernen. Wenn ich dann genug Pfähle zusammen habe aber der Zaun noch nicht steht nehme ich gern auch eine fertige Lösung

    Sollte ich irgendwann alles so weit habe, das es funktioniert, werde ich (meine) Lösung auch hier reinstelen.

    Bis dahin viele Liebe Grüße

    DAXX
    Zitieren Zitieren Übungsaufgabe Safe mit 3 Zahlen  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Eine Möglichkeit wäre es in einer Schrittkette umzusetzen.

    Z.B.
    Schritt 0: Eingabe starten
    Schritt 1: Erste Zahl eingeben
    Schritt 2: Zweite Zahl eingeben
    Schritt 3: Dritte Zahl eingeben
    Schritt 4: Prüfung

    Die eingegebenen Zahlen müsstest du dir dann wie auch immer merken.

  3. #3
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.470
    Danke
    506
    Erhielt 218 Danke für 193 Beiträge

    Standard

    setz den M3.0 halt erst am Ende zurück (oder nach einer Falscheingabe)
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

  4. #4
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    zu 1.

    mach doch mal nicht am Ende von Netzwerk 4
    u M 4.0
    r M 3.0
    und am Ende von Netzwerk 5
    u M 4.1
    r M 3.0
    und am Ende von Netzwerk 6
    u M 4.2
    r M 3.0
    sondern ganz am Ende ein neues Netzwerk 8
    u (
    o e 3.0
    o e 3.1
    o e 3.2
    o e 3.3
    o e 3.4
    o e 3.5
    o e 3.6
    o e 3.7
    o e 4.0
    o e 4.1
    )
    r M 3.0
    Dann laufen alle Erkennungen für die erste, zweite und dritte Zahl, und erst danach wird die Startbedingung gelöscht, die dann mit <GO> wieder gesetzt werden muss...

    zu 2.

    im Netzwerk 7 muss natürlich auch noch ein ODER-Pfad, der bei NOT ( m 4.0 u m 4.1 u m 4.2 ) u ( taste_01 o taste_02 etc. ) , der den Timer zum Sperren aufzieht.

    Klar?
    Sonst weiter fragen! Wir wollen ja auch, dass Du was lernst

  5. #5
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo DAXX,

    Und? Bist Du weiter gekommen?

    Beim Experimentieren mit Deinem Code sind mir noch ein paar andere Dinge aufgefallen:

    Der Timer sollte die Tür besser auch sperren, wenn jemand zweimal hintereinander GO drückt.
    Oder hintereinander zwei Zahlen ( auch die richtigen ) eingegeben werden, ohne dazwischen GO zu drücken.
    Ohnehin bei jeder falschen Zahl.
    etc.

    Wenn Du das in AWL ausprogrammieren willst?!

    Außerdem sollte man immer von vornherein so programmieren, dass man jemandem Fremden den Code geben kann und sagt: Ändere mal bitte das Schloss auf 386 und mach, dass man nach der ersten und nach der zweiten Zahl zweimal auf GO drücken muss...

    Viel Erfolg! Und halte uns auf dem Laufenden! Auch, wenn Du aufgegeben hast!
    Grüße Tom

  6. #6
    DAXX ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.02.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo an alle die schon geantwortet haben.
    Wenn ich dazu komme, werde ich alles nacheinander durch gehen und mir anschauen.
    Das Problem bei mir ist, ich bin kein Schüler und habe die Software auch nicht bei mir zu Hause.
    d.h.: Ich kann nur programmieren, lernen und testen wenn ich auf Arbeit bin.

    Zudem muss ich so schnell es eben geht die SPS beherrschen und Sicher Programmieren können (aufgeben ist daher keine Option Tom... )
    Einlernen werde ich mich auf S7 (um alles zu verstehen)
    Später soll ich die FANUC Steuerung (Ladder III) lernen
    und in 2-3 Jahren Soll ich die Bedieneroberfläche für unsere Firma "Entwerfen" und in die SPS reinhacken.

    Kurz ... auch wenn meine Antworten hier etwas länger dauern ... werde ich mein Vorankommen hier Melden

    Gruß DAXX

  7. #7
    DAXX ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.02.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So ... habe jetzt noch einmal drüber geschaut.

    @Thomas_v2.1
    Von dieser Schrittkette habe ich schon oft gelesen ... aber wie "aktiviere" finde ich die denn in S7? Unter der Hilfe wird nichts gefunden.
    Bei sps-lehrgang finde ich nur diesen Satz:
    Schrittketten können schon mit den bereits bekannten Programmiersprachen AWL, KOP und FUP implementiert werden. Lässt die Programmierumgebung den Einsatz von Strukturierungsmitteln zu, so wird die Programmieraufgabe deutlich vereinfacht. Weiterhin existieren spezielle Programmiersprachen, die speziell auf die Erstellung von Schrittketten zugeschnitten sind und graphische Programmiersysteme (Graph7).
    Da steht zwar drin das es in AWL auch geht ... aber wie???

    @winnman
    Klar wäre das eine Lösung! Und einfach wäre es auch. Aber ich möchte die Aufgaben so umsetzen wie sie gestellt sind.

    @Tom...
    Der Tipp mit dem entfernen in Netzwerk 4, 5, 6 und dem hinzufügen von NW8 ist absolut genial!
    Problem bei der Simulation ist jetzt nur ... (Code ist ja 911)
    Sobald ich die erste "1" drücke Setzt er mir gleich beide Merker (M4.1 & M 4.2). Warum er das macht ist mir klar ... mal sehen wie ich das noch ausmerze.

    Das mit dem 7ten Netzwerk und dem ODER-Pfad konnte ich jetzt nicht nachvollziehen. Denn wenn jede Zahl M3.0 Zurück setzt habe ich das ursprüngliche Problem ja gar nicht mehr.

    ... kommen wir zu deinem 2ten Post ...

    In meinen Augen Sperrt der Timer ja den Safe. Grund dafür ist ja, das der Timer beim Speichern der Korrekt eingegebenen Zahl, immer abgefragt wird. Wenn der läuft geht ja nix in meinem Code.
    Den Safe bei jedem übel zu "sperren" also 2x GO oder direkt bei einer Falschen Zahl, erachte ich hier nicht als Sinvoll.

    Und wie meinst du das hier ...
    Außerdem sollte man immer von vornherein so programmieren, dass man jemandem Fremden den Code geben kann und sagt: Ändere mal bitte das Schloss auf 386 ...
    Es kann doch jeder ändern. Oder meinst du das wegen der Übersichtlichkeit? Gibt es da Empfehlungen wie man Programmieren sollte???

    Gruß Roland

    P.S.: Das Programm setze ich hier wieder rein, wenn ich den einen Fehler ausgemerzt habe (den mit der 1 drücken und beide Merker setzen).

  8. #8
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Oder meinst du das wegen der Übersichtlichkeit? Gibt es da Empfehlungen wie man Programmieren sollte???
    Genau so meine ich das.
    Code soll natürlich funktionieren, aber eben auch lesbar sein.

    Die Schrittkette empfielt sich bei Dir, das das Problem tatsächlich eine sequentielle Abfolge ist.
    In AWL nimmt man sich eine Variable "Schritt" oder "Job" vom Typ Integer und hängt da alles dran.

    Wenn der Sperrtimer abgelaufen ist, also wieder eine Eingabe möglich, wird "Schritt" auf 1 gesetzt.

    Wenn Schritt "1" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "1" ist und jemand drückt <GO>, wird "Schritt auf "2" gesetzt.

    Wenn Schritt "2" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "2" ist und jemand drückt die richtige erste Zahl, wird "Schritt auf "3" gesetzt.

    Wenn Schritt "3" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "3" ist und jemand drückt <GO>, wird "Schritt auf "4" gesetzt.

    etc...

    Damit ergeben sich sehr viele einfach aufgebaute Netzwerke und die Sache bleibt übersichtlich.
    Wichtig ist bei der Schrittkette, dass man aufpasst, dass man sich nicht "festfahren" kann!

    Viel Erfolg!
    Grüße Tom

  9. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von Tom... Beitrag anzeigen
    Wenn Schritt "1" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "1" ist und jemand drückt <GO>, wird "Schritt auf "2" gesetzt.

    Wenn Schritt "2" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "2" ist und jemand drückt die richtige erste Zahl, wird "Schritt auf "3" gesetzt.

    Wenn Schritt "3" ist und jemand drückt eine falsche Taste, wird der Safe wieder per Timer gesperrt.
    Wenn Schritt "3" ist und jemand drückt <GO>, wird "Schritt auf "4" gesetzt.
    Vom "Sicherheitsaspekt" ist es allerdings nicht so günstig nach einer falsch eingegebenen Stelle sofort abzubrechen.
    Damit benötige ich bei drei Stellen nur noch maximal 30 Versuche um den Code zu knacken, anstelle der sonst maximalen 1000 wenn ein falscher Code immer erst am Ende der Eingabe überprüft, bzw. eine Falscheingabe signalisiert wird.

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.306
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von DAXX Beitrag anzeigen
    (Und da ich es gern kompliziert mag muss man mehr drücken als an einem normalen Zahlenschloss)
    Damit sich das Schloss Öffnet muss mit dem Schalter "GO" begonnen werden -> Eingabe der ersten Zahl -> "GO" -> zweite Zahl ... usw. -> "OPEN" -> Bolzen entriegelt.
    Mit "CLOSE" wird wieder verriegelt und der Timer läuft (hier 10sek. ... weil ja nur Übung).
    Man kann die Code-Eingabe ja kompliziert gestalten, was aber nicht notwendig heißt, daß es auch kompliziert programmiert werden muß.
    Im Prinzip hast Du doch einfach ein 6-stelliges Codeschloß, wobei jede zweite Eingabe die Taste "GO" sein muß.

    Ich würde ein Schieberegister (FIFO) für 6 bis 8 Zeichen programmieren und bei jedem Tastendruck ein zugehöriges Zeichen in den FIFO einschieben. Nach richtiger Eingabefolge steht die richtige Zeichenfolge im FIFO drin, was das Schloß entriegelt.
    Ist das Schloß offen, dann führt jeder Tastendruck zum Schließen des Schlosses, oder das Einschieben in den FIFO wird gesperrt bis CLOSE gedrückt wird. CLOSE braucht einfach nur irgendein Zeichen in den FIFO einschieben.
    Wozu Du noch einen Timer brauchst, erschließt sich mir nicht.

    Beispiel:
    * = GO
    # = OPEN
    C = CLOSE

    Key: 123
    Eingabe --> '*1*2*3#' --> richtig, Schloß öffnen
    'CLOSE' --> '1*2*3#C' --> falsch --> Schloß schließt

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 03.12.2014, 15:03
  2. Übungsaufgabe (CoDeSys)
    Von automationLab im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 05.04.2014, 12:34
  3. Verdrahtungskonzept Fail-Safe mit Siemens SM326
    Von matzel im Forum Schaltschrankbau
    Antworten: 0
    Letzter Beitrag: 22.03.2011, 11:54
  4. programmieren mit negativen zahlen
    Von Mike369 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 14.09.2009, 16:20
  5. Zähler mit mehreren Zahlen vergleichen
    Von sps-fuzzy im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 23.01.2006, 14:15

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •