Schleifen erstellen ?
Schleifen erstellen ?
Hallo,
ich möchte in einer mechanischen Messvorrichtung 38 Wegaufnehmer abfragen, die eingehenden Daten verrechnen, und anschließend ca. 20 Ergebnisse anzeigen.
Die Messdaten kommen als ASCII über RS 232. Ich kann einzeln abrufen oder alle gemeinsam in einem String.
Bei Vorrichtungen mit weniger Messstellen habe ich im Profilab für jeden eingehenden Messwert (Wegaufnehmer) einen eigenen Bearbeitungsweg (inkl. Unterprogrammen) aufgebaut. Das sieht aber bei vielen Tastern nicht sehr elegant aus, weil die selben Programmteile x mal in Kopie erscheinen; auserdem ist es ausgeprochen unübersichtlich.
Prinzipiell stelle ich mir vor, Messdatenabfrage und Berechnungen in Unterprogrammen zusammenzufassen und diese Unterprogramm aus Schleifen heraus mehrfach mit unterschiedlichen Parametern aufzurufen. Die Daten an Variable (z.B. Array) zu übergeben und daraus die Anzeigen zu versorgen.
Bisher ist mir dazu keine überzeugende Umsetzung eingefallen. Hat jemand eine Idee? Auch andere Vorschläge werden gern genommen.
Grüße
Knulf
ich möchte in einer mechanischen Messvorrichtung 38 Wegaufnehmer abfragen, die eingehenden Daten verrechnen, und anschließend ca. 20 Ergebnisse anzeigen.
Die Messdaten kommen als ASCII über RS 232. Ich kann einzeln abrufen oder alle gemeinsam in einem String.
Bei Vorrichtungen mit weniger Messstellen habe ich im Profilab für jeden eingehenden Messwert (Wegaufnehmer) einen eigenen Bearbeitungsweg (inkl. Unterprogrammen) aufgebaut. Das sieht aber bei vielen Tastern nicht sehr elegant aus, weil die selben Programmteile x mal in Kopie erscheinen; auserdem ist es ausgeprochen unübersichtlich.
Prinzipiell stelle ich mir vor, Messdatenabfrage und Berechnungen in Unterprogrammen zusammenzufassen und diese Unterprogramm aus Schleifen heraus mehrfach mit unterschiedlichen Parametern aufzurufen. Die Daten an Variable (z.B. Array) zu übergeben und daraus die Anzeigen zu versorgen.
Bisher ist mir dazu keine überzeugende Umsetzung eingefallen. Hat jemand eine Idee? Auch andere Vorschläge werden gern genommen.
Grüße
Knulf
Re: Schleifen erstellen ?
Hallo Knulf.
Die Begriffe "Schleifen", oder "Schleifen erstellen" habe ich leider nicht verstanden.
In der Elektrotechnik versteht man darunter "Rückkopplung in einem Regelkreis". Z. B. beim Begrenzer.
Denke, Du meinst jedoch etwas anderes.
Gruß von C mpander.
Sich vielfach wiederholende Schaltungsteile packt man sinnvollerweise in Makros. Dies macht die Schaltung übersichtlich.Knulf hat geschrieben:...weil die selben Programmteile x mal in Kopie erscheinen; auserdem ist es ausgeprochen unübersichtlich.
Die Begriffe "Schleifen", oder "Schleifen erstellen" habe ich leider nicht verstanden.
In der Elektrotechnik versteht man darunter "Rückkopplung in einem Regelkreis". Z. B. beim Begrenzer.
Denke, Du meinst jedoch etwas anderes.
Gruß von C mpander.
Re: Schleifen erstellen ?
Hallo compander,
mit Schleife ist die Funktion einer Programmschleife gemeint (z.B. While oder For/next usw.)
Ich denke, so explizit ist das wohl nicht vorgesehen aber vieleicht weis ja jemand ob man das sinnvoll aus Komponenten aufbauen kann.
Ich sehe keine Möglichkeit das mit Makros alleine zu lösen.(so mache ich es heute)
Grüße
Knulf
mit Schleife ist die Funktion einer Programmschleife gemeint (z.B. While oder For/next usw.)
Ich denke, so explizit ist das wohl nicht vorgesehen aber vieleicht weis ja jemand ob man das sinnvoll aus Komponenten aufbauen kann.
Ich sehe keine Möglichkeit das mit Makros alleine zu lösen.(so mache ich es heute)
Grüße
Knulf
Re: Schleifen erstellen ?
Hallo
vielleicht kannst du das For-Next Beispiel für die Schleife benutzen, um damit die unterschiedlichen Parameter mit einem analog Multiplexer zur Schaltung schicken.
vielleicht kannst du das For-Next Beispiel für die Schleife benutzen, um damit die unterschiedlichen Parameter mit einem analog Multiplexer zur Schaltung schicken.
Re: Schleifen erstellen ?
Dann bietet es sich vermutlich an alles in einem String abzuholen (= 1x COM $Empfangen).Ich kann einzeln abrufen oder alle gemeinsam in einem String.
Anschiessend den String mit $PART in die Kanäle zerlegen. (vgl. ...\Beispiele\Hardware\RS232\GPS-DEMO.PRJ)
Ein eindeutiges Trennzeichen zwischen den Datenkanälen wird es ja hoffentlich geben.
Das war´s dann auch schon. Schleifen und Makro´s braucht man dann nicht.
ABACOM support
Re: Schleifen erstellen ?
Hallo zusammen,
vielen Dank für die Antworten.
@ Abacom: Das Abholen und Aufteilen ist nicht mein Problem. Eine ähnliche Messvorrichtung mit 16 Messwerten und 16 Datenkanälen funktioniert einwandfrei. An dieser Stelle: Ich finde Profilab wirklich gut!
Nun wären in dem neuen Projekt dann 38 Datenkanäle. Jeder Datenkanal enthält geschätzt 40 Elemente (Bauteile), dass werden dann 1500 insgesammt. Ich versuche die 38 Kanäle zu vermeiden.
Das ist schon bei der 16- fach Vorrichtung nicht einfach zu überblicken. Und es wurde noch nicht einmal viel Aufwand für die Benutzerfreundlichkeit getrieben. 40 sind also Minimum.
@WoB + habe
ich werde mir das in den nächsten Tagen anschauen und mich dann zurückmelden.
Grüße
Knulf
vielen Dank für die Antworten.
@ Abacom: Das Abholen und Aufteilen ist nicht mein Problem. Eine ähnliche Messvorrichtung mit 16 Messwerten und 16 Datenkanälen funktioniert einwandfrei. An dieser Stelle: Ich finde Profilab wirklich gut!
Nun wären in dem neuen Projekt dann 38 Datenkanäle. Jeder Datenkanal enthält geschätzt 40 Elemente (Bauteile), dass werden dann 1500 insgesammt. Ich versuche die 38 Kanäle zu vermeiden.
Das ist schon bei der 16- fach Vorrichtung nicht einfach zu überblicken. Und es wurde noch nicht einmal viel Aufwand für die Benutzerfreundlichkeit getrieben. 40 sind also Minimum.
@WoB + habe
ich werde mir das in den nächsten Tagen anschauen und mich dann zurückmelden.
Grüße
Knulf
Re: Schleifen erstellen ?
Hallo Knulf,
in PL muss man eine andere "Denke" benutzen, man darf nicht wie beim Programieren sondern wie beim Schaltungsentwickeln denken.
Deine prinzipielle Vorstellung ist richtig. Du musst mit einem Zähler einen Scanner aufbauen, der nacheinander die Kanäle abfragt.
Läuft das über eine RS232-Schnittstelle oder über viele? Und wie sieht der Abfragestring aus?
Grüße
Mike
in PL muss man eine andere "Denke" benutzen, man darf nicht wie beim Programieren sondern wie beim Schaltungsentwickeln denken.
Deine prinzipielle Vorstellung ist richtig. Du musst mit einem Zähler einen Scanner aufbauen, der nacheinander die Kanäle abfragt.
Läuft das über eine RS232-Schnittstelle oder über viele? Und wie sieht der Abfragestring aus?
Grüße
Mike
Re: Schleifen erstellen ?
Yep! das mit dem For_to_Next Makro und dem Multiplexer ist das was ich mir vorgestellt habe.
Danke
Für den nächsten Teil mache ich einen neuen Thread auf
Danke
Für den nächsten Teil mache ich einen neuen Thread auf