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

Ergebnis 1 bis 5 von 5

Thema: Parameterübergabe FB <-> HMI

  1. #1
    Registriert seit
    23.02.2007
    Ort
    Hamburg
    Beiträge
    695
    Danke
    198
    Erhielt 84 Danke für 74 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    ich habe mir einen FB für Auswertung von Alarmen gschrieben. Dabei geht es im allgemeinen darum einen digitalen Eingang oder einen Analogwert auszuwerten und gegebenfalls einen Alarm auszugeben. Hinzukommen noch einige Parameter, wie Unterdrückung, Verzögerungszeit, Test, etc...

    Die Einzelnen Alarme werden dann auf einem Panel in der Alarmliste angeben, jedoch soll es auch möglich sein, über Passwort vom Panel aus die Parameter zu verändern. Insgesammt sind es nachher 500 Alarme.

    Nun bin ich am überlegen was die eleganteste Lösung dafür ist..?

    Derzeit habe ich einen FB1 mit ca 10 Eingängen und 2 Ausgängen und den dazugehörigen Instanzen DB.


    Nun würde ich am liebsten meinen FB1 in einer Schleife Aufrufen (0-499) und in jeder Schleife dann einen anderen Datensatz übergeben und dieses Datensatz vom Panel aus bearbeiten können.

    -Muss ich für diesen Datensatz einen neuen DB anlegen, oder kann man das irgendwie in den entsprechenden Instanzen DB einfügen?
    (Habe ja nun schon Instanzen DB 1-500 und müßte dann nochma 500 DBs für die Parameter anlegen )

    -Ist es in WinCC Flex nachher möglich über ein Skript auf einfache Weise den ganzen Parametersatz einzulesen? Ich müßte dann ja quasi immer nur die DB Nummer verändern, am besten über nen Drop Down Menü.

    - Macht das ganze so überhaupt sind, oder gibt es bessere Lösungen?


    Danke für die Milch
    Siemens: Step7, WinCC Flexible, Logo
    Schneider: PL7, Unity Pro, Vijeo Look, Vijeo Designer, XBTL1000, Premium, M340, Twido, Zelio
    Moeller: Galileo, EASY
    B&R: Automation Studio 3.0
    Zitieren Zitieren Parameterübergabe FB <-> HMI  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Den FB1 in einer Schleife aufrufen ist sicher nicht so praktisch. Irgendwie müssen die Aufrufe auch mit entsprechenden Störungen (Ex.x) beschaltet werden.

    Ich würde das prinzipiell so machen:
    Den FB1 als Multiinstanz in einem anderen FB die gewünschte Anzahl aufrufen und die Eingänge beschalten.
    Somit hast man nachher nur einen Instanz DB.

    Es gibt zwar Leute die wieder meckern werden, aber ich würde dann von der Visu auf diesen Instanz-DB zugreifen.
    Bei WinCC flexible würde ich dann bei den Parametern mit indirekter Adressierung arbeiten.
    Zeit Alarm 1: DB1.DBW[Offset0]
    Zeit Alarm 2: DB1.DBW[Offset1]
    ...
    In WinCC-flexible dann z.B. ein Drop-Down Feld mit Einträgen:
    Alarme 1-10
    Alarme 11-20
    ...

    Bei Anwahl eines Feldes dann die Offset Variablen auf entsprechende Werte setzen.

    Man könnte das Multiplexen auch in der SPS machen. Würd ich aber nur wenn es so umfangreich wird dass es in WinCCflexible nicht mehr geht.

    Gruß

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

    eYe (21.03.2009)

  4. #3
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Warum direkt auf den Instanzdb zugreifen ?

    Ich würde alle Parameter in einen Struct legen.
    Diesen dann als Array[1..500] of Struct in einen DB legen.
    Der FB kann dann über den Counter von 1-500 auf den DB zugreifen.
    In der Visu kann man das über Multiplexen machen, ist mir aber manchmal zu umständlich.

    Ich habe immer z.B. am Anfang des Speicher-DB einen Struct mit Edit stehen. Bei der Anwahl am Panel wird der entsprechende Satz aus dem DB nach Edit kopiert. Eine Taste "Speichern" kopiert diesen Bereich Edit dann wieder zurück in den DB.

    Aber das verschalten hab ich noch nicht ganz verstanden, du musst ja z.B. einen Eingang an den FB schreiben.
    Ich hab so etwas für Ventile mit Fehlerüberwachungen.
    In einem extra FC werden die notwendigen Signale auf den entsprechenden Bereich im DB verschaltet.
    z.B.
    Code:
    U E 10.0
    = DB_Fehler.Nr[123].Signal
    Dadurch kann man dann alle Signale an den FB verschaltet, diesen aber Intern direkt von 1-500 in einem Loop durchlaufen lassen.

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

    eYe (21.03.2009)

  6. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo eYe,
    ich hätte da auch noch einen Ansatz (ggf. besteht hier aber eine gewisse Parallelität zu dem Vorschlag von Jabba).
    Ich würde den FB nicht mit 500 Instanzen aufrufen, sondern immer die gleiche Instanz verwenden und dem Fehler eine Index-Nummer mitgeben, die dann in dem FB deine Fehler-Nummer indiziert. Allerdings, wenn du hier mit Zeiten oder weiterführenden Verknüpfungen arbeiten willst, dann mußt du diese Dinge (Hilfsmerker , angelaufene Zeiten etc.) auch für jede Meldung seperat mit gespeichert werden ... Du könntest dann in der Visu aber immer mit der gleichen Fehlerliste aus dem gleichen DB arbeiten ...

    Gruß
    LL

  7. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    eYe (22.03.2009)

  8. #5
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    500 IDBs in denen kaum was drin steht?

    wie wärs mir ner multiinstanz?

    wäre in deinem fall vielleicht ganz praktisch, da es dir 499 IDBs erspart

    erschwert allerdings das bearbeiten von der visu aus...

    der pfuscher in mir möchte dir da glatt dazu raten, SPS-seitig jeweils einen parameterbereich des instanz-DBs bzw im moment 1 instanz-DB per blockmove in einen DB zu verschieben, auf den die visu dann direkt zugreifen kann.

    hätte den vorteil, dass du dich nicht mit multiplexen auf der visu rumschlagen musst. außerdem kannste dir die parameter dann als rezeptur auf der visu sichern und beim setzen der parameter werden nicht einzelne geänderte werte sofort von deinem FB verwendet. nützlich, wenn es ungünstige kombinationen gibt oder die reihenfolge beim setzen der parameter eigentlich ne rolle spielen würde.
    abgesehen davon kannste die frisch gesetzten parameter dann noch verwerfen, wenn du sie einfach nicht zurückspielst und per datensätzen/rezepten die 500 parametersätze in minutenschnelle neu setzen

    nachteil ist das rumgepointere und der kopiervorgang, der einen einzelnen zyklus ein wenig verlangsamt (sollte aber eigentlich nicht weiter ins gewicht fallen. du kopierst ja keine 1000 bytes nehm ich an)
    Tolle Wurst...

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

    eYe (22.03.2009)

Ähnliche Themen

  1. FC's mit Parameterübergabe
    Von Gini im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.09.2009, 09:39
  2. CC und Parameterübergabe
    Von PHANTOMIAS im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.04.2008, 07:42
  3. Protool vbs Parameterübergabe
    Von pascal im Forum HMI
    Antworten: 7
    Letzter Beitrag: 24.02.2008, 15:49
  4. Parameterübergabe mit CALL FCx
    Von lastweb im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 25.01.2007, 21:43
  5. S7 200: SBR (CALL) mit Parameterübergabe
    Von Willu im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.07.2006, 22:45

Lesezeichen

Berechtigungen

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