Artikel-Schlagworte: „.Net“

Windows CE Scannersoftware

Donnerstag, 22. Juli 2010

Veröffentlichung: Juli 2010
Programmiersprache: C#; Compact Framework 2.0
Interfaces: Datalogic Memor WinCE SDK 4.00; Datalogic Memor WinCe Mobility Kit for VS2005

Hier wieder ein kleines, aber sehr interessantes Projekt. Eine Steuersoftware für Datalogic Memor Barcode Scannersysteme.

Die Software ist in C# mit dem Compact Framework 2.0 geschrieben und läuft auf einem Handheld Scanner mit Windows CE. Dabei kommuniziert sie direkt mit dem Scanner und kann diesen fernsteuern.
Im Grunde wird ein einfacher Arbeitsablauf automatisiert und mit div. Plausibilitätsprüfungen versehen um gleichzeitig Zeit zu sparen und die Qualität der Ergebnisse zu erhöhen.

Das Programm erkennt zuverlässig unterschiedliche vordefinierte Barcodes und Barcodetypen, zerlegt diese in ihre Grundinformationen und prüft anschliessend die Plausibilität der Ergebnisse und lässt fehlende Daten ggf. durch den Benutzer nachpflegen.

Am Ende eines Vorgangs wird ein CSV Export durchgeführt der anschliessend z.B. an einem PC  oder über WLAN synchronisiert werden kann.

Das Programm lässt sich entweder per Touch-Screen oder mit der Tastatur bedienen.

Excel Iterator / Restrukturierungstool

Montag, 19. April 2010

Veröffentlichung: April 2010
Programmiersprache: C# (VB.net)
Interfaces: Microsoft Office 11.0 InterOp, MSXML 6.0

