Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 22.5.2010 um 15:23 |
|
|
Hallo ich bin neu hier und möchte auch gleich loslegen ich habe schon
einige zeit das Forum durchsucht doch leider nichts passendes gefunden
Ich möchte den Maischprozess meiner 30Liter Brauanlage automatiesieren
Leider gibt es so viele Beiträge hier im Forum das das alles Leicht
verwirrend ist (=
ich möchte gerne statt eines ds 1820 Themeratursensor mein Digitek DT
4000ZC Multimeter mit rs232 Schnittstelle verwenden,
Jetzt gibt es hier im Forum viele User die ihre Brausoftware mit Profilab
erstellt haben
kann mir jemand seine Brauchsoftware die mit profilab erstellt ist
zuschicken
damit ich einen kleinen einblick gewinnen kann
ganz sehr begeistert wäre ich wenn mir sogar jemand seine Software an mein
Multimeter anpassen könnte,
zum steuern der Heizplatte verwende ich eine Stinknormale Relaiskarte für
den lpt port
schonmal danke im vorraus (= vielleicht wird mein traum ja wahr ... p-)
|
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 23.5.2010 um 13:01 |
|
|
Hallo Brixen,
wenn Du es schaffst, mit einem Programm die Temperatur-Messwerte in eine
Logfile zuschreiben (log.txt) mit dem Format XX.XX
und parallel meine Software startest, wird das funktionieren. Ist bereits
schonmal von einem Kollegen hier realisiert worden.
Wäre dies vielleicht was für Dich?
grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 1 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 23.5.2010 um 18:48 |
|
|
hallo Samba und Bier, ja das wäre eine Alternative,
ich habe jetzt die software von dir zum laufen bekommen
ich finde aber leider keine Logfiel die ich mir mal anschauen kann um zu
überlegen wie ich das anstelle
es gibt für mein messgerät eine software die die themeratur auf den pc
grafisch darstellt
die ist in virtual basic 5 geschrieben
PHP-Quelltextbereich einfügen: |
<?php
Public Function Einheit(Ind%()) As String If Ind%(10) And 2 Then E1$ = "K" 'Byte10, Bit2 If Ind%(10) And 4 Then E1$ = "n" 'Byte10, Bit3 If Ind%(10) And 8 Then E1$ = "æ" 'Byte10, Bit4 If Ind%(11) And 2 Then E1$ = "M" 'Byte11, Bit2 If Ind%(11) And 4 Then E1$ = "%" 'Byte11, Bit3 If Ind%(11) And 8 Then E1$ = "m" 'Byte11, Bit4 'If Ind%(12) And 2 Then E2$ = "Delta " 'Byte12, Bit2 wird beim DT-9062 nicht gebraucht,fuer Hold genommen If Ind%(12) And 4 Then E2$ = "Ohm " 'Byte12, Bit3 If Ind%(12) And 8 Then E2$ = "Farad " 'Byte12, Bit4 If Ind%(13) And 2 Then E2$ = "Hertz " 'Byte13, Bit2 If Ind%(13) And 4 Then E2$ = "Volt " 'Byte13, Bit3 If Ind%(13) And 8 Then E2$ = "Ampere" 'Byte13, Bit4 If Ind%(14) And 2 Then E2$ = "HFE " 'Byte14, Bit2 If Ind%(14) And 4 Then E2$ = "øC " 'Byte14, Bit3 Einheit$ = E1$ + E2$ 'Teilstrings zusammensetzen End Function Public Function Bereich(Ind%()) As String Bereich$ = " " 'wenn kein Bit gesetzt, 3 Leerzeichen If Ind%(1) And 4 Then Bereich$ = "DC " 'Byte1, Bit3 If Ind%(1) And 8 Then Bereich$ = "AC " 'Byte1, Bit4 End Function Public Function Info(Ind%()) As String If Ind%(1) And 1 Then Tmp$ = " RS232" 'Byte1, Bit1 If Ind%(1) And 2 Then Tmp$ = Tmp$ + " Auto" 'Byte1, Bit2 If Ind%(10) And 1 Then Tmp$ = Tmp$ + " Dio" 'Byte10, Bit1 If Ind%(11) And 1 Then Tmp$ = Tmp$ + " Ton" 'Byte11, Bit1 If Ind%(12) And 2 Then Tmp$ = Tmp$ + " Hold" 'Byte12, Bit1 Hold erscheint fuer Dreick bei Differenz Messung If Ind%(13) And 1 Then Tmp$ = Tmp$ + " Batt" 'Byte13, Bit1 Info$ = Tmp$ 'Alle Angaben zusammensetzen End Function Public Function Ziffer(Byte1%, Byte2%) As Integer 'Erzeugt aus 3 niederwertigen Bits vom ersten Byte und 4 niederwertigen 'vom zweiten Byte einen 7 - Bit Wert, der einer Ziffer zugeordnet wird DreiBit% = Byte1% Mod 8 ' obere 5 Bit loeschen VierBit% = Byte2% Mod 16 ' obere 4 Loeschen SiebenBit% = DreiBit% + VierBit% * 8 ' 7 Bit Wert erzeugen ' Sieben - Segment Anzeige ' Select Case SiebenBit% ' Bit0(1) Case 40: Ziffer = 1 ' XXX 1 XXX Case 93: Ziffer = 2 ' X X Case 121: Ziffer = 3 ' Bit1(2) 6 2 Bit3(8) Case 58: Ziffer = 4 ' X Bit4 X Case 115: Ziffer = 5 ' XXX 7 XXX Case 119: Ziffer = 6 ' X (16) X Case 41: Ziffer = 7 ' Bit2(4) 5 3 Bit5(32) Case 127: Ziffer = 8 ' X X Case 123: Ziffer = 9 ' XXX 4 XXX Case Else: Ziffer = 0 ' End Select ' Bit6(64) End Function Public Function Wert(Ind%()) As Single ' Erzeugt aus 4 Bytepaaren mit Hilfe der Function Ziffer 4 Ziffern ' und wertet Komma und Vorzeichenbits aus. Ergebnis ist eine Realzahl, die ' den Messwert enthaelt
'Erste Ziffer (Byte2, Bit 1-3;Byte3, Bit1-4 Zahl% = Zahl% + Ziffer(Ind%(2), Ind%(3)) * 1000 'Zweite Ziffer (Byte4, Bit1-3;Byte5, Bit1-4 Zahl% = Zahl% + Ziffer(Ind%(4), Ind%(5)) * 100 'Dritte Ziffer (Byte6, Bit1-3;Byte7, Bit1-4 Zahl% = Zahl% + Ziffer(Ind%(6), Ind%(7)) * 10 'Vierte Ziffer (Byte8,Bit1-3;Byte9,Bit1-4 Zahl% = Zahl% + Ziffer(Ind%(8), Ind%(9)) 'Vorzeichen (Byte2,Bit4) If Ind%(2) And 8 Then Vorz% = -1 Else Vorz% = 1 'Kommastelle: Div% = 1 'wenn kein Komma,sonst.... If Ind%(8) And 8 Then Div% = 10 'Komma zwischen Ziffer3+4(Byte8, Bit4) If Ind%(6) And 8 Then Div% = 100 'Komma zwischen Ziffer2+3(Byte6, Bit4) If Ind%(4) And 8 Then Div% = 1000 'Komma zwischen Ziffer1+2(Byte4, Bit4) Wert = Zahl% / Div% * Vorz% ' Messwert errechnen End Function
Private Sub Command1_Click()
End 'Programm Ende nur bei eingeschaltetem Geraet und eingeschalteter Rs232 moeglich,sonst nur Taste Strg und Entf End Sub
Public Sub Form_Load() 'Programm Visual Basic 5.0 geschrieben ' Das Programm holt Messwerte vom Digitec DT-9062 ' man kann dann die Messwerte weiter verarbeiten und 'z.B mit dem BMC Messystem meM-PIO(USB) Ausgaenge abhaengig vom 'Messwert schalten. Das DT-9062 wird sozusagen als 'Analogeingabegeraet benutzt. 'Bei Fragen E-Mail: Jochen.Pagel@t-online.de End Sub
Private Sub Label4_Click() 'Anzeige Einheiten End Sub
Public Sub Text1_GotFocus() MSComm1.CommPort = 1 'welcher Com Port hier 1 oder 2 eingeben MSComm1.Settings = "2400,N,8,1" 'uebertragungs Einstellung MSComm1.InputLen = 0 ' Com Buffer auf 0 setzen MSComm1.PortOpen = True 'Com Port oeffnen Tru Wahr False Unwahr Dim Ind%(1 To 14), im$(1) 'Array fuer 14Byte anlegen und im$(1) auf 1 Array setzen Do 'Auessere Schleife oeffnen Test% = 0 ' Test% auf 0 behaelt evtl. wert Do 'Innere Schleife oeffnen im$(1) = MSComm1.Input ' Von Com Port einlesen MSComm1.InputLen = 1 'Nur ein wert einlesen If im$(1) = "" Then GoTo 45 'wenn nichts von Com Port, kommt wieder zurück Ind%(1) = AscB(im$(1)) 'Buchstaben in Zahl umsetzen Test% = Ind%(1) 16 'hoeherwertiges Nibble ausklammern 45: 'wenn nichts vom Com Port kommt hier springen, weil AscB(im$(1)) bei 0 wert Programmabbruch macht Loop Until Test% = 1 ' wahr, wenn wert von Com Port empfangen For I% = 2 To 14 'Byte 2-14 holen 46: 'zurueck Sprungmarke damit wirklich 2-14Byte eingelesen wird MSComm1.InputLen = 1 'nur 1Byte holen im$(1) = MSComm1.Input 'Buchstaben von Com Port holen If im$(1) = "" Then GoTo 46 'falls nichts kommt wieder zurück Ind%(I%) = Asc(im$(1)) 'Buchstaben in Zahl umsetzen Next 'naechsten wert einlesen
Label1.Caption = Bereich(Ind%()) ' Bereich Anzeigen: Sprung zur function Bereich Label2.Caption = Wert(Ind%()) ' Messwert Anzeigen:Sprung zu funktion Wert Label3.Caption = Einheit(Ind%()) ' Einheiten Anzeigen:Sprung zu function Einheit Label4.Caption = Info(Ind%()) ' Info Anzeigen: sprung zur funktion Info
Loop Until DoEvents ' solange ausfuehren bis Prg.beendet wird End Sub
?>
|
leider hab ich kein plan wie ich das programm umschreibe, sodas es mir die
messwerte in eine txtdatei speichert ...
[Editiert am 23.5.2010 um 21:36 von Brixen]
|
|
Antwort 2 |
|
Junior Member Beiträge: 28 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 24.5.2010 um 08:52 |
|
|
Hinter der Zeile "Label4.Caption..." würde ich die Variable Wert(Ind%()) in
die Datei schreiben lassen. Leider bin ich mit Basic nicht mehr soo
vertraut aber es sollte nach dem selben Schema wie bei PHP bzw C++
laufen.
PHP Beispiel: Quelltextbereich einfügen: | $Dateihandler = fopen('temperaturlog.txt', 'w');
fwrite($Dateihandler, Wert(Ind%()));
fwrite($Dateihandler, '\n'); // CR/LF einfügen.
fclose($Dateihandler); |
So einen Vierzeiler gibt es in Basic auch. Weiß nur nicht wo man das
nachlesen kann.
-
[Editiert am 24.5.2010 um 08:55 von TigerClaw]
|
|
Antwort 3 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 24.5.2010 um 12:30 |
|
|
Hi Brixen,
die Logfile wird von meinem Programm bei programmstart gelöscht.
die Temperaturwerte stehen in dieser Datei gemäss folgendem Beispiel
drin:
35.23
35.33
35.40
35.45
etc.
Gruss Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 4 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 24.5.2010 um 19:18 |
|
|
Ich bin leider mit Virtual Basic auch nicht vertraut ....
kennt jemand im Internet ne seite wo ich die Befehle nachenlesen kann
oder kann mir den php code jemand in vb übersetzten ?
hier mal die vb Projektdatei ....
http://www.franksteinberg.de/ZIPS/DT_VB5.ZIP
leider besitz ich nur vb6 und 2008
und die projektdatei ist für vb5, wenn ich die vb5 projektdatei in vb6
einlese bekomm ich schon beim testen ohne veränderungen am script ne
fehlermeldung
[Editiert am 24.5.2010 um 19:24 von Brixen]
____________________ make beer - not war http://www.youtube.com/watch?v=BaTqrdZ_cgQ
|
|
Antwort 5 |
|
Junior Member Beiträge: 28 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 25.5.2010 um 09:30 |
|
|
|
|
Antwort 6 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 25.5.2010 um 15:52 |
|
|
ach ich bekomms einfach nicht hin dabei hab ich die Hardware schon fertig
)=
hab mir das mit der software etwas einfacher vorgestellt ____________________ make beer - not war http://www.youtube.com/watch?v=BaTqrdZ_cgQ
|
|
Antwort 7 |
|
Junior Member Beiträge: 28 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 25.5.2010 um 18:16 |
|
|
|
|
Antwort 8 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 25.5.2010 um 19:03 |
|
|
Orr ich bekomms einfach net gebacken (=; ich weiß das issn scheiß anliegen
.... aber kann mir vielleicht mal einer so ein programm zimmern, vb ist
wohl nichts was man mal in 10 tagen lernen kann (=
ich weis ich könnt auch einfach so nen 1 wire sensor nehmen, doch dieses
messgerät ist vielleicht ne gute preiswerte Alternative zum teuren
wasserdichten ds1820 !? ____________________ make beer - not war http://www.youtube.com/watch?v=BaTqrdZ_cgQ
|
|
Antwort 9 |
|
Senior Member Beiträge: 248 Registriert: 3.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 26.5.2010 um 06:37 |
|
|
Hallo,
Habe das Thema jetzt erst entdeckt. Mal blöd gefragt: verwendet noch jemand
ausser mir Profilab?
Prinzipiell kannst du mit Profilab arbeiten. Lt. der Hardwareliste http://www.abacom-online.de/html/hardware_de.pdf wird das
DT4000 unterstützt, d.h., es gibt einen fertigen "Baustein" dafür, welcher
die Zahlenwerte zur weiteren Verarbeitung direkt bereitstellt. Du musst dir
nur entsprechend die Auswertung dahinterhäkeln (was aber ohne rudimentäre
Grundlagen der Analog- u. Digitaltechnik schwer möglich ist, da ja in
Profilab alles grafisch als Schaltungsbaustein simuliert wird).
Gruß
Thomas
[Editiert am 26.5.2010 um 06:38 von Schnulli]
|
|
Antwort 10 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 27.5.2010 um 17:46 |
|
|
|
|
Antwort 11 |
|
Senior Member Beiträge: 168 Registriert: 22.5.2010 Status: OfflineGeschlecht:
|
|
erstellt am: 7.6.2010 um 22:23 |
|
|
Ich bin schon etwas weiter,
PHP-Quelltextbereich einfügen: |
<?php
Private Sub Form_Load() Me.WindowState = vbMinimized Dim F As Integer F = FreeFile Open "Log.txt" For Append As #F Print #F, "33.33" Close #F End Sub
Private Sub Timer1_Timer() End End Sub
?>
|
jetzt muss ich nurnoch die gemessen daten in die log schreiben statt 33.33
(=
mal sehn ob ich das binbekomme leider spinnt mein messgerät unter win 2k ____________________ make beer - not war http://www.youtube.com/watch?v=BaTqrdZ_cgQ
|
|
Antwort 12 |
|