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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Aus WinCC heraus Zugriff auf Variablen vom Simatic Manager (zb. DBs)

  1. #1
    Registriert seit
    13.06.2013
    Beiträge
    37
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus allerseits,
    versuche schon seit längerem folgendes,ohne Erfolg

    In WinCC will ich aus Kombinationsfelder den aktuellen Indexwert (selektiertes Feld) rauslesen und in einer SCL-Quelle verarbeiten. Wie realisiert man sowas ohne großen Aufwand? VBscript wär glaub ich zu aufwändig...
    Wollte einfach über Dynamikdialog eine Variable verschalten, welche mir in einen DB dauernd was reinschreibt...
    Hat da jmd Erfahrung mit?

    Danke im Vorrraus.
    Zitieren Zitieren Aus WinCC heraus Zugriff auf Variablen vom Simatic Manager (zb. DBs)  

  2. #2
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Welches WinCC verwendest Du denn? Und welche SPS und welche Step7-Version?

  3. #3
    tony90 ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    37
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das ganze soll in PCS7 V8 realisiert werden (sprich WinCC Version 7).
    Das Kombinationsfeld wird im GraphicsDesigner von WinCC verarbeitet..

  4. #4
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Mit dem Kombinationsfeld bin ich mir grad nicht sicher...

    Aber prinzipiell geht es so:

    In SCL schreibst Du nen Baustein. Der Baustein hat Eingänge welche Bedien/Beobachtbar sind (Attribut S7_m_c := true). Diesen Baustein ziehst Du in nen CFC-Plan. Jetzt Plan übersetzen und in die SPS-Laden. Das war der SPS-Teil.
    Der Visu Teil: OS-Übersetzen (dadurch werden die Eingangsvariablen aus dem SPS-Baustein in der Visu angelegt). Jetzt kannst in der Visu im Graphics Designer die Variablen verwenden. Mit dem Kombinationsfeld bin ich mir jetzt nicht sicher, müsste ich testen, aber jetzt ist Feierabend.

    PS: Evtl. gibt's in der APL-Bibliothek auch einen Baustein der Deine gewünschte Aufgabe erfüllt.
    In PCS7 ist zwar WinCC integriert, aber die Vorgehensweise unterscheidet sich doch grundlegend von der klassischen WinCC-Standalone-Projektierung. Falls Du darin nicht fit bist, würde ich erstmal mit den PCS7-Getting Started beginnen.
    Welche Version nutzt Du, PCS7 8.0 SP0 Upd1 oder 8.0 SP1 Upd0 ?

    Gruß.

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

    tony90 (21.06.2013)

  6. #5
    tony90 ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    37
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für schnelle Antwort.
    Also ich habe mich schon öfters mit dem Getting Started beschäftigt,leider dort keine Information rauslesen können...
    Ich benutze PCS7 8.0 SP0 Upd1.

    Meine Frage ist, wie ich so ein Kombiniertes Feld nach dem aktuellen Index Abfrage und diesen auch über eine Variable Simatic zur Verfügung stelle.

    Das heißt,Attribut S7_m_c := true in einem SCL-Code für einen Eingang oder Ausgang bedeutet, dass dieser auch im Variablenhaushalt sichtbar wird?
    Hast du vil. ne Idee wie sowas Funktioniert?
    Danke für deine Hilfe.
    Angehängte Grafiken Angehängte Grafiken

  7. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Falls du nur 3 Einträge hast, könntest du aus der APL den Baustein OpDi03 verwenden. Dann hast du gleich alle Features wie Faceplate und Bedienberechtigungen inklusive.

    Ansonsten musst du selber schreiben.

    Einen ganz simplen Baustein der dir eine Integer-Variable automatisch im WinCC anlegt könnte so aussehen:

    Code:
    FUNCTION_BLOCK "KombinationsSollwert"
      { S7_m_c := 'true'; }
    VAR_INPUT
      SP_Int { S7_visible := 'false'; S7_m_c := 'true' }: INT := 1; //Internal setpoint
    END_VAR
    
    VAR_OUTPUT
      SP_Out { S7_dynamic := 'true'; }: STRUCT     //Output Value
        Value : INT;                               //Value
        ST : BYTE  := 16#80;                       //Signal Status
      END_STRUCT;
    END_VAR
    
    BEGIN
      SP_Out.Value := SP_Int;
      SP_Out.ST := 16#80;
    END_FUNCTION_BLOCK
    Das Innenleben kannst du nach Bedarf ergänzen.

    Die Variable mit dem Attribut S7_m_c := 'true' wird dir beim OS übersetzen in WinCC automatisch mit dem Namen der FB Instanz in CFC-Plan angelegt.
    Nennst du die Instanz z.B. MEIN_SW1 dann heißt die Variable im WinCC MEIN_SW1.SP_Int.
    Je nach Einstellung in der technologischen Hierarchie hast du bei evtl. noch etwas davor stehen.

    Die anderen Attribute sind so wie sie auch bei den anderen Bausteinen der APL gesetzt sind:
    Mit S7_visible := 'false' wird der OS-Parameter im CFC Plan unsichtbar geschaltet,
    und mit S7_dynamic := 'true' wird erreicht dass beim Online-Status dieser Wert automatisch im CFC Plan angezeigt wird.

    Wenn du dann deine OS übersetzt solltest du im WinCC Variablenhaushalt die Variable wiederfinden.

    Zu deinem Kombinationsfeld in WinCC:
    Im Kombinationsfeld stellst du für jeden Index den entsprechenden Text ein.
    Dazu wählst du unter den Eigenschaften des Feldes "Schrift" an, und setzt dann erst den Index auf die gewünschte Nummer und stellst den zugehörigen Text ein.

    Das Attribut "Sonstiges" -> "Selektiertes Feld" verknüpfst du mit deiner im WinCC angelegten Variable.

    Wenn du das erste Feld auswählst erhältst du als Wert in der SPS den Wert 1, darum habe ich diesen auch als Startwert im FB angegeben.

    PS:
    Du bräuchtest nichtmal einen extra FB dafür, du könntest auch einen extra HMI-DB anlegen mit der Variable und dem zugehörigen Attribut dazu. Dann ist das Schema mit der technologischen Hierarchie jedoch dahin.
    Geändert von Thomas_v2.1 (22.06.2013 um 01:19 Uhr)

  8. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    ducati (24.06.2013),tony90 (22.06.2013)

  9. #7
    tony90 ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    37
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Super Thomas
    Endlich komme ich dem Ziel näher!
    Variablen sind jetzt im Haushalt angelegt.

    Beim Übersetzen des CFC-Plans tritt aber noch das Problem auf, dass der Compiler neue DBs hinzufügt mit dem selben Inhalt, aber nur unter anderen Zahlen gespeichert. Sprich die DBs, die ich den FBs im OB zugewiesen habe, sind dann nicht mehr die aktuellen DBs, auf die der CFC guckt...
    Kann man dem Compiler irgendwie mitteilen, bitte gucke in diese DBs?
    Danke nochmals für die schnelle Antwort!!

  10. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Ich verstehe gerade nicht ganz was du meinst.
    In CFC mit PCS7 musst du dich eigentlich um keine DB-Nummern mehr kümmern.

    Wenn der FB übersetzt ist, kannst du diesen in einen Plan ziehen. Der CFC Editor erzeugt dann automatisch einen Instanz-DB mit einer Nummer die ihm gerade gefällt. Darauf hast du keinen Einfluss. Du kannst die lediglich im Eigenschaftsdialog im CFC Plan nachschauen welche Instanz-DB Nummer diese Instanz momentan hat. Beim OS übersetzen wird dann die Variable mit der Instanz-DB Nummer konsistent gehalten.
    Wenn du eine FB-Instanz aus dem CFC Plan wieder löschst, wird beim Übersetzen auch der zugehörige Instanz-DB aus dem Bausteinordner gelöscht.

    Ich wundere mich dass du schreibst, du hättest einem FB im OB einen DB zugewiesen. Das hört sich nicht wirklich nach CFC an was du da anstellst, denn dort verschiebt man CFC-Pläne in Ablaufgruppen, sprich in verschiedene OBs wie OB1 oder OB35.

  11. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    ducati (24.06.2013),tony90 (23.06.2013)

  12. #9
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    PCS7 programmiert man nur in CFC. Du schreibst Deine Bausteinaufrufe nicht nochmal in AWL/FUP in irgend einen OB. Ich Denke nicht, dass es in den Getting Starteds irgendwo so erklaert wird.
    Also Bausteine in SCL schreiben und in CFC verschalten/aufrufen. So funktioniert PCS7. Du legst keinen einzigen OB und DB im Bausteinordner haendisch an.
    Das ganze zeigt mal wieder: PCS7 bringt mWn sich nicht ordentlich im Selbststudium bei. Da verfällt fast jeder in die klassische Step7-Manier...

  13. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    tony90 (23.06.2013)

  14. #10
    tony90 ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    37
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich programmiere die Bausteine mit SCL und will sie dann im CFC einsetzen...
    Aber zum Testen benutze ich die OBS...

    Ich will einen Funktionsaufruf in SCL erzeugen, wo mir gewisse Parameter übergeben werden. Und dazu brauch ich eben DBs...
    z.B. Merker_Menge:=DB11.Menge;

    Beim Übersetzen der CFC Pläne werden dann Instanzdbs erzeugt. Guckt der Baustein trotzdem noch auf DB11 in diesem Fall??
    Sorry für die Frage, bin aber Einsteiger

Ähnliche Themen

  1. Antworten: 19
    Letzter Beitrag: 10.04.2014, 10:51
  2. Antworten: 0
    Letzter Beitrag: 01.02.2013, 16:03
  3. Antworten: 2
    Letzter Beitrag: 19.04.2011, 10:32
  4. Antworten: 1
    Letzter Beitrag: 30.12.2010, 09:30
  5. Zugriff auf OB1_SCAN_1 aus FB heraus
    Von Franky08 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 27.07.2009, 21:15

Stichworte

Lesezeichen

Berechtigungen

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