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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Fehler beim Laden eines FC Laden (294:6)

  1. #1
    Registriert seit
    23.10.2015
    Ort
    Hessen
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forengemeinde,

    ich bin neu hier und muss mich bei Gelegenheit mal vorstellen. Derzeitig beschäftigt mich das folgende Problem:

    Ich kann eine Funktion FC10 nicht in die CPU laden.

    Fehlermeldungen: Laden (33:5388 und Laden (294:6)

    Anhand von dem Hilfetext habe ich schonmal veruscht ein paar Fehler auszugrenzen, jedoch ohne Erfolg.
    Die Speichernutzung hält sich in Grenzen: Lokaldaten: 32 Bytes
    MC7: 486 Bytes
    Ladespeicherbedarf: 706 Bytes
    Arbeitsspeicherbedarf: 522 Bytes

    Auch ist der Baustein nicht schreibgeschützt und hat keinen Know-How-Schutz.
    Ebenso sind nur Standardfunktionen verwendet, wie MOVE und ein paar Timer(T250 und T251).
    Die Übergabemerker IN und OUT bzw. deren Werte kopiere ich mit MOVE auf einzelne Tempvariablen die in einer Struktur angelegt sind.
    Z.B.: IN_WERT auf HM.WERT
    Könnte das das Problem sein?


    Die CPU ist eine 314C-2PN/DP mit einer 128kB MMC.
    MMC: 128 kB
    Version: Hardware 5
    Firmware: V3.3.11
    Erweiterung: A37.12.12


    Ich hoffe mir kann jemand weiterhelfen...
    Zitieren Zitieren Fehler beim Laden eines FC Laden (294:6)  

  2. #2
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.345
    Danke
    28
    Erhielt 131 Danke für 118 Beiträge

    Standard

    Werden dort ggf. Adressen angesprochen welche deine CPU nicht kennt (z.B. E257.0 o.ä)?

    Beim download wird dies erst geprüft ...

    „Eine Frage raubt mir den Verstand bin ich verrückt oder sind es die Anderen ?“

    Albert Einstein

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.264
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Bei den Timern geht es schon los.
    Wenn du an der CPU angeschlossen bist und einen Baustein markierst drückst du mal "Ctrl D". Dann öffnet sich ein Fenster das ist u.a. ein Reiter der heißt in etwa Leistungsdaten. Dort steht, was die CPU an Merkern Timern etc. zur Verfügung hat. Timer 250 und 251 sind wahrscheinlich zu hoch.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    SPS-EK ist offline Benutzer
    Themenstarter
    Registriert seit
    23.10.2015
    Ort
    Hessen
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Boxy und Ralle,

    danke für die schnellen Antworten.

    Nein, Eingangs und Ausgangsadressen werden im Baustein nicht benutzt. Beim Callen weise ich diese den IN und OUT Parametern der FUnktion zu, hier werden aber keine unbekannten Eingänge benutzt. Alles in der Symbolliste angelegt.

    @ Ralle: Die Timer habe ich auch schon vermutet, ich meine aber die 314C kann bis 5xx Timer. Ich habe diese aber zum Test nochmal geändert auf T24 und T25. Leider ging es trotzdem nicht.

  5. #5
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Zitat Zitat von SPS-EK Beitrag anzeigen
    @ Ralle: Die Timer habe ich auch schon vermutet, ich meine aber die 314C kann bis 5xx Timer. Ich habe diese aber zum Test nochmal geändert auf T24 und T25. Leider ging es trotzdem nicht.
    Da "meinst" du leider falsch.
    Zitat Zitat von Datenblatt CPU 314C-2 DP 6ES7314-6CH04-0AB0
    Merker
    • max. 256 byte (M255.7)

    S7-Zähler
    • Anzahl 256

    S7-Timer
    • Anzahl 256
    Die 317 ist die erste die mehr als 256 Timer hat, aber egal...

    Der einfachste Weg ist, wenn du eh an der CPU sitzt...
    Mach eine Kopie vom FC10 und beginne einfach Netzwerke raus zu löschen. Solange bis du den FC übertagen kannst.
    Da solltest du eigentlich schnell raus haben woran es liegt....
    Geändert von RONIN (23.10.2015 um 09:51 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #6
    SPS-EK ist offline Benutzer
    Themenstarter
    Registriert seit
    23.10.2015
    Ort
    Hessen
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Ronin,

    sagte ja habe testweise ja schon auf Timer 24 und 25 geändert, führte aber auch nicht zum erfolg. Aber gut zuwissen das nur 256 Timer genutzt werden können.

    Die Idee mit den einzelnen Netzwerken, werde ich mal ausprobieren. Komme aber leider erst heute Mittag an die Anlage.
    Sonst noch jemand eine Idee?


    EDIT: Ich glaube ich habe die fehlerhafte Stelle bzw Netzwerk.
    Ich habe gerade mein altes Projekt aufgemacht und die AWL-Quelle des Bausteins übersetzt, ein Netzwerk wurde nicht in FUP umgewandelt sondern blieb in AWL stehen.
    Hier wird mit den zwei Timern ein Impulssignal erzeugt. Anscheinend stimmt hier was nicht mit den Timern S_VIMP.
    Geändert von SPS-EK (23.10.2015 um 10:45 Uhr)

  7. #7
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Kannst das betroffene Netzwerk (vielleicht sogar besser ohne Symbolik, oder beides) ja mal hier posten....
    Geändert von RONIN (23.10.2015 um 11:18 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. #8
    SPS-EK ist offline Benutzer
    Themenstarter
    Registriert seit
    23.10.2015
    Ort
    Hessen
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Es lag wohl noch nicht mal an dem Netzwerk. Habe das alte Projekt aufgespielt mit der übersetzten AWl-Quelle und schon ging es.
    Leider ein erneutes Problem:
    Ich habe ja Hilfsmerker für Wert und Zustand angelegt und wollte so in dem FC diverse Daten einlesen, addieren und wieder ausgeben. Jedoch funktioniert das nicht so recht, ich poste mal ein Netzwerk um es zu verdeutlichen, was ich vorhabe und vllt kann mir jemand eine Hilfestellung geben.

    Netzwerk zum laden der Daten über den IN-Übergabeparameter, am Eingang IN liegt ein DB an DBX.DBDX im Dint:
    Code:
          U     #IN_start
          FP    #DM.HM_edge_pulse_1
          SPBNB _001
          L     #IO_count_result_DB
          T     #HM_count_value
    _001: NOP   0
    Die Flankenabfrage funktioniert mit den Tempvariablen nicht. Tausche ich diese gegen Merker funktioniert es richtig.

    Netzwerk für den Impuls über zwei Timer:
    Code:
        U(    
          U(    
          U     #IN_start
          FP    #DM.HM_edge_pulse_3
          O(    
          U     T    251
          FN    #DM.HM_edge_pulse_4
          )     
          )     
          L     S5T#10S
          SV    T    250
          U     #IN_stop
          R     T    250
          NOP   0
          NOP   0
          U     T    250
          )     
          FN    #DM.HM_edge_pulse_5
          L     S5T#10S
          SV    T    251
          U     #IN_stop
          R     T    251
          NOP   0
          NOP   0
          NOP   0
    Netzwerk zum hochzählen:
    Code:
          U     T    250
          SPBNB _003
          L     #HM_count_value_pulse_T1
          L     1
          +I    
          T     #HM_count_value_pulse_T1
    _003: NOP   0
    Hier funktioniert auch das hochzählen nicht, dies wird immer nur einmal ausgeführt obwohl der Impuls mehrmals kommt.


    Weiß jemand Rat oder funktioniert das so mit den Tempvariablen nicht und ich muss die Tempvariablen in ein DB auslagern?
    Ichhätte ja ein FB genommen aber durch den IDB, kann ja nur die Funktion auf der Werte zugreifen.
    Ausserdem müsste der DB die Daten remanent halten.
    Geändert von SPS-EK (23.10.2015 um 13:06 Uhr)

  9. #9
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Zitat Zitat von SPS-EK Beitrag anzeigen
    Code:
          U     #IN_start
          FP    #DM.HM_edge_pulse_1
          SPBNB _001
          L     #IO_count_result_DB
          T     #HM_count_value
    _001: NOP   0
    Weiß jemand Rat oder funktioniert das so mit den Tempvariablen nicht und ich muss die Tempvariablen in ein DB auslagern?
    Hab jetzt nur mal das erste Codeschnipsel raus genommen um es zu verdeutlichen.
    Flankenmerker (in deinem Fall #DM.HM_edge_pulse_1 - x) funktionieren in dem Sie sich den letzten Zustand des zu prüfenden Bits über einen SPS-Zyklus hinweg merken. Beim nächsten Durchlauf erfolgt dann:
    Zu Prüfendes Bit = 1 und Flankenmerker = 0 -> Es ist eine positive Flanke
    Zu Prüfendes Bit = 0 und Flankenmerker = 1 -> Es ist eine negative Flanke
    Flankenmerker = Zu Prüfendes Bit -> Rücksicherung für nächste Prüfung in nächsten Zykus

    Oder in "FP" AWL nachprogrammiert...
    Code:
    U  Prüfbit        //Funktion für positive Flanke
    UN Flankenmerker
    =  PositiveFlanke
    
    U  Prüfbit        //Rückspeichern für nächsten Zyklus
    =  PositiveFlanke        //Remanent für min einen Zyklus
    Zentral ist nunmal das Sichern des Zustandes über einen Zyklus hinweg. Temporäre Variablen sind hier schlecht, da diese, wie der Name schon sagt,
    nur temporär sind und die Information am Ende des Bausteins verloren geht.
    Am Anfang des Bausteins haben temporärer Werte bei der 300/400 sogar meist einen "zufälligen" Wert.

    Du musst also irgendwas Remanentes nehmen. Versorgung über IN/OUT, DB, Merker, FB mit IDB

    Zitat Zitat von SPS-EK Beitrag anzeigen
    Ich hätte ja ein FB genommen aber durch den IDB, kann ja nur die Funktion auf der Werte zugreifen.
    Ausserdem müsste der DB die Daten remanent halten.
    Ein IDB ist auf der 300/400 immer remanent, wäre also eine Möglichkeit.
    Gerade wenn der Baustein wiederverwendbar sein soll, du ihn also mehrfach aufrufen willst, wäre das die beste Lösung
    Das Funktioniert im Moment aber auch schon wegen der fix verwendeten Timer nicht.

    Das mit dem "aber durch den IDB, kann ja nur die Funktion auf der Werte zugreifen." versteht ich nicht ganz.
    Der FB-IDB in nix anderes (nicht ganz) als ein FC mit Zusatzspeicher (IDB). Der kann auch alles was der FC kann.

    Sag uns mal genauer was es werden soll, ob du lieber einen FC hättest und inwiefern das Ding wiederverwendet (mehr als 1x im selben Projekt) werden soll.
    Wenn es nur ein One-Off-Baustein ist dann brauchst du wahrscheinlich nicht mehr zu tun als dich um die Flanken zu kümmern.
    Geändert von RONIN (23.10.2015 um 13:34 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  10. #10
    SPS-EK ist offline Benutzer
    Themenstarter
    Registriert seit
    23.10.2015
    Ort
    Hessen
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Im Grunde habe ich vor einen fortlaufenden Zähler zu programmieren, der nicht beschränkt ist wie die aus der Bibliothek. Durch Dint könnte man dann ja bis 2147483648 zählen.
    Das Ergebnis übertrage ich durch MOVE dann in ein remanenten DB so der Plan.
    Es kann gut sein, dass der Zähler mehrmals im Projekt auftauchen kann momentan ist aber nur einer vorgesehen, daher der erste Ansatz mit festen Timern. Nur erstmal soll er zählen.
    Die Timer hierbei sollten für den Zählwert pro Stunde zb sein.
    Am Ende sind es also zwei Zählwerte, ein kontinuierlich fortgeführter und einer pro Stunde. der kontinuierliche muss logischerweise erhalten bleiben auch wenn dei Anlage aus ist.

    Ist es bei einem IDB nicht so das nur der Funktionsbaustein auf die Werte im IDB zugreifen kann? Denn eine andere Funktion müsste auch auf diese Werte zugreifen können.
    Geändert von SPS-EK (23.10.2015 um 14:24 Uhr)

Ähnliche Themen

  1. Fehler beim Laden über TCP/IP
    Von Volkmer im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.02.2014, 10:22
  2. Step 7 Laden Fehler
    Von Simpsons im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 16.12.2013, 15:40
  3. Fehler beim Laden in Baugruppe
    Von schneemann im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.09.2007, 16:22
  4. Fehler beim Laden von Projekt im Step 7 5.4
    Von Lars Bizare im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 10.01.2007, 16:00
  5. Variable laden beim betätigen eines Tasters
    Von noeppkes im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.08.2006, 19:02

Stichworte

Lesezeichen

Berechtigungen

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