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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: Multiinstanz-FB Aufrufe

  1. #1
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle.
    Ich hätte da eine Frage an euch Profis.
    Ich muss eine Analge Standardisieren und habe z.B.: für Tanks einen
    FB (5000) Programmiert der die Funktion drin hat um alle Tanksignale abzugfragen.

    So um Platz zu sparen habe ich einen FB (4999) hergenommen um alle FB's zu Parametrieren. Der FB4999 ist Multiinstanz fähig.
    Sprich ich habe einen DB4999 mit den ganzen Daten der FB's.

    Mein Probelm ist nun folgendes. Ich rufe nun so ca. 18 mal den FB (5000) mit ensprechender Parametrierung auf. Funktionieren tut aber nur einer und zwar der erste Aufruf.

    hier ein bisschen Code:
    Netzwerk1: T-001
    CALL #Tank_T001
    Level_Transmitter:="T001_Level_Transmitter"
    Temp_Transmitter :="T001_Temp_Transmitter"
    LAHHH_dig_IN :="T001_LAHHH_dig_IN"
    LAHH_dig_IN :="T001_LAHH_dig_IN"
    LAH_dig_IN :="T001_LAH_dig_IN"
    LAL_dig_IN :="T001_LAL_dig_IN"
    LALL_dig_IN :="T001_LALL_dig_IN"
    LALLL_dig_IN :="T001_LALLL_dig_IN"
    LAHHH_out :="T001_LAHHH_out"
    LAHH_out :="T001_LAHH_out"
    LAH_out :="T001_LAH_out"
    LAL_out :="T001_LAL_out"
    LALL_out :="T001_LALL_out"
    LALLL_out :="T001_LALLL_out"
    TAHHH_out :="T001_TAHHH_out"
    TAHH_out :="T001_TAHH_out"
    TAH_out :="T001_TAH_out"
    TAL_out :="T001_TAL_out"
    TALL_out :="T001_TALL_out"
    TALLL_out :="T001_TALLL_out"
    Level :="T001_Level_Output"
    Percent :="T001_Percent_Output"

    Netzwerk2: T-002
    CALL #Tank_T002
    Level_Transmitter:="T002_Level_Transmitter"
    Temp_Transmitter :="T002_Temp_Transmitter"
    LAHHH_dig_IN :="T002_LAHHH_dig_IN"
    LAHH_dig_IN :="T002_LAHH_dig_IN"
    LAH_dig_IN :="T002_LAH_dig_IN"
    LAL_dig_IN :="T002_LAL_dig_IN"
    LALL_dig_IN :="T002_LALL_dig_IN"
    LALLL_dig_IN :="T002_LALLL_dig_IN"
    LAHHH_out :="T002_LAHHH_out"
    LAHH_out :="T002_LAHH_out"
    LAH_out :="T002_LAH_out"
    LAL_out :="T002_LAL_out"
    LALL_out :="T002_LALL_out"
    LALLL_out :="T002_LALLL_out"
    TAHHH_out :="T002_TAHHH_out"
    TAHH_out :="T002_TAHH_out"
    TAH_out :="T002_TAH_out"
    TAL_out :="T002_TAL_out"
    TALL_out :="T002_TALL_out"
    TALLL_out :="T002_TALLL_out"
    Level :="T002_Level_Output"
    Percent :="T002_Percent_Output"

    Wenn ich über PLCSIM oder WinCC Flexible auf die Ausgänge zu greifen will kommt nichts raus. Wenn ich mir im laufenden zustand den FB(5000) beobachte dann sind die Werte wie eingefroren und wechseln kurzzeitig, bei jedem Zyklus, den Wert und wieder zurück.

    Bräuchte da wirklich Hilfe, da ich mit meinem Latein zu ende bin.
    Danke schon mal im vorraus.
    Zitieren Zitieren Multiinstanz-FB Aufrufe  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Dann zeig doch mal deinen FB ... (5000 ?)

  3. #3
    waldi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der FB Funktioniert. An dem liegt es nicht, hoffe ich zumindest.
    Da ist nicht besonders viel drin. Nur Signalverarbeitung mitunter auch der FC105 (Anag). Ansonsten ist da nur Lade und Tranfer und Umrechnungen drin.

    Mein Problem ist folgendes. (neu herausgefunden).
    Wenn ich z.B.: den T-002 aufrufe, wenn T-001 auskommtenirt ist, dann funktioniert der T-002. Beim T-003 ist es dan so das die jeweiligen zu schaltenen Ausgänge nur dan geschaltet werden wenn diese auch im T-002 Aufruf geschaltet wurden.
    Sprci die Ausgänge bei den nachfolgenden Aufrufen sind abhängig von den hervorgehenden Aufrufen und das verstehe ich nicht.

    Den FB5000 habe ich schon tausend mal überprüft. Wenn ich alle aufrufe auskommtenier bis auf einen, dann Funktioniert alles so wie ich das haben will. Nur bei zwei oder mehr aufrufen geht es nicht mehr.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Zitat Zitat von waldi Beitrag anzeigen
    ... nur bei zwei oder mehr aufrufen geht es nicht mehr.
    Und genau den Grund dafür wollte ich auch finden ...

  5. #5
    waldi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dieser Code funktioniert bei allen gleich.

    // Scale Level_Transmitter
    CALL FC 105
    IN :=#Level_Transmitter
    HI_LIM :=#max_level
    LO_LIM :=#min_level
    BIPOLAR:=FALSE
    RET_VAL:=MW0
    OUT :=#Level_Transmitter_Merker

    // Scale Temp_Transmitter
    CALL FC 105
    IN :=#Temp_Transmitter
    HI_LIM :=#max_temp
    LO_LIM :=#min_temp
    BIPOLAR:=FALSE
    RET_VAL:=MW8
    OUT :=#Temp_Transmitter_Merker


    Und dieser Code sollte das schalten der Level Alarme machen.
    Vieleicht ist dort der Hund begraben?

    M015: NOP 0
    L -1.000000e+000
    L #LAHHH_analog
    >=R
    SPB M030

    L #Level_Transmitter_Merker
    L #LAHHH_analog
    >=R
    L #LAHHH_delay
    SE "Delay_Timer_HHH_analog"
    U "Delay_Timer_HHH_analog"
    S #LAHHH_out

    L #Level_Transmitter_Merker
    L #hysteresis1
    <=R
    R #LAHHH_out


    M030: NOP 0
    L -1.000000e+000
    L #LAHH_analog
    >=R
    SPB M031

    L #Level_Transmitter_Merker
    L #LAHH_analog
    >=R
    L #LAHH_delay
    SE "Delay_Timer_HH_analog"
    U "Delay_Timer_HH_analog"
    S #LAHH_out

    L #Level_Transmitter_Merker
    L #hysteresis2
    <=R
    R #LAHH_out

    M031: NOP 0
    L -1.000000e+000
    L #LAH_analog
    >=R
    SPB M032

    L #Level_Transmitter_Merker
    L #LAH_analog
    >=R
    L #LAH_delay
    SE "Delay_Timer_H_analog"
    U "Delay_Timer_H_analog"
    S #LAH_out

    L #Level_Transmitter_Merker
    L #hysteresis3
    <=R
    R #LAH_out

    M032: NOP 0
    L -1.000000e+000
    L #LAL_analog
    >=R
    SPB M033

    L #Level_Transmitter_Merker
    L #LAL_analog
    <=R
    L #LAL_delay
    SE "Delay_Timer_L_analog"
    U "Delay_Timer_L_analog"
    S #LAL_out

    L #Level_Transmitter_Merker
    L #hysteresis4
    >=R
    R #LAL_out

    M033: NOP 0
    L -1.000000e+000
    L #LALL_analog
    >=R
    SPB M034

    L #Level_Transmitter_Merker
    L #LALL_analog
    <=R
    L #LALL_delay
    SE "Delay_Timer_LL_analog"
    U "Delay_Timer_LL_analog"
    S #LALL_out

    L #Level_Transmitter_Merker
    L #hysteresis5
    >=R
    R #LALL_out

    M034: NOP 0
    L -1.000000e+000
    L #LALLL_analog
    >=R
    SPB M035

    L #Level_Transmitter_Merker
    L #LALLL_analog
    <=R
    L #LALLL_delay
    SE "Delay_Timer_LLL_analog"
    U "Delay_Timer_LLL_analog"
    S #LALLL_out

    L #Level_Transmitter_Merker
    L #hysteresis6
    >=R
    R #LALLL_out

    M035: NOP 0

  6. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    muss dann nicht der fb5000 mutiinstanzfähig sein und nicht der 4999???
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren multiinstanz?  

  7. #7
    waldi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Laut Objekteigenschaften ist er auch Multiinstanzfähig. Aber das verstehe ich nicht. Der FB5000 ist doch der Baustein denn ich benutzen will. Um Datenbausteine zu sparen und die Konfiguration zentral zu halten wird der FB5000 beim FB4999 mehrfach aufgerufen und somit ist doch der FB4999 eine Multiinstanz.

    Im DB 4999 sind alle Daten zum Konfigurieren der Tanks. Der FB5000 ist lediglich ein Baustein der mir Daten ausliest, diese Verarbeitet und je nach einstellungen im DB4999 die jeweiligen Ausgänge schaltet.
    Eigentlich simpel, oder????

  8. #8
    waldi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zusatz: Mit dem FC105 geht es doch auch. Der sitzt sogar noch tifer im System und arbeitet aber richtig. Und das bei jedem Tank den ich aufrufe.!

  9. #9
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Zitat Zitat von waldi Beitrag anzeigen
    Laut Objekteigenschaften ist er auch Multiinstanzfähig. Aber das verstehe ich nicht. Der FB5000 ist doch der Baustein denn ich benutzen will. Um Datenbausteine zu sparen und die Konfiguration zentral zu halten wird der FB5000 beim FB4999 mehrfach aufgerufen und somit ist doch der FB4999 eine Multiinstanz.
    Heisst das, dass Du den FB5000 als Multiinstanz im Deklarationsteil des FB4999 vereinbart hast und diese Multiinstanz dann mehrfach aufrufst?

    Oder rufst du einfach den FB5000 mehrfach auf, mit der Hoffnung, dies wäre dann automatisch eine Multiinstanz?

    Gruß
    raika
    Rainer Kandziora
    Grollmus GmbH
    Qualität in SIMATIC Schulungen
    E-Mail: mailto:Rainer.Kandziora@grollmus.de
    Internet: http://www.grollmus.de

  10. #10
    waldi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.05.2007
    Beiträge
    25
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von RaiKa Beitrag anzeigen
    Heisst das, dass Du den FB5000 als Multiinstanz im Deklarationsteil des FB4999 vereinbart hast und diese Multiinstanz dann mehrfach aufrufst?
    Genau. Ich rufe im FB4999 den FB5000 mehrfach auf.
    Dadurch habe ich nur einen Instanz-Datenbaustein und zwar den DB4999.
    Dadurch kann ich zentral alle Tanks konfigurieren.

    Frage: Macht es was aus wenn der FB5000 als Multiinstanz in den Eigenschaften steht, dieser aber nicht als Multiinstanz verwendet wird.

    Um genau zu sein rufe ich im STAT Bereich des FB4999 den FB5000 insgesamt 16 mal auf.
    Also so:
    Name: Datentyp Adresse
    Tank_T001 -> FB5000 0.0
    Tank_T002 -> FB5000 120.0
    Tank_T003 -> FB5000 240.0
    und so weiter
    Geändert von waldi (30.05.2007 um 13:49 Uhr)

Ähnliche Themen

  1. S7: FB Aufrufe in einem FB
    Von Toffee im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 11.04.2011, 08:08
  2. FC Aufrufe
    Von omegabv6 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.08.2010, 09:47
  3. Antworten: 2
    Letzter Beitrag: 07.10.2008, 09:24
  4. FB-Aufrufe (die Zweite)
    Von Larry Laffer im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 01.06.2007, 06:59
  5. SFB14 -> Aufrufe
    Von kpeter im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.11.2006, 23:06

Lesezeichen

Berechtigungen

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