Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

RS232-komunikation veränder Variable Kategorie: Verschiedenes (von Max - 8.04.2015 12:32)


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

Hier der Code vom Master:


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



Hier das Ausgabeprotokoll:

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  



Hier der Code vom Slave

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



 6 And vData(30)


    Antwort schreiben


Antworten: