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

Ergebnis 1 bis 9 von 9

Thema: Funktionsbaustein von Profinet-Peripherie mehrfach aufrufen

  1. #1
    Registriert seit
    16.12.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag,

    ich habe einen Stellantrieb der per Profinet an die S7 soll. Der Hersteller liefert einen FB mit DB. Beim Aufruf werden immer die Prozessdaten Steuerwort (2 Byte) und Statuswort (2Byte) übertrage. Die stehen beim AWL-Code immer direkt unter dem "call FB.., DB..."..

    Zusätzlich kann man einen Index übertragen und einen Wert, der dann in diesen Index soll. Nun muss ich die Baugruppe aber einmalig parametrieren und all diese Parameter möchte ich mit dem fertigen FB übertragen. Sind ca. 20 Werte, also müsste ich den ja 20x hintereinander aufrufen und jeweils die Daten mit Index übermitteln. Ginge das einfacher oder eleganter?

    Muss ich beim FB-Aufruf die darunterstehenden Parameter dem DB zuordnen? Ich möchte bspw. jedes mal den aktuellen Wert auslesen und an das HMI übergeben. Kann das HMI auch auf den vom FB erstellten DB zugreifen, oder wird er immer nur beim FB-aufruf erstellt und anschließend gelöscht?

    Sorry für die "einfachen" Fragen, aber ich komme aus der µC-Welt

    Gruß,
    Stefan
    Zitieren Zitieren Funktionsbaustein von Profinet-Peripherie mehrfach aufrufen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    für deinen Parameterübergabe-Baustein würde ich wie folgt vorgehen :
    - EINEN Baustein erstellen, der ALLE Parameter kennt/verwaltet
    - in diesem dann einen Ablauf erstellen, der der Reihe nach den Index setzt und den zugehörigen Parameter überträgt.
    Sehr wahrscheinlich ist dies eine Geschichte, wo du max. 1 Parameter pro SPS-Zyklus übertragen bekommst.
    Ggf. bekommst du im Rückmelde-Datenbereich deines Antriebs ein Feedback dazu - vielleicht schaust du mal danach ...

    Du kannst deine Parameter auch in dem Instanz-DB des FB speichern, verwalten und der Visu zur Verfügung stellen. Dieser DB ist nichts anderes, wie ein "Standard"-DB mit der Ausnahme, dass sein Aufbau durch einen FB vorgegeben wird. Der I-DB verliert seinen Inhalt NICHT von FB-Aufruf zu FB-Aufruf - im Gegenteil, er soll das "Gedächtnis" des FB sein.

    Gruß
    Larry

  3. #3
    klassenclown ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.12.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Larry,

    so könnte es klappen.
    Dann müsste ich den Baustein in jedem Zyklus ja aufrufen und den entsprechenden Parameter jedes mal übergeben. Gibt es eine Möglichkeit eine Variable pro Zyklus zu inkrementieren? So könnte ich bspw. im ersten Durchlauf Parameter 1 setzen, im zweiten Parameter 2, usw...

    Besten Gruß

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Grundsätzlich gilt hierbei wahrscheinlich : "alles Denkbare ist auch machbar".
    Was genau hast du denn vor ? Ist das aus deiner Sicht in diesem Kontext sinnvoll, es zu machen ?

    Gruß
    Larry

  5. #5
    klassenclown ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.12.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also,
    ich habe wie gesagt den Profinetteilnehmer und einen FB vom Hersteller. Da kann man statisch mit jedem Aufruf? ein Controlword und ein Statusword kommunizieren. Das Bauteil muss aber einmalig konfiguriert werden. Dazu kann man einen Counter-Value übergeben, der mit dem Parameter im Baustein korrespondiert, und einen Wert für den Parameter.

    Jetzt dachte ich, ich baue einen FC, der den FB aufruft und einen Parameter übergibt. Im nächsten Zyklus einen anderen Parameter, usw...

    Den Teilnehmer dann später aktiv zu schalten, kann ich ja dann über das Controlword machen, dass ja ohnehin beim Aufruf übergeben wird.

    Gruß

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    OK ... verstanden ...
    Dann wäre (aus meiner Sicht) dein Ansatz fehlerhaft ...
    Du brauchst nur eine Instanz für einen Teilnehmer und über die Koppelworte kannst du dann (eventuell) die gewünschten Parameter (nacheinander - allerdings ganz sicher nicht im selber Programmzyklus) übertragen.
    Ich würde das allerdings nicht in einem FC sondern besser in einem FB umsetzen, dessen Instanz wiederum dann die gewünschten Parameter verwaltet und auch noch die Instanz des Hersteller-FB's.

    Um was für ein Gerät handelt es sich hier denn genau ?
    Vermutlich mußt die die Parameter-Übergabe asynchron betrachten - das heißt zum Gerät hin muß es ein Steuerwort und 2 Datenworte geben. Im ersten Datenwort stände da ggf. die Parameter-Nummer und im 2. der zu setzende Inhalt. Im Steuerwort sagst du dann ggf. "Parameter setzen" und erhältst dann im Controlwort ein Done zurück wenn erledigt ... Erst jetzt könntest du dann den nächsten Parameter schreiben ...

    Gruß
    Larry

  7. #7
    klassenclown ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.12.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das ist ist Positionierer.
    Genau, die Parameterübergabe ist asynchron. Und ich wollte die Parameter auch nacheinander, jedes mal mit einem neuen Zyklus, übertrage. Aber wie genau kann ich das realisieren? Ich müsste doch dann einen Zähler instanziieren, der bei jedem neuen Zyklus inkrementiert und dann entsprechend wieder den neuen Parameter übergeben, oder?

  8. #8
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Evtl. über ne kleine Schrittkette
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja ... etwas in der Art - oder eventuell als Schrittkette - oder sogar Beides (ParameterZähler erhöhen, Wert schreiben, Übertragungsbit setzen, warten bis Übertragung bestätigt, und wieder von vorn bis alle Parameter übertragen worden sind).
    In jedem Fall aber bist du da mit einem FB besser bedient weil du so dann alles schön in dem zugehörigen Kontext behalten kannst.

    Gruß
    Larry

Ähnliche Themen

  1. Funktionsbaustein aufrufen
    Von Spoon im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 06.02.2010, 22:04
  2. SFC 12 - mehrfach aufrufen
    Von maweri im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 21.07.2009, 08:41
  3. FC mehrfach aufrufen
    Von settelma im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 04.06.2008, 18:23
  4. FC mehrfach aufrufen
    Von Flo im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 03.04.2008, 13:33
  5. FB mehrfach aufrufen
    Von homei im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 06.03.2008, 10:05

Lesezeichen

Berechtigungen

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