mit basic auf opc variablen, skript schützen

Johannes F

Level-1
Beiträge
232
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
habe eine flex 2008RT mit opc server auf einem pc laufen, habe in einige skripte viel arbeit gesteckt und möchte dieses nur etwas schützen. gibt es die möglichkeit ähnlich wie bei s7?
vermutlich nicht :confused:

das dies vermutlich nicht funktioniert möchte ich die skripte auslagern und mit einem basic compiler eine exe erzeugen. wie kann ich mit basic auf die variablen der opc servers zugreifen?

evtl. hat jemand noch eine andere idee?
 
Ich glaube deine Skripte sind schon genügend geschützt.
Ich habe gerade einer von meiner .fwx Dateien wo mehrere Skripte sich verstecken, mit ein Hex-editor durchgescant.
Nirgendswo ist der VBS Code in Klartext zu lesen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja das schon, aber der kunde bekommt das kompl. projekt *.hmi steht so im vertrag. die letzte kompl. eneuerte visu von mir läuft jetzt auf vielen baugleichen anlagen :-(
das soll jetzt ein ende haben :)
 
ja das schon, aber der kunde bekommt das kompl. projekt *.hmi steht so im vertrag. die letzte kompl. eneuerte visu von mir läuft jetzt auf vielen baugleichen anlagen :-(
das soll jetzt ein ende haben :)

also wenn du dem kunde im vetrag das komplette projekt zusicherst musst du es ihm ja auch geben. ist das rein rechtlich überhaupt erlaubt das auszulagern?

mhm, ansonsten könntest du noch über ein script ein externes programm aufrufen, und zum schluß bsw die ergebnis deines externen programmes in ein textfile schreiben welches du dann wieder in einem script einliest!
 
ja genau so habe ich es vor, die skripte auslagern und über opv auf die flex variablen zugreifen. in den skripten sind noch einige sicherheitsabfragen aus der cpu ;-)
nur habe noch nichts richtiges gefunden wie die kommunikation über die opc variablen funzt.
aus vb heraus muss ich ja erstmal den opc server ansprechen ehe ich an die variablen komme. habe bei siemens etwas gefunden, da müssen erst mit opc-scout die items in eine gruppe zusammengefasst werden. aber warum nur?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den beste Information via man OPC Daten mit VB oder andere Sprachen austauscht findest Du hier:
http://www.opcconnect.com/
Ich empfehle Dich ein fertige Component zu kaufen.

habe bei siemens etwas gefunden, da müssen erst mit opc-scout die items in eine gruppe zusammengefasst werden
Nein. Der OPC Scout ist nur ein Test Client. Es wird nicht benötigt, ausser für Test-Zwecken.
Entweder: OPC Server Option für WinCC Flex RT.
Oder: Mit Simatic Net, der PC Station mit OPC Server und ein "Verbindung" zu den SPS einrichten.
 
VB und OPC

Um mit VBasic auf OPC zuzugreifen wird das sogenannte "Automation Interface" verwendet. Dieses ist bei der OPC Foundation (und auch über die meisten Hersteller, die OPC Server anbieten) erhältlich. Es handelt sich um eine DLL "opcdaauto.dll" die sich üblicherweise in "system32" befindet.

Diese DLL muss von VBasic oder Excel referenziert werden (hinzufügen Verweise) und dann kann man dagegen programmieren.

Die hier weiter oben vorgeschlagenen "gekauften Komponenten" machen nichts anderes als diese Schnittstelle nochmal kapseln (und teilweise vereinfachen). Solche ActivX Controls kann man dann einfach in VBasic reinziehen.

Siemens (auf der SimaticNET CD): DataControl (kostenlos)
OPC Connect, die Infoseite für OPC
Kepware (ClientACE): Control für .NET
ca. 20 weitere Anbieter
 
danke für die info's
hat evtl. jemand ein projekt mit welchen z.b. einfach eine variable aus dem siemens opc server gelesen wird z.b. um zwei erhöt und wieder in eine andere variable des opc geschrieben wird?
dann könnte ich mich daan anlehnen,
danke im voraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf der SimaticNET CD sind verschiedene Beispiele drauf, diese werden immer mit installiert, natürlich schön versteckt.

c:\programme\siemens\simatic.net\opc2\samples\

Auf der neuen CD 2008 sind leider die Beispiele für VB6 nicht mehr enthalten, sondern nur noch VB.NET. (s. \automation) über eine interop.dll. Die C++Fans müssen in \custom reinschauen. Notfalls eine "ältere" CD besorgen wenn es das "alte" VB6 sein soll. Funktionieren muss das auch, denn die OPC Schnittstelle bleibt immer gleich. VB6 hat den Vorteil das der Client kein .NET benötigt.

Kommentare sind im Source Code enthalten. Ist wirklich total simpel.

Vorsicht ist nur dann geboten wenn man das "einfache" Beispiel auf riesige Mengengerüste erweitert, hierzu sollten grundsätzlich die "Mengenaufrufe" der OPC Schnittstelle verwendet werden. Man sollte sich bewußt sein, dass jeder Read(device) und jeder Write Aufruf des Clients den OPC Server "zwingt" ein S7-Telegram an die SPS zu schicken.

Das Vorgehen ist immer gleich:
1) ServerObject erzeugen und verbinden (Connect)
2) GroupObject erzeugen (AddGroup)
3) alle Items auf einen Schlag in die Gruppe hinzufügen (AddItems)
4) Gruppe aktivieren
5) Read/Write auf möglichst viele Items gleichzeitig
6) anstelle Read in einer Schleife immer OnDataChange verwenden
fertig
 
Zurück
Oben