Showing results 1 to 6 of 6

Thread: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

  1. #1
    Join Date
    26.04.2010
    Posts
    95

    Default Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    Hallo,
    ich begrüße mich als neuer Benutzer.

    Ich versuche neue Variablen via VBA durch ein Wizard in ein Mehrplatzfähiges Projekt anzulegen. Die existierenden Variablen können richtig modifiziert werden, aber es kommt zu Fehlern wenn neuen Variablen erzeugen werden müssen.

    Gleicher VBA-Code funktioniert ohne Probleme in einem normalen Projekt.

    Ist es möglich über Wizards in Mehrplatzfähige Projekte Variablen anzulegen?
    Exklusiver Zugriff auf die Variablen wurde über den Editor schon aktiviert!
    Was muss sonst noch beachtet werden?

    Grüße
    Raúl

  2. #2
    Join Date
    28.07.2008
    Posts
    64

    Default Re: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    Hast du eventuell auch einen neuen Treiber angelegt, wie du die neuen Variablen angelegt hast? Dann musst du auch die Treiber und die Datentypen auschecken.

    VBA funktioniert nur wenn du die VBA auch auscheckst.

  3. #3
    Join Date
    26.04.2010
    Posts
    95

    Default Re: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    Nein, ich habe den Treiber S7TCP32 gewählt, der schon von anderen Variablen
    im aktiven Projekt benutzt wird.

    Im Folgenden ein Beispiel das in einem normalen Projekt funktioniert, und wenn in einem Mehrplatzfähiges-Projekt ausgeführt wird, zeigt folgenden Fehler:

    Laufzeitfehler 429
    Objekterstellung durch ActiveX-Komponente nicht möglich.


    Der Kode:

    Option Explicit
    
    Dim meinVar1 As Variable
    Dim meinVars As Variables
    Dim meinDriv As Drivers
    Dim meinVarTypes As VarTypes
    
    Dim driver_ID As Integer
    Dim i As Integer
    
       
    Public Sub TestMultiuser()
                   
        Set meinVars = MyWorkspace.ActiveDocument.Variables
        Set meinDriv = MyWorkspace.ActiveDocument.Drivers
        Set meinVarTypes = MyWorkspace.ActiveDocument.VarTypes
        
        Set meinVar1 = meinVars.Item("fw1_Var1")
    
        For i = 0 To meinDriv.Count - 1
            If StrComp("S7TCP32", meinDriv.Item(i).name) = 0 Then
                driver_ID = i
                Exit For
            End If
        Next i
       
        If meinVar1 Is Nothing Then
            Set meinVar1 = meinVars.CreateVar("fw1_Var1", meinDriv.Item(driver_ID), 34, meinVarTypes.Item("INT"))
        End If
    
        meinVar1.Tagname = "Kennung der Variable"
        meinVar1.Unit = "mm"
    
        Set meinVar1 = Nothing
        Set meinVars = Nothing
             
    End Sub

    Grüße
    Raúl

  4. #4

    Default Re: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    Welche zenon Version und welches Servicepack wird verwendet?

    In der aktuelle Version (6.50 SP0) konnte ich die Variable problemlos anlegen. Ist eventuell das Multiuser Projekt im Editor geladen, aber nicht aktiv, und statdessen ein anderes Projekt aktiv?

    Im VBA Code wird davon ausgegangen, dass es im Projekt ein S7TCP Treiber gibt, wenn aber ein anderes Projekt aktiv ist, muss das nicht der Fall sein. Im VBA Code wird das nicht abgefangen.

    So könnte der VBA code auch aussehen:

    Sub CreateVar()
    Dim myDrv As Driver
    Dim myVar As Variable
    Dim myVarType As VarType
    Dim myVarName As String
    
    Set myDrv = MyWorkspace.ActiveDocument.Drivers.Item("S7 TCP-IP")
    Set myVarType = MyWorkspace.ActiveDocument.VarTypes.Item("STRING")
    myVarName = "Var_" & CStr(Now)
    
    If Not myDrv Is Nothing And Not myVarType Is Nothing Then
        Set myVar = MyWorkspace.ActiveDocument.Variables.Item(myVarName)
        If myVar Is Nothing Then
            Set myVar = MyWorkspace.ActiveDocument.Variables.CreateVar(myVarName, myDrv, tpExBaustein, myVarType)
        End If
        If Not myVar Is Nothing Then
            Debug.Print "varname = " & myVar.name
        End If
    End If
    
    End Sub

  5. #5

    Default Re: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    damit eine neue Variable angelegt werden kann, muss die Variablenverwaltung, oder der Treiber, nicht unbedingt ausgechecked sein.

    Das Auschecken und einchecken selbst ist auch von VBA aus möglich.

    Damit VBA Code ausgeführt und angepasst werden kann von VBA myWorkspace aus, ist es nicht unbedingt erforderlich VBA für das Projekt auszuchecken.

    Sollten Änderungen in VBA thisproject (für die Runtime) dauerhaft gespeichert werden, muss VBA vor den Änderungen ausgechecked werden.

  6. #6
    Join Date
    26.04.2010
    Posts
    95

    Default Re: Mehrplatzfähiges-Projekt (Variablen über VBA anlegen)

    Danke, es funktioniert wieder. Ich habe:
    - Von thisProject auf MyWorkspace umschaltet.
    - "S7 TCP-IP Treiber" statt "S7TCP32" benutzt.

Similar Threads

  1. Projekt von Zenon 6.20 SP4 Build5 nach 6.22 SP1 Build0
    By xxx in forum Editor and Runtime Setup
    Replies: 1
    Last Post: 2nd June 2009, 10:33
  2. Keine Verbindung zum Projekt
    By fmut in forum zenon Supervisor
    Replies: 3
    Last Post: 2nd June 2009, 09:34
  3. Zenon Projekt wieder bearbeiten
    By mario.mare in forum zenon Supervisor
    Replies: 4
    Last Post: 30th May 2009, 16:08
  4. Replies: 5
    Last Post: 16th October 2008, 07:56

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •