Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Daten über RS232 nach Excel 97 Kategorie: C-Control I V1.1 (von Sattler Hermann - 11.03.2004 15:58)
 Als Antwort auf Re: Daten über RS232 nach Excel 97 von Martin T. - 11.03.2004 8:27
Hallo Martin , Hallo Marcel,
ich habe das Buch MSR mit Word und Excel. Die RSAPI.Dll habe ich auch installiert.
Ich versuche hier mal  mein BASIC-Programm und das VisualBasic hier rein zu kriegen.
Bitte nicht auslachen, es sind wahrscheinlich erhebliche Fehler darin. Ein Grund dafür ist
sicherlich auch das viele Probieren  und Ändern.
Danke für die angebotene Hilfe

Hermann Sattler

Hier das VB
Attribute VB_Name = "Modul1"

'
' Makro1 Makro
' Makro am 07.03.04 von Sattler Hermann aufgezeichnet
  Declare Sub INITCCONTROL Lib "RSAPI.DLL" (ByVal COM%)
  Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal Parameter$)
  Declare Sub TIMEINIT Lib "RSAPI.DLL" ()
  Declare Function TIMEREAD Lib "RSAPI.DLL" () As Long
  Declare Function READBYTE Lib "RSAPI.DLL" () As Integer
  Declare Sub STRREAD Lib "RSAPI.DLL" (ByVal S As String)
  Declare Function AIN Lib "RSAPI.DLL" (ByVal Ein%)
  Declare Sub FINDHARD Lib "RSAPI.DLL" (ByVal Meldung%)
 
 
 
  Sub Makro1()
 
  INITCCONTROL 1
 
  OPENCOM "COM1:9600,N,8,1"
  FINDHARD 1
  Sheets("Tabelle1").Activate        'Blatt aktivieren
  Range("A1").Select
  Columns("A:C").ClearContents       'Spalten löschen
  ix = Cells(10, 8).Value
  Messdauer = Cells(ix, 8).Value * 1000
  ix = Cells(10, 9).Value
  Intervall = Cells(ix, 9).Value * 1000
  TIMEINIT
 
  t = 0: Zeile = 1
  Do
  e = READBYTE
  Cells(Zeile, 1).Value = TIMEREAD / 1000
  Cells(Zeile, 2).Value = e
 
  Calculate
  While TIMEREAD < t + Intervall
  Wend
  t = TIMEREAD
  Zeile = Zeile + 1
  Loop Until t >= Messdauer
  End Sub

Hier da Basic
      '********************************************************************
      '                                                                   '
      ' C-Control/BASIC       Temp3-4zeilen-senden-versuch.BAS            '
      '                                                                   '
      ' Systemvoraussetzungen:                                            '
      '                                                                   '
      ' - Experimentier Board                                             '
      '                                                                   '
      ' Schwerpunkt:                                                      '
      '                                                                   '
      ' Temperaturmess-System                                             '
      ' Drehzahlerfassung                                                 '
      '                                                                   '
      '  Senden der Daten an Excel        Verschiedene Sendebefehle       '
      '                                   PUT oder PRINT                  '
      '********************************************************************
      '*** Variablen-Definition ***

      define dr word
      define dr1 word
      define temp word
      define temp1 word
      define s1 word
      define s2 word
      define s3 word
      define s4 word
      define s5 word
      define r1 byte
      define r2 byte
      define r3 byte
      define r4 byte
      define r5 byte
      define taster2 byte
      define i byte
      define Sensnr byte

      define Ausgang byteport [1]
      define Eingang byteport [2]
     
      define Kommando byte
     
      define weis port [2]
      '*** Hauptprogramm  ***

      #anfang


       taster2 = 1

       #start
       if weis = 0 then taster2 = 0
       if taster2 = 0 then goto M1

       goto start

       end

      'Unterprogramme

      #AUSGABEDR1                                'Umrechnung Zahlenwert in String
                                                 'Drehzahl 1
      s1 = dr/10
      r1 = dr mod 10

      s2 = s1/10
      r2 = s1 mod 10

      s3 = s2/10
      r3 = s2 mod 10

      s4 = s3/10
      r4 = s3 mod 10

      s5 = s4/10
      r5 = s4 mod 10


      dr1 = r5
      dr1 = r4                                  'Drehzahl 1 wird nicht zum Testen
      dr1 = r3                                  'verwendet.
      dr1 = r2                                  
      dr1 = r1                                  
     


      return

      #AUSGABEDR2                                 'Umrechnung Zahlenwert in String
                                                  'Drehzahl 2
      s1 = dr/10
      r1 = dr mod 10

      s2 = s1/10
      r2 = s1 mod 10

      s3 = s2/10
      r3 = s2 mod 10

      s4 = s3/10
      r4 = s3 mod 10

      s5 = s4/10
      r5 = s4 mod 10

      dr1 = r5
      dr1 = r4
      dr1 = r3
      dr1 = r2
      dr1 = r1

      'print dr,                        ' hier änderbar put oder print
       put dr

      return


      #M1
      pause    4                              'beliebige Pause setzen
     

      define sens1 ad [1]
     

      if taster2 = 0 then temp = sens1          'Temperatur 1
      temp = temp*102/43
      gosub ausgabe

      put temp                                   'Neu Temperatur 1   in put geändert
                                                 'senden an Hyperterminal



      if taster2 = 0 then dr = freq2*60

      gosub ausgabedr2

      goto M1

      end

      'Unterprogramme

      #AUSGABE                                     'Umrechnung Zahlenwert in String
      s1 = temp/10
      r1 = temp mod 10

      s2 = s1/10
      r2 = s1 mod 10

      s3 = s2/10
      r3 = s2 mod 10


      temp1 = r3
      temp1 = r2
      temp1 = r1


     return



  Hallo,

