Hallo SprinterSB!
Ich bin nur ein Elektroniker und an das habe ich nicht gedacht. Ich habe immer meine Hardware unter DOS mit ASM gesteuert. Also mit ASM unter Windows kann man nichts sinvolles mit Hardware machen, oder?
Schöne Grüsse!
Druckbare Version
Hallo SprinterSB!
Ich bin nur ein Elektroniker und an das habe ich nicht gedacht. Ich habe immer meine Hardware unter DOS mit ASM gesteuert. Also mit ASM unter Windows kann man nichts sinvolles mit Hardware machen, oder?
Schöne Grüsse!
hmmm, ob man mit ASM oder C/C++ da ran geht, dürfte kein so großer Unterschied sein. Ich denk schon, daß man unter Windows/Linux sinnvoll mit Hardware arbeiten kann. Softwareseitig braucht man ne API, durch die man auf die Regsister/Schnittstelle greifen kann. Teilweise verbietet einem Windows das, und man muss spezielle Treiber installieren wie giveio.sys, spezielle Funktionen benutzen. Unter java+Windows geht's mit der javax.comm.
Wenn man bestimme Zeiten einhalten muss, sieht's natürlich trübe aus. Wenn der eigene Thread/Prozess geschedult wird und erst mal andere Sachen an die Reihe kommen, kann das wie gesagt dauern. Unter Java das auf ner VM läuft ist das nochmals verschärft. Ich würd mich auch wundern, wenn irgendwo Maximalzeiten angegeben/dokumentiert/spezifiziert wären, nach denen der eigene Task spätestens fortgesetzt wird.
Ich erinner mich da an ne namhafte Firma, die ihre Kransteuerung per Python-Skript realisiert hatte und sich wunderte, daß das "alles irgendwie nicht funktioniert".
Doch zurück zum Thema. Bei der von oben Problemstellung liegt die Lösung ja nahe, wie skizziert. Man bekommt zwar kein besseres Echtzeitverhalten, aber immerhin sind die Ausgänge einer solchen Schaltung *immer* konsistent. Und das bei 256 Lines, das schafft kein Controller!
Wenn die Software für 8 Lines schnell genug ist, sollte es auch mit 256 machbar sein, zumal hinten Relais hängen, wo es auf 100ms früher oder später nicht ankommt. Wird nur etwas Bit-Gefummel. Evtl kann man auch alle 8 Data-Ports verwenden und das Raustakten über Steuerleitungen machen. Dann hätte man nicht 4*8 Schiebegegister, sondern 8*4 und wäre doppelt so schnell.
hi,
versuch es mit multiplexern und flipflops, so hab ich das mal gemacht.
gruss
msp
vielen dank für die antworten.
ich werde mich mal mit dem 74HC164 versuchen...
und ich benutze übrigens linux ;)
mfg ofenrohr
Hallo SprinterSB!
Vielen Dank für Deine Erklärung! Ich bin vom PC auf PIC als Steureiheit umgestiegen und ales was damit verbunden ist, in Kauf genommen. Damit bin ich zufrieden, weil ich ohne kompliezierten Software, die ich nicht mehr durchblicke, meine Hardware steuern kann.
Schöne Grüße!
Auch Linux ist nicht echtzeitfähig.
Zweckmässig ist es, erst mit der Software anzufangen. Wenn du die hast, kannst du in ner Endlosschleife irgendwelche Daten raushauen (ohne Hardware dahinter) um dir ne Vorstellung von den Maximalzeiten zu besorgen. Du wirst am besten abschätzen können, ob die Zeiten für dich annehmbar sind.
Die Lösung mit Multiplexern hat das Konsistenzproblem ebenfalls nicht. 17*74154/(74)4514 oder (74)4515 und Latches dahinter. Die Schaltung wird dann nur etwas komplizierter.