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

Ergebnis 1 bis 7 von 7

Thema: Excel Werte in DB schreiben?

  1. #1
    Registriert seit
    11.05.2009
    Beiträge
    106
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    wie kann ich in Excel eine Tabelle mit Realwerten anlegen und diese dann in einen DB schreiben? kann man das auch über ein Panel mit einen Button "neue werte übernehmen" machen?

    geht so was überhaupt?

    Viele Dank im Voraus
    Zitieren Zitieren Excel Werte in DB schreiben?  

  2. #2
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    geht nicht, gibts nicht.

    ich würde das mit libnodave machen, da ich kosten sparen würde.
    Es gibt aber auch "fertige" Lösungen, die ein bißchen was kosten.

    Gruß wolder

  3. #3
    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

    ... mit einer PC-Runtime würde es auch gehen ... Voraussetzung ist das Excel auch auf dem Rechner installiert ist ...

    Gruß
    LL

  4. #4
    Poldi007 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.05.2009
    Beiträge
    106
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Und etwas genauer?
    1. wie geht das mit libnodave und wo bekomme ich es?
    2. Was gibt es denn gegen Geld?
    Zitieren Zitieren Excel Daten in DB schreiben  

  5. #5
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    unser hochgeschätzter vierlagig hat da mal was geschrieben zum lesen über excel und libnodave.wenn du das hier in der suche findest, müsstest es nur abändern und schon könntest du auch schreiben.
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Poldi007 Beitrag anzeigen
    1. wie geht das mit libnodave und wo bekomme ich es?
    http://libnodave.sourceforge.net/
    inkl. beispiele ... recht einfach zu benutzen...

    Zitat Zitat von Poldi007 Beitrag anzeigen
    2. Was gibt es denn gegen Geld?
    es gäbe eine kommunikationsbibliothek von siemens ... prodave
    es gibt auch diverse excel-tools als plug-ins für siemens, step 7 und s7 ...da mal tante google zu befragen
    opc wäre auch noch ein suchbegriff...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Würde ich auch mit OPC lösen. Hab dies auch für eine Übung erstellt (Excel --> WinCC felxible). Im Anhang siehst du noch unser (auf goolge gefundenes und abgeändertes) VB Script

    Code:
    Option Explicit
    Option Base 1
    
    ' Private OPC Objekte deklarieren
    Private MyOPCServer As OPCServer
    Private WithEvents MyOPCGroup As OPCGroup
    
    ' Provate OPC Variablen deklarieren
    Private MyItemIDs() As String
    Private MyServerHandles() As Long
    Private MyNumItems As Long
    
    Private Sub cmdConnect_Click() 'Verbinden
    
    '** Server generieren *************************************
    
    On Error GoTo errorconnect
    
        ' create server object
        Set MyOPCServer = New OPCServer
        
        ' Servername:
        Call MyOPCServer.Connect(Cells(35, 4))
        
     '** Gruppe generieren ************************************
     
    On Error GoTo errorgroup
    
        ' schnellstes Update für alle Gruppen auswählen
        MyOPCServer.OPCGroups.DefaultGroupUpdateRate = 0
        
        ' Gruppe:
        Set MyOPCGroup = MyOPCServer.OPCGroups.Add(Cells(36, 4))
        
        ' Alle Aktionen der Gruppe deaktivieren
        MyOPCGroup.IsActive = False
        MyOPCGroup.IsSubscribed = False
        
    '** Variabeln auswählen ***********************************
    
    On Error GoTo erroritems
        MyNumItems = 16  'Anzahl Variablen
        ReDim MyItemIDs(MyNumItems)
        ReDim MyClientHandles(MyNumItems) As Long
        Dim i As Long
        Dim Errors() As Long
        
        ' 1. Variable
        For i = 1 To MyNumItems
            MyItemIDs(i) = Cells(17 + i, 3)
            MyClientHandles(i) = i
        Next
        
        ' Variabeln zur Gruppe hinzufügen
        Call MyOPCGroup.OPCItems.AddItems(MyNumItems, MyItemIDs, MyClientHandles, MyServerHandles, Errors)
        For i = 1 To MyNumItems
            If Errors(i) <> 0 Then
              Call MsgBox(MyItemIDs(i) & Chr(13) & MyOPCServer.GetErrorString(Errors(i)), vbCritical)
            End If
        Next
        
    '** Optionen ******************************************
        
        ' Button - Optionen
        cmdConnect.Enabled = False
        cmdDisconnect.Enabled = True
        cmdSyncRead.Enabled = True
        cmdSyncWrite.Enabled = True
    Exit Sub
    
    errorconnect:
        Call MsgBox("Error Connect:" & Chr(13) & Err.Description, vbCritical)
        Exit Sub
        
    errorgroup:
        Call MsgBox("Error AddGroup:" & Chr(13) & Err.Description, vbCritical)
        Exit Sub
        
    erroritems:
        Call MsgBox("Error AddItems:" & Chr(13) & Err.Description, vbCritical)
    
    End Sub
    
    Private Sub cmdDisconnect_Click() 'trennen
    
    On Error GoTo errorhandler
    
        ' alle Variabeln zurücksetzen
        Dim Errors() As Long
        Call MyOPCGroup.OPCItems.Remove(MyNumItems, MyServerHandles, Errors)
        Erase Errors()
        
        ' Gruppe zurücksetzen
        Call MyOPCServer.OPCGroups.RemoveAll
        Set MyOPCGroup = Nothing
        
        ' Server trennen
        Call MyOPCServer.Disconnect
        Set MyOPCServer = Nothing
        
        ' Buttons sperren / entsperren
        cmdConnect.Enabled = True
        cmdDisconnect.Enabled = False
        cmdSyncRead.Enabled = False
        cmdSyncWrite.Enabled = False
        
    Exit Sub
    errorhandler:
        Call MsgBox(Err.Description, vbCritical)
    
      Cells(18, 1) = 1
    
    End Sub
    
    Private Sub cmdSyncRead_Click() 'lesen
    
    'Zeitschlaufe - Loop
    Dim xy1, x As Integer
    xy1 = Range("K15").Value
    For x = 1 To xy1 'das bedeutet das wenn x den Wert xy1+1 annimmt wird die for schleife nicht mehr durchlaufen
    Range("A1").Select
    
    Calculate
    On Error GoTo errorhandler
        Dim Values() As Variant
        Dim Errors() As Long
        Dim Qualities() As Integer
        Dim TimeStamps() As Date
        Dim i As Long
        
        ' Werte lesen
       Call MyOPCGroup.SyncRead(OPCDevice, MyNumItems, MyServerHandles, Values, Errors, Qualities, TimeStamps)
      
        ' Werte schreiben (aus Sollwerten)
        
            For i = 1 To MyNumItems
            If Errors(i) = 0 Then
            Cells(17 + i, 5) = Values(i)
            Cells(17 + i, 6) = Qualities(i)
            Cells(17 + i, 7) = TimeStamps(i)
                 
          End If
        Next
    
        Erase Values()
        Erase Errors()
        Erase Qualities()
        Erase TimeStamps()
        
    'Schleife für 1 Sekunde unterbrechen
    Application.Wait (Now + TimeValue("0:00:00")) '("0:00:01")
        
    ' Ende der Schlaufe wenn "E21" erfüllt ist oder wenn der Wert "K15" erfüllt ist
    If Range("E21").Value = 0 Then
    GoTo 2:
    End If
    
    Next x
    2:
    Exit Sub
    errorhandler:
            Call MsgBox(Err.Description, vbCritical)
    
    End Sub
    
    Private Sub cmdSyncWrite_Click() 'schreiben
    
    On Error GoTo errorhandler
        Dim Values() As Variant
        Dim HServer() As Long
        Dim NumWriteItems As Long
        Dim Errors() As Long
        Dim i As Long
        NumWriteItems = 0
        
        ' Schreibe Ist Werte
        For i = 1 To MyNumItems
            If Cells(17 + i, 9) <> "" Then
                ReDim Preserve Values(NumWriteItems + 1)
                ReDim Preserve HServer(NumWriteItems + 1)
                HServer(NumWriteItems + 1) = MyServerHandles(i)
                Values(NumWriteItems + 1) = Cells(17 + i, 9)
                NumWriteItems = NumWriteItems + 1
            End If
        Next
        
       Call MyOPCGroup.SyncWrite(NumWriteItems, HServer, Values, Errors)
        
        Erase Errors()
    Exit Sub
    errorhandler:
            Call MsgBox(Err.Description, vbCritical)
    
    End Sub
    
    Private Sub CommandButton1_Click()
    
    cmdConnect.Enabled = True
    
    End Sub
    
    Private Sub MyOPCGroup_DataChange(ByVal TransactionID As _
    Long, ByVal NumItems As Long, ClientHandles() As Long, _
    ItemValues() As Variant, Qualities() As Long, _
    TimeStamps() As Date)
        Dim i As Integer
        
        Application.OnTime Now + TimeSerial(0, 0, 3), "deinMakro"
        
        ' Schreibe Ist Werte in Zellen
        For i = 1 To NumItems
            Cells(18 + ClientHandles(i), 9) = ItemValues(i)
            
        Next
        
    End Sub
    
    Private Sub Workbook_Open()
    
        'Call deinMakro
    
    End Sub
    Angehängte Grafiken Angehängte Grafiken

Ähnliche Themen

  1. Mit BC9000 Werte in Excel speichern
    Von fumer1 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 02.09.2010, 21:19
  2. Werte in DB schreiben
    Von SolSna im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 23.01.2008, 13:54
  3. Werte in Excel übertragen
    Von Fluffi im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 28.11.2007, 21:19
  4. Werte in DBD schreiben
    Von nuss im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 19.09.2007, 16:01
  5. Antworten: 8
    Letzter Beitrag: 24.01.2006, 14:55

Lesezeichen

Berechtigungen

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