> es gibt ein Buch mit dem Titel "Messen, Steuern und Regeln mit Word und Excel" (Franzis Verlag),
> bei welchem sich auf der mitgelieferten CD eine Datei namens RSAPI.DLL befindet. Diese enthält
> verschieden Routinen für die serielle Schnittstelle, z.B. kann man damit den C-Control Speicher direkt
> in eine Excel Tabelle einlesen. Vielleicht ist sie auch für Deinen Bedarf geeignet.
>
> Gruß,
> Martin T.
>
> > Hallo Hermann,
> >
> > eigentlich dürfte das kein Problem sein...
> > Ich habe mal was ähnliches gebaut (Datenerfassung in Access - siehe Downloadbereich meiner HP). Und das funktioniert einwandfrei.
> > Poste doch mal deinen Code (bzw. den Teil, wo du die Daten übergiebst) und den entsprechen
> > Code-Teil von deinem VB/VBA-Proggie.
> >
> > mfg,
> > Marcel
> >
> > > Hallo Leute,
> > > ich bin neu hier. Mein Name Hermann Sattler.
> > >
> > > Ich habe erhebliche Schwierigkeiten bei der Datenübertragung nach Excel 97.
> > >
> > > Ich habe mit der M-unit einen Datalogger (8 Temperaturen 0-600°C; 2 Drehzahlmessungen mit Freq1/2)
> > > selbst entwickelt.  Der Logger bzw. das Programm funktioniert einwandfrei. Es werden alle Daten in
> > > einem Display 4x20 dargestellt. Auch funktioniert die Ãœbergabe der Daten z.B. nach Hyperterminal von
> > > Windows einwandfrei. Auch andere Terminals werden einwandfrei angesteuert.
> > >
> > > Jetzt hätte ich den Wunsch gehabt, online während einer Messung die Daten direkt nach Excel zu
> > > senden , die Daten in die Excelzellen zu schreiben und gleichzeitig den Graphen online mitlaufen
> > > zu lassen.
> > >
> > > Ich habe mich schon über Tage mit Excel und Visual Basic und dem Editor etc. auseinandergesetzt.
> > > Also simultan funktioniert Excel mit dem Onlinegraphen einwandfrei. Also auch die Makros sollten
> > > stimmen. Nur mit dem Logger klappt es nicht.
> > >
> > > Ich muß noch erwähnen, daß ich das Ganze mit einem abgespeckten Programm probiere. 1Drehzahl
> > > bzw. 1Temperatur  und KEINE Ansteuerung des Displays. Keine Datenspeicherung im EEPROM.
> > >
> > >
> > > ABER wenn ich nun Daten senden will, so kommt lauter Mist heraus.  Ich habe schon so viel geprüft
> > > und finde den Fehler nicht.
> > >
> > > Es wird auch die geöffnete Schnittstelle erkannt.
> > >
> > > Ich habe schon versucht die Daten mit PUT bzw. mit PRINT zu senden, aber da ist überhaupt kein
> > > Unterschied.
> > >
> > > Wenn ich mir das Senden in einem anderen Terminal ansehe, da sehe ich daß Bytes bzw Text
> > > gesendet wird. Die Bytes kann ich nicht kontrollieren, der Text ist einwandfrei in Ordnung.
> > > Zum Schluß muß ich noch sagen, daß ich Maschinenbauer bin also kein Elektroniker oder Rechner-
> > > profi.
> > >
> > > Hat da jemand Ahnung. Bitte um Hilfe.
> > >
> > > Mit freundlichem Gruß
> > >
> > > Hermann Sattler
> > > Tel/Fax 09426802790
> > > E-mail    h-sattler@t-online.de

 Antwort schreiben

Bisherige Antworten: