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

Ergebnis 1 bis 9 von 9

Thema: Baustein kann nicht plaziert werden

  1. #1
    Registriert seit
    27.04.2006
    Ort
    Süddeutscher Raum
    Beiträge
    199
    Danke
    15
    Erhielt 4 Danke für 4 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich möchte für diverse Stationen einer Maschine einen Zykluszeitzähler programmieren (Step7).
    Dazu frage ich im NW1 die CPU-Zeit lokal ab.
    Code:
          CALL  "READ_CLK"
           RET_VAL:="DB_Zykluszeit".Fehler_READ_CLK
           CDT    :=#DatumUhrzeit
    Dieser Wert soll dann als Start- bzw. Stopzeit der jeweiligen Station in einem DB abgelegt werden, um anschließend die Differenz zu berechen.

    Ich wollte nun mit dem Befehl BLKMOVE die Lokalvaribale vom Typ DT in den Datenbaustein kopieren.
    Nur bekomme ich folgende Meldung, wenn ich die Funktion SFC20 verwenden will:
    "Der Baustein kann nicht plaziert werden" (30:498)
    Beschreibung:

    Der Baustein kann nicht eingefügt werden. Mögliche Ursachen:

    · Es wird Online gearbeitet und der zu plazierende Baustein ist noch nicht Online vorhanden.

    · Sie möchten einen SFC oder SFB plazieren, der aus einer Programm-Bibliothek stammt, deren Projektversion nicht mit der des aktuellen Projekts übereinstimmt.

    · Organisationsbausteine (OBs) können mit dieser Applikation generell nicht verschaltet werden.

    Behebung:

    · Laden Sie den fehlenden Baustein auf das Automatisierungssystem.

    · Verwenden Sie Programm-Bibliotheken mit passender Projektversion.
    Ich arbeite nicht online und auch nicht in einem OB. Folglich stimmt wohl die Projektversion nicht überein.
    Was kann ich nun tun?

    Drain
    Zitieren Zitieren Baustein kann nicht plaziert werden  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Hallo,
    zu deinem "Blockmove"-Problem fällt mir im Augenblick nichts ein. Was hast du für eine CPU ?

    Aber zu der anderen Sache ...
    Warum schreibst du die Systemzeit nicht direkt in den Ziel-Bereich. Das kann der SFC Read-Clock nämlich genauso gut ...

    Gruß
    LL

  3. #3
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    Zur Info: Zykluszeit auslesen im OB1 und
    damit Sekundenflanke erzeugen.
    Vielleicht hilfts Dir ja
    Gruß Sailor


    //Create Secondimpulse
    CLR
    = M 184.0 //Secondmarker reset

    L #OB1_PREV_CYCLE //Last Cycletime in ms
    L MW 180
    +I
    T MW 180
    L 1000
    <I
    SPB a1

    L MW 180
    L 1000 //Save Overflow
    -I
    T MW 180
    SET
    = M 184.0
    a1: NOP 0


  4. #4
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Warum nutzt du nicht den OB1?

    Der gibt dir in der Temp-Variable #OB1_PREV_CYCLE die Zeit des letzten Zyklusses in ms an.

    Bei dem kopieren in DB würde ich den eventuell direkt aus dem Lokalen Bereich kopieren.

    #DatumUhrzeit ist, denke ich, eine Temporäre Variable vom Typ Date_and_Time (ab Adresse 0)

    L LD0
    T DB1.DBD0
    L LD4
    T DB1.DBD4

    Ich hoffe, du hast im DB1 eine Variable vom Typ Date_and_Time (ab Adresse 0) angelegt.

    Damit kannst du dir den Baustein BLKMOVE, den ich nicht kenne, sparen.

    Gruß wolder

  5. #5
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Eventuell hast due nur versucht dies aus dem falschen Ordner zu machen.

    aus stdlibs geht es nicht.

    nimm
    Standard Library
    - System Function Blocks
    -- SFC 20

  6. Folgende 2 Benutzer sagen Danke zu jabba für den nützlichen Beitrag:

    Drain (10.07.2009),gordon (23.06.2014)

  7. #6
    Registriert seit
    13.05.2008
    Beiträge
    316
    Danke
    43
    Erhielt 23 Danke für 15 Beiträge

    Standard

    *gelöscht*
    Geändert von Beren (04.07.2011 um 17:54 Uhr)

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    @Beren:
    MOVE ?
    Du weißt schon, dass DATE_TIME ganze 10 Byte groß ist ...?
    Also entweder Blockmove oder wie ich vorgeschlagen habe ...

    Gruß
    LL

  9. #8
    Avatar von Drain
    Drain ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.04.2006
    Ort
    Süddeutscher Raum
    Beiträge
    199
    Danke
    15
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen
    Eventuell hast due nur versucht dies aus dem falschen Ordner zu machen.

    aus stdlibs geht es nicht.

    nimm
    Standard Library
    - System Function Blocks
    -- SFC 20
    Ja, das war tatsächlich der Fehler. Oh man.

    Habs jetzt übrigends doch ohne Blockmove gemacht. Und zwar so, daß ich das Ergebnis direkt in den DB schreibe.
    Code:
          U     M     50.3
          FP    M     50.0
          SPBNB _001
          CALL  "DT to TOD"
           IN     :=#DatumUhrzeit
           RET_VAL:="DB_Zykluszeit".FuellenStart
    _001: NOP   0
    Hatte ich zwar auch schon von Anfang an so geplant, aber dadurch daß ich den DB geändert hatte und im Programmfenster nicht auf "Zugriffe prüfen und aktualisieren" gegangen bin, hat alles nicht mehr so funktionier. Da wollte ich den Umweg über Blockmove machen, hat sich jetzt aber erübrigt.

    Danke an alle, die mir geantwortet haben.

    Drain

  10. #9
    Registriert seit
    13.05.2008
    Beiträge
    316
    Danke
    43
    Erhielt 23 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    *gelöscht*
    Geändert von Beren (04.07.2011 um 17:54 Uhr)

Ähnliche Themen

  1. SCL Baustein kann nicht getestet werden
    Von Felse im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 12.05.2009, 14:53
  2. Antworten: 4
    Letzter Beitrag: 05.05.2009, 14:17
  3. SFB 910 kann nicht gefunden werden
    Von Bofrostmann16 im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 16.04.2009, 14:09
  4. OB kann nicht kopiert werden
    Von SPS_NEU im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.04.2009, 14:11
  5. Baustein kann nicht kopiert werden
    Von geduldiger im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.08.2007, 17:02

Lesezeichen

Berechtigungen

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