WinCC Flex kann Jemand hilfen? Kamera via Active-X in WinCCflexible einbinden

samir85

Level-1
Beiträge
42
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe das Problem von Einbindung des Active-X in WinCC flexible.
Ich habe OCX von Builder Marking 3 in wincc flex hinzufügt, und die MB3ActX.ocx , MBActX.ocx unter C:\Windows\SysWOW64 regestriert.

So sieht in WinCC flexible.
[FONT=&quot]
wFD0dAY3lCKegAAAABJRU5ErkJggg==
19nkJ0VRw tr2oSiqKPqS9mEoqhj64vcN6EoyqHmNvkPmKPxOtgND1AAAAAASUVORK5CYII=
[/FONT]

Ich habe ein Skript gieschrieben wie folgendes:

'Initial setting
Call MBActX1.InitMBActX(MARKINGUNIT_MDX1500)
MBActX1.IsAutoRedraw = True
MBActX1.IsBlockingCommunication = True
'Online Operation
Dim A 'As String
MBActX1.Comm.IpAddress = "192.168.1.11"
A = MBActX1.Comm.IpAddress
Call MBActX1.Comm.Online
'Controller Operation
MBActX1.Operation.IsCameraFinderView = True
MBActX1.Operation.GetCameraViewImage ("test.BMP")
Dim grade
MBActX1.Operation.Read2DCode
MBActX1.Operation.Get2DCodeReadResult Content, grade
If grade = 0 Then
Debug.Write "E"
ElseIf grade = 1 Then
Debug.Write "D"
ElseIf grade = 2 Then
Debug.Write "C"
ElseIf grade = 3 Then
Debug.Write "B"
ElseIf grade = 4 Then
Debug.Write "A"
End If

Kp7YAAAAASUVORK5CYII=


Aber in Runtime es ist immer Schwarz, wo steht das Problem bitte?

vielen Dank im Voraus
LG samirAnhang anzeigen MD-X1000_1500_ActiveX_UM_421GB_252007_E_1095-3.pdf
 
hi Harald

ich kriege folgende Meldung:
Fehler 'Objekt erforderlich: 'MBActX1" in Skript Zeile 13

am anfang war unterstrichem mit Rote linie und dann habe ich es als Parameter hinzufügt siehe das Bild

mbactx1.PNG

was kann ich jetzt machen, um dieses Objekt zu finden?
LG Samir
 
Wenn ich ein ActiveX in einem Script ansprechen will dann läuft das so :
Code:
   Set myScreen = HmiRuntime.Screens(1)
   Set myChart = myScreen.ScreenItems("XY_Chart1")
In diesem Fall ist XY_Chart1 der Name, den das ActiveX auf der Bildschirmseite hat.
Bei allen Zugriffen darauf benutze ich dann das mit Set zugewiesene Objekt - also myChart

Vielleicht versuchst du das in deinem Script auch mal so und stellst es dann (am Besten vollständig) hier ein ...

Gruß
Larry
 
D1.pngD2.pngD3.png

jetzt es ist in Zeile 16, das Problem ist, das instance Variable MBActX1 ist für Excel, axMBAxctX1 ist für V.S 2013, welche Name für instance Variable in WinCC flexible? wie Kann ich das herausfinden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast das ActiveX doch in Flexibel eingebunden.
Das kannst du daran erkennen, dass es dir unter den Werkzeugen in der Rubrik "eigene Controls" zum Auswählen angeboten wird.
Dieses Objekt ziehst du nun auf eine Bildschirmseite - in diesem Moment erhält es einen Namen - zu sehen unter Eigenschaften\Verschiedenes\Objektname des plazierten Objektes.
Diesen Namen trägst du in meinem Codeschnipsel als ScreenItem ein.

Anmerkung : Dein Code ist immer noch nicht vollständig ...
 
Ich meinte nicht Screenshots machen sondern den Code mit Copy und Paste hier einfügen.

Überall, wo du jetzt das unterkringelte MBActX1 stehen hast mußt du irgendwie noch das Objekt myChart dazuschreiben - du mußt das Objekt übrigens nicht myChart nennen - bei dir wäre vielleicht myLaser besser (bei mir ist es ein Chart-Objekt).
Vielleicht könnte dein Zugriff so heißen (beispielhaft) : myLaser.MBActX1.IsAutoRedraw = true

...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Probier mal "alles neu-generieren".
Obwohl das man alle mögliche ActiveX in WinCC Flexible einbinden kann, dann habe ich nur wenige ActiveX gefunden die tatsächlich funktionieren mit WinCC Flexible.

Vielleicht hilft dies. Es ist für Comfort Panels, aber kann sein es funktioniert auch bei PC RT:
Überwachung von Maschinen und Anlagen mit Netzwerkkameras in Verbindung mit SIMATIC HMI Bediengeräten

edit: Für Comfort Panels und PC RT, aber leider nur für TIA Portal:
[h=1]Überwachung von Maschinen oder Anlagen per Live-Video im TIA Portal[/h]
 
Zuletzt bearbeitet:
ich kriege folgende Meldung:
Fehler 'Objekt erforderlich: 'MBActX1" in Skript Zeile 13

am anfang war unterstrichem mit Rote linie...
Klar, dort ist auch noch nirgends ein Object "MBActX1" definiert.

und dann habe ich es als Parameter hinzufügt siehe das Bild
Das wird nicht viel helfen, eine Übergabe von Objekten per Funkions-Parameter ist in WinCC-Flexible nicht erlaubt.

was kann ich jetzt machen, um dieses Objekt zu finden?8/QUOTE]
Das wie Larry dir oben schon vorgeben hat...
Du musst dein Objekt korrekt erzeugen.
Code:
'Skriptanfang

Dim MBActX1m , myScreen

Set myScreen = HmiRuntime.Screens(1)
Set MBActX1 = myScreen.ScreenItems("MBActX1_Objektname_aus_Bild")

'Skriptende (optional)
Set myScreen = Nothing
Set MBActX1 = Nothing
Das MBActX1 als Funktionsparameter musst du logischerweise entfernen. Direktes übergeben von Objekten geht nicht.
Man könnte höchsten den Namen "MBActX1" als Zeichenkette übergeben und daraus ein Objekt erstellen.


Dann ist die nächste frage ob sich die Dinge aus Excel so einfach überführen lassen.
Excel verwendet VBA, WinCC verwendet vbScript.

Geht "Debug.Write" in WinCC? Die Standarfunktion lautet "HMIRuntime.Trace("meinText")
Zur Anzeige musst du eine Meldeanzeige im Bild einfügen und die Anzeige von "Systemmeldungen" dort aktivieren.


 
Zuletzt bearbeitet:
Zurück
Oben