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

Ergebnis 1 bis 10 von 10

Thema: In/OUT Datenstruktur über mehrere FB durchreichen

  1. #1
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    hab da mal eine kleine frage an euch. Habe mir einen FB für einen Antrieb erstellt. In diesem Antriebs-FB ruf ich einen weiteren FB auf der für die HMI-Anbindung zuständig ist. Der hat einen IN/OUT Struktur von einem UDT. In einem übergeorten FB rufen ich diesen Antriebs-FB mehrfach aus. Was ich nun für ein Problem habe ist. Diese Struktur (UDT) durch drei Bausteine durch zu rangieren. Schon bei der ersten hat er eine Problem, das der die IN/OUT-Variable des übergeordneten FB's nicht im darunterliegenden als IN/OUT aufnimmt. Sie ist immer rot. Was ist die ursache dafür bzw. kann mir einer das erklären?
    MfG

    Hubert

    \"Never change a running system. \"
    Zitieren Zitieren In/OUT Datenstruktur über mehrere FB durchreichen  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Hallo hubert,

    das Thema wurde schonmal diskutiert, vielleicht hilft es dir ja erstmal weiter:

    http://www.sps-forum.de/showthread.php?t=33957

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

    Standard

    Zitat Zitat von hubert Beitrag anzeigen
    Hallo Leute,
    hab da mal eine kleine frage an euch. Habe mir einen FB für einen Antrieb erstellt. In diesem Antriebs-FB ruf ich einen weiteren FB auf der für die HMI-Anbindung zuständig ist. Der hat einen IN/OUT Struktur von einem UDT. In einem übergeorten FB rufen ich diesen Antriebs-FB mehrfach aus. Was ich nun für ein Problem habe ist. Diese Struktur (UDT) durch drei Bausteine durch zu rangieren. Schon bei der ersten hat er eine Problem, das der die IN/OUT-Variable des übergeordneten FB's nicht im darunterliegenden als IN/OUT aufnimmt. Sie ist immer rot. Was ist die ursache dafür bzw. kann mir einer das erklären?
    Wir hatten das an unseren Antrieben auch mal so (also das mt den UDTs)! Da dies aber viel zu viel Zyklus zeit verbraucht haben wir nun im Antriebs FC einen Any Pointer, und lesen im FC intern Indirekt die Daten...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #4
    Registriert seit
    22.03.2009
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Wir hatten das an unseren Antrieben auch mal so (also das mt den UDTs)! Da dies aber viel zu viel Zyklus zeit verbraucht haben wir nun im Antriebs FC einen Any Pointer, und lesen im FC intern Indirekt die Daten...
    Die indirekte Ansprache der HMI-Struktur ist auch mein aktueller Lösungsansatz in meinen Standard-FBs.
    Bin aber aktuell am Überlegen ob es nicht übersichtlicher ist sich die Daten per BlockMove als Tempvariablen zu holen, damit zu arbeiten und am Schluss wieder per BlockMove zurück in den HMI DB zu schreiben.
    mfg

    HWkiller

    ___________________________________________________________________
    S7-317T, Sinamics CU320
    , Micromaster, 840Dpl, 840Dsl,WinCCflex, Transline


  5. #5
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Leute,
    danke schon mal für eueren Radschlag. Das mit der Indirekten-Adressierung hab ich bis jetzt auch gemacht. Nur ist es für manche Kollegen etwas umständlich. Dachte es ginge bei Siemens auf jedenfall mit den UDT's und dem durchrangieren von IN/OUT Datentypen. Aber das scheint nicht der Fall zu sein. Dann muss ich es halt doch wieder indirekte manchen.

    @Jochen Kühner. Wie macht in das in der Firma um Zykluszeit zu sparen. Ein Kollege von mir schießt mit der indirekten Adresserierung recht hoch. Hat jetzt schon eine schnellere CPU gebraucht um die Prozesszeiten einhalten zu können. Wäre für eine kurze Info von dir dankbar.
    MfG

    Hubert

    \"Never change a running system. \"

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

    Standard

    Zitat Zitat von hubert Beitrag anzeigen
    @Jochen Kühner. Wie macht in das in der Firma um Zykluszeit zu sparen. Ein Kollege von mir schießt mit der indirekten Adresserierung recht hoch. Hat jetzt schon eine schnellere CPU gebraucht um die Prozesszeiten einhalten zu können. Wäre für eine kurze Info von dir dankbar.
    Beispiel unser ANtriebs Bausteine.

    Früher hatten wir einen In/Out mit unserem UDT der Antriebsdaten, doch dies hat zuviel Zyklus Zeit gekostet. Nun haben wir aus diesm UDT In/Out einen Any In/Out gemacht. D.h. der Aufrug des FCs bleibt der gleiche, wir hängen immer noch die Antriebsdaten an den FC, aber im FC greifen wir direkt über das AR und den entsprechenden versatz auf unsere Werte zu. Hat halt den nachteil das man im FC nicht mit Symbolischen Adressen arbeiten kann.
    Wir schreiben dann halt immer direkt dahinter ein Kommentar welches Bit/Wort gemeint ist!

    Bsp:

    = [AR1,P#40.0] //UDT_ANTRIEBE.SAMMELSTÖRUNG

    Das mit dem Umkopieren in Lokaldaten hatte Ich auch überlegt, kostet halt aber auch wieder Zykluszeit!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  7. #7
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Jochen,

    danke schon mal für den Tipp. Wie du schon gesagt hast die Sache hat einen kleinen Nachteil (Symbolik). Aber meistens ist es so da wo eine Vorteil ist ist auch mal ein kleiner Nachteil. Aber meistens ändert man in solchen Standardbausteinen eh nicht viel mehr wenn sie mal ausführlich getestet sind.
    MfG

    Hubert

    \"Never change a running system. \"

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.792
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    auf eine sinnvolle Zuordnung der UDT-Inhalte zu verzichten zugunsten einer Zeitersparnis halte ich zumindestens für extrem fragwürdig. Ob es nicht eventuell Nonsens ist stellt sich spätestens dann heraus, wenn man da nach einiger Zeit mal wieder dran muß ...

    Aber zu dem Thema :
    Willst du den UDT per value durchreichen, oder eigentlich "nur" als Pointer ? Im 2. Fall bräuchtest du dir von dem UDT nur ein Pointer-Abbild (im TEMP-Bereich) spiegeln und dieses kannst du dann weiterreichen.

    Gruß
    LL

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    erstelle deine (teil)anlagen datenstruktur in einem UDT.
    erstelle einen übergeordneten FB, dessen STAT aus dieser UDT besteht.
    füge die UDT in jeden aufgerufenen FB ein.
    rufe die FBs über UC auf.

    du hast so in allen aufgerufenen FBs immer alle daten deiner (teil)anlage zur verfügung.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    673
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    HMI Daten gehören IMHO in den FB!
    Das ist Siemens Philosophie.

    Es ist doch Quatsch die Daten doppelt zu halten, nur um einen Schnittstellen-DB für die HMI zu haben.
    Bei Flexible kann man das ja noch durchgehen lassen, aber bei "richtigem" WinCC bzw. PCS7 ist die tolle Bibliothek dann nicht mehr zu gebrauchen.

    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

Ähnliche Themen

  1. UDT in FB durchreichen
    Von thomasgull im Forum Programmierstrategien
    Antworten: 21
    Letzter Beitrag: 23.12.2013, 12:06
  2. VKE über mehrere Netzwerke
    Von Deimos0815 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.10.2011, 07:54
  3. [?] Codesys Pointer durchreichen
    Von Kurt im Forum Sonstige Steuerungen
    Antworten: 7
    Letzter Beitrag: 10.01.2007, 14:29
  4. Mehrere TPs an S7-226 über PPI
    Von Dodi1980 im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 01.04.2006, 19:17
  5. Mehrere 315-2 DP über MPI ansteuern?
    Von Anonymous im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.12.2005, 15:03

Lesezeichen

Berechtigungen

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