Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > in meinen Projekt habe ich als Master einen AVR32 und als Slave einen MEGA32. > Beide sind über die Serielle Schnittstelle ( 30 cm lang) miteinander verbunden. > Vom Master werden Einstellungswerte gesendet und der Slave schickt seine > gemessenen Temperaturwerte zurück. > Das klappt auch einigermaßen, es sind nur relativ viele Fehlversuche dabei. > > Aber jetzt zum große Problem. > Die globalen Variablen > vEFeAuWo veFeZuWo veFeAuGa veFeZuGa > veFeAuBa veFeAuBa veFeAuWC veFeZuWC > > werden während Kommunikation verändert bzw gelöscht. > > Diese Variablen werden nur einmal in der Routine Init() mit Werten aus der > SD initiiert. > Im weiteren Programmverlauf werden sie nur für > Vergleichsoperationen herangezogen. > > Das heißt, hier dürfte sich nichts verändern. > > Kann mir jemand weiterhelfen. > Max > > <b>Hier der Code vom Master:</b> > > <basic> > Dim vEFeAuWo As Byte > Dim veFeZuWo As Byte > Dim veFeAuGa As Byte > Dim veFeZuGa As Byte > Dim veFeAuBa As Byte > Dim veFeZuBa As Byte > Dim veFeAuWC As Byte > Dim veFeZuWC As Byte > Dim vBuffer(255) As Byte 'Puffer für RS232 > Dim vFC As Byte 'Fehlerzähler > Dim vZS(10) As Byte 'Zwischenspeicher für komischen Fehler > > Sub Slave(vVWo As Byte, vVGa As Byte, vVBa As Byte, vVWC As Byte, vSWo As Byte, vSGa As Byte, vSBa As Byte, vSWC As Byte) > Dim vC As Integer > Dim vP As Integer > Dim vX As Integer > Dim vT As Long > Dim vFehlerByte As Byte 'gibt Fehlermeldungen an den Slave weiter > Dim vData(80) As Byte > Dim vVentilauswahl As Byte > Dim vEmpf As Byte 'ist True wenn sich Zeichen im Empfanspufer befinden > 'wird hier zwischengespeichert weil die Variablen auf dem weg durch diese Routine gelöscht werden > vZS(0) = veMZU : vZS(1) = veMAuf > vZS(2) = vEFeAuWo : vZS(3) = veFeZuWo : vZS(4) = veFeAuGa : vZS(5) = veFeZuGa > vZS(6) = veFeAuBa : vZS(7) = veFeAuBa : vZS(8) = veFeAuWC : vZS(9) = veFeZuWC > > vFC = 0 > vEmpf = False > Serial_Init_IRQ(0,vBuffer,255,255,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD9600) 'RS232-Schnittstelle > Lab RSStart > AbsDelay(300) > If vFC > 19 Then > vStoerung = 52 > vStoerTextLCD1 = "20 Fehler bei" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "RS232 52" 'Störtext für LCD Zeile 2 > vTextSD = "10 Fehler bei 10 Fehler St.Nr.52" 'Störtext für Protokolldatei > Protokoll() 'Störung in Protokolldatei speichern > StoerStop() 'stoppt das Programm und schaltet alles was sich bewegt ab > vNeustart = 1 'Flag für einen Neustart setzen > End If > 'vAnzeigeStop = 1 'LCD nicht aktualisieren > vVentilauswahl = 0 'die Bits für die Ventilauswahl setzten > If vVWo = 1 Then > vVentilauswahl = vVentilauswahl + 0b00000001 > End If > If vVGa = 1 Then > vVentilauswahl = vVentilauswahl + 0b00000010 > End If > If vVBa = 1 Then > vVentilauswahl = vVentilauswahl + 0b00000100 > End If > If vVWC = 1 Then > vVentilauswahl = vVentilauswahl + 0b00001000 > End If > Do While True > vP = Serial_ReadExt(0) 'Empfangspuffer leeren > If vP = &H100 Then : Exit : End If > End While > Serial_Write(0,245) 'Startsequen senden > Serial_Write(0,7) > Serial_Write(0,248) > Serial_Write(0,36) > Serial_Write(0,vVentilauswahl) 'Ventilauswahl senden > Serial_Write(0,vSWo) 'Ventielstufen senden > Serial_Write(0,vSGa) > Serial_Write(0,vSBa) > Serial_Write(0,vSWC) > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,vFehlerByte) 'Fehler senden > Serial_Write(0,vVentilauswahl) 'Ventilauswahl senden 2. mal > Serial_Write(0,vSWo) 'Ventielstufen senden 2. mal > Serial_Write(0,vSGa) > Serial_Write(0,vSBa) > Serial_Write(0,vSWC) > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,vFehlerByte) 'Fehler senden > Serial_Write(0,36) 'Startsequen senden > Serial_Write(0,248) > Serial_Write(0,7) > Serial_Write(0,245) > AbsDelay(500) > vTOut = 0 > Do While True > vX = Serial_IRQ_Info(0,RS232_FIFO_RECV) 'es geht erst weiter wenn min 78 Byte empfangen wurden > If vX >= 78 Then : Exit : End If > If vX > 0 And vEmpf = False Then 'sind Zeichen im Empfangspuffer > vT = vTOut 'aktuelle timerzeit speichern > vEmpf = True > End If > If (vTOut - vT) > 500 And vEmpf = True Then 'sind 5 sec vergangen nach dem der Empfangspuffer Date empfangen hat > vFC = vFC + 1 'Fehlerzähler > Msg_WriteText("Fehler unvollständiger Empfangspuffer " ):Msg_WriteInt(vFC ):Msg_WriteChar(13 ) > Goto RSStart 'aber nicht vollständig gefüllt wurde > End If 'Empfang zurücksetzen > If vTOut > 3500 Then 'sind mehr als 35 sec vergangen 6000 = 1 min > vStoerung = 51 > vStoerTextLCD1 = "TimeOut bei" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "RS232 Empfang 51" 'Störtext für LCD Zeile 2 > vTextSD = "TimeOut bei RS232 Empfang St.Nr.51" 'Störtext für Protokolldatei > Protokoll() 'Störung in Protokolldatei speichern > StoerStop() 'stoppt das Programm und schaltet alles was sich bewegt ab > vNeustart = 1 'Flag für einen Neustart setzen > End If > End While > > Msg_WriteText("vFeAuXX A "):Msg_WriteInt( vEFeAuWo):Msg_WriteText(" " ):Msg_WriteInt( veFeZuWo):Msg_WriteText(" " ) > Msg_WriteInt( veFeAuGa):Msg_WriteText(" " ):Msg_WriteInt( veFeZuGa) > Msg_WriteText(" " ):Msg_WriteInt( veFeAuBa):Msg_WriteText(" " ):Msg_WriteInt( veFeZuBa):Msg_WriteText(" " ) > Msg_WriteInt( veFeAuWC):Msg_WriteText(" " ):Msg_WriteInt( veFeZuWC):Msg_WriteText("r" ) > > vP = Serial_ReadExt(0) 'Fehlerzahl von Slave 10101010 = OK > vX = Serial_ReadExt(0) 'Fehlerzahl von Slave 01010101 = OK > If vP <> 0b10101010 Or vX <> 0b01010101 Then > vFC = vFC + 1 'Fehlerzähler > Msg_WriteText("Quittungszahlen von Slave falsch vFC=" ) : Msg_WriteInt(vFC ):Msg_WriteChar(13 ) > Goto RSStart > End If > vX = 0 > Do While True > vP = Serial_ReadExt(0) 'Daten von Empfangspuffer lesen > vData(vX) = vP 'und in die Datenbank schreiben > vX++ > If vP = &H100 Then : Exit : End If 'Ende der Daten > End While > '___________________________________________________________ > Msg_WriteText("vData(72 - 75) "):Msg_WriteInt( vData(72)):Msg_WriteText(" " ):Msg_WriteInt( vData(73)):Msg_WriteText(" " ) > Msg_WriteInt( vData(74)):Msg_WriteText(" " ):Msg_WriteInt( vData(75)):Msg_WriteChar(13 ) > If vData(0) = 245 And vData(1) = 7 And vData(2) = 248 And vData(3) = 37 And _ > vData(72) = 37 And vData(73) = 248 And vData(74) = 7 And vData(75) = 245 Then 'Anfangs und Schlusssequenz prüfen > For vC = 0 To 33 > Msg_WriteInt(vData(vC + 4) ):Msg_WriteText("-" ):Msg_WriteInt(vData(vC + 38) ):Msg_WriteText(" " ) > If vData(vC + 4)<> vData(vC + 38) Then 'ersten mit zweiten Datensatz vergleichen > vFC = vFC + 1 'Fehlerzähler > Msg_WriteText("Fehler Temperaturdaten " ):Msg_WriteInt(vFC ):Msg_WriteChar(13 ) > Goto RSStart > End If > Next > Msg_WriteChar(13 ) > vTWWohnz = vData(5) : vTWWohnz = vTWWohnz << 8 : vTWWohnz = vTWWohnz + vData(4) 'Temperaturwert aus Hbyte + LByte > vTZWohnz = vData(7) : vTZWohnz = vTZWohnz << 8 : vTZWohnz = vTZWohnz + vData(6) 'Temperaturwert aus Hbyte + LByte > vTRWohnz = vData(9) : vTRWohnz = vTRWohnz << 8 : vTRWohnz = vTRWohnz + vData(8) 'Temperaturwert aus Hbyte + LByte > vTBGang = vData(11) : vTBGang = vTBGang << 8 : vTBGang = vTBGang + vData(10) 'Temperaturwert aus Hbyte + LByte > vTZGang = vData(13) : vTZGang = vTZGang << 8 : vTZGang = vTZGang + vData(12) 'Temperaturwert aus Hbyte + LByte > vTRGang = vData(15) : vTRGang = vTRGang << 8 : vTRGang = vTRGang + vData(14) 'Temperaturwert aus Hbyte + LByte > vTBBad = vData(17) : vTBBad = vTBBad << 8 : vTBBad = vTBBad + vData(16) 'Temperaturwert aus Hbyte + LByte > vTZBad = vData(19) : vTZBad = vTZBad << 8 : vTZBad = vTZBad + vData(18) 'Temperaturwert aus Hbyte + LByte > vTRBad = vData(21) : vTRBad = vTRBad << 8 : vTRBad = vTRBad + vData(20) 'Temperaturwert aus Hbyte + LByte > vTBWC = vData(23) : vTBWC = vTBWC << 8 : vTBWC = vTBWC + vData(22) 'Temperaturwert aus Hbyte + LByte > vTZWC = vData(25) : vTZWC = vTZWC << 8 : vTZWC = vTZWC + vData(24) 'Temperaturwert aus Hbyte + LByte > vTRWC = vData(27) : vTRWC = vTRWC << 8 : vTRWC = vTRWC + vData(26) 'Temperaturwert aus Hbyte + LByte > vTVorlOben = vData(29) : vTVorlOben = vTVorlOben << 8 : vTVorlOben = vTVorlOben + vData(28) > vVentilstufeWo = vData(31) 'aktuelle Ventilstufen übergeben > vVentilstufeGa = vData(32) > vVentilstufeBa = vData(33) > vVentilstufeWC = vData(34) > AbsDelay(100) > Serial_Disable(0) 'RS232 abschalten > TempMessung() 'Temperaturen des Masters messen > Else > vFC = vFC + 1 'Fehlerzähler > Msg_WriteText("Fehler Anfangs und Schlusssequenz prüfen " ):Msg_WriteInt(vFC ):Msg_WriteChar(13 ) > Goto RSStart > End If > > Msg_WriteText("vFeAuXX B "):Msg_WriteInt( vEFeAuWo):Msg_WriteText(" " ):Msg_WriteInt( veFeZuWo):Msg_WriteText(" " ) > Msg_WriteInt( veFeAuGa):Msg_WriteText(" " ):Msg_WriteInt( veFeZuGa) > Msg_WriteText(" " ):Msg_WriteInt( veFeAuBa):Msg_WriteText(" " ):Msg_WriteInt( veFeZuBa):Msg_WriteText(" " ) > Msg_WriteInt( veFeAuWC):Msg_WriteText(" " ):Msg_WriteInt( veFeZuWC):Msg_WriteText("r" ) > > If vData(30) > 6 And vData(30) < 15 Then 'bei Störmeldungen vom Slave > vStoerung = vData(30) 'Störungsnummer an lokale Varable übergeben > Select Case vData(30) 'Störungszahlen von Slave selektieren > Case 7 > vStoerTextLCD1 = "TimeOut Wohnz." 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil AUF" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Wohnzimmer Endschalter AUF wurde nicht erreicht St.Nr.7" 'Störtext für Protokolldatei > Case 8 > vStoerTextLCD1 = "TimeOut Gang" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil AUF" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Gang Endschalter AUF wurde nicht erreicht St.Nr.8" 'Störtext für Protokolldatei > Case 9 > vStoerTextLCD1 = "TimeOut Bad" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil AUF" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Bad Endschalter AUF wurde nicht erreicht St.Nr.9" 'Störtext für Protokolldatei > Case 10 > vStoerTextLCD1 = "TimeOut WC" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil AUF" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil WC Endschalter AUF wurde nicht erreicht St.Nr.10" 'Störtext für Protokolldatei > Case 11 > vStoerTextLCD1 = "TimeOut Wohnz." 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil ZU" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Wohnzimmer Endschalter ZU wurde nicht erreicht St.Nr.11" 'Störtext für Protokolldatei > Case 12 > vStoerTextLCD1 = "TimeOut Gang" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil ZU" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Gang Endschalter ZU wurde nicht erreicht St.Nr.12" 'Störtext für Protokolldatei > Case 13 > vStoerTextLCD1 = "TimeOut Bad" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil ZU" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil Bad Endschalter ZU wurde nicht erreicht St.Nr.13" 'Störtext für Protokolldatei > Case 14 > vStoerTextLCD1 = "TimeOut WC" 'Störtext für LCD Zeile 1 > vStoerTextLCD2 = "Ventil ZU" 'Störtext für LCD Zeile 2 > vTextSD = "Fehler Ventil WC Endschalter ZU wurde nicht erreicht St.Nr.14" 'Störtext für Protokolldatei > End Select > Protokoll() 'Störung in Protokolldatei speichern > vNeustart = 1 'Flag für einen Neustart setzen > StoerStop() 'stoppt das Programm und schaltet alles was sich bewegt ab > End If > AbsDelay(200) > 'wird hier zurückgespeichert weil die Variablen auf dem weg durch diese Routine gelöscht werden > veMZU = vZS(0): veMAuf = vZS(1) > vEFeAuWo = vZS(2) : veFeZuWo = vZS(3) : veFeAuGa = vZS(4) : veFeZuGa = vZS(5) > veFeAuBa = vZS(6) : veFeAuBa = vZS(7) : veFeAuWC = vZS(8) : veFeZuWC = vZS(9) > End Sub > </basic> > > > <b>Hier das Ausgabeprotokoll:</b> > > Interpreter gestartet - 64kb RAM > SYSDaten gelesen > SDC_Init x 0 > vFeAuXX A 4 2 4 2 4 2 4 2 > vData(72 - 75) 232 1 14 4 > Fehler Anfangs und Schlusssequenz prüfen 1 > vFeAuXX A 0 0 0 0 0 0 15 36 > vData(72 - 75) 0 190 0 36 > Fehler Anfangs und Schlusssequenz prüfen 2 > vFeAuXX A 0 0 0 0 0 0 15 36 > vData(72 - 75) 37 248 7 245 > 195-195 0-0 192-192 0-0 193-193 0-0 191-191 0-0 196-196 0-0 190-190 0-0 195-195 0-0 194-194 0-0 191-191 0-0 197-197 0-0 > 196-196 0-0 195-195 0-0 190-190 0-0 36-36 0-0 0-0 0-0 0-0 0-0 0-0 0-0 > Wand Wohnzimmer 195 > Zimmer Wohnzimmer 192 > Rücklauf Wohnzimmer 193 > Boden Gang 191 > Zimmer Gang 196 > Rücklauf Gang 190 > Boden Bad 195 > Zimmer Bad 194 > Rücklauf Bad 191 > Boden WC 197 > Zimmer WC 196 > Rücklauf WC 195 > Vorlauf unten 185 > Vorlauf Oben 190 > Aussen 187 > Kessel 188 > vFeAuXX B 0 0 0 0 0 0 15 36 > Mischer Pos in MPVNull -2 > Anfang veMZU-- 0 25 > vFeAuXX A 4 2 4 2 4 0 4 2 > Quittungszahlen von Slave falsch vFC=1 > vFeAuXX A 0 0 0 0 0 0 0 36 > vData(72 - 75) 37 248 7 245 > Fehler Anfangs und Schlusssequenz prüfen 2 > vFeAuXX A 0 0 0 0 0 0 0 36 > vData(72 - 75) 37 248 7 245 > 195-195 0-0 192-192 0-0 192-192 0-0 190-190 0-0 195-195 0-0 190-190 0-0 195-195 0-0 193-193 0-0 190-190 0-0 196-196 0-0 > 195-195 0-0 193-193 0-0 190-190 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 > Wand Wohnzimmer 195 > Zimmer Wohnzimmer 192 > Rücklauf Wohnzimmer 192 > Boden Gang 190 > Zimmer Gang 195 > Rücklauf Gang 190 > Boden Bad 195 > Zimmer Bad 193 > Rücklauf Bad 190 > Boden WC 196 > Zimmer WC 195 > Rücklauf WC 193 > Vorlauf unten 185 > Vorlauf Oben 190 > Aussen 187 > Kessel 188 > vFeAuXX B 0 0 0 0 0 0 0 36 > Anfang veMZU-- 0 25 > > Interpreter gestoppt > > > > <b>Hier der Code vom Slave</b> > <basic> > Sub main() > Dim vData(32) As Byte 'temporäre Daten wird erst gültig wenn die Übertragung verifiziert wurde > Dim vFehlerByte1, vFehlerByte2 As Byte 'Fehlerbyte > Dim vEmpf As Byte 'ist True wenn sich Zeichen im Empfanspufer befinden > Init() > Lab Anfang > Do While True > Y = Serial_ReadExt(0) 'Empfangspuffer leeren > If Y = &H100 Then : Exit : End If > End While > vEmpf = False > Do While True > Do While True > ChackMasterStoerung() 'prüft ob eine Störsignal vom Master kommt > Y = Serial_IRQ_Info(0,RS232_FIFO_RECV) 'prüft wie viele Zeichen empfangen wurden > If Y < 30 Then 'wenn keine Daten im Empfangspuffer sind > TempMessung() 'Temperaturen messen > LCD_Anzeige() 'Anzeige aktualisieren > AbsDelay(100) > Else > vEmpf = False > Exit 'Empfangspuffer ist gefüllt > End If > If Y > 0 And vEmpf = False Then 'sind Zeichen im Empfangspuffer > vTimer = 0 > vEmpf = True > End If > If vTimer > 200 And vEmpf = True Then 'sind 2 sec vergangen nach dem der Empfangspuffer Date empfangen hat > Goto Anfang 'aber nicht vollständig gefüllt wurde > End If 'Empfang zurücksetzen > End While > X = 0 > Do While True > Y = Serial_ReadExt(0) 'Daten aus Empfangspuffer > vData(X) = Y > X++ > Msg_WriteInt(Y):Msg_WriteText("* ") > If Y = &H100 Then 'Ende der Daten > Msg_WriteChar(13) > Exit 'bei &H100 ist der Empfangspuffer leer > End If > End While > vFehlerByte1 = 0b10101010 > vFehlerByte2 = 0b01010101 > If vData(0) = 245 And vData(1) = 7 And vData(2) = 248 And vData(3) = 36 And vData(26) = 36 And _ > vData(27) = 248 And vData(28) = 7 And vData(29) = 245 Then > For X = 0 To 10 > Msg_WriteInt(vData(4 + X)):Msg_WriteText("-" ):Msg_WriteInt(vData(15 + X)):Msg_WriteText(" " ) > If vData(4 + X) <> vData(15 + X) Then > vFehlerByte1 = 0b01010101 'bei Empfangsfehler die Bits wechsel > vFehlerByte2 = 0b10101010 > Msg_WriteText("Fehler in Empfangsdaten r" ) > End If > Next > Else > Msg_WriteText("Fehler Anfang oder Schluss r" ) > vFehlerByte1 = 0b01010101 'bei Empfangsfehler die Bits wechsel > vFehlerByte2 = 0b10101010 > End If > Msg_WriteChar(13 ) > Msg_WriteText("Daten anwendenr" ) > vVentilauswahl = vData(4) 'wenn alles OK Daten auf die Variablen übertragen > vVentilPosWo = vData(5) > vVentilPosGa = vData(6) > vVentilPosBa = vData(7) > vVentilPosWC = vData(8) > vVentAuswWo = vVentilauswahl And 0b00000001 'die Ventilauswahl aufteilen > vVentAuswGa = vVentilauswahl And 0b00000010 > vVentAuswBa = vVentilauswahl And 0b00000100 > vVentAuswWC = vVentilauswahl And 0b00001000 > 'Ventile stellen > Ventilstufe(vVentAuswWo, vVentAuswGa, vVentAuswBa, vVentAuswWC, vVentilPosWo, vVentilPosGa, vVentilPosBa, vVentilPosWC) > Msg_WriteChar(13 ) > Msg_WriteText("Data OK " ) > Msg_WriteInt(vVentilPosWo) > Msg_WriteText(" " ) > Msg_WriteInt(vVentilPosGa) > Msg_WriteText(" " ) > Msg_WriteInt(vVentilPosBa) > Msg_WriteText(" " ) > Msg_WriteInt(vVentilPosWC) > Msg_WriteText("r" ) > > > Serial_Write(0,vFehlerByte1) > Serial_Write(0,vFehlerByte2) > Serial_Write(0,245) 'Startsequen senden > Serial_Write(0,7) > Serial_Write(0,248) > Serial_Write(0,37) > For X = 0 To 26 > Serial_Write(0,vMessWerte(X)) > Next > Serial_Write(0,vVentilPosWo) > Serial_Write(0,vVentilPosGa) > Serial_Write(0,vVentilPosBa) > Serial_Write(0,vVentilPosWC) > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > For X = 0 To 26 > Serial_Write(0,vMessWerte(X)) > Next > Serial_Write(0,vVentilPosWo) > Serial_Write(0,vVentilPosGa) > Serial_Write(0,vVentilPosBa) > Serial_Write(0,vVentilPosWC) > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,0) 'Reserve > Serial_Write(0,37) 'Schlusssequenz senden > Serial_Write(0,248) > Serial_Write(0,7) > Serial_Write(0,245) > AbsDelay(1000) > End While > End Sub</basic> > > > 6 And vData(30)