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

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

Thema: Hilfe in Sachen VB

  1. #1
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich versuche über Excel Werte in meinem S7-Datenbaustein zu schreiben.
    Mit dabei ist WinCC, das ganze läuft soweit über ein entsprechendes VB-Script. (Anhang)
    Wenn ich in meiner Excel-Liste in Zelle "B2" einen Wert schreibe dann steht dieser Wert auch tatsächlich im DB in meiner S7-Steuerung, toll

    Aber was muss ich jetzt im Script ändern/erweitern so das dies auch analog für eine zweite, dritte etc. Variable funktioniert

    Ich habe schon einiges versucht, aber beim Versuch zusätzlich Variablen in Script zu definieren kommen immer Fehlermeldungen wie z.b. Namen nicht eindeutig etc.

    Keine Ahnung wo ich da was falsch mache, habe auch kaum Erfahrung mit dieser Thematik.

    Gruß
    Move
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Hilfe in Sachen VB  

  2. #2
    Registriert seit
    17.09.2003
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo,

    was genau willst Du machen? Aus einer anderen Excellzelle heraus schreiben oder in ein anderes DW?

    Bei diesem Makro z.B. wird nur dann der Wert geschrieben, wenn die Zelle=B2 ist --> "If Selection <> Range("B2") Then Exit Sub"
    D.h. wenn du aus einer anderen Zelle schreiben willst musst Du diese Zeile
    entspr. abändern.

    Code:
    Private Sub worksheet_change(ByVal Selection As Range)
    
      '----------- Only if cell "B3" changes, write this value
    
      If Selection <> Range("B2") Then Exit Sub
    
      Values(1) = Selection.Cells.Value
    
      '----------- Write the new value in synchronous mode
    
      MyOPCGroup.SyncWrite 1, ServerHandles, Values, Errors
    
    End Sub

  3. #3
    Registriert seit
    30.01.2006
    Beiträge
    115
    Danke
    2
    Erhielt 10 Danke für 5 Beiträge

    Standard

    Du must den Pointer erweitern. Derweilen kannst du nur ein Value schreiben.

    Willst du 100 Variablen schreiben musst du das Array erweitern.

    Dim Values(100) As Variant
    Dim ItemIDs(100) As String

    Geschrieben wird dann mit :

    ItemIDs(2) = Range("A98").Value
    ItemIDs(3) = Range("A99").Value

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

    Move (14.12.2010)

  5. #4
    Move ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    ok danke jetzt hab ichs wohl verstanden, danke für den Tipp. Ich teste es dann die Tage mal aus.
    Gruß
    Move

  6. #5
    Move ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hallo Leute,

    ich drehe mich irgendwie im Kreis weil es nicht funktionieren will.
    Das Script (Anhang) läuft soweit, das ich in der Excel Zelle B2
    einen Wert schreibe und dieser dann in meinem DB an der Stelle DBD0 landet.
    Aber ich bekomme das Scriprt nicht lauffähig aufgebohrt so dass die nächste Variable in Zelle B3 in DBD4 landet usw.
    Kann mir mal ein VB-Experte auf die Sprünge helfen? Wäre super.

    Gruß
    Move
    Angehängte Dateien Angehängte Dateien

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    kann ja sein, dass ich ein totales Brett vor dem Kopf habe ... aber wo in deinem Script stellst du denn die Verbindung zwischen den Script-Variablen und den OPC-Items her ? Im OPC muss es eine Variable geben, die das gewünschte Datenwort adressiert. Die mußt du ansprechen und dann sollte es funktionieren ...

    Gruß
    Larry

  8. #7
    Move ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    NodeName = Range("A1").Value
    ItemIDs(1) = Range("A2").Value

    A1 = Rechnername
    A2 = Symbolischer Name der Variable = WinCC Variable

    Gruß
    Move

    PS: Das Script ist ein Beispiel vom Siemens-Support

    Gruß
    Move

  9. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo Move,
    damit hast du mir jetzt nicht wirklich weiter geholfen.
    Nach meiner Vorstellung müßte es (ich habe allerdings noch nie wirklich mit OPC gearbeitet) so aussehen, dass du im OPC (ähnlich wie in der Visu - z.B. Flex) eine Variable angelegt hast mit dem Namen "meineVariable", diese ist dann z.B. ein INT und im OPC ist auch hinterlegt, dass diese Variable (eigentlich mehr Link) auf die SPS und dort auf den DB1.DBW2 verweisst. Man möge mich da bitte korrigeren, da ich mich da jetzt m.E. ein wenig "aus dem Fenster lehne". Diese Beziehungs-Zuweisung muss es irgendwo geben und die fehlt mir in deinem Script komplett.

    Gruß
    Larry

  10. #9
    Move ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    da fragst du denn richtigen
    Ja, so ist es aber. In WinCC habe ich eine Variable angelegt, heißt
    Temp_01_Uhr als Realwert
    In Excel habe ich dann wie gesagt in Zelle A1 den Rechnernamen stehen sowie in Zelle A2 den WinCC-Variablennamen
    Wenn ich jetzt in Zelle B2 einen Wert eingebe z.B. 12.1 so steht der Wert auch im DB der S7 im DD0.
    Das Script kommt aus der WinCC-Online Hilfe, nicht vom Support wie ich geschrieben habe
    Gruß
    Move

  11. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja hallo ... das geht doch dann genau in die von mir schon angebene Richtung ...
    Jetzt macht das dann auch Sinn ... somit steht jetzt in der "ItemIDs(1)" der VariablenName im Klartext - also z.B. "Temp_01_Uhr" - du könntest den auch der Variablen direkt zurordnen - also :
    Code:
    ItemIDs(1) = "Temp_01_Uhr"
    Du mußt dir nun eine weitere ItemID erzeugen, die auf eine andere/weitere Variable des OPC zeigt und die der Collection hinzufügen :
    Code:
    '----------- Add one item, ServerHandles are returned
    
      MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
    allerdings habe ich (in deinem Script) noch nicht gefunden, wie der Wert von "B2" in der OPC-Variablen landet. Vielleichst hilfst du mir auch da noch ein wenig auf die Sprünge - das muß auch noch irgendwo stehen ...

    Gruß
    Larry

Ähnliche Themen

  1. 2 Sachen Aufeinmal^^
    Von TechnikFreak10 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 01.05.2010, 19:15
  2. S5 - komische Sachen in Querverweisliste
    Von Hucky im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.02.2010, 06:18
  3. Verk. div. S5-115U Sachen
    Von iselber im Forum Suche - Biete
    Antworten: 2
    Letzter Beitrag: 21.08.2009, 09:10
  4. Div. S7 Sachen günstig zu verkaufen!
    Von IBN_Christian im Forum Suche - Biete
    Antworten: 1
    Letzter Beitrag: 27.05.2007, 21:35
  5. sachen gibts, bei ebay
    Von SICHEL im Forum Stammtisch
    Antworten: 3
    Letzter Beitrag: 13.04.2006, 18:41

Lesezeichen

Berechtigungen

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