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

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

Thema: Funktionen in Funktionen aufrufen

  1. #1
    Registriert seit
    01.05.2009
    Beiträge
    6
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo alle miteinander.

    Folgendes Problem ist mir gerad übern Weg gelaufen:

    Nachdem ich mein Projekt erfolgreich abgeschlossen hatte, wollte ich das Programm noch einmal umstrukturieren, das das etwas chaotisch aussah.

    Also hab ich erstmal meine Funktionen verkürzt und einzelne Programmabschnitte in extra Funktionen gepackt. Dann hab ich versucht jeweils eine Reihe von Funktionen in einer Fnktion aufzurufen.

    Beispiel:

    Im OB1 steht an einer bestimmten stelle:
    call FC1

    Im FC1 steht:
    call FC21
    call FC17
    call fC41

    Wenn ich da Programm jetzt zu laden versuche kommt ne Fehlermeldung, das FC1 nicht kopiert werden konnte (gleiche Fehlermeldung bei jedem FC in den andere FCs aufgerufen werden) und die SPS geht aus Systemfehler.

    Ich hab noch nicht lange mit Step7 gearbeitet und ich bin mir halbwegs sicher, dass das hier nen ziemlich offensichtlichen Fehler erhält

    Kann mir jemand weiterhelfen?
    Vielen Dank
    Zitieren Zitieren Funktionen in Funktionen aufrufen  

  2. #2
    Registriert seit
    10.08.2008
    Beiträge
    35
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    wie lautet der genaue Text der Fehlermeldung und was steht im Baugruppenzustand?

    Gruß
    Cosman

  3. #3
    Registriert seit
    27.04.2009
    Ort
    Frankfurt am Main
    Beiträge
    155
    Danke
    50
    Erhielt 28 Danke für 14 Beiträge

    Standard

    Hi,

    es könnte vlcht. die Verstachelungstiefe sein. Bei MicroWin liegt sie bei 8. Es könnte auch sein, dass du Pointer mit Lokalen Variablen gebildet hast, dass der Pointer irgendwann auf eine undefinierte Stelle Zeigt.

    Gruß
    com

    PS: Ich hatte mal mit MicroWin ein Phänomen gehabt, den konnte mir der College Wissmühler und Hartwig von Simatic-Support auch nicht erklären (ich mag die beiden sehr, sind einfach Spitze die Jungs).
    Ich hatte mal ein Unterprogramm mit nur lok. Variablen (einfache Funktion zum Umrechnen von ein paar Sachen) und auch mit lok. Pointer, obwohl ich dem Pointer eine Adresse angegeben hab (muss zugeben, es war eine Adresse vom lokalen String (eigntl. undefiniert klar)), hat er mir komischerweise die Adresse von EB7 (eingangsbyte 7) angezeigt
    sehr sehr komisch.
    Es ging dann weiter(nächste Geschichte, sehr ähnlich): irgendwann bekam ich eine Fehlermeldung auf unserem Panel-PC, dass die Druckluft fehlt. Es wurde beim Umrechnen in einer anderen Funktion das Eingangsabbild der Eingänge (genau gesagt E1.1) intern in der SPS geändert(zurückgesetzt), d.h, wenn dieses Unterprogramm aufgerufen wurde, wurde der Eingang für ein Zyklus lang zurückgesetzt und die Fehlermeldung erschien auf dem PC. Ich guck mir den Druckluftsensor an, alles ok, der Eingang der SPS high. hm... lange habe ich gebraucht(eingangsfilter standen auf max. 12.8ms), bis ich rausgefunden habe dass dieses verflikste Unterprogramm so etwas schreckliches anstellen kann
    wegen lokalem Pointer, der eine adresse von einem lok. String zeigte, wurde der Eingang zurückgesetzt. Wissmühler hatte dann diese Funktion von mir bekommen und gleiches festgestellt. Wir haben lange gelacht hehe


    Gruß
    com
    Geändert von com (20.06.2009 um 21:49 Uhr)
    Nothing is easier than being busy and nothing more difficult than being effective. (R. Alec Mackenzie)


  4. Folgender Benutzer sagt Danke zu com für den nützlichen Beitrag:

    Baldaro (20.06.2009)

  5. #4
    Baldaro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.05.2009
    Beiträge
    6
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die Antworten Leute.

    Ich hab gerade mal den Tipp mit der verschachtelungstiefe überprüft und was sehr interessantes herausgefunden.

    wenn ich die FCs auf die FC1 verweist ändere, mekert er nicht mehr.
    Also vielleicht doch ein Variablenproblem.

    Die Fehlermeldung ist einfach: der Baustein FC... konnte nicht geladen werden
    Geändert von Baldaro (20.06.2009 um 22:58 Uhr)

  6. #5
    Baldaro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.05.2009
    Beiträge
    6
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habs Ich habs.

    Das hätt ich ja im Leben nicht gedacht^^

    Ich rufe ja FC41 auf^^

    Das war der Fehler.
    Offenbar ist ihn die Nummer zu hoch (vermutlich zu wenig Speicher)
    wenn ich den FC30 nenne funktionierts^^
    liegt wohl an der SPS
    ist ne S7-312 IFM

    wer da drauf kommt...

    Aber danke nochmal an alle.
    Der Hinweis hats gemacht.

  7. Folgender Benutzer sagt Danke zu Baldaro für den nützlichen Beitrag:

    com (21.06.2009)

  8. #6
    Registriert seit
    27.04.2009
    Ort
    Frankfurt am Main
    Beiträge
    155
    Danke
    50
    Erhielt 28 Danke für 14 Beiträge

    Standard

    na dann glückwunsch! Du freust dich ja richtig krass
    wie ich damals
    also mit FC40 wäre es noch gegangen oder?

    Gruß
    com
    Nothing is easier than being busy and nothing more difficult than being effective. (R. Alec Mackenzie)


  9. #7
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard

    Also das es eine S7-300 geben soll die nicht mindestens 127 FC adressieren kann, kann ich gar nicht glauben. Sie doch mal online unter Baugruppenzustand / Leistungsdaten was die CPU kann.
    So einfach wie möglich – so kompliziert wie nötig.

  10. #8
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    @Kieler
    Laut Siemens-Seite als Technische Daten für die 312IFM (5AC00),
    kann die 32FC, 32FB, 63 DB

    http://support.automation.siemens.co.../de/4067768/td

    Also insofern, ganz normal das ganze.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  11. Folgende 2 Benutzer sagen Danke zu MSB für den nützlichen Beitrag:

    Baldaro (21.06.2009),com (21.06.2009)

  12. #9
    Baldaro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.05.2009
    Beiträge
    6
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    na das macht doch sinn

    Hatte mir schon soetwas gedacht.

    Danke nochmal für die Aufklärung

  13. #10
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MSB Beitrag anzeigen
    @Kieler
    Laut Siemens-Seite als Technische Daten für die 312IFM (5AC00),
    kann die 32FC, 32FB, 63 DB

    Mfg
    Manuel
    Dann ist die Steuerung ja deutlich eingeschränkt, war mir nie so bewusst.
    So einfach wie möglich – so kompliziert wie nötig.

Ähnliche Themen

  1. Funktionen Rückgabewerte
    Von nimloth80 im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 18.01.2011, 14:22
  2. Navigation in Funktionen
    Von --alex-- im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 28.01.2010, 19:58
  3. RFC1006/S7-Funktionen
    Von dannyli im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 25.06.2009, 19:25
  4. KS-Funktionen AEG A120
    Von Friedrich-Alexander im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 27.05.2008, 20:58
  5. Aufruf der Funktionen in OB1
    Von blume_mercan im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.01.2008, 18:59

Lesezeichen

Berechtigungen

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