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

Ergebnis 1 bis 3 von 3

Thema: Brauche Hilfe bei einer SCL-Programmierung

  1. #1
    Registriert seit
    05.01.2012
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich möchte einen SCL-Baustein programmieren und hänge total fest. Ich habe auch noch nicht so viel Erfahrung im programmieren von SCL, also habt bitte Nachsicht mit mir.
    Im Anhang habe ich den Code in Textform angehängt, hoffe man kann damit was anfangen

    Also die Aufgabenstellung:

    Es geht darum max 24 MV-Süpulen zu schalten zu zwar einmal Automatisch ein über einen Takt z.B. Taktmerker Mx.5 (1s) oder über im Handbetrieb über Knebelschalter Takt vorwärts (ein)/rückwärts(aus).
    Die besonderheit ist das ich einen DB61 mir erstellt habe wo ein Bitmuster hinterlegt ist für die A-Seite bzw. die B-Seite der Ventile. Diese Bitmuster möchte ich Taktweise in den Ausgangs-DB50 schreiben.
    Das Bitmuster für z.B. 12 Bi-stabile MV heißt dann A-Seite 1010 1010 1010 1010 und für die B-Seite 0101 0101 0101 0101. Diese Bitmuster sollte Bit für Bit vom DB61 in den Ausgangs-DB50 geschrieben werden,wobei die Ventil anbleiben und erst mit Stop ausgeschaltet werden

    Bitmuster A-Spulen sind Byte 0=DB61.DBB0 Byte1=DB61.DBB1 Byte2=DB61.DBB2
    Ausgangsspule Byte 0-2 liegen im DB50.DBB 4-6

    Ventilprog.txt

    keine ahnung ob ich auf dem richtigen Weg bin oder es nur komplizierter mache als es ist. hoffe jemand kann mir helfen


    Vielen Dank im vorraus

    Gruß Schneibel
    Zitieren Zitieren Brauche Hilfe bei einer SCL-Programmierung  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    ich bin jetzt nicht allzu tief in den Code deines Bausteins eingestiegen. Dennoch sind mir ein paar Dinge aufgefallen :
    - woher nimmst du den Takt für das Umschalten oder Weiterschalten deiner Bit-Matrix ? Das müßte ja entweder ein Taktmerker sein, den du als In-Parameter nimmst oder du bildest dir den Takt intern (über z.B. SFB4) selber.
    - Das Mischen von absoluter und indirekter Adressierung bei solchen Bausteinen mag ich gar nicht. Bei einem FB kannst du dir innen alles merken und das, was du nach draussen (oder von draussen) brauchst machst du über die Schnittstelle.
    - Bei der Bit-Muster-Geschichte ist mir gleich eingefallen : Als WORD vorgeben mit z.B. w#16#01010101 01010101, mit Init in den Baustein auf eine gleichartige Variable übernehmen und diese dann im Takt rotieren lassen. Das Bit 2^0 des Rotierers dann zur Steuerung des Ausgangs herausgeben.

    Kannst du damit etwas anfangen ?

    Gruß
    Larry

  3. #3
    Schneibel ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.01.2012
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    den Autotakt habe ich in einem AWL-NW gebildet
    UM 100.5 // Taktmerker 1s
    FP M111.7
    = M30.1

    M30.1 ist mein AutoTakt, die pos Flanke habe ich wegen der einmaligen ausführung pro Zyklus gemacht.
    Den Takt für die Matrix weiterschaltung da hänge ich fest, so wie es aussieht macht er die Übernahme der Bitmatrix ständig und zwar irre schnell.
    Die Ausgänge blinken nur sehr kurz auf, anstatt gesetzt zu bleiben. Irrgentwo beist sich meine Katze in den Schwanz, brauche irgendeine Lösung wo ich Bit für Bit in den Ausgangs-DB schreiben kann

    Laufvar1 ist meine Byte-Variable und Laufvar2 meine Bitvariable die ich pro schriebvorgang runter/hochlaufen lasse
    Laufvar3 ist meine Ventilanzahl die ich vorher über ne Konfig im DB61 abgespeichert hatte, mit ihr zähle ich runter bis alle Ventile an sind

    Edit: *Kopfklatsch* hab den Fehler gefunden, schande über mein Haupt, das Programm läuft so. Hatte nur in meinem RESET FC100 nen lade 0 transfer in DB50.DBD4 stehen und damit alle Ausgänge wieder auf 0 gesetzt. Darum merke lade und Transferbefehle immer über ne Sprungmarke.
    Mann von dem Lehrgeld hätte ich schon zweimal in Urlaub fahren können

    Gruß schneibel
    Geändert von Schneibel (17.01.2012 um 16:29 Uhr)

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 28.11.2011, 13:54
  2. Antworten: 123
    Letzter Beitrag: 28.03.2010, 16:49
  3. Antworten: 3
    Letzter Beitrag: 08.10.2008, 20:28
  4. Brauche Hilfe bei der Auswahl einer Lichtschranke
    Von Jochen im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 28.03.2007, 08:19
  5. Brauche Hilfe bei SCL.SFC Aufrufen in SCL
    Von Gerold im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:47

Lesezeichen

Berechtigungen

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