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

Ergebnis 1 bis 6 von 6

Thema: [ AUF ] Datenbaustein öffnen | Bit setzen

  1. #1
    Registriert seit
    12.05.2007
    Ort
    recht weit im Süden
    Beiträge
    91
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe im Rahmen meiner Techniker-Abschlussarbeit mehrere Universalbausteine für eine Maschine geschrieben.
    Da die Ansteuerung der Achsen entweder über NC oder Technologie erfolgt, gibt es einen extra Baustein der diese Ansteuerung übernimmt.
    Sollten die Achsen über NC gesteuert werden, kommt ein FC18 zum Einsatz.
    Bei diesem ist es ja so, dass die Achse unter Umständen nicht wieder frei gegeben wird. (Z.B. Halt nach Ereignis, Tippbetrieb, ...)
    Deshalb muss man in das Nahtstellensignal eingreifen und dort das Bit 2.2 löschen. Bisher habe ich dass immer direkt gemacht, also

    O #Bedingung
    = #Messfahrt_starten
    FN Restweg_loeschen
    = DB38.DBX 2.2

    Mir ist nun aufgefallen, dass der Baustein so die ISO 611131 nicht erfüllt, da das Signal zum löschen im Code geändert werden muss, sollten die Achsen einen anderen Achs-DB haben.
    Ich möchte jetzt im Aufruf des Bausteins die zu den Achse gehörenden DBs eintragen lassen und dementsprechend das Siganl zur Restweglöschung setzen. Ich dachte es mir so:

    U #Bedingung
    = #Messfahrt_starten
    FN #Restweg_loeschen
    SPB RESZ
    SPA END9

    RESZ: L #AchsNummer_X_Achse // INT
    ______T #AchsNummer_X_AchseWord
    ______AUF DB [#AchsNummer_X_AchseWord]
    ______= DBX 2.2 // Nahtstellensignal | Restweg löschen
    ______END9: NOP 0

    Ich habe versucht das Ganze mit der PLCSIM zu simulieren, aber die macht irgendwie komische Sachen. Anfangs war sie die ganze Zeit in STOP (eine Meldung von wegen OB1 ... Keine Ahnung)
    Dann habe ich den Baustein in ein anderes Programm geladen, in nem FC aufgerufen, da gings dann halbwegs. (Halbwegs, da ich die Werte der Variablen nicht sehe. Der grüne Run-Balken läuft auch nicht, ist aber Grün)

    Na ja, lange Rede kurze Frage: Funktioniert das so? Die Doku soll Montag zum Buchbinder, deshalb wär es super, wenn mir schnell jemand helfen könnte. Schon einmal vielen Dank!

    Grüße aus dem Süden

    dennis
    Zitieren Zitieren [ AUF ] Datenbaustein öffnen | Bit setzen  

  2. #2
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Ich würde mal folgendes ausprobieren:

    Code:
    L #AchsNummer_X_Achse // INT 
    T #AchsNummer_X_AchseWord
    AUF DB [#AchsNummer_X_AchseWord]
     
    O #Bedingung
    = #Messfahrt_starten
    FN Restweg_loeschen
    = DBX 2.2
    Gruß Kai

  3. #3
    Registriert seit
    12.05.2007
    Ort
    recht weit im Süden
    Beiträge
    91
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo Kai,

    dank dir erst mal! Habe das Programm deiner Empfehlung gemäß angepasst. Sieht auf jeden Fall schon mal übersichtlicher aus und ich denke die Sprünge waren eine unnötige Fehlerquelle.

    Zwei Fragen hätte ich noch:
    Kann (bzw. sollte) man einen DB eigentlich auch wieder schließen?
    Kann auch von mehreren Bausteinen auf einen DB "gleichzeitig" zugegriffen werden?

    Merci!

    Grüße
    dennis

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    einen DB kann man nicht wieder schliessen - er wird auch nicht wirklich geöffnet - er ist mehr als eine Art Speicher-Pointer zu verstehen. (Ist als Beschreibung nicht glücklich ...)

    SPS-Bausteine arbeiten nicht gleichzeitig sondern hintereinander. Aber selbstverständlich kann man den gleichen DB in mehreren anderen Bausteinen beschreiben oder auslesen - sogar Instanz-DB's ...

  5. #5
    Registriert seit
    12.05.2007
    Ort
    recht weit im Süden
    Beiträge
    91
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke für die schnelle Antwort!

    Klar, die Aufgaben eines DBs ist mir schon geläufig. Mich hat der Befehl 'DB
    öffnen' etwas irritiert. Ich kenne es nur von C#, wenn man dort z.B. eine
    Textdatei öffnet muss man diese nach dem Einlesen wieder für weitere Anwendungen frei geben. Leider weiß ich über die Vorgänge beim Auslesen von
    Datenbausteinen noch nicht bescheid. Irgendwie müssen die Daten ja ausgelesen und zwischengespeichert werden. Läuft das über die Akkus?

    Klar auch, dass nichts zeitgleich erfolgen kann ... Deshalb die
    Anführungszeichen. Mir ging es um die Überlegung, was passiert wohl, sollte ich aus mehreren Bausteinen aus auf einen DB zugreifen. Aber wenn der nicht
    in diesem Sinne geöffnet wird, muss ich ihn wohl auch nicht schließen, um
    ihn für weitere Aktionen zu verwenden.
    So stell ich mir das jetzt mal vor...

    Grüße
    .dennis

  6. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Larray Laffer hat eigentlich alles wesentliche schon geschrieben. DBs werden nicht geschlossen, und man kann in mehreren FCs oder FBs den gleichen DB öffnen. Man schreibt einfach in jeden FC oder FB den Aufruf AUF [DBNummer]. Man kann sich das dann so vorstellen, dass der DB bei jedem Aufruf wieder neu geöffnet wird.

    Gruß Kai

Ähnliche Themen

  1. Uhrzeit setzen SPS (S7)
    Von Blockbuster im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.09.2010, 10:39
  2. s7 200 Bit setzen
    Von Praktikus im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.02.2008, 09:39
  3. Bits setzen
    Von broesel im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.05.2007, 17:27
  4. SCL Bit setzen
    Von HeinBloed im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.12.2006, 15:50
  5. Antworten: 4
    Letzter Beitrag: 23.08.2006, 15:02

Lesezeichen

Berechtigungen

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