Page 1 of 3 1 2 3 LastLast
Showing results 1 to 10 of 23

Thread: ActiveX

  1. #1
    Join Date
    14.03.2008
    Posts
    13

    Default ActiveX

    Kann man mit einem ActiveX Element auf S7 PLCSIM zugreifen und wenn, wie???


    hagn

  2. #2

    Default Re: ActiveX

    Direkte Erfahrung hiermit habe ich leider nicht.

    Es ist freilich möglich in zenOn im Bild ein ActiveX Control als Grafisches Element zu verwenden. Auch besteht die Möglichkeit im VBA Editor das ActiveX Control als Verweise einzubinden.

    Eine dritte Möglichkeit bietet das zenOn COM-Interface, womit aus einer externe Applikation (VB6, VB.NET, C#, C++, ) auf die Objekte in der zenOn Runtime zugegriffen werden kann.

    Denkbar ist also auch eine externe Applikation welcher als Gateway zwischen S7 PLCSIM und zenOn funktioniert.

    Allerdings scheint es hier bei S7ProSim (S7WSPSMX.OCX) laut Beiträge in anderen Foren auch Einschränkungen zu geben: http://www.sps-forum.de/showthread.php?t=9780

  3. #3
    Join Date
    14.03.2008
    Posts
    13

    Default Re: ActiveX

    Hallo Mark,
    danke für die Anregungen!
    Ich würde gerne mit ZenOn und Step7 Anlagen für die berufliche Ausbildung simulieren, d.h. ohne reale Hardware läuft in Step7 mit PlcSim das Steuerungsprogramm und tauscht mit ZenOn zyklisch Daten aus. In ZenOn werden diese Variablen dargestellt und es erfolgt wiederum die Rückmeldung an Step7. Ist dies mit ZenOn realistisch darstellbar?

    Hagn

  4. #4

    Default Re: ActiveX

    Hallo Hagn,

    was ich bis jetzt gesehen habe, bietet S7PLCSim zwar das ActiveX Control (S7WSPSMX.OCX) an zur Kommunikation von einer externe Anwendung mit S7PLCSim, allerdings dürfte der Zugriff auf S7PLCSim beschränkt sein auf Ein- und Ausgänge.

    Was ich allerdings gelesen habe ist, dass die letzte Version von S7PLCSim auf die S7 WinAC SoftSPS aufsetzt. Es wäre noch einen Versuch wert, den Siemens WinAC Treiber in zenOn anzulegen und zu konfigurieren für den Zugriff auf S7PLCSim. Der Siemens WinAC Treiber nutzt Siemens Komponenten zur Kommunikation zu einer Siemens WinAC / WinLC SPS. Wenn S7PLCSim nun auf das gleiche aufsetzt... könnte es vielleicht funtionieren.

    Die Erkenntnisse aus diesem Test würden mich sehr interessieren. Leider kann ich es nicht ausprobieren, da ich nicht über S7PLCSim verfüge.

    Was aber eventeull auch interessant sein dürfe, ist STRATON als Alternativ zu verwenden. Diese IEC 61131-3 Programmierumgebung für Steuerungen unterstützt alle IEC programmiersprachen, und lässt sich Ideal auch für Simulationszwecken nutzen. Mit wenigen Handgriffe lässt sich die STRATON SPS Projekt um einer Vielzahl an I/Os erweitern, sollte das Programm tatsächlich zum Einsatz kommen.

    Programme in ST könnten von Step7 in STRATON übernommen werden.

  5. #5
    Join Date
    14.03.2008
    Posts
    13

    Default Re: ActiveX

    hallo,
    laut Siemens kann bei PLCSIM 5.4 nur über COM Objekte zugreifen.
    ActiveX läuft soweit, allerdings schaffe ich es nicht Daten aus PLCSIM an eine Variable in ZenOn anzulegen???

    Gruß

  6. #6

    Default Re: ActiveX

    Rein das Einfügen vom ActiveX Control in ein zenOn bild bringt keine Daten zu zenOn Variablen.

    Eventuell lässt sich das ActiveX Control im zenOn VBA Editor einbinden, und kann von VBA aus über die COM-Schnittstelle auf die Daten (Ein- Ausgänge) von PLCSim porgrammatisch zugegriffen werden. Über VBA könnte man die Werte der Variablen auf zenOn Variablen zuweisen. Hier bin ich allerdings nicht 100% sicher ob das mit der COM Verbindung auf S7PLCSim von VBA aus funktioniert.

    Über eine externe VB.NET oder C# Applikation könnte das ActiveX Control von PLCSim ebenfalls eingebunden werden, der Zugriff auf PLCSim und auf zenOn erfolgt dann programmatisch über das COM interface. (für zenOn hierzu die zenrt32.tlb in VB.NET oder C# einbinden). Die Werte die aus S7PLCSim kommen, müssten in diese Anwendung auf zenOn Variablen geschrieben werden.
    Last edited by markclemens : 19th March 2008 at 08:13

  7. #7
    Join Date
    14.03.2008
    Posts
    13

    Beitrag Re: ActiveX

    Der Zugriff auf E/As von PLCSIM ist soweit ok, werden auch angzeigt, aber in der ZenOn Variable ???
    VB:
    Private Sub daten_Click()
    Dim errReadOutputImage As Long
    Dim lStartIndex As Long
    Dim lElementsToRead As Long
    'ImageDataTypeConstants
    Dim DataType As ImageDataTypeConstants
    'Variant
    Dim vData As Variant
    Dim wert As Byte
    
    '***** 2 Bytes an Anfangsadresse A124.0 lesen *****
    DataType = S7Byte 'Datentyp Byte lesen
    lStartIndex = 124 'Beginn an Adresse A124.0
    lElementsToRead = 2 '2 Elemente (Bytes) lesen
    errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _
    lElementsToRead, DataType, vData)
    If errReadOutputImage = S_OK Then
    MsgBox "Wert von AB 124 ist: " & CByte(vData(0)) & vbCrLf & _
    "Wert von AB 125 ist: " & CByte(vData(1)), _
    vbInformation, "S7ProSim-Beispiel"
    
    thisProject.Variables.Item(sim).Value = wert
    MsgBox thisProject.Variables.Item(sim).Value
    Else
    MsgBox errReadOutputImage
    End If
    
    End Sub
    sim ist eine Variable mit
    Treiber: Intern-Interne Variable
    Datentyp:INT
    Treiber Oblekttyp: Interne Variable

    Danke für die Mühe!

  8. #8

    Default Re: ActiveX

    Für den Zugriff auf zenOn Variablen mittels VBA gibt es ein paar Dinge zu beachten. Erstens muss die Variable "Advised" sein. Dass kann z.B. einfach gemacht werden indem das Property von der Variable "DDE Aktiv" unter "Zusätzliche Einstellungen" im Eigenschaftenfenster im zenOn Editor aktiviert wird.

    Eine Variable is z.B. auch "Advised" (sprich angefordert von der SPS oder in diesem Fall vom Intern Treiber) wenn dieser im Bild angezeigt wird.

    Der Zugriff auf das ".value" property von der Variable "sim" könnte wie folgt aussehen:

    Sub setval(ByVal vValue)
    'procedure to write a value to a variable
    Dim obVar As Variable
    Set obVar = thisProject.Variables.Item("sim")
    If (Not obVar Is Nothing) Then
    'if the variable exists:
        If obVar.IsOnline Then
            'if the variable is advised then write
            obVar.Value = vValue
            Debug.Print "value of variable: " & obVar.Name _
            & " is: " & obVar.Value
        End If
    End If
    End Sub

    natürlich könnte man das Schreiben direkt in der Prozedur machen, oder dieses Beispiel auch noch den Variablennamen übergeben.

    In dem Beispiel habe ich nirgends gesehen, wo die Variable "wert" beschrieben wird.
    In dem Beispiel fehlen die "" beim Variablennamen "sim" (Variables.Item(sim).Value )

  9. #9
    Join Date
    14.03.2008
    Posts
    13

    Default Re: ActiveX

    Hallo, klappt leider nicht!
    mein Projekt habe über upload geschickt PLCSIMTest. Darin ist alles ziemlich unstrukturiert , nur als Test gedacht!

    Gruß
    Attached Files Attached Files

  10. #10

    Default Re: ActiveX

    was funktioniert genau nicht? Hat "vValue" einen Wert? Ich kann es hier aufgrund fehlender PLCSim nicht ausprobieren.

    Funktioniert das schreiben auf den Variablen grundsätlich (vielleicht ist die Variable in zenOn read-only?)

Similar Threads

  1. ActiveX Control in zenOn
    By sebastiank in forum VBA
    Replies: 2
    Last Post: 27th February 2009, 19:38

Posting Rules

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