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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 35

Thema: FC aufruf klappt nicht

  1. #21
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du sollst doch nicht im FC auf globale Merker zugreifen!
    Den M2000.1 kannst Du als VAR_INPUT übergeben.
    Das Zuweisen des #Fehler an M2000.0 hat meiner Meinung nach nichts mit der Funktion des (mehrfach aufgerufenen!) FC zu tun und sollte außerhalb des FC realisiert werden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #22
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,
    das mit den globalen Merkern hab ich mir gemerkt. Allerdings wollte ich den Merker nicht 40 mal an den FC dran schreiben und mir so die Arbeit sparen.
    Das was du mir genannt hast, mit VAR_INPUT den Merker zu übergeben, dann müsste ich ihn doch jedesmal dran schreiben oder?

  3. #23
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ja, jedes mal übergeben. Aber nur so machst Du den Baustein wiederverwendbar und unabhängig von den Adressen globaler Variablen. Wer soll sich die ganzen undokumentierten Zugriffe auf globale Variablen merken? Glaube mir, professionell programmiert man so nicht.

    Nächstens fragst Du noch, daß es Dir zu viel Arbeit ist den FC 40 mal aufzurufen ...

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #24
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das mit dem wiederverwenden des Baustein macht natürlich wieder Sinn. Hab die Merker jetzt an der Schnittstelle übergeben.
    Ist es denn ok vergleicher zahlen (vergleiche auf 3) im fc zu programmeiren oder sollte man die Zahl auch übergeben?

  5. #25
    Registriert seit
    01.08.2013
    Ort
    63571
    Beiträge
    313
    Danke
    19
    Erhielt 53 Danke für 51 Beiträge

    Standard

    Das kommt drauf an, ob du immer nur auf 3 Vergleichen willst.

    Wenn du z.B. diese Zahl auch an den FC übergibst könnte der FC zwei beliebige Zahlen vergleichen. Du könntest diese etwa aus einer Visualisierung übergeben, falls etwa in der Zukunft der Wert auf etwa 5 gesteigert werden soll und nicht extra ein Programmierer gerufen werden soll der nur diesen einen FC ändert.

    Sowas kann manchmal Stundenlange Anfahrt sparen.
    Und bevor jemand meckert, natürlich krieg ich für die Anfahrt Geld wenn der Kunde sich umentscheidet, aber ich hab auch besseres zu tun als mich Stundenlang hinters Steuer zu quetschen.

    Ich muss aber noch anmerken, dass du dir das Leben wesentlich einfacher machen würdest, wenn du einen FB bauen würdest und ihn dann als Multiinstanz aufrufst.
    Geändert von Zombie (11.05.2016 um 22:48 Uhr)
    Nur dass man etwas schon immer so gemacht hat heißt nicht dass es richtig ist, man kann eine Sache auch ein Leben lang falsch machen.

  6. #26
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zombie magst du mir mal ein beispiel schicken wie soetwas mit einem fb funktioniert?

  7. #27
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Im Grunde genommen hättest Du im FB den selben Code, Du könntest aber ein paar INOUT stattdessen als STAT anlegen, nämlich alle, die Du nur deshalb herausführst, damit sie im nächsten Zyklus noch ihren Wert haben, in Deinem Fall also #DB_Zaehlen und #FlankeP. Ich weiß nicht, ob ich tatsächlich wegen 2 statischer Variablen aus dem FC einen FB machen würde. Der Ersparnis an der Schnittstelle steht der zusätzliche Speicherverbrauch durch die (oder den) IDB entgegen. Ich wäge das immer ein Bisschen ab. Wenn Du mehr INOUT-Variablen im Baustein hättest, die Du zu statischen Variablen machen kannst, würde ich Dir aber auch immer zu FBs raten.
    Gruß
    Michael

  8. #28
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Hier ein beispiel mit FB's In FB150 wurde 16 kreisse beobachtet via indirecte adressierung in ein LOOP , wieter wurde die Fehlerbits umrangiert (bytes wurde gewechselt) so dass Die erste melding ins HMI auch die erste fehelr ist) In FB140 wurde FB150 4 x wie INSTANDS aufgeruffen.
    Die HMI fehler Meldungen wurde nach output von FB140kopieert. Wieter an output Dass sammelfehler bit und via INput dass max anzahl fehlers (standard=3) und dass Bit fur ventielpruffung eingelesen. IN FC 140 wurde FB140 mit DB140 aufgeruffen.

    Ins 2e bloch habe ich mit ein paar Merkers ein pruff gemacht auf kreis 6 (Merker noch da)

    Die code ist Zu gross um direkt zu posten in beilage ein archieve von programm

    Test_ube.zip

    gruss Joop.

  9. #29
    Registriert seit
    01.08.2013
    Ort
    63571
    Beiträge
    313
    Danke
    19
    Erhielt 53 Danke für 51 Beiträge

    Standard

    Ich sehe erstmal wegen dem Speicherplatz kein Problem. Ich habe zwar schon Programme gesehen die alles brauchten was die SPS hatte, aber in der Regel ist da etwas Speicherplatz frei.
    Natürlich hat es auch Nutzen diese Variablen nach außen zu führen, denn sie sind dann außerhalb des Bausteins verfügbar, was ohne Verstoß gegen bestimmte Etiquetten nicht machbar ist.

    An sich hab ich das mit der Laufvariable an InOut auch schon gemacht. Z.B. als Abfrage an andere Bausteine die bei einer Übereinstimmung der Laufvariable mit ihrem Index etwas tun, wie z.B. Daten senden oder ähnliches.

    In meiner Firma gibt es ein paar Grundregeln nach denen wir Programmieren müssen, z.B. kein direkter DB Zugriff in einem Baustein der andere Funktionen erfüllt als andere Bausteine aufzurufen.
    DB Variablen müssen z.B. über Ein und Ausgänge an den Baustein übergeben werden und Zugriffe auf Instanzdatenbaustein- Variablen in einem anderen Baustein als dem FB zu dem er gehört sind komplett verboten, etc, etc.

    So kommt man dann um die Herausgabe über Ein und Ausgänge nicht drum rum. Besser man lernt das gleich von Anfang an und muss sich nicht mühsam dran gewöhnen wie ich es damals musste als ich von der Uni kam.
    Nur dass man etwas schon immer so gemacht hat heißt nicht dass es richtig ist, man kann eine Sache auch ein Leben lang falsch machen.

  10. #30
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Erstmal vielen Dank für die ganze Hilfe.
    Ich werde es jetzt erstmal bei dem Programm belassen.

    Ich habe mich mal in das Thema fb und multiinstanz db eingelesen. Das erscheint mir noch etwas kompliziert. Nicht das ich die ganze Maschine lahm lege. FC aufruf klappt nicht

Ähnliche Themen

  1. S5 Verbindung mit PG klappt nicht
    Von dpd80 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 10.03.2017, 07:31
  2. DINT TO DWORD klappt nicht
    Von Carsten77 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.04.2011, 15:48
  3. Antworten: 35
    Letzter Beitrag: 14.09.2010, 14:16
  4. S7Graph-Simultanverzweigung klappt nicht
    Von Wassermann im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.07.2006, 17:25
  5. AWL klappt, FUP nicht ...
    Von fbeine im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 01.09.2005, 11:42

Lesezeichen

Berechtigungen

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