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

Results 1 to 7 of 7

Thread: Nichtqualifizierte Daten als FC-Parameter ?

  1. #1
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,980
    Danke
    784
    Erhielt 3,208 Danke für 2,274 Beiträge

    Default


    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
    Reply With Quote Reply With Quote Nichtqualifizierte Daten als FC-Parameter ?  

  2. #2
    Join Date
    08.05.2004
    Posts
    143
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Default

    Morgen Ralle,

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

  3. #3
    Join Date
    23.06.2003
    Posts
    81
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Ralle's Avatar
    Ralle is offline Super-Moderator
    Themenstarter
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,980
    Danke
    784
    Erhielt 3,208 Danke für 2,274 Beiträge

    Default

    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
    Join Date
    23.06.2003
    Posts
    81
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Ralle's Avatar
    Ralle is offline Super-Moderator
    Themenstarter
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,980
    Danke
    784
    Erhielt 3,208 Danke für 2,274 Beiträge

    Default

    @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
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 294 Danke für 86 Beiträge

    Default


    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.

Similar Threads

  1. ANY Pointer als In Parameter...
    By haraldign in forum Simatic
    Replies: 6
    Last Post: 05.02.2016, 13:35
  2. Step 7 SCL - ANY als Out-Parameter
    By Löwensenft in forum Simatic
    Replies: 13
    Last Post: 01.04.2015, 10:25
  3. Array als IN Parameter
    By RON_87 in forum Simatic
    Replies: 1
    Last Post: 20.01.2013, 14:13
  4. UDT als FC-Parameter
    By Reinhard.Steinbrueck in forum Simatic
    Replies: 13
    Last Post: 15.07.2011, 18:01
  5. UDT als IN-Parameter am FB
    By OB21 in forum Simatic
    Replies: 3
    Last Post: 15.08.2010, 17:14

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •