
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Du kannst folgendes versuchen (klappt bei mir problemlos, allerdings mit VB statt Excel): Von der C-Control aus sendest Du 2 Bytes mit PUT: zuerst den HIGH-Anteil, dann den LOW-Anteil des Words. Im PC empfängst Du einfach diese 2 Bytes, multiplizierst das erste mit 256 und addierst dazu das zweite - schon hast Du Dein Word übertragen. Um Empfangsfehler auszuschließen, schreib Dir vorher (nur zum probieren) ein Programm auf der C-Control, das einfach permanent abwechelnd 2 Bytes sendet - und schaue, ob Du genau diese mit dem PC empfängst. Ein häufiger Effekt ist, daß das erste von der C-Control gesendete Byte verlorengeht. Viel Spaß beim Basteln! Gruß Carsten > Hallo C-Controler > > Ich möchte Messdaten, die als Wordvariable im C-control gespeichert sind in Excel einlese! > Gibt es eine Funktion wie z.B. "Readword"???? > Mit "Readstring" habe ich scho experimentiert! > > Wer kann mir einen Tip geben, ich komme nicht weiter. > > > Danke für die Hilfe > Markus > > Ich benutze dieses Vb-Programm : > > Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal Parameter$) > Declare Function READBYTE Lib "RSAPI.DLL" () As Integer > Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal ms%) > Declare Sub CLOSECOM Lib "RSAPI.DLL" () > Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal B%) > Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms%) > > Sub c_control() > OPENCOM "COM1:9600,N,8,1" > ThisWorkbook.Sheets("Tabelle1").Activate > Columns("A:c").Select > Selection.ClearContents > Range("A2").Select > TIMEOUT 1000 > SENDBYTE 27 > zeile = 3 > Do > e1 = READBYTE > e2 = READBYTE > If e1 >= 0 And e2 >= 0 Then > Cells(zeile, 1).Value = e1 > Cells(zeile, 2).Value = e2 > Cells(1, 5).Value = zeile > zeile = zeile + 1 > End If > Loop Until (e1 < 0 Or e2 < 0) > CLOSECOM > Calculate > MsgBox Str(zeile - 1) + " Meßwerte gelesen" > End Sub > > > > > > > |
| Antwort schreiben |