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

Ergebnis 1 bis 7 von 7

Thema: Nichtqualifizierte Daten als FC-Parameter ?

  1. #1
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Folgender Bausteinaufruf wird vorgenommen:



    Code:
    AUF   #DB_Axis 
    CALL  "IFX_INIT_PARAMETER"              //FC
           uiAxisDB   :=#DB_Axis_NR         //IN
           uiParaDB   :=#DB_Init_NR         //IN
           bExecute   :=#Init_Start         //IN 
           bErrorOut  :=DBX190.0            //OUT
           bDone      :=DBX190.1            //OUT
           bBusy      :=DBX190.2            //OUT
           uiErrorPos :=DBW192              //OUT
    In dem FB wird der DB_Init über die Integer uiParaDB geöffnet.
    Wenn jetzt in dem FC die Out-Variablen beschrieben werden, wo landen die Werte tatsächlich, im DB_Axis, oder im DB_Init ???

    ralle
    Zitieren Zitieren Nichtqualifizierte Daten als FC-Parameter ?  

  2. #2
    Registriert seit
    08.05.2004
    Beiträge
    121
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Morgen Ralle,

    die Werte landen im DB_AXIS, da dieser als letzter vor dem Aufruf des FC geöffnet war.

  3. #3
    Registriert seit
    23.06.2003
    Beiträge
    79
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Ralle,

    Die daten dürften im DB_Axis landen.

    Zunächst liegen sie ja nach Abarbeitung des FC über das CALL-Makro in den Lokaldaten des aufrufenden Bausteins.
    Da das CALL-Makro im aufrufenden Baustein abläuft, kopiert es dann die Lokaldaten in den letzten geöffneten Baustein (Axis)

    Gruß Jörg

  4. #4
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Das haut irgenwie nicht hin, AG ging in STOP, Bereichlängenfehler beim schreiben/lesen im FC, genau an der Stelle, an der in die Out-Parameter geschrieben werden soll. (Der DB_INIT ist um einiges kürzer als der DB_AXIS).
    Ich vermute, daß doch in den DB_Init (zuletzt im IFX-FC geöffneter DB)geschrieben werden sollte, der war natürlich zu kurz und peng!

    So geht es jetzt, wobei alle Variablen mit "#" Temp-Var sind, ist aber irgendwie nicht gerade schön. Die Temp-Var's fülle ich nur der Vollständigkeit halber vorher wieder auf, sind ja Outputs.

    Code:
          AUF   #DB_Axis
          U     DBX  190.0
          =     #Init_Error
          U     DBX  190.1
          =     #Init_Done
          U     DBX  190.2
          =     #Init_Busy
    
          L     DBW  186
          T     #Number_Para
          L     DBW  188
          T     #Count_Para
    
          CALL  "IFX_INIT_PARAMETER"
           uiAxisDB   :=#DB_Axis_NR
           uiParaDB   :=#DB_Init_NR
           bExecute   :=#Init_Start
           bErrorOut  :=#Init_Error
           bDone      :=#Init_Done
           bBusy      :=#Init_Busy
           uiErrorPos :=#Init_Error_pos
           number_Para:=#Number_Para
           Count      :=#Count_Para
    
          AUF   #DB_Axis
          U     #Init_Error
          =     DBX  190.0
          U     #Init_Done
          =     DBX  190.1
          U     #Init_Busy
          =     DBX  190.2
    
          L     #Number_Para
          T     DBW  186
          L     #Count_Para
          T     DBW  188

  5. #5
    Registriert seit
    23.06.2003
    Beiträge
    79
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ups...

    wieder was g'lernt !

    hat es eigentlich einen bestimmten Grund, daß Du keine voll-qualifizierten Parameter an den FC schreibst ?
    Dann könntest Du dir doch das hin- und herkopiere sparen !

    Gruß Jörg

  6. #6
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @jogi

    Ja, hat einen Grund, der FC wird auch wieder von einem anderen FC aufgerufen, der einen DB übergibt, also geht ein qualifizierter Zugriff leider nicht. (17 Schrittmotoren --> 1 Standardbaustein zum Ansteuern) Der IFX_Init ist ein mitgelieferter Baustein, ich wollte nicht darin rumändern, falls die Herstellerfirma mal eine neue Version liefert.

    ralle

  7. #7
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Ralle,
    im Diagnose U-stack steht der zu letzt geöffnete DB.

    Ich hätte jetzt auch auf Jogis Meinung getippt. Kann man mal sehen.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

Ähnliche Themen

  1. S5 - FB - IN/OUT-Parameter
    Von Hawkster im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.10.2012, 18:53
  2. UDT als FC-Parameter
    Von Reinhard.Steinbrueck im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 15.07.2011, 18:01
  3. UDT als IN-Parameter am FB
    Von OB21 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.08.2010, 17:14
  4. Parameter vom Typ ANY
    Von blume_mercan im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 17.01.2008, 15:37
  5. 611 A Parameter
    Von Tellme im Forum Antriebstechnik
    Antworten: 1
    Letzter Beitrag: 05.12.2006, 22:18

Lesezeichen

Berechtigungen

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