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

Ergebnis 1 bis 10 von 10

Thema: Beckhoff: Frage Interfaces für FB

  1. #1
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat jemand schon einmal Interfaces für FB verwendet? Der Sinn müsste doch darin liegen, zur Laufzeit einen FB wechseln zu können. Ich denke da an Umformer oder Regler per HMI zu konfigurieren. Sehe ich das richtig?
    Zitieren Zitieren Beckhoff: Frage Interfaces für FB  

  2. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Habe ich schon verwendet.

    Ein Problem ist aber die Instanzierung der verschiedenen FB mit gleichem Interface.

    Da es in der SPS Umgebung aus Gründen der Sicherheit keinen "new" Befehl gibt (alles ist bereits statisch instanziiert) kann man zwar von einer FB Instanz zur anderen umschalten aber das kann man auch anders.

    Ob es übersichtlicher ist mit Interfaces, ist jedem persönlich überlassen.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  3. Folgender Benutzer sagt Danke zu RobiHerb für den nützlichen Beitrag:

    drfunfrock (31.03.2016)

  4. #3
    Registriert seit
    27.11.2009
    Beiträge
    204
    Danke
    1
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Zitat Zitat von RobiHerb Beitrag anzeigen
    Habe ich schon verwendet.

    Ein Problem ist aber die Instanzierung der verschiedenen FB mit gleichem Interface.

    Da es in der SPS Umgebung aus Gründen der Sicherheit keinen "new" Befehl gibt (alles ist bereits statisch instanziiert) kann man zwar von einer FB Instanz zur anderen umschalten aber das kann man auch anders.

    Ob es übersichtlicher ist mit Interfaces, ist jedem persönlich überlassen.
    es gibt zwar nicht "new" aber __NEW gibt es schon und man kann damit auch Instanzen zur Laufzeit anlegen. Diese sind aber nicht Onlinechange fähig und man sieht die Instanzen nicht im Engineering System (debuggen im Code ist in dynamischen Instanzen ist also nicht möglich).

    Btw. machen interfaces die Sache nicht nur übersichtlicher, aber ich glaube die Diskussion gab es hier schonmal und ich trete sie nicht noch einmal los

  5. Folgender Benutzer sagt Danke zu KGU für den nützlichen Beitrag:

    drfunfrock (31.03.2016)

  6. #4
    Registriert seit
    27.11.2009
    Beiträge
    204
    Danke
    1
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Hat jemand schon einmal Interfaces für FB verwendet? Der Sinn müsste doch darin liegen, zur Laufzeit einen FB wechseln zu können. Ich denke da an Umformer oder Regler per HMI zu konfigurieren. Sehe ich das richtig?
    Ja man kann Interfaces für die "späte Bindung" in der SPS verwenden und noch mehr. Du kannst generell verschiedene Bausteine, die das selbe Interface aber implementieren, über einen Interface Pointer aufrufen, also gleich handhaben. Macht den Code generell schöner lesbar (ist zugegeben meine Meinung ).
    In TwinCAT kann man Interfaces aber generell verwenden um zwischen TwinCAT Modulen zu "kommunizieren". z.B. aus der SPS heraus ein Interface in einer anderen SPS (aber in der selben TwinCAT Runtime) aufrufen. Oder in einem C++ Module, einem Matlab Module ...

  7. #5
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Zitat Zitat von KGU Beitrag anzeigen
    es gibt zwar nicht "new" aber __NEW gibt es schon und man kann damit auch Instanzen zur Laufzeit anlegen. Diese sind aber nicht Onlinechange fähig und man sieht die Instanzen nicht im Engineering System (debuggen im Code ist in dynamischen Instanzen ist also nicht möglich).

    Btw. machen interfaces die Sache nicht nur übersichtlicher, aber ich glaube die Diskussion gab es hier schonmal und ich trete sie nicht noch einmal los

    Dann habe ich die Doku richtig interpretiert

    Ist __NEW dokumentiert? Mein Problem ist, ich habe ein Serienprodukt und muss z.B. verschiedene Umformer einbinden, je nach Kunde. Selbiges könnte man auch mit Reglern, Joysticks etc machen . Ohne dieses Feature ist man sehr viel unflexibler. Die Alternative wäre mit Arrays von Strukturen zu arbeiten (in, out und config). Das Problem, welches ich noch habe ist, wie bekommen ich eine derartige Flexibilität für die IO-Anbindung zustande? Ich habe die letzten Jahre nur mit Omron gearbeitet und nahezu alles war adressbasiert, weil die Klemmen alles per DMA in den Speicher kopieren, so dass man nur ein Array drüber legen musste. Bei den neuesten Omron-SPS kann man mit einem Programm die IO-Anbindung als csv Datei erzeugen und dann ins Programm kopieren. Das spart eine Menge Fehler wenn es um mehr als 30 identische Geräte geht. Mit Beckhoff habe ich noch keine Lösung gefunden, um ein massenweises Point und Klick zu umgehen.

  8. #6
    Registriert seit
    27.11.2009
    Beiträge
    204
    Danke
    1
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    ...
    Ist __NEW dokumentiert?
    ...
    guckst du hier
    http://infosys.beckhoff.com/content/....html?id=16473

  9. Folgender Benutzer sagt Danke zu KGU für den nützlichen Beitrag:

    drfunfrock (31.03.2016)

  10. #7
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Gibt es dafür nicht das Automation Interface von Beckhoff? (scriptgesteuerte Code-Generierung etc.)
    Sänd from mei Kombjudder mitse Dastadurr.

  11. #8
    Registriert seit
    27.11.2009
    Beiträge
    204
    Danke
    1
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Zitat Zitat von MasterOhh Beitrag anzeigen
    Gibt es dafür nicht das Automation Interface von Beckhoff? (scriptgesteuerte Code-Generierung etc.)
    richtig, damit kann man den Code erzeugen bzw. Anpassen. Es gibt aber Kunden die haben einen Code für alle Maschinenkombinationen. Bzw. auch welche die die Hardware beim Hochlaufen der Maschine scannen und damit den Maschinentyp erkennen und dann die entsprechenden Objekte erzeugen wollen. Jeder wie es für ihn am besten passt

  12. #9
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Mal wieder was dazu gelernt, auch mit der aktuellen Codesys 3.5 SP8/P1 funktioniert das, wenn man in den Applikationseinstellungen Speicher hierfür freigibt.

    Aber ob ich das nutze, frage ich mich doch? SPS sollen ja länger durchlaufen als ein Büro PC und wie dann ggf. eine Fragmentierung des Speichess durch andauerndes new/delete nach Monaten/Jahren aussieht ?

    Im erstmaligen Zyklus beim Hochlauf allerdings recht interessant als Option und Lösung.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  13. #10
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich denke, Objekte sollten zur Startzeit erzeugt werden, wenn man OO haben will. Ganz ehrlich, ich habe keinen Plan, wie das zu machen wäre. Ich stelle mir gerade verschiedene Umformer mit AnyBus-Ethercat Modul vor, die dann wiederum per ModBus mit dem Umformer kommunizieren. Die Gerätedateien sind einfach Murks. Meine Idee geht mehr dahin, dass man eine Anzahl FB für Geräte in Arrays fest instanziert und dann die FB, die nicht benötigt werden, nicht ausführt. Dafür bekommt jedes Gerät eine Parameterstruktur.. Dafür eignet sich das Interface vorzüglich.

  14. Folgender Benutzer sagt Danke zu drfunfrock für den nützlichen Beitrag:

    RobiHerb (31.03.2016)

Ähnliche Themen

  1. Beckhoff: Frage zum einlesen von Analogwerten KL3062 Beckhoff
    Von klaus313 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 20.09.2015, 10:45
  2. Sporadischer Laufzeitfehler wenn Interfaces und Pointer gemischt werden
    Von wonderfulworld im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 22.07.2013, 13:21
  3. Antworten: 6
    Letzter Beitrag: 12.02.2012, 16:28
  4. Frage zu Beckhoff
    Von Pockebrd im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 11.12.2011, 15:24
  5. Frage zu Kommunikation für Beckhoff
    Von Jumpinjack im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 07.05.2011, 00:56

Lesezeichen

Berechtigungen

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