Basierend auf meinem Plugin / Script System (http://www.smokingfish.de/?p=119) , einem einfachen Programm zum iterieren von Daten und div. Klassen z.B. zum automatisieren von Excel ist dieses extrem nützliche Tool entstanden.

Es ermöglicht dem Benutzer anhand einfacher C# oder VB.net Scripts aus div. Quelldaten möglichst gleicher Struktur resultierende Tabellen zu erstellen.

Zum Beispiel: Ich habe 200 Excel Files mit je 5 Tabs. Jedes Tab ist mit 200 Werten gefüllt. Diese Dateien gibt es in 3 verschiedenen Versionen. Diese Versionen untereinander sind jedoch von der Struktur identisch.
Das Tool kann nun durch definieren einer Struktur für eine fertige Datei und dem kopieren aller Werte, aller Quelldateien, eine neue Datei erstellen die nur exakt die Daten in der Struktur erhält wie ich sie gerne hätte.

Ab einer gewissen Anzahl an Werten ist ein umstrukturieren von Hand nicht mehr praktikabel, ein Makro ab einer gewissen Anzahl von Dateien ebenso nicht mehr. Hier kommt dieses Tool zum Einsatz und generiert aus den Quelldaten genau das was ich haben möchte.

Weitere Merkmale:
- Scripts verfügen über diverse Ereignisse die vor oder nach dem Start sowie bei jeder bearbeiteten Datei aufgerufen werden
- Das Script wird zur Laufzeit kompiliert und ist in der Ausführung genauso schnell wie das eigentliche Programm
- Es stehen Klassen zum Lesen und Schreiben von Excel Dateien zur Verfügung, es können aber nach dem selben Prinzip weitere Formate hinzugefügt werden
- Scripts haben vollen Zugriff auf alle relevanten Funktionen des Hauptprogramms

Kleine Auftragsverwaltung

Dienstag, 5. Januar 2010

Veröffentlichung: Januar 2010
Programmiersprache: C#

Auf Basis meines Datenbanktools und als Modul in meinem Prüfmittelverwaltungsprogramms nach ISO9001 / TS16949 habe ich eine kleine Auftragsverwaltung geschrieben. Das Tool ermöglicht ein einfaches dokumentieren von Arbeitsaufträgen in meinem gewohnten XML Datenbanktool. Dank der Vorzüge von XML sind auch hier wieder Verschachtelungen möglich. In der Praxis stellt sich das durch Teilaufgaben mit eigenen Stati wieder, die einem Auftrag zugeordnet werden können.

Ansonsten gibt es nicht allzu viel zu sehen, eine kleine Abfrage erstellt passend zur KW/Monat eine Liste aus aktuell bearbeiteten und/oder neu erstellten Aufträgen zusammen.

Besonders schön funktioniert hier noch die Druckfunktion die sich die ausgewählten Datensätze schnappt und eine saubere Auftragsliste druckt, inklusive der Teilaufgaben und ihrer Stati. Dafür habe ich eine kleine Klasse geschrieben die mit dem PrintDocument im .net Paket die zu druckenden Seiten komplett per GDI+ rendert. Das ermöglicht einen komplett eigenen Aufbau des resultierenden Dokuments auf Basis der XML Daten.

Das Tool kann ohne Probleme auch als Modul komplett seperat gestartet und mit neuen Feldern und Funktionen erweitert werden.

XML Datenbank Tool 2.0

Donnerstag, 3. September 2009
Veröffentlichung: Juli 2008 / Januar 2009
Programmiersprache: C#
Eines meiner liebsten Projekte, ein ganz einfaches Programm zur Visualisierung von XML Datenbanken.
Kompatibel sind alle Datenbanken die sich in eine ACCESS ähnliche Oberfläche packen lassen, also aus sich wiederholenden Einträgen bestehen.
Verschachtelungen werden ebenfalls unterstützt, diese werden dann in Form einer Untertabelle dargestellt.
Das Programm mag einfach aussehen, ist in der Praxis aber extrem komfortabel zu benutzen und anderen (z.B. meinem eigenen, folgt) komplett grafischen XML Editoren absolut vorzuziehen.
Beispiel:
Beispiel, Aufbau XML Datei
Beispiel, Aufbau XML Datei
Beispiel, Darstellung im Programm
Beispiel, Darstellung im Programm

Es können beliebig viele Datensätze aus einer XML Datei in Tabs aufgeteilt und dargestellt werden.

Über mein Plugin System ( http://www.smokingfish.de/?p=119 ) lassen sich die Lade/Speicher Routinen und spezifische Funktionen anpassen (braucht man z.B. eine ID Abfrage sobald der Benutzer die ID eines Eintrages ändert).

Ein grosser Vorteil an diesem System ist das die Datenbanken von jedem gelesen werden können und eine Visualisierung über ein Webtool wesentlich vereinfacht ist.

In meinem Beispiel , eine Prüfmittelüberwachung, findet sich auch die Visualisierung der Daten im Netz mit Hilfe von AJAX wieder.

Datensätze können zusätzlich noch in Excel,Access oder als reine Textdatei exportiert werden.

Lichtdichtemessung Steuersoftware

Montag, 17. August 2009

Veröffentlichung: August 2009
Programmiersprache: C#
Sonstiges: 2 * RS232, Mitutoyo KA10 / LinearScale S700, Spezialphotosensor

Dieses Programm ist in der Lage eine Mitutoyo Steuereinheit für LinearScales über die optionale RS232 Schnittstelle auszulesen sowie über eine weitere RS232 Schnittstelle einen speziell angefertigten Photometer Kopf mit der absoluten Positionsangabe zu verknüpfen.

Das Programm ordnet dem Längenwert den entsprechenden Photometer Wert zu und erstellt eine Messkurve mit Sollbereichsanzeige für den Benutzer.

Zusätzlich können Sollwert, Toleranz,  Kalibrierfaktor und Messintervall festgelegt werden. Ein Export in CSV ist auch möglich.

Das Programm lässt sich ohne weiteres um andere Messköpfe, Schnittstellen, Exporte und Funktionen erweitern.

Siemens ProDave Mini .net Wrapper

Sonntag, 16. August 2009

Veröffentlichung: August 2009
Programmiersprache: C#
Sonstiges: Siemens ProDave Mini 6.0

Siemens ProDave ist eine Schnittstelle um vom PC direkt über z.B. die RS232 oder USB Adapter von Siemens auf eine S7 Steuerung zuzugreifen, Daten zu lesen und zu schreiben oder die Steuerung komplett fernzusteuern und zu überwachen.Da ich nirgents Informationen zur Verwendung von ProDave unter .net finden konnte biete ich jetzt hier auch einen kleinen ProDave Wrapper an. Eine Möglichkeit wäre eine Dll in einer supporteten Sprache zu schreiben und auf diese mit .net zuzugreifen. Ein direkter Zugriff auf die w95_s7m.dll ist unter .net nicht ganz so einfach.

Der Wrapper greift mit einem kleinen Trick direkt auf die Dll’s zu und benötigt ausser der Orginal-Dll keine weiteren Dateien.

Da ich z.Z. nur ProDave MPI Mini 6.0 benutze kann der Wrapper auch noch nicht mehr als:

- Datenbausteine lesen und schreiben (alle gängigen Formate werden unterstützt z.B. Real Werte oder Bool’s)
- Variablesspeicher lesen und schreiben
- Zustand der SPS auslesen
- Fehlermeldungen auswerten

Auf Wunsch erweiter ich den Wrapper auch auf die restlichen Funktionen der kompletten ProDave Version.

.Net Plugin/Scripting System

Mittwoch, 12. August 2009

Veröffentlichung: Januar 2009
Programmiersprache: C#
Sonstiges: CodeDOMProvider

Hier mal etwas ganz interessantes, eine Scripting und Plugin Engine, geschrieben in C#.
Das besondere hier ist das sie nicht VSA verwendet, eine Technik die in der aktuellen Version nicht mehr supported wird, sondern eine Mischung aus dem ICodeProvider und definierten Interfaces.

So erreiche ich das die Scripts zur Laufzeit kompiliert werden, trotzdem aber Zugriff auf das laufende Programm bekommen können, also eine vollwertige Scriptengine.

Zusäzlich ergeben sich noch ein paar weitere Einsatzmöglichkeiten:

- Scripte werden zu Laufzeit in entweder VB.net oder C# kompiliert und in der Anwendung ausgeführt
- Scripte werden als EXE/DLL gespeichert und sind alleine lauffähig (ohne Zugriff auf die Anwendung)
- Als EXE/DLL gespeicherte Scripte lassen sich wieder in der Anwendung ausführen (inkl. Zugriff auf die Anwendung)

Ohne weiteres lassen sich so Script Interfaces für alle .net Programme erstellen (z.B. zum auslagern häufig zu ändernder Funktionen) oder auch komplette Plugin Systeme.

Auf Anfrage kann die Klasse mit Beispielen zur Verfügung gestellt werden.