eplan

PlcTaglistConverter

Nach langer Entwicklungszeit darf ich hier mal ein weiteres Produkt vorstellen. Denke es gehört in die Kategorie “endlich gibt es sowas”…

Kurz mal mit Vorgeschichte:
Ich selbst beschäftigte mich längere Zeit mit SPS-Programmieren. Davor Schwerpunkt EPLAN-Administration. Da liegt es nahe auch hier den Prozess so gut wie möglich zu optimieren.
Aber mit EPLAN Boardmitteln ist das sehr schwierig. Der Export/Import von Zuordnungslisten lässt zu wünschen übrig, der Workaround über Beschriftung ist eher suboptimal.

Warum gibt es keine Funktion von EPLAN bzw. eine Anwendung welche mir das Importieren / Exportieren von einem beliebigen System ins Nächste ermöglicht? Und ich spreche ich auch von z.B. Siemens Simatic Manager zu Beckhoff TwinCAT…

Darum haben wir uns entschlossen solch ein Projekt zu starten und es ist einfach toll geworden.

2015-04-08_07-26-35

Funktionsübersicht:

  • Import / Export von unterschiedlichen SPS-Systemen
    • Siemens Simatic Manager
    • Siemens TIA Portal
    • Beckhoff TwinCAT
  • Anpassung der Symbolik
    • Großbuchstabenkonvertierung
    • Sonderzeichenersetzung
    • Kürzung der Symbolik (Betriebsmittelkennzeichen)
  • Beckhoff: Generierung von Variablen
    • Meldungstexte
    • Betriebsmittelkennzeichen
  • Sprungfunktion nach EPLAN
    • Sensor / Aktor
    • SPS-Übersicht
  • Anpassung des Adressformates (Mnemonik)
  • Sprachauswahl für Funktionstexte (Kommentare)
  • Filterfunktionen nach Eigenschaften des SPS-Anschlusses
  • Gruppierter Export
  • Live-Vorschau
  • Baumdarstellung
    • SPS-Übersicht
    • Sensor / Aktor

ShopForProcess: PlcTaglistConverter

Von |2015-04-08T07:32:23+02:002015-04-08|EPLAN, ShopForProcess|

ExternalTestAssembly

Daniel Papp ist immer fleißig, vielen Dank nochmal an dieser Stelle.

Aufgrund der Implementierung von CAE-Consulting ist nun bekannt wie man DLLs im Scripting nutzen kann. Somit kann man auch Excel oder SQL bedienen… eigentlich Alles außer der immer noch kostenpflichtigen EPLAN API…

Vielen Dank für das Beispiel! Wie gewohnt findet man die Daten auf Daniels GitHub Repo.

using System;
using System.Reflection;
using System.Windows.Forms;

namespace ExternalTestAssembly
{
    public class Script
    {
        [Start]
        public void Run()
        {
            //AbsoluteAssemblyPath: for example "C:\Users\Public\EPLAN\Data\Binaries\MyWPFControlLibrary.dll
            Assembly myAssembly = Assembly.LoadFrom(@"AbsoluteAssemblyPath");

            //Namespace.ClassName: absolute name of the class to instaciate 
            //"InstAttibute": if the constructor of the class needs some attributes
            Object objectOfTestClass = myAssembly.CreateInstance("Namespace.ClassName", false, BindingFlags.ExactBinding, null, new Object[] {"InstAttibute"}, null, null);

            //Namespace.ClassName: again the class name to get the methode to execute
            //MethodName: Name of the method to execute
            MethodInfo show = myAssembly.GetType("Namespace.ClassName").GetMethod("MethodName");

            //result: remove if methode has no return type (void)
            //"MethodAttribute": attributes for the methode (could also be empty)
            Boolean result = (Boolean)show.Invoke(objectOfTestClass, new Object[]{ "MethodAttribute" });

            //go on with simple scriptcode
            if (result == true)
            {
                MessageBox.Show("Welcome to wonderland!");
            }
            else
            {
                MessageBox.Show("So you're not the chosen one!");
            }
            
        }
    }
}

 

