Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)