-> Hier kostenlos registrieren
Mahlzeit...
Ich bin "etwas" ratlos.
An einer "Kartonaufrichtermaschine" habe ich die Bodenleimung etwas umgebaut.
Um Schwankungen wie Leimtemperatur, Druckluft zum Leimkopf usw....abgleichen zu können und dass der Leim nicht am Karton vorbei sich auf dem Boden sammelt habe ich zwei BCD Schalter in die Stuerung integriert, die jeweils auf 4 BIT eines Eingangsbytes verdrahtet sind. Die Schalter sind jeweils für Leimanfang (Zeitverzögerung bis Beginn zur Leimung) und Länge der Leimspur.
Durch die einzelnen Schalterstufen werden die Timer jeweils um 30ms verlängert, oder verkürzt.
Das ganze realisiere ich in einem Baustein, der direkt vom OB 1 aufgerufen wird.
Durch die vier Bits der Schalter wird jeweils ein in einem Datenbaustein hinterlegter Zeitwert ausgelesen und in ein "aktueller Zeitwert" Wort in diesem DB gespeichert.
In einem anderen Baustein, wo die Schrittkette vom Kartontransport incl. Leimung stattfindet, der auch direkt vom OB 1 angesteuert wird werden die beiden Timer mit den jeweils aktuellen Zeitwerten (Word) versorgt.
Die Zeiten sind jeweils um die 300ms lang. Die Zyklenzeit der CPU liegt bei 6ms.
Die Timer werden bei jedem Zyklus mit dem aktuellen Zeitwert "überschrieben". Verstelle ich nichts an den Schaltern bleibt der Wert also immer gleich.
Jetzt ist es so, dass aus irgendwelchen Gründen zwischendurch die Leimung auf einmal zu spät anfängt. Verstelle ich den Schalter "Leimanfang" auf einen kleineren Zeitwert müsste der Leim früher aufgetragen werden. 30ms Unterschied entspricht ca. 5mm.
Der Leim wandert aber nicht. So als wenn eine falsche, konstante Zeit abläuft.
Mit der Leimspurlänge gibt es diese Probleme komischerweise nicht.
Ich habe mitlerweile einen Lasersensor verbaut, der exakt den Kartonanfang erkennt. Der Trigerpunkt sollte eigentlich immer gleich sein.
Nun meine Frage: Kann es sein, dass es sich auf den Timer irgendwie negativ auswirkt wenn bei jedem Zyklus der über den Schalter eingestellte Wert aus dem DB erst gelesen wird, in das aktuelle Timer Wort kopiert wird und damit der Timer versorgt wird ? Also quasi der Zeitwert für den Timer immer wieder neu geschrieben wird ? Ich stell mir das irgendwie so vor, dass dadurch der Timerwert abhängig von der CPU Zykluszeit bei ungünstigen Konstallation in der CPU ungültig, bzw. falsch ist.
Wäre das möglich ? Mir gehen sonst so langsam die Ideen aus
Hucky
Ich bin "etwas" ratlos.
An einer "Kartonaufrichtermaschine" habe ich die Bodenleimung etwas umgebaut.
Um Schwankungen wie Leimtemperatur, Druckluft zum Leimkopf usw....abgleichen zu können und dass der Leim nicht am Karton vorbei sich auf dem Boden sammelt habe ich zwei BCD Schalter in die Stuerung integriert, die jeweils auf 4 BIT eines Eingangsbytes verdrahtet sind. Die Schalter sind jeweils für Leimanfang (Zeitverzögerung bis Beginn zur Leimung) und Länge der Leimspur.
Durch die einzelnen Schalterstufen werden die Timer jeweils um 30ms verlängert, oder verkürzt.
Das ganze realisiere ich in einem Baustein, der direkt vom OB 1 aufgerufen wird.
Durch die vier Bits der Schalter wird jeweils ein in einem Datenbaustein hinterlegter Zeitwert ausgelesen und in ein "aktueller Zeitwert" Wort in diesem DB gespeichert.
In einem anderen Baustein, wo die Schrittkette vom Kartontransport incl. Leimung stattfindet, der auch direkt vom OB 1 angesteuert wird werden die beiden Timer mit den jeweils aktuellen Zeitwerten (Word) versorgt.
Die Zeiten sind jeweils um die 300ms lang. Die Zyklenzeit der CPU liegt bei 6ms.
Die Timer werden bei jedem Zyklus mit dem aktuellen Zeitwert "überschrieben". Verstelle ich nichts an den Schaltern bleibt der Wert also immer gleich.
Jetzt ist es so, dass aus irgendwelchen Gründen zwischendurch die Leimung auf einmal zu spät anfängt. Verstelle ich den Schalter "Leimanfang" auf einen kleineren Zeitwert müsste der Leim früher aufgetragen werden. 30ms Unterschied entspricht ca. 5mm.
Der Leim wandert aber nicht. So als wenn eine falsche, konstante Zeit abläuft.
Mit der Leimspurlänge gibt es diese Probleme komischerweise nicht.
Ich habe mitlerweile einen Lasersensor verbaut, der exakt den Kartonanfang erkennt. Der Trigerpunkt sollte eigentlich immer gleich sein.
Nun meine Frage: Kann es sein, dass es sich auf den Timer irgendwie negativ auswirkt wenn bei jedem Zyklus der über den Schalter eingestellte Wert aus dem DB erst gelesen wird, in das aktuelle Timer Wort kopiert wird und damit der Timer versorgt wird ? Also quasi der Zeitwert für den Timer immer wieder neu geschrieben wird ? Ich stell mir das irgendwie so vor, dass dadurch der Timerwert abhängig von der CPU Zykluszeit bei ungünstigen Konstallation in der CPU ungültig, bzw. falsch ist.
Wäre das möglich ? Mir gehen sonst so langsam die Ideen aus
Hucky