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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: Simatic Programmieren

  1. #21
    andiandi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.11.2008
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend,

    ich habe das mal in Code gebastelt:

    U E 12.4 Fußtaster
    L KT 200.0 Lade konstanten Zeitwert 2s
    SV T 1 Starten einer Zeit als verlängerter Impuls
    NOP 0
    NOP 0 (im Handbuchbeispiel sind auch 3x NOP 0, aber ich habe nicht verstanden warum?)
    NOP 0
    U T 1
    S A 21.2 Durchlaufband Einlauf
    S A 14.1 Durchlaufband Langsam
    S A 14.7 Bremse Durchlaufband


    U A 21.2 Durchlaufband Einlauf
    U A 14.1 Durchlaufband Langsam
    U A 14.7 Bremse Durchlaufband
    U E 65.0 Synchronbit
    UN E 12.2 Lichtschranke Längenmessung -B2
    SPB=Marke
    L EW 66 (wie lade ich ein Einganswort in den Akku? ein Wort sind doch zweit Byte? in diesem Fall Byte 3 und 4, Sollwert1 u. 2)
    T MW 100
    Marke

    Grüße
    Andi
    Geändert von andiandi (19.11.2008 um 00:35 Uhr)

  2. #22
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard

    Hallo,
    es ist schon spät, mal sehen ob ich noch das ganze zusammenkriege, was ich so dachte. Also, den Impuls hast Du mit einer Zeit gebastelt, ist erstmal möglich, aber es geht eleganter:
    U E 12.4 Fußtaster
    UN M1.0 Hilfsmerker
    S M1.0 Hilfsmerker
    S A 21.2 Durchlaufband Einlauf
    S A 14.1 Durchlaufband Langsam
    S A 14.7 Bremse Durchlaufband

    UN E12.4 Fußtaster
    R M1.0

    So, jetzt kriegst Du sicherlich Fragen wie das funktioniert, einfach mal anrufen, mit Worten gehts schneller.
    Zur Funktion:
    Fußtaster wird gedrückt, SPS liest im Zyklus zunächst diesen Eingang ein. Dann beginnt die Programmbearbeitung. Der Hilfsmerker sei rückgesetzt. Das VKE wird also 1, weil Fußtaster=1 und Hilfsmerker=0, die nachfolgenden S Befehle werden ausgeführt. Der Hilfsmerker wechselt also nach 1, Ausgangsvariablen für Bänder werden gesetzt. Im zweiten Teil ist E12.4, also Fußtaster noch 1, das VKE ist durch UN 0, der Reset Befehl wird nicht ausgeführt. Die Programmbearbeitung ist am Ende, jetzt werden die Ausgänge geschrieben, das heißt die physikalischen Ausgänge werden dem Zustand der Ausgangsvariablen angepaßt. Also erst jetzt laufen Die Bänder an. Dieser Zyklus ist zuende, es beginnt ein neuer, wieder mit Eingang einlesen. Der ußtaster ist noch immer 1, durch den jetzt gesetzten Hilfsmerker kann aber kein Setzen mehr erfolgen. Rest wie gehabt. Ein paar Zyklen weiter ist der Fußtaster offen, E12.4 wird 0. Im ersten Programmteil passiert nix, im zweiten wird das VKE aber 1, das heißt der Hilfsmerker wird rückgesetzt und ist bereit für neue Schweinereien. Du hast also hier einen Konstrukt, der für genau einen Zyklus aktiv ist und dann nicht mehr.

    Teil 2:
    Sieht soweit ganz gut aus, ich denke da jetzt nicht weiter drüber nach, von mir ist da noch ein Fehler drin.

    U A 21.2 Durchlaufband Einlauf
    U A 14.1 Durchlaufband Langsam
    U A 14.7 Bremse Durchlaufband
    U E 65.0 Synchronbit
    UN E 12.2 Lichtschranke Längenmessung -B2
    SPB=Marke (Bedingter Sprung, warum und wohin?)
    L EW 66 (wie lade ich ein Einganswort in den Akku? ein Wort sind doch zweit Byte? in diesem Fall Byte 3 und 4, Sollwert1 u. 2)
    T MW 100
    Marke
    Zur Funktion: Ziel ist es hier einen Längenwert des Werkstückes zu bekommen. Kann man wahrscheinlich nicht so schreiben, aber es geht hier ums Prinzip. Im Handbuch steht zum Zählermodul, des dieses blöde Syncbit bei Synchronisation gesetzt wird, ich habe aber nix zum rücksetzen gefunden. Ist gut möglich das dasselbe nur lesbar ist. Der Akku faßt ein Wort, also 2 Byte. Damit kannst Du EW 66 vollständig ablegen und dann nach MW100 transferieren. Wir wollen aber verhindern (das Band läuft ja weiter) das MW 100 mit weiterläuft. Also realisiert man hier einen Sprung um diese zwei Befehle herum, da diese immer, d.h. nicht VKE abhängig ausgeführt werden. Ich habe an diese Stelle mal Marke geschrieben. Die Sprungbedingungen denkst Du Dir aber jetzt selbst mal aus.
    U E12.2
    SPB Marke
    L EW 66
    T MW 100
    Marke

    So könnte es gehen, jetzt Du. Schreiben/Sprechen wo Du Probleme siehst. Wenn das hier alles klar ist, kommen wir zum Stoppen des Bandes an der passenden Position. Aber erst dann.

    Gruß
    Mario

  3. #23
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard

    Hallo,
    bin jetzt wieder halbwegs unter den Lebenden, geht ja noch was ich da so verzapft habe. War halt spät. Du kannst hilfs -und übungsweise mal das Band direkt mit dem Fußtaster laufenlassen und dann mittel Steuern Variable dann die Reaktion Deines MW 100 beobachten. Also Band laufenlassen, dann Lichtschranke abdecken und wieder freigeben. Nach dem Freigeben sollte der Wert in MW 100 stehenbleiben, mit abgedeckter Lichtschranke wird er zuerst 0 gesetzt und dann mit EW 66 synchron gehalten. Nachteil des ganzen ist die recht geringe Störsicherheit, wenn die Lichtschranke zwischendurch ein Bäuerchen macht, hast Du einen falschen Wert. Gehen wir erstmal nicht von aus. Die Impulsbildung ist hoffentlich verstanden. Sprünge gehen nur in FBs, aufpassen. Sinnvoll ist es jetzt schon eine gewisse Ordnung zu halten, für den FB 2 z.B. das Merkerbyte 2 als internes Byte zu verwenden. Damit weißt Du dann immer m2.schlagmichtot - ist eine Variable aus FB2. Die Zustände sind ja dann für andere Programmteile mit wichtig, z.B. Pressen usw. und da kann man sonst schon die Übersicht verlieren. Wir fangen auch noch nicht mit DBs an, das kommt auch später. Und macht Euch das mal mit dem Zyklus der SPS klar, ohne das versteht man sonst nahezu alles nicht.

    In diesem Sinne
    Mario

  4. #24
    andiandi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.11.2008
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    Wir haben das Prog gestern noch um einen Bandstop erweitert und getestet (in einem Funktionsbaustein).


    U E 12.4 Fußtaster
    L KT 200.0 Lade konstanten Zeitwert 2s
    SV T 1 Starten einer Zeit als verlängerter Impuls
    NOP 0
    NOP 0
    NOP 0
    U T 1
    S A 21.2 Durchlaufband Einlauf
    S A 14.1 Durchlaufband Langsam
    S A 14.7 Bremse Durchlaufband


    U A 21.2 Durchlaufband Einlauf
    U A 14.1 Durchlaufband Langsam
    U A 14.7 Bremse Durchlaufband
    U E 65.0 Synchronbit
    UN E 12.2 Lichtschranke Längenmessung -B2
    SPB =M001
    L EW 66
    T MW 100
    M001

    U E 13.2 -B6 Bandfreigabe nach Presszyklus
    R A 21.2 Durchlaufband Einlauf
    R A 14.1 Durchlaufband Langsam
    R A 14.7 Bremse Durchlaufband

    BE

    Man kann schön sehen wie beim EW 66 und beim MW 100 mitgezählt wird. Wenn Synchronbit gesetzt wird auf 0 resetet. Allerdings wenn das Testobjekt den Lichtschranken verläßt wird mit dem Zählen nicht aufgehört. Das EW und das MW zählen weiter bis das Band stehen bleibt.

    Die Impuls Bildung habe ich verstanden. Nur was ich nicht verstehe ist, warum man das so macht. Warum darf man es nicht so machen:

    U E 12.4 Fußtaster
    S A 21.2 Durchlaufband Einlauf
    S A 14.1 Durchlaufband Langsam
    S A 14.7 Bremse Durchlaufband

    Grüße
    Andi

  5. #25
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo andiandi,
    alles ein Problem des VKE. Beginnen wir oben mit unserem Konstrukt des Umladens in ein Merkerwort. Es ist so, das bei VKE = 0 der SPB nicht ausgeführt wird. Das heißt, das Umladen der Werte findet immer statt. Erst bei VKE = 1 wird gesprungen. Dann wird das Umladen "übersprungen" und der Wert in MW 100 sollte gleich bleiben. Ich habe Dir weiter oben bereits einen Konstrukt gebastelt, der funktionieren sollte. Probiere denselben bitte mal aus, eventuell mußt Du den Lichtschrankeneingang invertieren wenn onhe Werkstück gezählt wird.
    Zur Impulsbildung:
    U Bedingung schlagmichtot
    S Ausgang zuhauen

    U Liegt am Boden
    R Ausgang zuhauen
    heißt, das bei VKE =1 die Setzanweisung immer ausgeführt wird. Bleibt Bedingung schlamichtot aus irgendwelchen Gründen ständig anstehen, und Du hast nur kurz auftretende Halt Bedingungen, sei es durch eine Lichtschranke, so wird beim Verlassen der Halt Bedingung der Ausgang sofort wieder aktiv. Von daher führt sich dieser Vierzeiler schon selbst ad absurdum, man kann dann gleich schreiben:
    U Bedingung schlagmichtot
    UN Liegt am Boden
    = Ausgang zuhauen
    Nun mit Flanke:
    U Bedingung schlagmichtot
    U steigende Flanke
    S Ausgang zuhauen

    U Liegt am Boden
    R Ausgang zuhauen,
    sorgt für ein Verhindern des autarken Wiederanlaufes, solange die Bedingung schlagmichtot ein konstantes VKE=1 erzeugt.
    Sowas wird im übrigen auch Flankensteuerung genannt. Zeiten sind erstens begrenzt in der Menge, belasten unnötig die Systemressourcen, die Du noch dringend brauchen wirst und die auslösende Bedingung steht grundsätzlich nur solange an wie sie auch tatsächlich gebraucht wird. Letzteres verhindert unkontrollierte Reaktionen (wie oben schon angedeutet), die dann als Programmfehler hochgradigst schwer zu finden sind. Mit dem Wachsen Deiner Software wirst Du das einsehen, im gegenwärtigen Stadium sicher noch nicht.
    Baue also bitte mal die Flankensteuerung wie von mir beschrieben so ein, die Zeit raus. Und dann probiere mal mit dem Sprung, ob die Lichtschranke als Bedingung reicht. Wenn wir dann auf diese Art und Weise einen Wert erhalten können wir weitermachen.

    Gruß
    Mario

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 07.02.2011, 21:59
  2. Programmieren mit Simatic erlernen
    Von Andy Latte im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 19.11.2008, 20:09
  3. Schleife Programmieren mit Simatic????
    Von oli--pro im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 29.09.2008, 14:45
  4. Simatic S7-200 mit S7-SCL programmieren?
    Von Davood im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 19.06.2008, 19:37
  5. SPS S7 Simatic programmieren problem
    Von chrisi01 im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 22.02.2006, 21:51

Stichworte

Lesezeichen

Berechtigungen

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