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

Ergebnis 1 bis 9 von 9

Thema: WinCC flex + Datenbank

  1. #1
    Registriert seit
    01.02.2007
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    kann mir jemand sagen ob es möglich ist mit WinCC flexible Daten aus einer Datenbank auszulesen ?
    Normalerweise müsste es doch über ein Skript möglich sein, oder ?
    Zitieren Zitieren WinCC flex + Datenbank  

  2. #2
    Registriert seit
    10.02.2004
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, mit einem PC und VB-Script ist dies ohne weiteres möglich!
    Nicht nur lesen, sondern auch schreiben!

    Falls du nicht VB-Script kannst, aber ein bischen Geld über hast
    gibt es von der Firma Inat den OPC-Router, der Daten über
    zB.: WinCC Flexible OPC-Server auf unterschiedliche
    Datenbanken lesen und schreiben kann!

    Viele Grüße!
    Zitieren Zitieren Datenbank  

  3. #3
    marvin ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Genau das ist das Problem, ich habe zwar ein wenig Erfahrung mit VB, aber nicht mit VBS. Geld für eine neue Komponente möchte ich auch nicht ausgeben.
    Mittlerweile ist die Aufgabenstellung auch ein wenig konkreter: Ich möchte Daten aus einer Access-Datenbank auslesen. Ich habe schon Beispiele gefunden wie ich über ein Archiv Daten in Access abspeicher kann, wie ich aber welche aus Access herausbekomme konnte ich leider noch nicht finden. Hat jemand ein Beispiel an dem mir deutlich wird wie das funktioniert ?

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    hier mal ein beispiel...

    On Error Resume Next
    Dim sql,d,t,pos
    Dim dbname, dbuser, dbpw, conn
    Dim recordset, datenbankwert

    dbname = "dbs"
    dbuser = "root"
    dbpw = "admin"
    Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=" + dbname + "; UID=" + dbuser + ";PWD=" + dbpw + "; OPTION=3"
    conn.Open

    d=Mid(SmartTags("DB_ALLGEMEIN.SYSTEMZEIT"),7,4)+"-"+Mid(SmartTags("DB_ALLGEMEIN.SYSTEMZEIT"),4,2)+"-"+Mid(SmartTags("DB_ALLGEMEIN.SYSTEMZEIT"),1,2)
    t=Mid(SmartTags("DB_ALLGEMEIN.SYSTEMZEIT"),12,

    sql = "SELECT feld1 FROM tabelenname WHERE feld2 = wert)"
    recordset = conn.Execute(sql)

    datenbankwert = recordset("feld1")

    conn.Close
    Set conn = Nothing
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren daten lesen....  

  5. #5
    marvin ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal für dein Beispiel. Anscheinend hast du dich da mit einer MySQL DB verbunden. Soweit ich das herausgefunden hatte ist die Syntax für Access eine etwas andere ( oder doch nicht ?). Nach langem (zusammen)suchen hatte ich folgendes Script geschrieben:

    Dim db, rst, strSQL

    Set db = CreateObject("ADODB.Connection")
    db.Open ("DRIVER=Microsoft.Jet.OLEDB.4.0; DBQ=D:\Techniker\Projekt\Test.mdb")

    Set rst = CreateObject("ADODB.Recordset")
    strSQL = "SELECT tbltest.lfdnr FROM tbltest"
    rst.Open strSQL


    Was mir aber noch unklar ist und wofür ich noch kein Beispiel gefunden hatte: Wohin erfolgt das Ergebnis der SQL Abfrage bzw. wie bekomme ich das Ergebnis in eine Variable?
    Damit klar wird was ich derzeit vorhabe:
    Ich möchte mich in einer Runtime auf dem PC mit Hilfe des SmartClient mit verschiedenen Panels ( immer nur eins auf einmal ) auf denen der SmartServer läuft verbinden. In der Access-Datenbank sollen sowohl der Anlagenname wie auch die IP-Adresse des Panels hinterlegt sein.
    Ich habe mir das so vorgestellt das ich in einem E/A Feld die Anlagennamen angezeigt bekomme und nachdem ich eine Anlage ausgewählt habe, die zugehörige IP-Adresse in eine Variable geschrieben wird.

  6. #6
    marvin ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe nach lange suche etwas bei Siemens gefunden, ist allerdings für WinCC:
    http://support.automation.siemens.co...d&load=content

    Wenn mir jetzt jemand weiterhelfen könnte wie ich dieses Script unter flexible zum laufen bekomme, dann wäre dies meine Rettung.

  7. #7
    Registriert seit
    10.02.2004
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    In der Access-Datenbank sollen sowohl der Anlagenname wie auch die IP-Adresse des Panels hinterlegt sein.
    Ich habe mir das so vorgestellt das ich in einem E/A Feld die Anlagennamen angezeigt bekomme und nachdem ich eine Anlage ausgewählt habe, die zugehörige IP-Adresse in eine Variable geschrieben wird.
    In der Datenbank soll "nur" IP-Adresse und Anlagenname hinterlegt sein,
    oder soll mehr in die DB.

    Nur für die IP-Adresse und den Anlagenname brauchst du keine Datenbank,
    da reichen ein Skript und 2 Interne Stringvariablen aus!

    Werde das Skript testen (wenn ich gleich Zeit habe) + posten!

    viele Grüße
    Thomas

  8. #8
    marvin ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    In der Datenbank soll natürlich nicht nur der Anlagenname und die IP hinterlegt sein, sondern jeder Anlage sollen noch weitere Werte in einer eigenen Tabelle zugeordnet werde.
    Mittlerweile habe ich das Script zum laufen bekommen. An einer Stelle fehlte ein Set-Befehl und anstatt hmiruntime.tags muss es hmiruntime.smarttags heissen.

  9. #9
    Registriert seit
    10.02.2004
    Beiträge
    20
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi!
    Dasselbe geht auch mit ner SQL-Datenbank, falls du mal eine
    verwenden solltest.

    Trotzdem hier noch das Skript um die IP,Hostname und evtl. die MAC-Adresse der HMI-Station auszulesen. Wenn du dann mit Smart-Service
    auf die Station schaust, kannst du immer die aktuelle IP sehen!


    Einfach 3 interne Stringvariablen (25 Bytes) mit den Namen

    strMAC_Adresse
    strHost_Name
    strIP_Adresse

    anlegen und mit einem Ausgabefeld (Typ String min 25 Zeichen)
    verschalten.

    Dann hängst du dieses Skript zB. einfach an das 'Startbild'->Ereignis->Bild
    aufgebaut oder du rufst es zeitlich im Taskplaner auf.


    Code:
    Dim strComputer,objWMIService,colAdapters,n
    Dim objAdapter,i
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colAdapters = objWMIService.ExecQuery _
        ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    Set objAdapter = colAdapters 
    n = 1
     For Each objAdapter In colAdapters
      If n=1 Then
      SmartTags("strMAC_Adresse")=CStr(objAdapter.MACAddress)
       SmartTags("strHost_Name")= CStr(objAdapter.DNSHostName)
     
       If Not IsNull(objAdapter.IPAddress) Then
          For i = 0 To UBound(objAdapter.IPAddress)
            SmartTags("strIP_Adresse")=CStr(objAdapter.IPAddress(i))
          Next
       End If
       End If
       n=n+1
     Next
    PS:
    Wenn du viel mit Visualisierungen zu tun hast, würde ich mir
    VBscript und Visual Basic ein bischen anschauen, denn damit läßt sich
    vieles realisieren, wo du sonst mit den 'reinen' Visu-Mitteln nicht
    rankommst. Und die meisten Visualisierungen unterstützen VBscript.

    Viele Grüße
    Thomas

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 02.12.2010, 15:26
  2. WinCC v6.1 Anbindung an Datenbank
    Von N3tw124rd im Forum HMI
    Antworten: 3
    Letzter Beitrag: 01.07.2009, 10:29
  3. WinCC Flex und MySql Datenbank
    Von Blackforest im Forum HMI
    Antworten: 3
    Letzter Beitrag: 19.12.2008, 22:46
  4. von WinCC in SQL-Datenbank schreiben
    Von mertens2 im Forum HMI
    Antworten: 13
    Letzter Beitrag: 06.10.2008, 09:15
  5. WinCC und MS SQL Datenbank
    Von vido im Forum HMI
    Antworten: 12
    Letzter Beitrag: 02.12.2005, 13:42

Lesezeichen

Berechtigungen

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