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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: WinCC per Batch Datei beenden?

  1. #21
    Registriert seit
    25.02.2010
    Beiträge
    618
    Danke
    35
    Erhielt 121 Danke für 110 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Habe mich interessehalber noch ein wenig mit dem Problem beschäftigt.
    In iNet gibt es leider nur unvollständige Lösungen.
    Damit dieser Beitrag nicht auch so endet möchte ich noch etwas anmerken.

    Die Lösung mit dem Verändern von WinCC Variablen ist meiner Meinung nach die beste Lösung. Leider auch etwas umständlich.

    Um Zugriff auf die WinCC Variablen zu bekommen ist die Datei "CCMCPAUTSERVERLib.dll" notwendig. Diese ist allerdings in der WinCC Installation nicht vorhanden sondern muss erst aus der Datei "CCMCPAUTSERVER.tlb" erstellt werden. Dies ist z.B. mit dem Verweis aus Visual Studio oder dem Tool "TLBimp" möglich. Leider sind beides Microsoft Produkte und bedürfen einer Lizenz.
    Ob eine Weitergabe der "CCMCPAUTSERVERLib.dll" möglich ist kann ich nicht sagen, da das Copyright der "CCMCPAUTSERVER.tlb" bei Siemens liegt.

    Fazit: Sehr guter Ansatz. Leider muss man sich zur Zeit noch das Visual Studio und mit dem Windows SDK installieren.

    Hier ein Auszug der Supportantwort
    Je nach verwendeten Funktionen benötigen Sie eine WinCC RT oder CS Lizenz, sowie Lizenzen von ggf. genutzten Zusatz-Optionen
    Damit ist ein öffentlicher UpLoad leider ausgeschlossen.


    Grüsse Holger
    Geändert von holgermaik (30.01.2014 um 13:16 Uhr) Grund: Antwort vom Support
    Zitieren Zitieren Lösung leider nur bedingt verwendbar  

  2. Folgender Benutzer sagt Danke zu holgermaik für den nützlichen Beitrag:

    ducati (30.01.2014)

  3. #22
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    So ganz habe ich diesen COM Mechanismus auch noch nicht durchschaut, aber ich bin mir sehr sicher dass man aus einer tlb keine dll erstellen kann. Das läuft wenn dann eher andersherum, denn in der tlb ist nur eine Beschreibung der Schnittstelle und keine Programmcode.

    In diesem Fall ist der COM-Server aber in keiner dll sondern in der CCMcpAutServer.exe. Darum würde ich der Siemens Support Antwort auch keine Bedeutung beimessen, da saß bestimmt jemand ohne einen blassen Schimmer worum es überhaupt geht (Standardantwort: sie brauchen natürlich eine Lizenz). Ein bereitgestellter Quellcode lässt sich nur mit einem lizensierten WinCC verwenden, andernfalls ist das daraus erstellte Programm nutzlos.

    Mit dem OLE Viewer aus dem Visual Studio SDK kann man sich eine idl-Datei aus dem COM Objekt erzeugen lassen, sodass man die tlb überhaupt nicht benötigt. Eigentlich sollte man das COM-Objekt damit z.B. aus einem C++ Programm heraus ansprechen können. Ich habe das vor einiger Zeit bei der Plcsim-Prosim COM Schnittstelle versucht, aber immer nur mit dem Wizard des Visual Studios hinbekommen. Alle meine Versuche das nur mit der idl-Datei, ohne den Wizard oder mit einem Nicht-MS-Compiler (mingw) zu realisieren sind bisher gescheitert

    Was aber funktioniert ist das Anspechen der Schnittstelle mittels Python und pywin32.
    Dazu muss mittels pythonwin.exe mit dem dort enthaltenen COM makepy utility aus der "CCMcpAutServer 1.0 Type Library" ein Modul erzeugt werden.
    Dann kann man die Schnittstelle recht einfach mit:
    Code:
    import win32com.client
    wincc = win32com.client.Dispatch("WinCC-Runtime-Project")
    val = wincc.GetValue("TestFloat1")
    print ("TestFloat1 = " , val)
    verwendet werden.

    Eine ausführbare exe Datei die man nur auf den WinCC-Rechner kopieren muss ohne weitere Programme installieren oder auszuführen zu müssen wäre natürlich schöner, aber eine Python Installation ist gegenüber dem Visual Studio ein Leichtgewicht, und verursacht keine weiteren Lizenzkosten.

  4. #23
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Eine ausführbare exe Datei die man nur auf den WinCC-Rechner kopieren muss ohne weitere Programme installieren oder auszuführen zu müssen wäre natürlich schöner, ...
    Genau das macht AutoIt!

    Ich kenne es von benutzerdefinierten Programm-Installationen beim unattended Windows-Setup, die das Setup-Programm so nicht automatisch ermöglichen würde. Einmal aufzeichnen, was man manuell machen würde und voila ...
    (Notfalls kann man das Script auch noch mehr lassen machen.)

    Und das Ganze ist Freeware!

    Die erstellte Datei läuft auf jedem Win-Rechner, auch ohne das Aufzeichnungs-/Programmierprogramm. Aufgezeichnete Absolut-Bildschirm-Adressen kann man z.B. auch berechnen lassen, um an unterschiedliche Graphikauflösungen anzupassen.

  5. #24
    Registriert seit
    25.02.2010
    Beiträge
    618
    Danke
    35
    Erhielt 121 Danke für 110 Beiträge

    Standard

    Hallo Thomas
    Du hast mich falsch verstanden.
    Jennsy hat seine/ihre ? Exe hochgeladen. Da diese aber keinen Schnittstellencode enthält ist so nicht brauchbar. Der Schnittstellencode für das COM Object befindet sich in der DLL. Ich wollte jetzt einfach die DLL und ein kleines Tool ins Forum laden um ein Gesamtpaket für alle die es brauchen bereit zu stellen.
    Dies ist aber aus Copyrightgründen nicht möglich (ich würde gegen den Lizenzvertrag verstossen), da sie dann jeder auch der der keine WinCC Lizenz hat runterladen könnte. Was zwar keinen Sinn macht aber ist halt so. Selbstverständlich darfst du ein Programm welches du geschrieben hast mit der DLL auf einem WinCC Rechner betreiben und auch an Kunden weitergeben. Denn diese haben ja mindestens eine gültige RT Lizenz erworben.

    aus der "CCMcpAutServer 1.0 Type Library" ein Modul erzeugt werden.
    Genau das macht TLBimp. Diese erzeugte DLL kann man dann in einem Net Projekt zuweisen und die Funktionen nutzen. Funktioniert super. Variablen lesen und schreiben in einer WinCC RT. Könnte man sicherlich für vieles nutzen nicht nur zum ausschalten.


    Grüsse Holger

  6. #25
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    So, habs mit einer in C geschriebenen Standalone exe am laufen
    Es wird dabei keine dll, tlb oder was auch immer aus dem WinCC Projekt benötigt, und die exe kann auf einem beliebigen Rechner mit VC++ oder dev-cpp Compiler erstellt werden.
    Das Programm benutzt das bei COM mögliche late binding. Das ist zwar etwas langsamer, aber um eine Variable zu lesen und schreiben reichts aus.

    Mit Verwendung dieser
    http://disphelper.sourceforge.net/

    Bibliothek ist das relativ einfach.

    Ein Auslesen einer WinCC Variable sieht ohne Fehlerbehandlung so aus:
    Code:
    void wincctest(void)
    {
    	DISPATCH_OBJ(winccrt);
    	double value;
    	dhCreateObject(L"WinCC-Runtime-Project", NULL, &winccrt);	
    	dhGetValue(L"%e", &value, winccrt, L".GetValue(%S)", L"TestFloat1");
    	printf("TestFloat1 = %e \r\n", value);
    }
    Ich bin begeistert!
    Denn ich habe mir genau wie beim TO bei dem Problem mit dem Runterfahren von WinCC über eine USV vor ein paar Monaten noch einen abgebrochen. Da habe ich es so gemacht dass die USV Software in eine Datei schreibt, und WinCC die Datei einliest und sich dann ggf. beendet.

    Evtl. gehts ja auch in Autoit, dann bräuchte man keinen C-Compiler dafür.

  7. #26
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Evtl. gehts ja auch in Autoit, dann bräuchte man keinen C-Compiler dafür.
    Ist halt, als ob man's manuell beendet.

    Die Frage dabei ist: Wie gut ist das Script erstellt, um es von Rechner zu Rechner funktionsfähig weiter geben zu können?
    Vor allem, wenn sich die Lage von Bedienelementen ändert.

  8. #27
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von holgermaik Beitrag anzeigen
    Jennsy hat seine/ihre ? Exe hochgeladen. Da diese aber keinen Schnittstellencode enthält ist so nicht brauchbar. Der Schnittstellencode für das COM Object befindet sich in der DLL. Ich wollte jetzt einfach die DLL und ein kleines Tool ins Forum laden um ein Gesamtpaket für alle die es brauchen bereit zu stellen.
    Dies ist aber aus Copyrightgründen nicht möglich (ich würde gegen den Lizenzvertrag verstossen), da sie dann jeder auch der der keine WinCC Lizenz hat runterladen könnte. Was zwar keinen Sinn macht aber ist halt so.
    Ist das was du meinst sowas wie eine Interop dll die das Visual Studio bei der Verwendung von COM Objekten generiert? Das habe ich bei nettoplcsim auch drin, und wird von mir auch mit ausgeliefert. In der dll ist aber kein wirklicher Programmcode, sondern nur die Beschreibung der Schnittstelle die man so auch im Handbuch findet. Ohne Step7 kann damit aber keiner etwas anfangen, weil die dll mit den eigentlichen Funktionen dann fehlt.
    Kennst du dazu offizielle Gerichtsentscheide ob das erlaubt ist oder nicht? Kann mir aber nicht vorstellen dass nicht, denn das wird doch gerade im Zusammenhang mit Office-Programmen massenhaft so (oder so ähnlich) verwendet.

  9. #28
    Registriert seit
    25.02.2010
    Beiträge
    618
    Danke
    35
    Erhielt 121 Danke für 110 Beiträge

    Standard

    Ist das was du meinst sowas wie eine Interop dll
    Jep genau das ist sie

    http://msdn.microsoft.com/de-de/libr...vs.110%29.aspx

    MSDN
    Wenn die Assembly auf Typen aus einer COM-Typbibliothek von Drittanbietern verweist, müssen Sie vom Herausgeber eine primäre Interop-Assembly erwerben, bevor Sie eine eigene primäre Interop-Assembly generieren können.
    müssen Sie vom Herausgeber eine primäre Interop-Assembly erwerben
    Was man mit dem Erwerb von WinCC ja getan hat. Im Lizenzvertrag steht dann ungefähr "eine Vervielfälltigung ist nicht erlaubt"
    Darum wollte ich sie nicht ohne Genehmigung von Siemens veröffentlichen.

    Gerichtsurteile kenne ich nicht.
    Wie gesagt das weitergeben stellt auch kein Problem dar. Nur das veröffentlichen.

    Grüsse Holger
    Geändert von holgermaik (31.01.2014 um 07:38 Uhr)

  10. #29
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Also ich würde mal die Kirche im Dorf lassen.
    In der tlb stehen die uuid und drei Funktionsnamen mit Parameterbezeichnungen. Ich möchte mal bezweifeln dass man nur auf diesen Metadaten ein Copyright beanspruchen kann, bzw. dass dieses vor einem Gericht stand hält. Die tlb wurde auch von Siemens mit dem Microsoft MIDL Compiler erzeugt, ist somit computergeneriert.

    Wann man die mitgelieferte tlb nicht verwenden möchte, erstellt man sich mit dem COM Viewer aus der CCMcpAutServer.exe eine eigene IDL-Datei, und erzeugt sich daraus mit dem MIDL nochmal eine eigene tlb.

    In diesem konkreten Fall hätte ich keine Bedenken die Interop dll weiterzugeben, das muss natürlich jeder für sich entscheiden.

  11. #30
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es gibt jetzt einen FAQ von Siemens zu dem Thema:

    http://support.automation.siemens.co...ew/de/89257245

    zufällig einen Monat, nachdem wir das hier diskutiert haben...


  12. Folgende 2 Benutzer sagen Danke zu ducati für den nützlichen Beitrag:

    Jennsy (05.03.2014),Thomas_v2.1 (03.03.2014)

Ähnliche Themen

  1. FTP Transfer durch Batch Datei
    Von L.T. im Forum PC- und Netzwerktechnik
    Antworten: 0
    Letzter Beitrag: 07.11.2013, 12:09
  2. Batch Datei aus S7 Programm anstoßen
    Von olitheis im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 18.06.2012, 16:58
  3. Aus Excel heraus eine Batch Datei ausführen
    Von olitheis im Forum Hochsprachen - OPC
    Antworten: 13
    Letzter Beitrag: 04.07.2011, 12:58
  4. Batch - Datei in einer Batch - Datei aufrufen
    Von CrazyCat im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 26.01.2006, 09:14
  5. WinCC über Batch-File komplett beenden?
    Von S7_Mich im Forum HMI
    Antworten: 10
    Letzter Beitrag: 18.10.2004, 14:35

Lesezeichen

Berechtigungen

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