Re: Übertragung von CC2 über COM direkt nach Excel Kategorie: Sonstige Hardware (von ChristianE - 8.11.2003 13:09) | |
Als Antwort auf Übertragung von CC2 über COM direkt nach Excel von Georg Mallebrein - 5.11.2003 0:42
| |
Hallo Georg, ich arbeite auch mit der RSAPI und Excel. Bei mir ist immer nach einigen korrekten �bertragungen die Kommunikation hängen geblieben, d.h. Excel hat dann mit READBYTE keine Daten mehr gelesen. Ich habs bei mir gelöst indem ich einen Timeout ein- gefügt habe, wenn der Timeout auftritt, initialisiere ich die Schnittstelle mit OPENCOM neu. Gru� Christian > Probleme bei Datenübertragung CC2-Unit direkt nach Excel mit RSAPI !!! > ===================================================== > > Seit 2 Monaten arbeite ich mit der CC2-Unit. Ich will eine Wetterstation bauen und möchte > in einem EEPROM gespeicherte Daten direkt nach Excel schreiben. > > > Seit 3 Tagen nun versuche ich anhand des Buches "Messen, Steuern, Regeln mit Word und Excel" > und durch Verwendung der RSAPI.DLL Daten über die Serielle Schnittstelle von der CC2-Unit > direkt nach Excel zu bekommen. > > Bisher aber gelingt nur eine �bertragung von Daten über die COM vom PC in die CC2-Unit. > > Beim �bertragen von der CC2-Unit in den PC steigt der Lesebefehl READBYTE in Excel > jedes Mal aus. > > Ein Zusammenspiel der CC2 mit einem Hyperterminal funktioniert jedoch einwandfrei. > Bei Eingabe einer '27' gibt sie die Zahl 165 aus. > > Wer kann mir helfen? Danke schon mal im Voraus. > > Gru� von Georg > > > > Zur Info: Die TxD-Lampe auf einem COM-Schnittstellen-Monitor flackert nicht beim > �bertragungsversuch nach Excel. > > Beim Zusammenspiel der CC2-Station mit dem Terminalprogramm flackert sie jedoch. > > > > Hier der CC2-Code: > ============== > > int kommando; > string s ; > > thread main > { > hwcom.init(); > hwcom.setspeed(2); > > lcd.init(); > s = "k= "; > kommando = 99; > str.putint(s,kommando); > lcd.clear(); > if lcd.ready() lcd.printlength (s,5); > > wait hwcom.rxd(); > if hwcom.rxd() kommando = hwcom.get(); > // Test auf Empfang, wenn ja Beschreiben von kommando mit empfangenen Byte > > if kommando == 27 > { > s = "k= "; > str.putint(s,kommando); > lcd.clear(); > if lcd.ready() lcd.printlength (s,5); > // Ausgeben der 27, wenn Empfang geklappt hat > > hwcom.put(165); // Senden von 165 > } > sleep(2000); > quit -1; > > > } // end thread main > > > > > Visual Basic Code: > ============== > > Declare Function OPENCOM Lib "RSAPI.DLL" (ByVal ComParameter$) As Integer > Declare Sub INIT Lib "RSAPI.DLL" (ByVal COM%) > Declare Sub CLOSECOM Lib "RSAPI.DLL" () > Declare Sub TIMEINIT Lib "RSAPI.DLL" () > Declare Function TIMEREAD Lib "RSAPI.DLL" () As Long > Declare Sub READSTRING Lib "RSAPI.DLL" (ByVal S As String) > Declare Function READBYTE Lib "RSAPI.DLL" () As Integer > Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal B%) > Declare Sub STRLENGTH Lib "RSAPI.DLL" (ByVal B%) > Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal ms%) > Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms%) > > > > Sub Dmm3650() > i = OPENCOM("COM2:1200,N,8,1") > > Cells(17, 6).Value = i > SENDBYTE (27) > Cells(19, 6).Value = i > TIMEOUT (1000) > e = READBYTE > Cells(1, 10).Value = e > CLOSECOM > End Sub > > > > > > | |
Antwort schreiben Antworten: Re: Übertragung von CC2 über COM direkt nach Excel (von Georg Mallebrein - 10.11.2003 21:41) |