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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Anfänger- Codefrage LD *close*

  1. #11
    Registriert seit
    22.06.2003
    Beiträge
    242
    Danke
    9
    Erhielt 19 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    das LD SM0.0 //immer '1'
    sitzt nur davor um es aus oder in KOP konvertieren zu können. Sog. 'Boxen' können nicht ohne vorangeschalteten Kontakt dargestellt werden.

  2. #12
    Registriert seit
    04.07.2005
    Beiträge
    817
    Danke
    54
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo!

    Wenn ich das richtig verstanden habe, dann schaltet CALL das Unterprpogramm ein und dann läuft das Unterprogramm normal durch und dann läuft das normale Programm weiter. Und wann genau verwende ich ein Unterprogramm?

    mfg andi
    mfg andi

    Was nicht passt, wird passend gemacht!

  3. #13
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.726
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Die ganze Sache dient eigentlich in erster Linie der Strukturierung des Programms,
    außerdem ist es damit möglich eine parametrierbaren Baustein zu erstellen.

    Mfg
    Manuel

  4. #14
    Registriert seit
    04.07.2005
    Beiträge
    817
    Danke
    54
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo!

    Wenn ich dann ein Programm im Unterprogramm schreibe aber im Hauptprogramm nicht das CALL verwende dann wird das Unterprogramm nicht bearbeitet oder?

    mfg andi
    mfg andi

    Was nicht passt, wird passend gemacht!

  5. #15
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    genau, und haste schon ein anderes PG kabel?.

    mfg
    dietmar

  6. #16
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von MRT
    Und wann genau verwende ich ein Unterprogramm?
    Wenn dieselbe Aufgabe wiederholt zu erledigen ist. Z.B.: Du hast 5 Meßwertaufnehmer, die Signale 4-20mA für 0-15 Bar liefern. Du willst sie auf Bar umrechnen. Dafür schreibst du dir ein Unterprogramm SBR1:

    -I VW24,6553 // 6553 = 4 mA
    LDW< 0, VW 24 // negativ, dann Drahtbruch
    = M 20.0 // Fehlermerker
    RETC // und Ende Unterprogramm, keinen Druckwert berechnen
    LD SM 0.0 // letzte Bedingung war "false", wir brauchen "true" zur Ausfürung
    // der folgenden Anweisungen
    ITD VW24,LD0 // erweitern
    DTR LD0,LD4 // nach Gleitkomma wandeln
    /R 26214.0, LD4 // durch größten Wert teilen
    *R 10.0, LD4 // *15 Bar
    MOVR LD4, VD132 // als Ergenis speichern
    RET // Ende Unterprogramm

    Im Hauptprogramm lädtst du nun die einzelnen Werte und rechnest sie um:

    LD SM0.0
    MOVW AW0,VW24 // 1.Analogeingang nach VW24, dort erwartet das Unterprogramm den
    // Wert
    CALL SBR1 // Umrechnen
    // Das Unterprogramm gibt dir im Merker 20.0 an, wenn Drahtbruch
    // aufgetreten ist und, wenn nicht, in VD132 den neuen Druck
    LD M20.0
    = M30.0 // Drahtbruch 1. Meßwert
    LDN M20.0 // nur wenn kein Drahtbruch
    MOVR VD132, VD200 // 1.Meßwert kopieren

    LD SM0.0
    MOVW AW2,VW24 // 2.Analogeingang nach VW24, dort erwartet das Unterprogramm den
    // Wert
    CALL SBR1 // Umrechnen
    // Das Unterprogramm gibt dir im Merker 20.0 an, wenn Drahtbruch
    // aufgetreten ist und, wenn nicht, in VD132 den neuen Druck
    LD M20.0
    = M30.1 // Drahtbruch 2. Meßwert
    LDN M20.0 // nur wenn kein Drahtbruch
    MOVR VD132, VD204 // 2.Meßwert kopieren
    ...
    LD SM0.0
    MOVW AW10,VW24 // 5.Analogeingang nach VW24, dort erwartet das Unterprogramm den
    // Wert
    CALL SBR1 // Umrechnen
    // Das Unterprogramm gibt dir im Merker 20.0 an, wenn Drahtbruch
    // aufgetreten ist und, wenn nicht, in VD132 den neuen Druck
    LD M20.0
    = M30.4 // Drahtbruch 5. Meßwert
    LDN M20.0 // nur wenn kein Drahtbruch
    MOVR VD132, VD216 // 5.Meßwert kopieren

    Nachteilig ist, daß das Unterprogramm den Wert immer in einer festen Speicherstelle erwartet und die Ergebnisse in festen Speicherstellen zurückliefert. Da helfen parametrierbare Unterprogramme.

  7. #17
    Registriert seit
    22.06.2003
    Beiträge
    242
    Danke
    9
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Hallo
    irgendwas wird hier durcheinandergewürfelt was die generelle Anwendung von 'call' betrifft. Nach meiner Auffassung und vor geraumer Zeit programmierter Versuchsreihen mit S7-200 ist 'call' ein unbedingter Aufruf. Also unabhängig vom VKE. Damit würde er der Step7 (3/400) Anwendung entsprechen.
    Aus der 'Hilfe': Die Operation 'UC' gleicht der Operation 'CALL' mit dem Unterschied das keine Parameter übergeben werden können ...
    Das war der einzige Hinweis auf Seiten Siemens, Habermann beschreibt ganz klar 'CALL' als unbedingt.

    Frage war/ ist nur: Ob das bei der 200-er zwangsläuig ebenfalls so sein muss ????
    Ich denke ja, kam aber nach Lesen dieses Beitrages gestern sofort ins Schwimmen. Wäre nett wenn das in meiner Sichtweise: 'CALL ist immer unbedingt' nocheinmal bestätigt bzw. richtiggestellt werden könnte von jemandem der es definitiv weiss.

    Gruss und Danke

  8. #18
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    devinitiv bedingt, schau dir mal in Fup einen SBR-Aufruf an, das EN steht glaube ich für enable (deutsch:möglich), so noch ein Beispiel:
    NETWORK 1 // Hauptprogramm
    // Im ersten Zyklus SBR_0 aufrufen
    LD SM0.1
    CALL SBR_0


    Das Beispiel ist ein Ausschnitt wenn man einen schnellen 'Zähler aufruft, und das steht sogar im Assistenten: der Zähler darf nur einmal aufgerufen werden, also ist der Befehl VKE abhängig.

    mfg

    dietmar

  9. #19
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.726
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Call ist bei der S7-200 definitiv ein bedingter Aufruf, denn wenn Call "Alleine" steht ist dies ein Fehler, erst wenn ein LD irgendwas davor steht ist es gültig.

    Diesen Krampf das alles VKE unabhängig ausgeführt wird gibt es eigentlich nur bei der 300/400er. Alleine schon diese ganzen hin her sonstwo Sprünge die ganze Zeit.

    S7-200 hat mit S7-300/400 eigentlich nur den Aufdruck Siemens gemein.

    Mfg
    Manuel

  10. #20
    Registriert seit
    04.07.2005
    Beiträge
    817
    Danke
    54
    Erhielt 11 Danke für 11 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Leider nein, im laufe der nächsten Woche kommt es!

    mfg andi
    mfg andi

    Was nicht passt, wird passend gemacht!

Ähnliche Themen

  1. Anfänger in SCL
    Von bluebird277 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 12.11.2010, 08:55
  2. Dateizugriff mit FB_file(open/write/close)
    Von freekadelle im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 18.08.2009, 21:02
  3. Anfänger
    Von amirheidelberg im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 30.04.2009, 15:08
  4. SPS-Anfänger
    Von tintin im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 30.10.2008, 15:19
  5. Für die Anfänger
    Von nourdine im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 13.06.2008, 11:00

Lesezeichen

Berechtigungen

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