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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

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

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da wäre meine Empfehlung so ein Testprojekt für einzelne Bausteine klassisch in S7 aufzusetzen, also ohne CFC. Dann hast du aber nur einen reinen Bausteintest, ohne OS-Anbindung.

    Wenn du Bausteine aus der APL außerhalb von PCS7/CFC verwenden willst musst du auch aufpassen, denn diese laufen dort nur mit viel Aufwand. Die meisten dieser Bausteine haben intern eine Prüfung in welchem OB sie laufen, um dann z.B. Initialisierungsroutinen zu durchlaufen. Passt das alles nicht zusammen, dann funktioniert irgendwas nicht und du weißt nicht wieso.

    Genauso mit deinem Zugriff auf Absolutadressen. Wenn du etwas testen willst was später in CFC und auch mit der OS-Anbindung funktionieren soll, dann programmier es so wie es dort später verwendet wird. Und das bedeutet dass man nicht über SCL auf irgendwelche Instanz-DBs zugreift die der Verwaltung von CFC unterliegen.

    Es gibt in CFC nur wenige Gründe um auf absolute DB-Adressen zuzugreifen, das sind:
    - Schnittstellen DBs zu Fremd-HMI oder auch WinCCflexible
    - Schnittstellen DBs zu anderen Stationen

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

    ducati (24.06.2013),tony90 (24.06.2013)

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

    Standard

    Zitat Zitat von tony90 Beitrag anzeigen
    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;
    Vielleicht beschreibst Du im Allgemeinen mal, was Deine Anlage/Steuerung machen soll und im speziellen was Dein SCL-Baustein machen soll. Ich wird den Gedanken nicht los, dass Du etwas auf dem Holzweg bist, was PCS7 anbelangt.
    In PCS7 schreibt man die (SCL-)Bausteine in aller Regel so, dass sie mehrfach verwendet werden können. Eine direkte Zuweisung in dem Baustein auf einen speziellen DB macht somit wenig Sinn. Merker_Menge wäre somit eigentlich ein Eingang des Bausteins, welchen Du dann in CFC mit DB11.Menge verschalten würdest. Aber wie Thomas schon sagte, verwendet man in PCS7 nur in Ausnahmefällen händisch angelegte DBs. Von daher würde ich den Sinn/Richtigkeit vom DB11 auch erstmal pauschal hinterfragen.
    Wie gesagt, PCS7 ist nicht Step7/WinCC, auch wenn diese 2 Tools integriert sind, gelten in PCS7 andere Regeln.

    Gruß.

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

    tony90 (24.06.2013)

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

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen

    Genauso mit deinem Zugriff auf Absolutadressen. Wenn du etwas testen willst was später in CFC und auch mit der OS-Anbindung funktionieren soll, dann programmier es so wie es dort später verwendet wird. Und das bedeutet dass man nicht über SCL auf irgendwelche Instanz-DBs zugreift die der Verwaltung von CFC unterliegen.
    Kann sein das ich da wirklich auf nem Holzweg bin. Zum Verständnis:
    Der SCL Code soll gewisse Parameter aus einem anderen SCL-geschriebenen FB aufrufen, wie z.B. Vorgang_beendet, Menge_vorhanden usw...
    Ich habe einen Baustein(von mir aus FBX), den ich nur einmal im CFC als Ringpuffer einsetzen möchte. Sprich Anfragen werden gespeichert und der Reihe nach abgearbeitet. Das Abarbeiten geschieht in einem anderen FB. Wenn aktueller Index abgearbeitet wurde, soll der FBY dem FBX dies melden. Und dafür muss ich doch für Bausteinaufruf über DBs gehen?? Ich könnte die Parameter auch nach außen verschalten, wollte das aber proffesioneller lösen :-/.

  6. #14
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Naja, ganz verstanden habe ichs nicht,
    aber die Parameter aus dem anderen FB (Vorgang_beendet...) legst Du bei beiden FBs nach aussen (einmal Ausgang einmal Eingang) und verbindest sie im CFC, das wäre aus Sicht von PCS7 professionell

    Der SCL Code soll gewisse Parameter aus einem anderen SCL-geschriebenen FB aufrufen, wie z.B. Vorgang_beendet, Menge_vorhanden usw...
    Schnittstellen zwischen Bausteinen sind die Ein- und Ausgänge, nicht irgendwelche DBs. Du kannst ja auch nicht beeinflussen, welche DB-Nummer der CFC vergibt.

    Ansonsten hört sich das aber auch nach Schrittketten an, dafür nimmt man in PCS7 SFC (Sequentiell Function Chart)

    Weiterhin kann man auch überlegen, verschiedene Dinge direkt im CFC zu programmieren und nicht in nem FB.

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

    tony90 (24.06.2013)

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

    Standard

    Ok,dass heißt die Schnittstelle realisiere ich mit Verschaltung auf Eingang und Ausgang.

    Letztendlich werde ich wahrscheinlich SFC benutzen müssen, was ich aber überhaupt net mag...Deswegen Versuche ich ja erst den Weg über CFC zu gehen.
    Zum Testen des ganzen ist S7 mit OB aber ziehmlich legitim oder??

    Tausendmal Dank für die Hilfe an
    Thomas_v2.1 und ducati!

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

    Standard

    Zitat Zitat von tony90 Beitrag anzeigen
    Zum Testen des ganzen ist S7 mit OB aber ziehmlich legitim oder??
    Naja, dass musst Du wissen. Ich bin der Meinung gerade beim Testen gehen in CFC viele Dinge einfacher. Außerdem ne Testumgebung die anders funktioniert als später macht wenig Sinn?
    Zum Thema SFC: das funktioniert in Kombination mit CFC, Du setzt mit dem SFC bestimmte Bausteineingänge im CFC auf bestimmte Werte.

    Oder für kleinere Schrittketten nen mehrfach verwendbaren Schrittkettenbaustein schreiben. Ist ganz übersichtlich und auch in CFC ohne PCS7 verwendbar.

    Viel Erfolg.

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

    tony90 (25.06.2013)

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

    Standard

    Zum Verständnis würde ich aber trotzdem wissen, wie es möglich ist, auf DBs in CFC zuzugreifen.
    Wieder am Beispiel Merker_Menge.

    Wenn ich den Baustein FBy aufrufe im FBx heißt der Code ja: Merker_Menge:=DBy.Merker_Menge;
    Funktioniert das so?

    Werde wahrscheinlich nicht drumherum kommen, DBs einzubinden in FBs.
    Geändert von tony90 (25.06.2013 um 12:54 Uhr)

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

    Standard

    Zitat Zitat von tony90 Beitrag anzeigen
    Zum Verständnis würde ich aber trotzdem wissen, wie es möglich ist, auf DBs in CFC zuzugreifen.
    Wieder am Beispiel Merker_Menge..
    Der DB sollte in der Symboltabelle vorhanden sein. Einen FB in CFC ziehen. Dann rechte Maus auf den Eingang des FB -> Verschaltung zu Operand. fertig.

    Das funktioniert aber nicht mit IDBs, da deren vom CFC vergebene Nummer sich ändern kann, ausserdem sehr sehr sehr schlechter Programmierstil !

    Zitat Zitat von tony90 Beitrag anzeigen
    Wenn ich den Baustein FBy aufrufe im FBx heißt der Code ja: Merker_Menge:=DBy.Merker_Menge;
    Funktioniert das so?
    FB-Aufruf in einen FB funktioniert auch über die Versorgung der Ein/Ausgänge... Was Du hier machst:

    Code:
    Merker_Menge:=DBy.Merker_Menge;
    ist kein Aufruf eines FB sonders einfach das einlesen eines Wertes aus dem DB. Und wenn der DB ein IDB ist, dann ist das auch ganz ganz ganz schlechter Programmierstil...

    Ich glaube Du hast Dich etwas verrannt...

    Versuche Deine 2 FBs so zu programmieren, dass sie unabhängig voneinander funktionieren könnten. DB-Zugriffe in den FBs versuche zu vermeiden. Alle externen Daten, welche die FBs benötigen versuche über Ein/Ausgänge der FBs zu verschalten (Merker_Menge). Dieses Verschalten machst Du dann im CFC. Einfach die Eingänge des FBx (Merker_Menge) mit den Ausgängen des FBy (Merker_Menge) verbinden, ohne noch nen DB dazwischen...

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

    tony90 (26.06.2013)

  14. #19
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich kann Dir nur nochmal dringend raten, Dich mit den GettingStarteds sowie Ausbildungsunterlagen von PCS7 zu befassen. Oder am besten nen PCS7 Kurs zu machen. Sonst rennst Du noch ewig in die falsche Richtung. Weiterhin habe ich das Gefühl, dass Du das InstanzDB Konzept von Step7 auch nicht richtig verstanden hast... Dazu gibt's auch Dokus...

    Das Ganze probierst Du dann erstmal mit einfachen FBs, wie dem von Thomas weiter oben geposteten. Davon verschaltest Du mal ein par in CFC und testest das... irgendwann kommt dann schon der Aha-Effekt...

    Gruß.

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

    tony90 (26.06.2013)

Ä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
  •