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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: SCL / CFC - Zugriff auf CFC-Bausteinparameter

  1. #11
    Registriert seit
    22.07.2009
    Ort
    NRW
    Beiträge
    90
    Danke
    1
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von hub Beitrag anzeigen
    Global-DB hört sich gut an.
    Nö !!!! Das ist doch Müll !!!! Was genau willst du eigentlich ?? Pack die Were doch auf Out und verschalte sie Sauber in CFC ! Oder sind es 10.000 Were ?? --> Auch eine Struc ist möglich !!! Grüße wiesel

  2. Folgender Benutzer sagt Danke zu wiesel187 für den nützlichen Beitrag:

    bike (08.02.2015)

  3. #12
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von wiesel187 Beitrag anzeigen
    Nö !!!! Das ist doch Müll !!!! Was genau willst du eigentlich ?? l
    Danke, es geht also nicht nur mir so.
    Mit all diesen Tricks entsteht ein Programm, bei dem während der Entwicklung auf Big$ geschimpft wird, das keiner versteht und wenn es dann Fehlfunktionen gibt, dann sind alle Schuld nur nicht der Programmierer.

    Der TE sollte sich einmal über die Grundlagen von CFC auseinandersetzen und was dieses Werkzeug kann.
    Dann wird relativ schnell klar, dass das System eine Lösung für nachzu alles gibt. Ich habe bisher noch keine Aufgabestellung gehabt, die ich, wenn notwendig, nicht lösen konnte.
    Und wenn neben CFC noch PCS7 beteiligt ist, wird es nicht wirklich leichter.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  4. #13
    hub ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Warum der ganze Aufwand?
    Hab ich teilweise schon geschrieben.

    1.)
    (Posting#5)
    Der Baustein ist mit aktuell ca. 250 Ein-/Ausgängen nicht wirklich übersichtlich, sowie zeitintensiv und störanfällig bei der Verschaltung.
    Die ganzen Ein- und Ausgänge am Baustein sind alle überflüssig, weil der Baustein nur eine einmal benötigte Funktion enthält.
    Vergleichbar mit FBs.
    Wird ein FB mehrfach benötigt, braucht er zwangsläufig eine Schnittstelle.
    Wird ein FB nur einmal benötigt, kann er eine Schnittstelle besitzen, muss aber nicht unbedingt.
    Im FB kann auch direkt (symbolisch) auf die E-/A-/M-/DB-Ebene zugegriffen werden.
    Genau diese Möglichkeit fehlt mir bei CFC-Bausteinen.

    2.)
    (Posting#1)
    Ich benötige z.B. die Info „PV_AH_Lim“ vom Baustein „MonAnL“.
    Dann müsste ich beim „OpAnL“ die Anschlüsse „SP_HiLim/SP_LoLim“ in Abhängigkeit von „MonAnL/PV_AH_Lim“ unterschiedlich beschalten.
    Beides geht in CFC nicht. Wohl aber in SFC.
    SFC stellt mir zwei Programmierarten zur Verfügung:
    - Transition: Bedingungen zum Weiterschalten
    - Aktionen: Zuweisen (Kopieren) von festen und variablen Werten zu anderen Variablen
    Die Aktionen stellen genau die Funktionalität dar, die ich benötige.

    3.)
    (Posting#5)
    Das Hauptproblem mit AS-Stop bei Bausteinen mit Schnittstelle haben beide Vorredner übersehen, oder keine Lösung dafür.


    Dass CFC bei bestimmten Anwendungen auch seine Vorteile hat, bestreite ich ja nicht.
    Genauso wie SCL bei bestimmten Anwendungen die bessere Wahl ist.
    Und dass es auch Programmierer gibt, die lieber die Hochsprache bevorzugen, ist halt mal so.
    Selbst viele Siemens-Bausteine sind mit SCL erstellt (z.B. APL-Bausteine).

    Wenn es zu meinem Problem Lösungen (auch auf CFC-Ebene) gibt, bin ich für jede Anregung dankbar.

  5. #14
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Eine wirkliche Lösung für deine Probleme gibt es nicht. Man kann diese nur möglichst elegant umschiffen.

    Schnittstellenänderung ohne Stop:
    Wenn nach einer Schnittstellenänderung ein AS-Stop nicht möglich oder nur sehr aufwändig ist, habe ich es schon gemacht dass ich dem Baustein einen neuen Namen gegeben habe (z.B. mit Endung _v2 usw.). Dann den Aufruf der neuen Bausteinversion neben dem alten platziert, und die Verschaltung vom alten auf den neuen Baustein übernommen. Wenn die Bausteine viele Parameter haben ist das nicht nur aufwändig, sondern auch fehleranfällig (es lassen sich nicht alle Linien zum neuen "rüberziehen"). Ich habe ein Programm schon 3 Stunden so umprogrammiert nur um ein AS-Stop zu vermeiden.

    Zugriff auf Parameter von APL-Bausteinen die nicht auf die Out-Schnittstelle gelegt wurden:
    Vom Prinzip her ist das relativ einfach auch in SCL zu lösen. Du machst dir einen FC mit einem Eingangsparameter vom Typ Any, und mehreren Ausgangsparametern so wie du sie benötigst, z.B. PV_AH_Lim. Der Any-Parameter muss später im CFC-Plan mit irgendeinem Ausgangsparameter der MonAnL-Instanz von der du die Daten haben willst verschaltet werden (Prinzip wie bei den ExtVa1.. Parametern der anderen APL-Bausteinen). Im SCL-Baustein liest du dann die DB-Nummer aus dem Any-Pointer aus. Das ist dann der Instanz-DB des MonAnL-FB (Multiinstanzen gibt es in CFC glücklicherweise nicht).
    Einfachste Variante wäre jetzt, per Absolutadressierung wie instanz_db.DD10 den Wert von PV_AH_Lim aus der Instanz auszulesen und auszugeben.

    Das Problem dabei ist, dass dir das bei einer Aktualisierung der APL bei der sich womöglich Adressen verschoben haben um die Ohren fliegt, bzw. du alle diese Stellen anpassen musst. Vielleicht kann man sich da noch was symbolisches mit einem Dummy-Aufruf des MonAnL in einem SCL-FC überlegen, viel schöner wird das aber auch nicht.

    Und es besteht die Möglichkeit dass dir dein Baustein jemand falsch verschaltet. Du könntest zumindest noch prüfen ob die Länge des Instanz-DBs den du aus dem Any-Parameter herausgefunden hast mit der der Soll-Version des MonAnL übereinstimmt. Wenn nicht, Abbruch mit Fehlermeldung oder Sonstiges.

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    hub (09.02.2015)

  7. #15
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Ich mache etwas anders.
    Die Schnittstelle wird auf eine vorhersehbare Größe dimensioniert.
    Also zunächst alle bekannten Möglichkeiten berücksichtigen.
    Dann eine Funktion in SCL erstellen, die die Daten sammelt.
    In dieser oder einer anderen Funktionen wird die Schnittstelle zum Beispiel aus einem DB versorgt.
    Bei einer guten Planung geht das meist gut, zumindest bei uns.
    Wenn sich die Verschaltung ändert, aber die Schnittstelle gleich bleibt....

    Ist nicht schön, doch das bin ich ja auch nicht.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  8. #16
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Die Schnittstelle wird auf eine vorhersehbare Größe dimensioniert.
    Du hast also die Glaskugel
    Es sind leider die Dinge die nicht vorhersehbar sind, und irgendwann sind auch die Reserven aufgebraucht.
    Wobei das mit den Reserve-Ein-/Ausgängen in CFC von der Optik her nicht so schlimm aussieht, weil man diese ja erstmal unsichtbar schalten kann.

  9. #17
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Du hast also die Glaskugel .
    Oder ein Glasauge
    Klar weiß keiner alles, aber eines, das auch du machst, eine gute genaue Planung; erleichtern das Leben.
    Mir gehen die letzten Haare aus, wenn erst am Editor sich jemand Gedanken über das Programm macht.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  10. #18
    hub ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Den Zugriff mittels Anypointer hatte ich schon getestet.
    Nachteil war halt, dass man nicht symbolisch, sondern nur mit absoluten Adressen auf den Instanz-DB zugreifen kann.
    Scheint aber momentan die beste Lösung zu sein.

    -> Reserve-Anyparameter vorsehen
    -> DB-Länge prüfen
    passt

    Den Dummy-Aufruf des MonAnL in SCL habe ich aber noch nicht verstanden.

  11. #19
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von hub Beitrag anzeigen
    Den Dummy-Aufruf des MonAnL in SCL habe ich aber noch nicht verstanden.
    Vom Prinzip her habe ich mir so gedacht, einen festen Dummy-Instanz-DB des MonAnL anzulegen. Im Nummernbereich der einem für die eigene Verwendung zur Verfügung steht.
    Dann per Blockmove über die Daten aus dem Any-Pointer den kompletten echten IDB auf den Dummy-IDB rüberkopieren. Dann kann auf den Dummy-IDB symbolisch zugegriffen werden. Müsste theoretisch komplett in SCL umsetzbar sein.
    Mal angenommen es kommt von Siemens eine neue Version des MonAnL bei dem Adressen verschoben werden, müsste dieser SCL-Baustein nur neu übersetzt werden und es sollte wieder passen.
    Was besseres fällt mir momentan nicht ein.

  12. #20
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wir nutzen Parameter bst als Quelle für z.b. pv_ah_lim. Eine verschaltung geht zum monanl, eine dorthin wo der wert noch gebraucht wird

Ähnliche Themen

  1. CFC / SCL - Nummer des Instanz-DB ermitteln?
    Von TVG206 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.12.2015, 13:19
  2. CFC mehrfach auf den gleichen Eingang schreiben
    Von tomrey im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 15.07.2013, 12:28
  3. FM458 CFC Bausteine auf Steuerungs-CPU
    Von makken im Forum Antriebstechnik
    Antworten: 4
    Letzter Beitrag: 06.09.2012, 13:05
  4. Ablaufsteuerung in SCL oder CFC
    Von WGertzen im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 19.05.2010, 15:16
  5. Antworten: 3
    Letzter Beitrag: 11.09.2007, 20:38

Lesezeichen

Berechtigungen

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