Von |2017-11-09T12:23:40+01:002015-03-26|EPLAN, EPLAN-Scripts|

MenuCreator

Kennt Ihr das…?
Man hat ein Projekt längere Zeit im Kopf und man kommt nicht zur Umsetzung… Bei MenuCreator sind es ca. fünf Jahre.

Scripting in EPLAN macht Spaß, aber das Menübauen ist meiner Meinung nach nicht schön gelöst. Es ist somit fast unmöglich für einen EPLAN Anwender ohne Programmierkenntnissen sich selbst eins zu bauen.

Somit war das Ziel eine einfache UI zu bauen, in der man sich ein oder mehrere Menüs zusammenbauen kann.

Es können alle Scripte vom ShopForProcess einfach hinzugefügt werden. Aber auch eigene Scripte oder EPLAN Actions.

1

2

ShopForProcess: MenuCreator

Von |2015-03-25T13:08:01+01:002015-03-25|EPLAN, ShopForProcess|

MainMenuName

Man lernt nie aus…
Menü-Erzeugung ist etwas was man beim EPLAN-Scripting meist als erstes macht… da schaut man sich auch keine Methoden an…

Wie im vorherigen Post erwähnt, habe ich bisl was mit mehreren Oberflächensprachen gemacht. Hier gab es ein Problem wenn man ein Hauptmenü hinzufügen will, denn normalerweise gibt man ja den Namen an (z.B. “Hilfe”). Aber im englischen heißt es eben anders…

Dafür hat EPLAN die Enumeration MainMenuName implementiert, was eigentlich immer der empfohlene Weg wäre:

public enum MainMenuName {
  eMainMenuProject = 0,
  eMainMenuPage,
  eMainMenuEdit,
  eMainMenuView,
  eMainMenuProjectData,
  eMainMenuFind,
  eMainMenuOptions,
  eMainMenuUtilities,
  eMainMenuWindow,
  eMainMenuHelp,
  eMainMenuInsert,
  eMainMenuLayoutspace,
}

Die Verwendung sieht wie folgt aus:

uint menuId = menu.AddMainMenu("MyMenu", Eplan.EplApi.Gui.Menu.MainMenuName.eMainMenuHelp,
    "MyMenu", "ActionName", "Description", 1);

Hätte ich das eher Gewusst das besser recherchiert als ich das Buch geschrieben habe, wäre die Info eher gekommen :^)

Von |2017-11-09T12:23:40+01:002015-03-09|EPLAN, EPLAN-Scripts|

DXF/DWG mit Schema exportieren

Kurze Info, da es mir aufgefallen ist:
Möchte man über die Action export DXF bzw. DWG Dateien exportieren, fehlt hier der Type für PROJECTSCHEME & PAGESCHEME.

Es gibt diese Parameter, aber sind nur in der API-Dokumentation aufgeführt, nicht in der EPLAN-Hilfe. Ich habe es an EPLAN weitergegeben damit diese ergänzt werden. Der Parameter ist erst ab Version 2.4 verfügbar!

DXFDWGPROJECTSCHEME: Export a project in DXF or DWG format. All settings are read from scheme, also the DXF or DWG format.
DXFDWGPPAGESSCHEME: Export pages in DXF or DWG format. All settings are read from scheme, also the DXF or DWG format.

Used together with PAGENAMEn paramenters(e.g. /PAGENAME1:=AP+ST1/2 /PAGENAME2:=AP+ST1/4 /PAGENAME3:=AP+ST1/7 etc.) or SELn paramenters (e.g. /SEL1:38/4/12/0 (result from StorableObject.ToStringIdentifier()))

Generell frage ich mich, warum der Teil in der API-Hilfe, welcher sich dem Scripting widmet und echt gut ist, nicht in die EPLAN-Hilfe wandert…
Ist wohl der Aufwand das alles zu übersetzen, da die API-Hilfe nur in Englisch verfügbar ist. Leider gibt EPLAN diese nicht mit der EPLAN Installation heraus.

Von |2017-11-09T12:23:40+01:002015-03-06|EPLAN, EPLAN-Scripts|
Nach oben