Autor
|
Thema: E3.series Com-Schnittstelle unter vb.net (2373 mal gelesen)
|
CS4007 Mitglied Entwicklung / Elektrotechnik
Beiträge: 29 Registriert: 23.03.2005 Windows XP SP2 Intel P4 3,00 GHz 1 GB RAM NVidia QuadroFX 2 Monitore
|
erstellt am: 29. Sep. 2005 12:25 <-- editieren / zitieren --> Unities abgeben:
Bei der Erstellung eines .net Programmes welches über die COM-Schnittstelle mit E3 kommuniziert, vor der Aufgabenstellung gestanden ein neues Projekt zu erzeugen und dabei massiv auf Probleme gestossen die sich wie folgt darstellen: - E3Project = E3Application.CreateJobObject Erzeugt folgenden Fehler: "Anwendung ist ausgelastet..." Es wird kein neues Projekt erzeugt; Auch ein manuelles Erzeugen eines Projektes über die Menüleiste in E3 ist plötzlich nicht mehr möglich (Es passiert einfach "nichts") - E3Project.[New]("Das ist der Projektname") Also über einen Konstruktor wie es in der Regel in .net gemacht funktioniert auch nicht. Problem wie unter Punkt 1 - E3Project = CreateObject("CT.Job") Ebenso; Siehe Punkt 1 und 2; Wäre toll, wenn mir jemand dazu nähere Auskunft geben könnte, bzw. mir mitteilen könnte ob der Fehler auf meiner Seite der ComSchnittstelle liegt, oder auf der anderen Grüsse CS4007 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eldorado Mitglied
Beiträge: 73 Registriert: 12.06.2004
|
erstellt am: 29. Sep. 2005 18:40 <-- editieren / zitieren --> Unities abgeben: Nur für CS4007
Die Meldung "Anwendung ist ausgelastet" kommt eigentlich nur, wenn die Anwendung gerade mit anderen Aufgaben beschäftigt ist und nicht (rechtzeitig) auf die Anfrage reagieren kann. Darauf lässt auch der Effekt schließen, dass E³ nicht über die Menüleiste bedienbar ist. Warum auch immer... Folgender Code zeigt, wie man einfach auf ein schon laufendes E³ zugreifen kann oder eben eines neu startet wenn noch keines läuft: Code: Dim e3 As e3.e3Application Dim prj As e3.e3Jobe3 = New e3.e3Application prj = e3.CreateJobObject If prj.GetId <> 0 Then MsgBox(prj.GetName & " ist aktuell geöffnet") Else MsgBox("Es ist noch kein Projekt geöffnet") prj.New("Demo") MsgBox(prj.GetName & " wurde neu erzeugt") End If System.Runtime.InteropServices.Marshal.ReleaseComObject(prj) System.Runtime.InteropServices.Marshal.ReleaseComObject(e3)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CS4007 Mitglied Entwicklung / Elektrotechnik
Beiträge: 29 Registriert: 23.03.2005 Windows XP SP2 Intel P4 3,00 GHz 1 GB RAM NVidia QuadroFX 2 Monitore
|
erstellt am: 29. Sep. 2005 19:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Funktioniert nur wenn zuvor bereits eine E3.series Anwendung geöffnet ist, und zu dieser eine Verbindung hergestellt wird. Wir eine E3.series Anwendung aus dem vb.net Programm heraus gestartet, so erhalte ich im 2. Schritt kein geöffnetes Projekt und die Meldung des Fensters lautet: "wurde neu erzeugt". (Hab deinen Code 1:1 kopiert) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eldorado Mitglied
Beiträge: 73 Registriert: 12.06.2004
|
erstellt am: 29. Sep. 2005 23:48 <-- editieren / zitieren --> Unities abgeben: Nur für CS4007
Hmm, hier geht's... Um mal sicher zu gehen, dass wir auch mit der gleichen Umgebung experimentieren, habe ich eine kleine Mini-.NET-Solution hier angeheftet. Einfach entpacken, im Studio öffnen und F5 drücken. Dann sollte ein kleiner Dialog erscheinen, anhand dessen du E³ starten und beenden kannst... Welche E³-Version verwendest du? Hier läuft "E³.series Build 2004-350 (Jun 3 2005 16:11:53)".
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CS4007 Mitglied Entwicklung / Elektrotechnik
Beiträge: 29 Registriert: 23.03.2005 Windows XP SP2 Intel P4 3,00 GHz 1 GB RAM NVidia QuadroFX 2 Monitore
|
erstellt am: 30. Sep. 2005 09:15 <-- editieren / zitieren --> Unities abgeben:
Hallo und danke für den Einsatz... ...auch wenn´s jetzt anstrengend wird. Deine Solution funktioniert ebenfalls nur, wenn bereits zuvor eine E3.series Anwendung gestartet ist. Wird eine neue über deine Programm gestartet funktioniert das erzeugen eines neuen Projektes nach wie vor nicht. Jetzt befürchte ich muss ich mal ein wenig tiefer graben, da genau diese Funktion in normalen VB-Skripts tadellos läuft. Noch zur Information: E3.series: E³.series Build 2004-350 (Jun 3 2005 16:11:53) V-Studio .net: Version 7.1.3088 .net Framework: Version 1.1.4322 Grüsse Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| (Junior) Elektrokonstrukteur (m/w/d) | Was unsere Kunden von ihren Technologielösungen erwarten? Das nächste Level! Das gelingt unserem Team bei FERCHAU Tag für Tag. Wir suchen dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und arbeiten mit an anspruchsvollen Lösungen für die Industrie.... | Anzeige ansehen | Elektrotechnik, Elektronik |
|
CS4007 Mitglied Entwicklung / Elektrotechnik
Beiträge: 29 Registriert: 23.03.2005 Windows XP SP2 Intel P4 3,00 GHz 1 GB RAM NVidia QuadroFX 2 Monitore
|
erstellt am: 30. Sep. 2005 10:38 <-- editieren / zitieren --> Unities abgeben:
...E3.support hat geholfen, und zugegebener Weise muss ich zugeben, dass ich da nie draufgekommen wäre. Um zu verhindern, dass dies noch jemandem passiert, versuch ich das ganze halbwegs wahrheitsgemäß wieder zu geben: Startet man E3 manuell, so ist der Defaultpfad für neu angelegte Projekte der Installationspfad von E3.series. Startet man E3 jedoch über die Com Schnittstelle, so ist der Defaultpfad irgendetwas mit C:\Windows\System32.... ...und genau dahin hab ich auf dem Testrechner keine Schreibrechte, womit das Vorhaben scheitert. Irgendwie gut das mir das jetzt passiert, den letztlich bei den Usern wäre das Problem ohnehin aufgetreten. Also als Problemlösung beim "Neuerstellen" eines Projektes den Vollständigen Pfad "C:\..." angeben, dann sollte das ganze funktionieren. Grüsse an alle CS4007 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |