| |
|
|
- Page 1 - |
|
Web Scanner | Nachtrag: Web Scanner, Beitrag=56582, Zeitpunkt=28.03.2010
Du kannst Dir dieses Thermometer bei Ebay bestellen: USB xp linux thermometer,RS232 protocol,TEMPer232 Ebay Artikelnummer:220564891464 Herstellerseite: [...] Das Ding kostet 18US$ + 6$ Fracht. Das Temper232 kommt aus China, dauert paar Tage. Grüße Web
Web Scanner, Beitrag=56571, Zeitpunkt=28.03.2010
Anbei der Quelltext. Kann man sicher noch viel besser machen, aber es funktioniert erstemal: KompilierenMarkierenSeparierenTemperaturmessung Temper232 für PROFAN
über RS232 COMPORT 3
(C) Webbisoft 3/2010
Declare a$, f%, ende%,e%
Declare x$, y$, z%, bz&, xtemp!,xdtemp!, ll&, hh&, testtemp%
Proc GetComInput
Parameters id%
x$ = @ReadCom$(id%,10)
y$ = @ComError(id%)
bz& = @addr(x$)
print "temp: ",bz&
WhileNot x$ = ""
testtemp% = 0
x$=@ReadCom$(id%, 10)
@ComError(id%)
bz& = ord(mid$(x$,1,1))
print "temp1: ",(bz&); " ";
if bz& = 36
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,2,1))
print (bz&); " ";
if bz& = 254
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,3,1))
print (bz&); " ";
if bz& = 2
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,4,1))
print (bz&); " ";
bz& = ord(mid$(x$,5,1))
print (bz&); " ";
bz& = ord(mid$(x$,6,1))
print (bz&); " "
iF TESTTEMP% =1
hh& = ord(mid$(x$,4,1))
ll& = ord(mid$(x$,5,1))
Print "ll& =", (ll&)
Print "hh& =",(hh&)
Xtemp! =256*hh&+ll&
Print "xtemp!=", xtemp!
If Xtemp! > 16384
XDtemp! = -(16384-(Xtemp!)/4)*(0.03125) Korrekturwert 4000h ab 100°C
Else
XDtemp! = (Xtemp!/4)*(0.03125)
EndIf
XDtemp!= XDtemp!-3 Korrekturwert
@Set("Decimals",2)
print "Temperatur USB232= ",xdtemp!,"°C"
endif
sleep 800
EndWhile
print
EndProc
Window 0, 0 - 400, 400
f% = @OpenCom("COM3", 1024, 1024)
@SetCom("COM3:4800,N,8,1")
@WriteCom(f%, chr$($24)+ chr$($10)+chr$($05)+chr$($01)+chr$($01)+chr$($00)+chr$($32)+chr$($01)+chr$($55))
Thermometer initialisieren
y$ = @ComError(f%)
GetComInput f% Antwort abwarten und anzeigen
ende% = 0
WhileNot ende%
a$ = @Inkey$() Tastatur abfragen
If a$ = "§" Ende mit SHIFT-3
ende%=1
Else
GetComInput f% empfangene Zeichen lesen
Endif
EndWhile
@Clos a> (f% )
End
Hallo Programmierfreunde,
nach längerer Zeit habe ich wieder ein kleines Softwareprojekt. Es geht um eine Temperatursteuerung. Dazu muß ich einen USB Temperaturstick auswerten. Sowas hier: Ebay Artikelnummer: 380167386533
Nun meine Frage, hat so etwas schon jemand gemacht? Gibt es da spezielle Treiber, dlls, oder sonstige Hilfen? Ich muß dazu sagen, das der Stick noch nicht bei mir weilt und daher ist es noch etwas dürftig mit der Datenlage
Grüße
Web |
|
|
| |
|
|
| |
|
- Page 4 - |
|
|
GDL | Hi Detlef,
und ich vermute, das deine dll nichts anderes macht als mit der Windowsschnittstelle nach USB kommuniziert und das dies genormt ist.Wie gesagt Vermutung. Diese Funktionen der dll, wenn es so ist, gehörten in XProfan eingebaut.
Wie gesagt,ich steige wieder auf Input/output Karten um.Viel schneller und leichter zu handhaben.
Servus Georg |
|
|
| |
|
|
|
Web Scanner |
Ich habe jetzt erstmal den Temperatursensor mit USB zu RS232 COM Schnittstelle bestellt. Sooo teuer ist der Divertimento ja nicht.
Der ist laut Webseite direkt per eigene Softwareprojekte vorgesehen.
Grüße
Web |
|
|
| |
|
|
|
Web Scanner | Juhu, der Temper232 Temperaturfühler ist heute angekommen Nun muß ich es nur "noch" auslesen können. Auf der Webseite findet man folgende magere Info:
The communication protocol of TEMPer232 instruction:
a) When plug the TEMPer232 device into the computer, please distinguish the corresponding serial port number in your computer;
b) Baud rate is 4800; c) There is 8 digit and no need to verify of odd or even number, the stop bit is 1bit; d) After open the serial port, do as below: Sending command: 24, 10, 05, 01, 01, 00, 32, 01, 55. Then you will see :24, FE, 02, HH, LL, 88 The temperature Xtemp=256*HH+LL If Xtemp > &H4000 Then XDtemp = -(&H4000 - (Xtemp / 4)) * 0.03125 Else XDtemp = (Xtemp / 4) * 0.03125 End If
Das zugehörige Programm des Herstellers gibt zumindest schon mal bei mir den Comport 12 aus...aber wie gehts nun weiter
Ich werde mal was zusammenfummeln.
Grüße
Web |
|
|
| |
|
|
|
Web Scanner | Hallo Amici
hatte ziemlich was um die Ohren, jetzt geht es endlich weiter. Leider sagt mir das Thermometer nix circa die Schnittstelle. Den Programmschnipsel hab ich in der Aiuto gefunden und bissel angepasst. Was potuto ich da probieren? Über das beigelegte Programm sehe ich das es circa COMPORT 12 zu finden ist...
Grüße
Web KompilierenMarkierenSeparierenTemperaturmessung
über RS232 COMPORT 12
Declare a$, f%, ende%
Proc GetComInput
Parameters id%
Declare x$, y$
x$ = @ReadCom$(id%,1)
y$ = @ComError(id%)
Print x$;
WhileNot x$ = ""
x$=@ReadCom$(id%, 1)
@ComError(id%)
Print x$;
EndWhile
EndProc
Window 0, 0 - 400, 400
f% = @OpenCom("COM12", 1024, 1024)
@SetCom("COM12:4800,N,8,1")
@WriteCom(f%, "24,10,05,01,01,00,32,01,55") Thermometer initialisieren
@ComError(f%)
GetComInput f% Antwort abwarten und anzeigen
ende% = 0
WhileNot ende%
a$ = @Inkey$() Tastatur abfragen
If a$ = "§" Ende mit SHIFT-3
ende%=1
Else
IfNot a$ = "" Zeichen ans Modem
@WriteCom(f%,a$)
Endif
GetComInput f% empfangene Zeichen lesen
Endif
EndWhile
@CloseCom(f%)
../../funktionsreferenzen/xprofan/end/'>End
|
|
|
| |
|
|
|
| Die Comportnummer kann imho immer eine andere sein, kann der User imho auch festlegen. Worum gehts Dir eigentlich? ^^ |
|
|
| |
|
|
|
Web Scanner | Ahsoo...
Tja ich hab ja nun das besagte USB Thermometer mit der RS232 Emulation. Im Beitrag darüber steht was man einstellen sollte, um die Daten auslesen zu können. Leider hab ich das wohl falsch geproggt.. Bei mir kommt in dem Programm nix an. Keine Daten einfach gornix. **seufz**
y$ = @ComError(id%) gibt il valore -1 aus. |
|
|
| |
|
|
|
| Ah, könntest Du eben manuell herausbekommen, auf welchem Port der Treiber das Termo gesetzt hat?
Vlt. hilft auch: [...] obwohl darüber leider nur die verfügbaren Ports, aber nicht die Portnamen abrufbar sind. Vlt. potuto man auch alle verfügbaren Ports anrufen und befragen, ob diese die richtigen sind. ^^ Vlt. hilft auch: [...]
Was ist
eigentlich per ein Gerät? Plotter? |
|
|
| |
|
|
|
| Sehe grad noch...:
Initialize with... 24, 10, 05, 01, 01, 00, 32, 01, 55
Du aber: WriteCom(f%, "24,10,05,01,01,00,32,01,55")
Richtiger wäre imho WriteCom(f%,chr$($24)+chr$($10)... Du sendest per "24, ja 50, 52, 44 ... |
|
|
| |
|
|
|
Web Scanner | Okay, richtig, das ist drin. Der Thermo will noch nicht. Im Thermo ist ne kleine LED, die müsste bei der Anfrage angehen, die will auch nicht. Bestimmt hängt das an der Comportadresse.... |
|
|
| |
|
|
|
Web Scanner | Das ist eine selbstgebaute PC-gesteuerte CNC-Fräsmaschine. Damit kann man Holz, Kunststoffe und Aluminium bearbeiten. Irgendwo hatte ich hier mal einen Fred, da habe ich mit einem Programm dazu angefangen. Von Hand ging das damals immerhin schon das Verfahren der Achsen. Leider aus Zeitgründen erstmal auch Halde... |
|
|
| |
|
|
|
| Eine selbstgebaute PC-gesteuerte CNC-Fräsmaschine, nett. ^^
Kannst Du den Comport übern Gerätemanager herausfinden? |
|
|
| |
|
|
|
Web Scanner |
Das isser |
|
|
| |
|
|