
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Stephan Frage: Wie schaltest du die C-control ein und aus? Wird die Versorgungsspannung unterbrochen? Ist dabei der AutoStart Jumper gesetzt? Oder verwendest du dazu den Auto-Start jumper? Bei nicht gesetztem Auto-Start Jumper kann es vorkommen, dass beim einschalten der C-Control1 M-Unit v2 das Programm überschrieben wird. Die Funktion des Auto-start jumpers ist nicht die selbe, wie bei der C-Control1 Unit V1.1. Verwendet man einen externen Programmieradapter, so sollte man nach dem programmieren der M-Unit2.0 den Auto-Start Jumper setzen, bevor man den Programmierstecker abzieht. Sonst wird das Programm ebenfalls überschrieben, da es beim Abziehen des Steckers zu einem POR (Power On Reset) kommen kann. Und bei der M-Unit2.0 bedeutet Reset= Downloadmodus. Der Speicher der M-Unit2.0 wird mit den Daten von der RS232-Schnittstelle überschrieben. Da hier die Ports RXD und TXD aber "undefiniert" sind (zumindest wenn man im Schaltplan vom Applikations Board nachschaut)wird dein Programm mit irgendwas überschrieben. Dein Programm ist weg. Einfache Lösung: den Auto-Start-Jumper stecken. Gruss Theo > Einen schönen Tag die Runde, > > ich bin noch Anfänger was die Programmierung angeht und aus diesem Grunde > habe ich für folgendes Problem keine Lösung. > Meine Anwendung läuft einige Zeit(Tage -Wochen) fehlerfrei. > Irgendwann steigt das Programm aus und läst sich nicht mehr starten. > Die Anwendung wird täglich um 9:00 eingeschaltet und gegen 17:00 ausgeschalten. > Die Störung läst sich erst nach einem neu Einpielen des Programms beseitigen. > Die Hardware besteht aus einer Controll Unit-M 2.0 10*Relais(siehe Programm unten) und IIC-Bus Porterweiterungs Modul an der ein Absolutwertgeber angeschloßen ist. > Das Programm liest den Absolutertgeber aus und schaltet die 10 Relais in abhänigkeit des Wertgebers. > Ich habe zwei identische Schaltungen, die aber zu unsterschiedlichen Zeiten Abstürzen. > > > Über eine hilfestellung würde ich mich freuen. > Hier das Programm: > > > > '------ I/O PORTS --------- > '-------------------------- > define SDA port[9] > define SCL port[10] > define LIGHT port[16] > > define A_1 as port[1] 'Relais 1 > define A_2 as port[2] 'Relais 2 > define A_3 as port[3] 'Relais 3 > define A_4 as port[4] 'Relais 4 > define A_5 as port[5] 'Relais 5 > define A_6 as port[6] 'Relais 6 > define A_7 as port[7] 'Relais 7 > define A_8 as port[8] 'Relais 8 > define A_9 as port[11] 'Relais 9 > define A_10 as port[12] 'Relais 10 > > > define x_port byteport[3] 'Eingang Wertgeber Binär-Graycode > define x_wert byte > define x_r as byte 'alt wert > define ax_r as byte > define x as byte > define temp as byte > > Declare Function grayToBinary(x_wert as byte) > > > 'alle Relais aus > A_1= off > A_2= off > A_3= off > A_4= off > A_5= off > A_6= off > A_7= off > A_8= off > A_9= off > A_10= off > > > x_port=11111111b > > x_r = 0 > > > #z > > x_wert = x_port 'Wert vom Port lesen > x = grayToBinary( x_port ) 'gelesenden Wert über die Funktion von Gray nach Binary umwandeln > > '------------Zuordnung prüfen --------------------- > > if (temp >= 0) and (temp <=35) then x_r = 0 'leer > if (temp >= 36) and (temp <=48) then x_r = 1 'Relais 1 > if (temp >= 49) and (temp <=53) then x_r = 0 'leer > if (temp >= 54) and (temp <= 60) then x_r = 2 'Relais 2 > if (temp >= 61) and (temp <=66) then x_r = 0 'leer > if (temp >= 67) and (temp <= 76) then x_r = 3 'Relais 3 > if (temp >= 77) and (temp <= 100) then x_r = 4 'Relais 4 > if (temp >= 101) and (temp <=148) then x_r = 0 'leer > if (temp >= 149) and (temp <=169) then x_r = 5 'Relais 5 > if (temp >= 170) and (temp <= 174) then x_r = 6 'Relais 6 > if (temp >= 175) and (temp <= 188) then x_r = 7 'Relais 7 2005 > if (temp >= 189) and (temp <= 195) then x_r = 8 'Relais 8 2006 > if (temp >= 196) and (temp <=203) then x_r = 9 'Relais 9 1999 > if (temp >= 204) and (temp <= 208) then x_r = 0 'leer > if (temp >= 209) and (temp <= 237) then x_r = 10 'Relais 10 2000 > if (temp >= 238) and (temp <= 255) then x_r = 0 'leer > > '-------------- Richtig oder falsch ---------------- > if x_r = ax_r then goto z > > if x_r = 1 then > A_1 =on > pause 5 > A_1 = off > END IF > if x_r = 2 then > A_2 =on > pause 5 > A_2 = off > END IF > if x_r = 3 then > A_3 =on > pause 5 > A_3 = off > END IF > if x_r = 4 then > A_4 =on > pause 5 > A_4 = off > END IF > > if x_r = 5 then > A_5 =on > pause 5 > A_5 = off > END IF > if x_r = 6 then > A_6 =on > pause 5 > A_6 = off > END IF > if x_r = 7 then > A_7 =on > pause 5 > A_7 = off > END IF > if x_r = 8 then > A_8 =on > pause 5 > A_8 = off > END IF > if x_r = 9 then > A_9 =on > pause 5 > A_9 = off > END IF > if x_r = 10 then > A_10 =on > pause 5 > A_10 = off > END IF > > ax_r =x_r > > goto z > > > end > > > > > function grayToBinary(x_port as byte) > > temp = x_wert xor (x_port shr 8) > > temp = temp xor (temp shr 4) > temp = temp xor (temp shr 2) > temp = temp xor (temp shr 1) > > End Function > > end > > > > Mfg > Stephan B. |
| Antwort schreiben |