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

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

Thema: Auf Daten in Datenbausteinen zugreifen

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich will in einem EA-Feld den Wert aus dem DB42.DBD6 anzeigen.
    Mir gelingt es nicht, in Flexible irgendeinen Wert aus dem DB42 zu sehen, auch dann nicht, wenn ich das in der Variablenübersicht versuche.
    Die Speicher, die in der Symboltabelle eingetragen wurden, können in Flexible eingelesen und der Wert dargestellt werden.
    Das müsste doch auch mit Werten aus Datenbausteinen gehen, weil Flexible den Datenbaustein mit seinem symbolischen Namen sieht.
    Vermutlich gibt es da einen Trick, den ich als Anfänger nicht kenne.

    Gruß
    Earny
    Zitieren Zitieren Auf Daten in Datenbausteinen zugreifen  

  2. #2
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    Ich verstehe deine Problematik nicht ganz.

    Hast du diesem besagten Speicherbereich eine
    Symbolik in deinem DB gegeben?
    Dann brauchst du nur eine neue Variable anlegen und bei Symbol das entsprechende Symbol aus deinem Datenbaustein auswählen.

    Wenn dieser Speicherbereich keine Symbolik hat dann gehst du auf Adresse und gibst die Adresse ein.

    godi

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

    Earny (08.08.2008)

  4. #3
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Hallo!

    Ich verstehe deine Problematik nicht ganz.

    Hast du diesem besagten Speicherbereich eine
    Symbolik in deinem DB gegeben?

    godi
    was sind das für werte??
    INT, TIME, somstwas???

    lg
    m
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

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

    Earny (08.08.2008)

  6. #4
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo,
    es handelt sich um den Instanzdatenbaustein des SFB41. Der DBD6 hat den Datentyp REAL. Ich glaube das ist der Sollwert für den PID-Regler (ist unwichtig).
    Wenn ich in Flex bei Variablen in Adresse gehe, werden für den Datenbaustein nur Datenbits DBX angeboten. Es ist nicht möglich, irgendein Datenwort oder Doppelwort auszuwählen.
    Wenn ich die Speicherstelle mit Komplettadressierung eingebe, DB42.DBD6 läuft das Feld rot an.
    Wenn ich versuche über Symbol zu gehen, dann bekomme ich zwar den symbolischen Namen des Datenbausteins zu sehen, aber ich sehe seine interne Struktur nicht, kann also nichts auswählen.
    Die Übernaghme von Variablen aus der globalen Symboltabelle des S7-Projekts funktioniert.
    Kann es sich um einen falschen Projektaufbau handeln? Ist Flex nicht richtig in STEP7 integriert?

    Gruß
    Earny

  7. #5
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    InstanzDB funktioniert nicht und das ist auch gut so!

    Dein SFB41 hat eine Schnittstelle -> Das ist die Schnittstelle zu deinem Programm.
    Dort legst du dir deine Speicherbereiche an und auf diese kannst du dann zugreifen!

    godi

  8. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    Earny (08.08.2008)

  9. #6
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo,
    wäre ja umständlich.
    Ich habe eine vergleichbare Lösung, bei der ich von VB6.0 aus über den alten OPC-Server Computing (von Siemens) auch auf die Daten in den Instanzdatenbausteinen des SFB41 zugreife. Da gibt es kein Problem.
    Muss ich jetzt tatsächlich an der Aufrufschnittstelle außen irgenwelche Speicherstellen an die Ein- und Ausgangsparameter dranprogrammiern, nur um die Werte von Flex aus lesen und schreiben zu können?

    Gruß
    Earny

  10. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    @Earny

    Umständlich, ja, aber auf jeden Fall die saubere Lösung.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  11. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Earny (08.08.2008)

  12. #8
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard

    Zitat Zitat von Earny Beitrag anzeigen
    Ich habe eine vergleichbare Lösung, bei der ich von VB6.0 aus über den alten OPC-Server Computing (von Siemens) auch auf die Daten in den Instanzdatenbausteinen des SFB41 zugreife
    Gruß
    Earny
    bitte posten!!
    m
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

  13. #9
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo,
    nachfolgend der VB6.0-Code, der einige Werte aus dem DB42 liest.

    Option Explicit
    Private Sub Form_Load()
    Dim value1 As Variant, states_v1 As Long, rv1 As Long
    Dim value2 As Variant, states_v2 As Long, rv2 As Long
    Dim value3 As Variant, states_v3 As Long, rv3 As Long
    Dim value4 As Variant, states_v4 As Long, rv4 As Long
    Dim value5 As Variant, states_v5 As Long, rv5 As Long
    Dim value6 As Variant, states_v6 As Long, rv6 As Long
    Dim value7 As Variant, states_v7 As Long, rv7 As Long
    Dim value8 As Variant, states_v8 As Long, rv8 As Long
    Dim value9 As Variant, states_v9 As Long, rv9 As Long
    Dim value10 As Variant, states_v10 As Long, rv10 As Long
    Dim value11 As Variant, states_v11 As Long, rv11 As Long
    Dim value12 As Variant, states_v12 As Long, rv12 As Long
    Dim value13 As Variant, states_v13 As Long, rv13 As Long
    Dim value14 As Variant, states_v14 As Long, rv14 As Long
    Dim value15 As Variant, states_v15 As Long, rv15 As Long
    Dim value16 As Variant, states_v16 As Long, rv16 As Long
    Dim mybools17(2) As String, myvals17 As Variant, states17 As Variant, rv17 As Long
    Dim mybools18(2) As String, myvals18 As Variant, states18 As Variant, rv18 As Long
    Dim mybools19(2) As String, myvals19 As Variant, states19 As Variant, rv19 As Long
    Dim mybools20(2) As String, myvals20 As Variant, states20 As Variant, rv20 As Long
    rv1 = S7Data1.ReadVariable("DB41.DBD6:REAL", value1, states_v1, 0) 'Druck
    rv2 = S7Data1.ReadVariable("DB42.DBD6:REAL", value2, states_v2, 0) 'Volumenstrom
    rv3 = S7Data1.ReadVariable("DB43.DBD6:REAL", value3, states_v3, 0) 'Füllstand
    rv4 = S7Data1.ReadVariable("DB44.DBD6:REAL", value4, states_v4, 0) 'Temperatur
    rv5 = S7Data1.ReadVariable("DB41.DBD20:REAL", value5, states_v5, 0) 'Druck
    rv6 = S7Data1.ReadVariable("DB41.DBD24:TIME", value6, states_v6, 0) 'Druck
    rv7 = S7Data1.ReadVariable("DB41.DBD28:TIME", value7, states_v7, 0) 'Druck
    rv8 = S7Data1.ReadVariable("DB44.DBD20:REAL", value8, states_v8, 0) 'Temperatur
    rv9 = S7Data1.ReadVariable("DB44.DBD24:TIME", value9, states_v9, 0) 'Temperatur
    rv10 = S7Data1.ReadVariable("DB44.DBD28:TIME", value10, states_v10, 0) 'Temperatur
    rv11 = S7Data1.ReadVariable("DB43.DBD20:REAL", value11, states_v11, 0) 'Füllstand
    rv12 = S7Data1.ReadVariable("DB43.DBD24:TIME", value12, states_v12, 0) 'Füllstand
    rv13 = S7Data1.ReadVariable("DB43.DBD28:TIME", value13, states_v13, 0) 'Füllstand
    rv14 = S7Data1.ReadVariable("DB42.DBD20:REAL", value14, states_v14, 0) 'Volumenstrom
    rv15 = S7Data1.ReadVariable("DB42.DBD24:TIME", value15, states_v15, 0) 'Volumenstrom
    rv16 = S7Data1.ReadVariable("DB42.DBD28:TIME", value16, states_v16, 0) 'Volumenstrom
    mybools17(0) = "DB41.DBX0.3": mybools17(1) = "DB41.DBX0.4": mybools17(2) = "DB41.DBX0.7"
    rv17 = S7Data1.ReadMultiVariables(mybools17, myvals17, states17) 'Druck
    mybools18(0) = "DB44.DBX0.3": mybools18(1) = "DB44.DBX0.4": mybools18(2) = "DB44.DBX0.7"
    rv18 = S7Data1.ReadMultiVariables(mybools18, myvals18, states1 'Temperatur
    mybools19(0) = "DB43.DBX0.3": mybools19(1) = "DB43.DBX0.4": mybools19(2) = "DB43.DBX0.7"
    rv19 = S7Data1.ReadMultiVariables(mybools19, myvals19, states19) 'Füllstand
    mybools20(0) = "DB42.DBX0.3": mybools20(1) = "DB42.DBX0.4": mybools20(2) = "DB42.DBX0.7"
    rv20 = S7Data1.ReadMultiVariables(mybools20, myvals20, states20) 'Volumenstrom


    Die Objekt-Methoden lesen die Werte aus dem Instanzdatenbaustein.
    Anschließend, nicht dargestellt, können die "value.." in VB z.B. auf Anzeigeinstrumenten dargestellt werden.
    Das mit dem Schreiben in die Speicherstellen des Instanzdatenbausteins funktioniert sinngemäß.

    Gruß
    Earny

  14. Folgender Benutzer sagt Danke zu Earny für den nützlichen Beitrag:

    Manfred Stangl (09.08.2008)

  15. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Earny Beitrag anzeigen
    Das mit dem Schreiben in die Speicherstellen des Instanzdatenbausteins funktioniert sinngemäß.
    Aber dafür bekommst du von mir ein dickes "Pfui". Eine ziemlich kontroverse Diskussion zu dem Thema hatten wir schon, will auch nicht nochmals damit anfangen, kannst ja gerne mal auf die Suche im Forum gehen . VB6 ist da natürlich egal, das prüft sowas ja nicht ab, also geht das natürlich, weil dem VB6 egal ist, ob das ein normaler DB oder ein Instanz-DB ist. Mich wundert schon, daß WinCCFlex da drauf achten soll, habs noch nie probiert, da ich Instanz-DB einfach eh nicht mag.
    Geändert von Ralle (09.08.2008 um 01:59 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. Problem mit Datenbausteinen
    Von marcel_s84 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.04.2010, 14:33
  2. Remanenz bei Datenbausteinen
    Von Roos im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.11.2009, 20:36
  3. S7-300 Arbeiten mit Datenbausteinen
    Von veritas im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 27.08.2009, 02:59
  4. Arten von Datenbausteinen
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.05.2005, 20:38
  5. S7-222: Daten in Datenbausteinen
    Von reini69 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.12.2004, 12:48

Lesezeichen

Berechtigungen

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