"System/Funktionale"-Programmierung
Verfasst: Mo Mai 11, 2015 2:37 pm
Ich habe in letzter Zeit viel damit zu tun, Maschinen und Software eine Funktionalität zu verpassen und darum soll es hier auch gehen.
Es ist schwer, das Themengebiet zu beschreiben. Man möchte eine Funktionalität implementieren, aber Funktionale Programmierung hat schon eine andere Bedeutung. Systemprogrammierung passt auch nicht ganz, es erinnert zu sehr an Betriebssysteme.
Was ich mache und brauche sind Konzepte und Datenstrukturen, mit denen man effizient und robust einer Maschine oder einem Programm eine Funktion beibringt. Dabei geht es um Abläufe, eine Stanzmaschine muss erst warten bis ein Blech oder ähnliches geladen wurde, bevor sie stanzen kann. Dabei muss aber auch beachtet werden, dass kein Werker in Gefahr kommt. Von daher müssen entsprechende Sensoren verknüpft werden. Was passiert wenn ein Totmanschalter nicht mehr ausgelöst wird, wie kehre ich in eine sichere Position zurück.
Es geht aber auch um Modularisierung. Wie baue ich Module auf, was macht sinn. Wie binde ich die Module an. Soll ein Modul zum Steuern einer Linearachse die Zielpositionen kennen und nur gesagt bekommen, welche sie Anfahren soll? Oder kommt diese Info von extern? Soll eine Verknüpfung von Sensorwerten innerhalb oder außerhalb des Moduls statt finden?
Wie garantiere ich, dass ich nicht in einen undefinierten zustand gerate?
Letzter Punkt sind Datenstrukturen zur Parametrisierung und Steuerung eines solchen Systems. Häufig habe ich viele viele Einzelwerte, magic numbers quasi, die verwaltet werden müssen.
Was kann man hier für Ansätze verfolgen. Baumstrukturen, Listen, Globale Variablen. Wie sichere ich den Zugriff, wie kann man die Werte speichern.
In wie weit macht OOP sinn.
Natürlich kann man jetzt einfach auf PAP, Nassi-Schneidermann, UML oder Struktogramme verweisen, aber keine dieser Diagramme bietet einen Weg, komplexere Verknüpfungen sinnvoll dar zu stellen. Hat man z.B ein Not-Aus Signal möchte man nicht für jeden Schritt einer State Machine eine extra Bedingung anlegen, ob eben dieser Notaus gedrückt wurde. Man implementiert eine globale Logik die eben den Notaus und den aktuellen Zustand verarbeitet, um einen Sicheren zustand zu erreichen. Dies kann man aber mit keinem der Diagrammarten sinnvoll darstellen.
Was ich hier gerne hätte sind Ideen, Vorschläge und Informationen zu eben diesen Themen. Man kennt ein Buch, das eben solche bereiche anschneidet? Man liest einen Interessanten Blog/Wiki Eintrag darüber? Man hat selber Erfahrungen? Bitte sowas hier Posten.
Es ist schwer, das Themengebiet zu beschreiben. Man möchte eine Funktionalität implementieren, aber Funktionale Programmierung hat schon eine andere Bedeutung. Systemprogrammierung passt auch nicht ganz, es erinnert zu sehr an Betriebssysteme.
Was ich mache und brauche sind Konzepte und Datenstrukturen, mit denen man effizient und robust einer Maschine oder einem Programm eine Funktion beibringt. Dabei geht es um Abläufe, eine Stanzmaschine muss erst warten bis ein Blech oder ähnliches geladen wurde, bevor sie stanzen kann. Dabei muss aber auch beachtet werden, dass kein Werker in Gefahr kommt. Von daher müssen entsprechende Sensoren verknüpft werden. Was passiert wenn ein Totmanschalter nicht mehr ausgelöst wird, wie kehre ich in eine sichere Position zurück.
Es geht aber auch um Modularisierung. Wie baue ich Module auf, was macht sinn. Wie binde ich die Module an. Soll ein Modul zum Steuern einer Linearachse die Zielpositionen kennen und nur gesagt bekommen, welche sie Anfahren soll? Oder kommt diese Info von extern? Soll eine Verknüpfung von Sensorwerten innerhalb oder außerhalb des Moduls statt finden?
Wie garantiere ich, dass ich nicht in einen undefinierten zustand gerate?
Letzter Punkt sind Datenstrukturen zur Parametrisierung und Steuerung eines solchen Systems. Häufig habe ich viele viele Einzelwerte, magic numbers quasi, die verwaltet werden müssen.
Was kann man hier für Ansätze verfolgen. Baumstrukturen, Listen, Globale Variablen. Wie sichere ich den Zugriff, wie kann man die Werte speichern.
In wie weit macht OOP sinn.
Natürlich kann man jetzt einfach auf PAP, Nassi-Schneidermann, UML oder Struktogramme verweisen, aber keine dieser Diagramme bietet einen Weg, komplexere Verknüpfungen sinnvoll dar zu stellen. Hat man z.B ein Not-Aus Signal möchte man nicht für jeden Schritt einer State Machine eine extra Bedingung anlegen, ob eben dieser Notaus gedrückt wurde. Man implementiert eine globale Logik die eben den Notaus und den aktuellen Zustand verarbeitet, um einen Sicheren zustand zu erreichen. Dies kann man aber mit keinem der Diagrammarten sinnvoll darstellen.
Was ich hier gerne hätte sind Ideen, Vorschläge und Informationen zu eben diesen Themen. Man kennt ein Buch, das eben solche bereiche anschneidet? Man liest einen Interessanten Blog/Wiki Eintrag darüber? Man hat selber Erfahrungen? Bitte sowas hier Posten.