Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
EibPC Programmteile eine definierbare Zeit nach dem Neustart starten
Mir schwant allmählich was es mit diesem sonderbaren "das Programm ist als Binärbaum abgespeichert" auf sich hat, alleine mir ist nicht klar, warum die ganzen Erklärungen im Handbuch fehlen!
Nun, da haben wir wohl die Anwender unterschätzt.
Das Konzept an sich ist aber für eine SPS ("Statemachine") so nicht unüblich.
Warum muss ein write(), read() oder connecttcp() im then Zweig auf invalid gesetzt werden????????
Es ist ja im EibpC eine event-bezogene Abarbeitung realisiert - eben wie bei einer SPS oder in einem FPGA.
Verarbeitung bedeutet, dass ein Eingangsobjekt seine Ausgangsobjekte "kennt" - wie richtig vermutet in einer Art Baumstruktur - und diese dann mit Hilfe von internen Flags abarbeitet.
D.h. es werden nur Objekte und deren Abhängigkeiten verarbeitet, die eine Art In-Valid bekommen. Damit kann natürlich extrem optimiert gearbeitet werden, wenn man bedenkt, dass alle 20ms bestenfalls ein Telegramm eintrifft, das in der Regel nicht mehr als 100 Abhängigkeiten aufweisst.
D.h. es werden nur Objekte und deren Abhängigkeiten verarbeitet, die eine Art In-Valid bekommen.
Wird denn ein einfaches write(), außerhalb von irgendwelchen If-Schleifen auch auf "invalid" gesetzt? Wird ja schließlich immer ausgeführt.
(mal losgelöst von der Sinnhaftigkeit eine ständigen write()...)
....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!
Du siehst, ich hab's noch nicht ausprobiert....
Aber ein write() ohne if außenrum wird also nur ein einziges mal ausgeführt?
Nee, das wird nie ausgeführt - wir haben das bewusst unterdrückt, so dass man immer ein if drumherum braucht. Dafür gibts dann ja auch die systemstart()-Funktion.
alleine mir ist nicht klar, warum die ganzen Erklärungen im Handbuch fehlen!
Da offenbar nicht nur mir die "Feinheiten" des Validierungsschemas immer noch nicht hinreichend bekannt sind, wünsche ich mir jetzt mal eine lückenlose Beschreibung der ganzen Geschichte.
Das z.B. bestimmte - oder gar alle? - Befehle außerhalb einer Bedingung gar nicht ausgeführt werden, ist wohl nicht nur mir nicht klar gewesen - und ist zunächst einmal aus meiner Sicht auch nicht logisch, denn wo keine Abfrage ist, da habe ich bisher auch keinerlei Validierung vermutet, sondern einfach die Ausführung.
OK, eine bedingungslose Ausführung macht nicht bei allen Befehlen Sinn (daher habe auch ich das bislang gar nicht ausprobiert), aber dafür sind eigentlich Compilerwarnungen da, denn vielleicht ist das ja doch genau das, was der Programmierer wollte - warum auch immer.
Aber wenn dem Programmierer schon solche Entscheidungen aus der Hand genommen werden, dann sollte das wenigstens klar und deutlich in der Dokumentation stehen - falls notwendig auch einzeln für jede Funktion...
Vielleicht sollte mal generell als Diagramm(e) dargestellt werden, wie der Compiler den Code interpretiert, was er dann daraus macht, und wie das dann zur Laufzeit ausgeführt wird, ich glaube, dann werden sehr viele Fragen auf einen Schlag beantwortet und vielen von uns wird auf einmal klar, warum ein bestimmtest Konstrukt im eigenen Code einfach nicht wie erwartet funktioniert.
Da offenbar nicht nur mir die "Feinheiten" des Validierungsschemas immer noch nicht hinreichend bekannt sind, wünsche ich mir jetzt mal eine lückenlose Beschreibung der ganzen Geschichte.
ich mach mich da mal drüber... kommt dann als Pdf hierein.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar