Programm löscht sich ???? Kategorie: Programmierung (von Stephan Berger - 5.02.2008 21:45) | ||
| ||
Guten Abend in 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 neuen 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 | ||
Antwort schreiben Antworten: Re: Programm löscht sich ???? (von reneforster - 7.02.2008 21:05) Re: Programm löscht sich ???? (von Stephan Berger - 8.02.2008 19:49) Re: Programm löscht sich ???? (von Andi B. - 10.02.2008 13:15) Re: Programm löscht sich ???? (von reneforster - 11.02.2008 19:55) Re: Programm löscht sich ???? (von Andi - 6.02.2008 7:47) |