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

Ergebnis 1 bis 4 von 4

Thema: S7 200 Unterprogramm für Rolladensteuerung

  1. #1
    Registriert seit
    05.11.2006
    Beiträge
    27
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS Experten,

    ich bin am verzweifeln. Ich habe schon fast alle Beiträge zum Programmieren von Unterprogrammen gelesen und auch einiges in mein Programm übernommen. Aber es tut nicht.
    Ich möchte eigentlich nur 5 Rolläden auf und zu bewegen.
    Kurzes antippen Rolladen fährt bis die programmierte Zeit abgelaufen ist.
    Taster halten für 3 sec Rolladen fährt bis der Taster losgelassen wird.

    Mit einem Rolladen tut alles nur beim einbinden des zweiten tut nicht's mehr.
    Hat noch jemand eine Idee ?

    Hab das Programm mal angehängt

    Vielen Dank im Voraus

    Frankuc
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren S7 200 Unterprogramm für Rolladensteuerung  

  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

    Zitat Zitat von frankuc45 Beitrag anzeigen
    ...Kurzes antippen Rolladen fährt bis die programmierte Zeit abgelaufen ist.
    Taster halten für 3 sec Rolladen fährt bis der Taster losgelassen wird.
    ...
    Sonst ist's immer andersrum.

    Vlt. hift dir diese Threads ja erst mal:
    1. S7-200 Rolladensteuerung mit Tip-Automatik
    und die Fortsetzung:
    2. S7-200 Zeiten und Timer in Unterprogrammen

    Bis dahin seh' ich mir Dein Programm mal an.

    PS: Fragen:
    Beim Aufruf des 2. Rollladens hast du den Merker M0.4 am EN-Eingang der nirgends gesetzt wird. Versehen oder geforct?
    Im Netzwerk 3 von Main als Erstes: Wenn NICHT IMMER_1 - also nie, wozu dann? Rolladen 1 unterdrückt?
    Warum hast Du die Symbolik noch nicht verteilt (angefangen hast du die Tabelle ja)? Wär' dann einfacher zu lesen.

    Wenn Du den "aktuellen Zählwert" als IN/OUT deklarierst, kannst Du Dir die ganzen Übergaben in die Accus mit der indirekten Addressierung sparen und direkt mit dem letzten Wert rechnen.
    Geändert von hucki (09.09.2010 um 21:02 Uhr)

  3. #3
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Frankuc,

    hab mir mal dein SPS Programm mit der Rolladensteuerung angeschaut. Mir erklärt es sich als ganz einfach, warum es beim zweiten mal nicht funktioniert. Du speichert zwar die Signale im Temp-Bereich, aber der Inhalt wird beim nächsten Bausteinaufruf (2. Rolladensteuerung) durch andere Werte überschrieben. Einfach gesagt, der Temp-Bereich ist nur so lange gültig wie der Baustein bearbeitet wird, danach sind die Daten nicht mehr gültig. Sie behalten ihren Zustand also nicht bis zum Nächsten Bausteinaufruf. Wenn du schon mit Pointern arbeitest und auch mit einem Offset für die Rolländen, würde ich am Unterprogrammanfang die Daten vom Offsetbereich in den Tempoären-Bereich schreiben. Danach kannst du mit den Daten arbeiten. Am Ende des Unterprogramm kopierst du die Daten vom Temp-Bereich wieder in den Offsetbereich zurück. Sowas in der Art.

    Code:
    Netzwerk 1
    LD SM0.0
    MOVD &VB96,AC2
    MOVW Aufstragsnummer, AC2
    MUL 4,AC2
    MOVD AC2,AC3
    +D AC2,AC3
    BMB*AC3,LD12,4
    Netzwerk 2
    
    DEIN CODE
    
    
    Netzwerk xy
    LD SM0.0
    BMB,LD12,*AC3,4
    Hoffe das ist soweit erklärlich. Schau mir aber dein Programm nochmal genau an, was sonst nicht passt. Wenn du noch fragen hast meld dich einfach.
    MfG

    Hubert

    \"Never change a running system. \"

  4. #4
    frankuc45 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.11.2006
    Beiträge
    27
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    vielen Dank für Eure Hilfe jetzt funktionierts einwandfrei.
    Ich habe alle "Merker" die ich im UP verwendet habe im ersten NW aus dem DB gelesen und im letzten NW wieder zurückgeschrieben.

    Beim Test mit zehn Rolladen war alles IO

    Jetzt kommt der Einbau ins Haus mit 32 Rolladen.
    Mal sehen ob das die CPU 226 verkraftet.

    Danke nochmal

    Gruß Frank

Ähnliche Themen

  1. Aufruf Unterprogramm / Subroutine in SCL
    Von noeppkes im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 20.07.2009, 15:33
  2. Programmaufruf im Unterprogramm SBR_0
    Von Andyzrx im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.07.2009, 09:14
  3. S7 - 200 Unterprogramm funktioniert nicht
    Von godi im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 12.08.2008, 15:00
  4. Antworten: 0
    Letzter Beitrag: 11.08.2008, 14:40
  5. S7-200 CPU 222 Unterprogramm mit Timer
    Von bmshine im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.10.2006, 14:35

Stichworte

Lesezeichen

Berechtigungen

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