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

Ergebnis 1 bis 9 von 9

Thema: Lauflicht programmieren .... mit S7-200

  1. #1
    Registriert seit
    04.07.2013
    Ort
    Wien
    Beiträge
    9
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallohallo liebes Team


    wieder einmal stehe ich an .... - die Hilfedatei bzw PDF ist mir momentan keine Hilfe, drum schreibe ich hier

    mein Anliegen :

    ich spiele mich momentan mit den Grundfunktionen herum und blicke nicht dahinter - Ziel soll sein mit einem Schieberegister ein, z.B. Byte zu definieren, welches in einem definierten Takt weiter geschoben wird -
    also Byte 00000000 - Start mit einem eingeschobenem Bit, und mit jedem Takt soll es geschoben werden ...
    00000001
    00000010
    00000100
    00001000
    00010000
    00100000
    01000000
    10000000
    und schiebt es wieder am Anfang :
    00000001
    usw


    Ok, Schieberegister SHL oder SHR ist mir klar ... Takt ist auch kein Problem ... um 1 weiterschieben behirne ich glaub ich auch - nur, wie greife ich darauf zu ?
    Wenn ich den MB1 als Ausgang definiert habe, wie definiere ich pro stelle nen Ausgang ? ... - es soll ja dann der LSB (Stelle ganz rechts) beim A0.0 leuchten, MSB (Stelle ganz links) beim A0.7 (hypothetisch).

    ist das dann MB1.0 und MB1.1 usw für die Bit-Stelle ? .... klapt irgendwie leider nicht so ....

    habt Ihr vielleicht eine kleine Gedankenhilfe für mich ? .... bin leider mit der S7-200 recht neu erst unterwegs, und kenne leider nur die LOGO ...



    danke vorab für Eure Hilfe

    Andy
    Zitieren Zitieren Lauflicht programmieren .... mit S7-200  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Die Ausgangs-Bits A0.0 bis A0.7 bilden gleichzeitig das Ausgangsbyte AB0, genau wie die Merkerbits M1.0 bis M1.7 das Merkerbyte MB1 bilden
    Wenn Du also das Merkerbyte MB1 auf das Ausgangsbyte AB0 überträgst, übernehmen die einzelnen Ausgangsbits den Zustand der zum MB1 gehörenden Bits.

    Das bedeutet, nachdem Du Dein MB1 geschoben hast, den neuen Zustand auf das AB0 übertragen:
    Code:
    LD     Immer_ein:SM0.0
    MOVB   MB1, AB0
    Oder gleich das AB0 schieben (ungetestet):
    Code:
    LD     E0.0
    LPS
    U      Takt_1s:SM0.5
    EU
    SLB    AB0, 1
    LRD
    UB=    AB0, 0
    MOVB   1, AB0
    LPP
    NOT
    MOVB   0, AB0




    PS: Ich liebe es, das man bei der S7-200 auch in KOP/FUP auch mit nur einem Byte rechnen, schieben, vergleichen usw. kann.

  3. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    AndyKa (10.07.2013)

  4. #3
    AndyKa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2013
    Ort
    Wien
    Beiträge
    9
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke -- nur 2 Fragen noch :

    das Byte hat ja 8 Bit - aber die S7-200 Standart nur 6 Ausgänge - also A0.0 bis A0.5 - was passiert mit A0.6 und A0.7 beim AB0 Byte ? ... gibts dann dunkelphasen beim "Schieben = leuchten" ? .... - sorry, kanns erst morgen testen bis ich wieder zur SPS kann ...

    bzw., Frage 2 .... wo gibt es sinnvolle Beschreibungen zu diesen Funktionen ? :

    Eingang_001.jpg


    lieben Dak für Dein Bemühen

    Andy

  5. #4
    AndyKa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2013
    Ort
    Wien
    Beiträge
    9
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    .... bin grad so schön drinnen ....

    stimmt das ? - ein "richtiges" Lauflicht ... - läuft links - rechts - links - rechts ......

    Code:
    Network 1 // 2 Sekunden Timer
    LDN    T36
    TON    T36, +200
    
    Network 2 
    LDW<=  T36, +100
    =      M0.0
    
    Network 3 //
    LD     E0.0
    LPS
    U      M0.0
    EU
    UN     M2.1
    SLB    AB0, 1
    LRD
    U      M0.0
    EU
    UN     M2.0
    SRB    AB0, 1
    LRD
    UB=    AB0, 0
    MOVB   1, AB0
    LPP
    NOT
    MOVB   0, AB0
    
    Network 4 // Rauf
    LD     SM1.1
    LDB=   AB0, 0
    NOT
    U      M2.0
    OLD
    =      M2.0
    
    Network 5 // Runter 
    LDB=   AB0, 0
    LDB=   AB0, 7
    NOT
    U      M2.1
    OLD
    =      M2.1

    oder liege ich da total falsch ??

  6. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Meine hat alle 8 Ausgänge, also A0.0 bis A0.7.


    Wenn Du Lampen nicht anschließen kannst, weil es keine realen Ausgänge gibt, werden diese auch nicht leuchten.


    Das Programm prüft nicht, ob alle Ausgänge auch wirklich vorhanden sind. Für die Arbeitsweise des Programms spielt das ja auch nicht wirklich 'ne Rolle. Nur die Übertragung der berechneten neuen Zustände auf die realen Ausgänge ist in diesem Fall nicht möglich.
    Willst Du die dadurch entstehenden Dunkelphasen vermeiden, mußt Du das Programm entsprechend anpassen und das Bit x.0 eher wieder setzen.


    Alle Befehle, die in dieser Shortlist aufgeführt sind, findet man auch im linken Baum unter Operationen. Dort anklicken (oder auf die im Programm eingefügte Operation) und dann auf F1 (oder über das Kontextmenü) -> die Hilfe hilft!

  7. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    AndyKa (10.07.2013)

  8. #6
    AndyKa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2013
    Ort
    Wien
    Beiträge
    9
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    habe leider nur die CPU 222 ... die hat nur 6 Ausgänge ... aber, ich denke soweit hab ich jetzt kein Problem das Byte bei 5 auf 0 zu setzen

    und die Hilfe ist recht gut und schön, aber man muss sich doch auch einiges erarbeiten bei der Hilfe, weil dann doch nicht alles drinnen steht .... wär schö eine Gesamtübersicht zu haben von den Zuweisungen ....

  9. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Ich würd's so lösen:
    Code:
    Network 1 //  2 Sekunden Timer
    LDN    T37
    TON    T37, +20
    
    Network 2 // Lauflicht
    LD     E0.0
    LPS
    U      T37
    LPS
    U      M0.0
    SLB    AB0, 1
    LPP
    UN     M0.0
    SRB    AB0, 1
    LPP
    LPS
    UB=    AB0, 0
    MOVB   1, AB0
    LPP
    NOT
    MOVB   0, AB0
    
    Network 3 //  Richtung
    LD     A0.0
    LD     A0.7
    NOT
    U      M0.0
    OLD
    =      M0.0
    Du hast 2 Richtungen und ein Bit hat 2 Zustände. Es reicht also eins, um die Richtung festzulegen.

    Dein Timer ist immer nach 2 Sekunden nur genau einen Zyklus wahr. Ist doch ideal, um genau dann die Bits zu schieben.
    Mit dem Timerwert-Vergleich hast Du ein Bit, das immer eine Sekunde und damit mehrere Zyklen lang wahr ist. Deshalb benötigst Du dabei eine Flankenauswertung, damit nur im ersten Zyklus nach dem Wahr-Werden geschoben wird.
    Nachteil erkannt?

    Die Statusbits (SMB1) müssen immer direkt nach der Schiebeoperation (oder welche Operation man überwachen will) ausgewertet werden. Erfolgen noch Opertionen dazwischen, verändern diese auch wieder die Statusbits.

    Ist hier aber auch gar nicht nötig, diese auszuwerten. Ich geh' mal davon aus, Du erkennst bei mir, wann die Richtung geändert werden muss? Es sei denn, die äußeren Bits sollen immer die doppelte Zeit leuchten (1x für hin, 1x für zurück).

    Die Timerauflösung würde ich nur so genau, wie unbedingt nötig auswählen. Von denen mit 10ms Auflösung hast Du nur 8 und mit 1ms sogar nur 2 zur Verfügung. Wenn man sich das Quasen gar nicht erst angewöhnt, braucht man es sich auch nicht wieder ab zu gewöhnen.

  10. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    AndyKa (11.07.2013)

  11. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von AndyKa Beitrag anzeigen
    habe leider nur die CPU 222 ... die hat nur 6 Ausgänge ... aber, ich denke soweit hab ich jetzt kein Problem das Byte bei 5 auf 0 zu setzen
    5 so oder so nicht! Sondern bei meinem ersten Beispiel 2#01000000 = ?
    Und auf 0 auch nicht!




    Zitat Zitat von AndyKa Beitrag anzeigen
    und die Hilfe ist recht gut und schön, aber man muss sich doch auch einiges erarbeiten bei der Hilfe, weil dann doch nicht alles drinnen steht .... wär schö eine Gesamtübersicht zu haben von den Zuweisungen ....
    Du kannst Dir zwar das Handbuch von Siemens runterladen, aber im Wesentlichen entspricht es der Hilfe. Nur in dem Ausgedruckten blättert es sich besser.
    Und ich persönlich finde die Hilfe von MicroWin um einiges verständlicher als die von Step 7. Vor allem die Beispiele unter den Beschreibungen (noch dazu in allen 3 Sprachen) fand' und find' ich oft sehr hilfreich. Die sind mir am Anfang gar nicht so aufgefallen.

  12. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    AndyKa (11.07.2013)

  13. #9
    AndyKa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2013
    Ort
    Wien
    Beiträge
    9
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ohhh - Denkfehler

    es muss natürlich der Bytewert sein .... also in meinem Fall fürs erkennen des siebenten Ausgangs natürlich als Dezimalwert : 64 !!!! ... und dann 1 zuweisen
    aber deine Lösung gefällt mir weit besser
    und vielen Dank bzgl. der hilfreichen Tips zum Umsetzen ... - das mit den 1ms, 10ms und 100ms hatte ich gesehen ... aber nicht so beachtet .... lieben Danke ...

    werde deine Infos beherzigen
    Geändert von AndyKa (11.07.2013 um 10:26 Uhr)

Ähnliche Themen

  1. Sonstiges S7-200 mit TD200 programmieren
    Von kicker im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.04.2013, 09:12
  2. Simatic S7-200 mit S7-SCL programmieren?
    Von Davood im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 19.06.2008, 19:37
  3. S7-200 mit Step7 prof. programmieren?
    Von Marco_Witte im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 28.12.2006, 22:15
  4. möchte BOSCH CL 200 mit C++ programmieren
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 15.10.2004, 21:24
  5. S7-200 mit winsps-S7 programmieren?
    Von muedchri im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.11.2003, 11:43

Lesezeichen

Berechtigungen

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