Autor
|
Thema: Script erstellen über ein Projekt von E3 (1780 mal gelesen)
|
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 13. Mrz. 2019 16:49 <-- editieren / zitieren --> Unities abgeben:
Servus miteinander, kurze frage ich habe soweit alles mit Notepad++ geschrieben, nun stell ich mir die frage, wie kann ich das ganze etwas eingrenzen. Ich habe über 5000 Kabel und zick Stecker. Wie kann ich sagen das ich ein bestimmtes Kabel nur aufgelistet bekomme z.B. alle Ethernet Kabel mit den dazugehörigen Stecker? Hätte da jemand ne Idee. Für Fragen steh ich immer zur Verfügung danke! [Diese Nachricht wurde von Giuseppe.C am 20. Mrz. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 14. Mrz. 2019 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hallo Giuseppe, Wilkommen im E3 Forum! Das kommt zuerst einmal drauf an wie Du Dein Ethernetkabel kennzeichnest. Sprich Du kannst es über den Bauteilnamen (ComponentCode) filtern oder über ein beliebiges Attribut am Kabel bzw. am Kabeltyp. Die angeschlossenen Stecker erhältst Du in dem Du über alle Adern des Kabels interierst und für beide Enden GetEndPinId rufst. Dann bekommst Du die angeschlossenen Anschlusspunkte und von denen kommst Du auf das Betriebsmittel. Ich habe leider gerade kein E3 zur Hand um das schnell auszuprobieren. Pseudo Code: Über alle Kabel Bin ich ein EthernetKabel? Über alle Adern Enden der Ader holen Vom Ende jeweils das Betriebsmittel holen - - - Sag Bescheid wenn Du noch Hilfe brauchst ... Du musst Dich dann aber bis nächste Woche gedulden Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 19. Mrz. 2019 13:41 <-- editieren / zitieren --> Unities abgeben:
|
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 19. Mrz. 2019 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
|
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 19. Mrz. 2019 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Wie Du das Ethernetkabel erkennen kannst musst Du noch wissen Gruß Jörg
Code:
Set e3 = CreateObject( "CT.Application" ) Set prj = e3.CreateJobObject() Set devEnd1 = prj.CreateDeviceObject() Set devEnd2 = prj.CreateDeviceObject() Set cab = prj.CreateDeviceObject() Set cor = prj.CreatePinObject()e3.ClearOutputWindow cabcnt = prj.GetCableIds( cabids ) for i = 1 to cabcnt cab.setid cabids(i) 'if( HIER ETHERNET PRÜFUNG EINFÜGEN ) Then if( true ) then e3.putinfo 0, "Ethernet cable found: " & cab.GetName, cabids(i) corecnt = cab.GetAllCoreIds( coreids ) Dim connectedDevices Set connectedDevices = CreateObject("Scripting.Dictionary") for j = 1 to corecnt cor.Setid coreids(j) e3.putinfo 0, " Core: " & cor.GetName, coreids(j) end1 = cor.GetEndPinId( 1 ) end2 = cor.GetEndPinId( 2 ) devEnd1.Setid( end1 ) if( devEnd1.getid() <> 0 And Not connectedDevices.Exists( devEnd1.getid() ) ) Then connectedDevices.Add devEnd1.getid(), "" end if devEnd2.Setid( end2 ) if( devEnd2.getid() <> 0 And Not connectedDevices.Exists( devEnd2.getid() ) ) Then connectedDevices.Add devEnd2.getid(), "" end if Next For Each device in connectedDevices.Keys devEnd1.Setid( device ) e3.putinfo 0, " Connected Device: " & devEnd1.GetName, device Next End if next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 20. Mrz. 2019 08:28 <-- editieren / zitieren --> Unities abgeben:
Klasse!! Vielen Dank! Weißt du evtl. auch wie man die Suche in E3 verkleinern kann in dem man nur Alle Minussignale welche an Schützen oder Relais angeschlossen sind nach Einbauort und Typ auslesen und in einer Excel darstellen kann. Einbauort,Schemaposition,Minussignal,Typ des Gerät,Schemaseite sollte in Excel auftauchen. Besten DANK!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 20. Mrz. 2019 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hallo nochmal, ich würde Dir vorschlagen alle Pins mit dem betreffenden Signal zu Suchen: Zuerst das Signal item suchen
Code: SignalInterface::Search("meinMinusSignal")
dann alle Pins suchen welche das Signal haben
Code: SignalInterface::GetPinIds()
Dann über alle Pins iterieren und dir den Ort des Pins holen: Code: PinInterface::GetSchemaLocation()
Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 20. Mrz. 2019 13:03 <-- editieren / zitieren --> Unities abgeben:
Hallo und danke das du mir hilfst! Hmm. dieses E3 ist nichts für mich haha -.- Bin noch Anfänger und gib mein bestes. Wenn es dann zu Kleinigkeiten kommt obwohl man schon fertig ist, gibt mein Kopf den geist auf.. Soll ich diese Codes zu dem anderen Code was Sie mir davor vorgeschlagen haben dazu tun oder komplett ein neues schreiben? Gruß Giuse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 20. Mrz. 2019 14:06 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hi Giuseppe, ich habe leider keine Ahnung worauf Du hinaus möchtest. Möchtest Du eine Stückliste erstellen? eine Kabelliste? Platzierungsinformationen aus lesen? Der erste Code schnipsel liest dir die Ethernetkabel + Stecker aus... Die zweite Geschichte mit dem Signal hat ja vermutlich nichts mit dem ersten zu tun. Ich weiss leider auch nicht ob Du etwas bestehendes Ändern willst oder etwas neues schreibst... aus der Ferne ist das immer schwer zu sagen. BTW. Grundsätzlich kann ich Dir eine COM Schulung bei Zuken empfehlen.. ich denk das sollte eine gute Grundlage bieten mit der Schnittstelle zurecht zu kommen. Lieben Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 20. Mrz. 2019 14:13 <-- editieren / zitieren --> Unities abgeben:
Servus Jörg, das erste mit den Kabeln hat super geklappt. Habe es auch hinbekommen, das ich die ausgelesenen Ethernetkabel + Stecker in eine Excelliste bekommen habe. Das andere wäre einfach nur alle Minussignale also PE die im E3 sind raus fische in eine Excel Datei. "Habe ende des Monats endlich meine Schulung " Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 20. Mrz. 2019 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hallo nochmal, ich hoffe das reicht als Ansatz um weiter zu kommen. Is jetzt aber mal Quick and Dirty runtergeschrieben ;-) Code: Set e3 = CreateObject( "CT.Application" ) Set prj = e3.CreateJobObject() Set sig = prj.CreateSignalObject() Set pin = prj.CreatePinObject()Set sht = prj.CreateSheetObject() Set dev = prj.CreateDeviceObject() e3.ClearOutputWindow
sig.Search "PE" pincnt = sig.GetPinIds( pinids ) for i = 1 to pincnt if( prj.GetItemType(pinids(i)) <> 33 ) Then pin.setid pinids(i) dev.setid pinids(i) 'Pin placement check. pin could be placed more than one time (pinview) nodecnt = pin.getNodeids( nodeids ) for j = 1 to nodecnt pin.SetNodeid nodeids(j) sht.setid pin.GetId() pin.GetSchemalocation x, y, grid, gridx, gridy e3.putinfo 0, "Schema Location: " & x & ":" & y & ":"& grid & ":"& gridx & ":"& gridy & ":", pinids(i) e3.putinfo 0, "Pin: " & pin.GetName() & " of device: " & dev.GetName() , dev.GetId() e3.putinfo 0, "On sheet: " & sht.GetName(), sht.GetId() Next end if next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 21. Mrz. 2019 09:31 <-- editieren / zitieren --> Unities abgeben:
|
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 05. Apr. 2019 11:58 <-- editieren / zitieren --> Unities abgeben:
|
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 05. Apr. 2019 14:09 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
|
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 05. Apr. 2019 14:17 <-- editieren / zitieren --> Unities abgeben:
Servus, ich hoffe es geht dir gut Nochmal zum Anliegen, in meinem Projekt im E3 habe ich Minusleitungen, die mit PE beschrieben sind. (Anschlusspunktname) Ich möchte wie zuvor mit den Ethernetkabel, diesmal das er mir nur die PE Leitungen raussucht.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 05. Apr. 2019 14:17 <-- editieren / zitieren --> Unities abgeben:
Servus, ich hoffe es geht dir gut Nochmal zum Anliegen, in meinem Projekt im E3 habe ich Minusleitungen, die mit PE beschrieben sind. (Anschlusspunktname) Ich möchte wie zuvor mit den Ethernetkabel, diesmal das er mir nur die PE Leitungen raussucht.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 05. Apr. 2019 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hallo nochmal, jetzt müssen wir erst einmal über die Wortwahl reden .. sonst reden wir aneinander vorbei: Zuerst redest Du von "Minussignalen" dann von Minusleitungen (PE Leitungen) und dann von Anschlusspunktnamen. Alle drei Sachen bedeuten etwas anderes. Minussignale sind in E³.series Signale, welche an Adern/Drähten, Verbindungen und Anschlusspunkten vergeben werden können und sich über Netze hinweg ausbreiten (z.B. Signal L1,L2,L3,PE) Von Minusleitung würde ich sprechen wenn es sich um einen Draht handelt (klassisch Gelb-Grün - Schutzleiter). Anschlusspunktnamen sind Namen eines Anschlusspunktes an Steckern oder Betriebsmitteln (Z.B. an einem Motor der PE Anschluss). Und jetzt wird es spannend: Von welchem Kriterium möchtest Du die Erkennung abhängig machen? - Use Case 1: Exportiere alle Drähte welche das Signal 'PE' tragen (optional - und alle angeschlossenen Betriebsmittel) - Use Case 2: Exportiere alle Drähte vom Drahttyp 'H07V-K-1.5GNYE' - Use Case 3: Exportiere alle Drähte die an Anschlüssen mit dem Anschlusspunktnamen 'PE' liegen
Lieben Gruß Jörg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 08. Apr. 2019 07:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörg, vielen Dank für deine rasche Antwort! Es war mein Fehler ich meinte natürlich die Minussignale. "Minussignale sind in E³.series Signale, welche an Adern/Drähten, Verbindungen und Anschlusspunkten vergeben werden können und sich über Netze hinweg ausbreiten (z.B. Signal L1,L2,L3,PE)" "- Use Case 1: Exportiere alle Drähte welche das Signal 'PE' tragen (optional - und alle angeschlossenen Betriebsmittel)" Das ist genau was ich suche. Vielen Dank Jörg! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 08. Apr. 2019 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
|
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 08. Apr. 2019 11:03 <-- editieren / zitieren --> Unities abgeben:
Hey Jörg, kann gut möglich sein.. habe mein E3 Programm auf meinen anderen Laptop, kann es dir aufm Mittag hochladen. Kannst du evtl. dein Test E3 Projekt anhängen um zu sehen wie und was du da benannt hast? Tausend Dank für deine Hilfe!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 08. Apr. 2019 11:07 <-- editieren / zitieren --> Unities abgeben:
|
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 10. Apr. 2019 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
|
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 10. Apr. 2019 15:35 <-- editieren / zitieren --> Unities abgeben:
Eins habe ich noch und dann lasse ich dich in Ruhe .. Sorry Es funktioniert alles einwandfrei! Danke erstmals für die Unterstützung! Wie bekomme ich jetzt, dies in eine Excel Liste? Kapitel Einbauort usw.. und unter diesen Überschriften die ausgelesenen Werte.. zweitens wie kann ich im Skript deklarieren das er mir die 400V und 0V Leitungen bzw. Signale nicht ändern soll? Besteeeen DANK!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 10. Apr. 2019 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Giuseppe.C
Hallo nochmal, ich bin bei Excel leider nicht so der Pro. Aber so oder so ähnlich geht das (ergoogeld) Code: Set XLS = CreateObject("Excel.Application") Set WB = XLS.Workbooks.Open ("c:\temp\My.xlsx") Set WS = WB.Sheets(1) WS.Range("A1").Formula="TEST" XLS.Visible = True
Wenns nicht klappt wäre es glaube ich besser zum Excel Thema einen neuen Thread zu eröffnen Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Giuseppe.C Mitglied Konstrukteur
Beiträge: 24 Registriert: 13.03.2019
|
erstellt am: 11. Apr. 2019 11:14 <-- editieren / zitieren --> Unities abgeben:
Hi Jörg, Hat noch einiges gefehlt, aber es funktioniert einwandfrei! - Use Case 3: Exportiere alle Drähte die an Anschlüssen mit dem Anschlusspunktnamen 'PE' liegen Wie würde hier das Skript aussehen? Gruß Giuseppe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |