Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Relay schaltet nicht ab an Kay Kategorie: Programmierung Basic (von Kay - 18.07.2005 17:06)
 Als Antwort auf Relay schaltet nicht ab an Kay von Christoph berninger - 18.07.2005 16:24
Kay nutzt:  CC1-Unit V1.1, CC1-Station V1.1
na.. an sich is diese methode zur zeitmessung ja schon richtig.
man muss nur aufpassen, dass man sich keinen stolperstein
bastelt.

ich mach das immer so:

define timerini word
....

timerini = timer
...
if abs (timer - timerini) >= 500 then tue irgedwas


also vorm start der zeitkritischen operation den timer in einen puffer schaffen,
anschließend kann gemacht werden, was bemessen werden soll und dann die
abfrage if abs (timer - timerini) 0 => 500 then tue irgedwas.
hierbei kann es mit "=>" bzw ">=" keine probleme geben, denn du schaffst
damit die gewähr, dass auch, wenn die zeitkritische operation länger als 20 ms
benötigt hat, nach spätestens 10 sekunden schluss ist (beispiel).
wenn du eine solche abfrage mit einem steifen "=" machst, musst du dir totsicher
sein, dass der timer innerhalb 10 ms auch garantiert einmal abgefragt wird.
das kann man - glaub' ich - nich immer so genau  ;)
10 ms deshalb, weil du ja auch nie  sicher sein kannst, wann im verlauf der 20 ms
eines timer-digits du diesen ausgelesen hast und wann du ihn wieder abfragst.
es ist nur ein vorschlag, mit dem ich immer recht gut gefahren bin, weil er
immer ein exact positives ergebnis liefert und man beim programmieren
nicht mehr weiter um die ecke denken muss (überlaufproblematik).

was nicht OK ist, ist der gebrauch der bool'schen funktionen als befehle:

> if schaltkontakt and timer =  (w1 + 100) or (w1+101)  then schaltkontakt = off

was ist denn das??? or sollte nur zwei eingangszustände kennen:
true und/oder false , ja und/oder nein oder auf CControlisch: -1 / 0.
or ist kein programmbefhel, sondern eine logische funktion. also raus da!!!!

die anderen ausdrücke hast du schon berichtigt:
if port[x] then... bzw if not port[x] then .... (was übrigens auch für alle variablen so
nutzbar ist)

 Antwort schreiben

Bisherige Antworten:

Re: Relay schaltet nicht ab an Kay (von frankpeter - 18.07.2005 19:53)
    Re: Relay schaltet nicht ab an Kay (von dierk - 18.07.2005 20:50)
        Re: Relay schaltet nicht ab an Kay (von frankpeter - 18.07.2005 22:31)
            Re: Relay schaltet nicht ab an Kay (von Jens - 19.07.2005 16:34)
            Re: Relay schaltet nicht ab an Kay (von Kay - 18.07.2005 23:19)
                Re: Relay schaltet nicht ab an Kay (von Christoph berninger - 19.07.2005 20:46)
                Re: Relay schaltet nicht ab an Kay (von frankpeter - 19.07.2005 17:57)
                    Re: Relay schaltet nicht ab an Kay (von Jens - 19.07.2005 18:18)