Senior Member Beiträge: 148 Registriert: 22.6.2003 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 05:32 |
|
|
Hallo zusammen!
Bei mir läuft das ähnllich, ein Timer ruft die Funktion auf, die
dieTemperatur von der SPS einliest, schreibt immer nach Ablauf einer Minute
den Wert in eine Auflistung und gibt den wert in einem entsprechendem
Diagram (Form) aus, so daß sich eine Temperaturkurve (Istwert) zum Sollwert
ergibt. Vieleicht sollte ich noch erwähnen, daß ich eine SPS (S7-300)
verwende.
Rene
|
|
Antwort 275 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 08:47 |
|
|
Hallo,
@Pinzi
Das ist wirklich interessant. Dann sollten wir das auch so machen und es
wird funktionieren.
Um uns viel Arbeit zu ersparen: Könntest Du mir die relevanten
Code-Sequenzen (Screenshots reichen) per pm zukommenlassen oder evtl
posten?
@Stillewassersindtief
Ja, S7-CPU geht natürlich immer, da gibts auch bereits Modelle die direkt
PT100-Eingänge haben glaub ich. Leider ist diese Variante sehr teuer, es
sei denn man kommt günstig dran.
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 276 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 13:39 |
|
|
So,
@Berliner
habe ein wenig gegoogelt. das mit dem Shell-Zugriff ist easy. Wie kann ich
aber dann ohne log-Datei auf den Temperaturwert zugreifen? Oder geht es
trotzdem nur über eine Log-Datei?
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 277 |
|
Junior Member Beiträge: 45 Registriert: 12.3.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 14:11 |
|
|
Also in C++ sieht das bei mir so aus:
Hauptprogramm:
Quelltextbereich einfügen: | #include <iostream>
#include <fstream>
using namespace std;
int main()
{
system("templog.cmd");
ifstream dat_ein("C:\log.txt", ios_base::in);
double zahl;
while(!dat_ein.eof())
dat_ein >>zahl;
//jetzt ist die aktuelle Temp. in "zahl" gespeichert
return 0;
} |
Die digitemp.cfg sieht so aus:
Quelltextbereich einfügen: | TTY 2
READ_TIME 1000
LOG_TYPE 2
LOG_FORMAT "%H:%M:%S %.2C"
SENSORS 1
ROM 0 16 183 59 25 1 8 0 251 |
Und die templog.cmd so:
Quelltextbereich einfügen: | digitemp -s1 -lc:\log.txt -a |
[Editiert am 10.3.2007 um 14:16 von Pinzi]
|
|
Antwort 278 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 14:24 |
|
|
Hi Pinzi,
vielen Dank. Dies wird schonmal helfen.
Mit dem cmd aktualisierst Du die log.txt und danach liest Du daraus die
Temperatur aus. Right?
hast Du mal noch einen Ausschnitt aus der Log.txt?
(ich hab ja keine Hardware hier).
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 279 |
|
Junior Member Beiträge: 45 Registriert: 12.3.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 14:36 |
|
|
Quelltextbereich einfügen: | 0 18.81
0 18.69
0 18.56
0 18.56
0 18.56
0 18.56
0 18.63
0 18.63
0 18.63
0 18.56
0 18.56
0 18.56 |
So sieht das bei mir in etwa aus, die 0 am Anfang kommt einfach daher, dass
Digitemp die Messung nummerieren will und da Digitemp jedesmal neu
aufgerufen wird, schreibt es jedes Mal eine 0 :/
[Editiert am 10.3.2007 um 14:37 von Pinzi]
|
|
Antwort 280 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 14:57 |
|
|
Hi Pinzi,
Wird diese Logfile ständig anwachsen? Muss man sie von Zeit zu Zeit
löschen?
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 281 |
|
Senior Member Beiträge: 293 Registriert: 3.10.2005 Status: Offline
|
|
erstellt am: 10.3.2007 um 15:37 |
|
|
Hi Thomas,
bau doch das mal in dein progi ein.
Die Parameter von Digitemp kannst du so einstellen das nur die Temperatur
in der Logdatei
steht.
Dann wären alle Probleme gelöst.
leo1
|
|
Antwort 282 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 10.3.2007 um 15:47 |
|
|
Hi Leo1,
prinzipiell ist das ne gute Idee, aber:
Ohne Hardware ist es mir nicht mal gelungen, die Config-datei erstellen zu
lassen.
Ich kann etwas vorbereiten, was sicher nicht auf Anhieb funzen wird, aber
ich werds versuchen.
Jemand anders mit Hardware hätte es da sicher etwas leichter, aber ich
versuchs natürlich mal.
Man sollte vieleicht nicht vergessen: Was ich hier tue, tue ich nicht für
mich selbst
Mit Skype z.B. könnte man viel besser korrespondieren. Übers Forum zieht
sich das alles
ewig hin.
Grüsse Thomas
[Editiert am 10.3.2007 um 15:52 von Samba und Bier]
____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 283 |
|
Senior Member Beiträge: 293 Registriert: 3.10.2005 Status: Offline
|
|
erstellt am: 10.3.2007 um 17:44 |
|
|
Hi Brauer,
Die Datenübernahme von <digitemp in vb habe ich hinbekommen.
Aber wie startet man Digitemp aus VB
leo1
|
|
Antwort 284 |
|
Moderator Beiträge: 4024 Registriert: 7.4.2006 Status: Offline
|
|
erstellt am: 10.3.2007 um 19:11 |
|
|
Thomas, ich habe gerade entsetzt feststellen müssen, dass VB wirklich keine
Funktion hat, um den Output des per Shell abgesetzten Befehls einzulesen.
Eventuell ließe sich was über die Windows-API machen, aber das führt hier
vielleicht zu weit.
Die simpelste Lösung scheint wirklich zu sein, Digitemp per Shell zu
starten, in eine Log-Datei schreiben zu lassen, diese dann einzulesen und
anschließend gleich zu löschen.
____________________ Gruß vom Berliner
|
|
Antwort 285 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 11.3.2007 um 12:00 |
|
|
Hallo,
ich mache Euch einen Vorschlag:
Irgendjemand sollte mir per email solch eine log.txt mit
Temperatureinträgen schicken und den zugehörigen Befehl um einen
Temperatureintrag hinzufügen zu lassen. Ich bau das dann in mein Programm
ein und Leo1 testet es.
Meine email: Thomas.Karpen@web.de
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 286 |
|
Senior Member Beiträge: 293 Registriert: 3.10.2005 Status: Offline
|
|
erstellt am: 11.3.2007 um 13:58 |
|
|
Hi Thomas,
Es ist mir mittler weile gelungen Digitemp aus VB zustarten eine Logdatei
zuschreiben und
diese in VB einzulesen.ich bastele noch ein bisschen.Es wird uns schon
gelingen.
Sobald sie richtig läuft schicke ich sie dir.
leo1
|
|
Antwort 287 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 11.3.2007 um 14:04 |
|
|
Hi Leo1,
na das klingt ja schonmal sehr gut.
ich habe mein Programm auch weitgehend vorbereitet.
wenn Du mir die Sachen schickst, hast Du kurz darauf eine fertige Version
zum Testen.
Damit die Log-Datei nicht so voll wird und das Programm nicht ständig auf
der Festplatte rödelt, , werde ich die Temperatur nur alle 5 Sekunden
auslesen.
D.h. der Temperaturwert wird alle 5 Sekunden aktualisiert.
Ich denke beim Bierbrau-Prozess mit trägem Temperaturverhalten reicht das
auch.
Grüsse Thomas
[Editiert am 11.3.2007 um 14:06 von Samba und Bier]
____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 288 |
|
Posting Freak Beiträge: 2947 Registriert: 15.11.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 11.3.2007 um 17:31 |
|
|
@ Thomas: Ich habe festgestellt, daß der Sensor je nach Temperatur,
unterschiedlich lange bracuht, um ausgelesen zu werden. Daher sollten die
Digitemp-Parameter "d" und "r" irgendwo vom Benutzer einstellbar sein. Sehr
wahrscheinlich ist es auch von der Kabellänge abhängig. Ich arbeite z.B.
bei rund 37° (Hefezucht) mit Werten für r > 2000 und d > 5 erst
fehlerfrei.
@Leo1: Wie hastDu denn Digitemp in VB eingebunden? Das würde mich jetzt
auch mal interessieren. Kannst Du mir den Code dazu schicken?
Alex
[Editiert am 11.3.2007 um 17:31 von alexbrand]
|
|
Antwort 289 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 12.3.2007 um 19:49 |
|
|
Hi Alex,
der Sensor darf ruhig etwas länger brauchen. Bei dem trägen
Temperaturverhalten im Prozess möchte ich ihn sowieso nur alle 5 Sekunden
auslesen.
Leider scheint das Thema mit der Digitemp-Einbindung eingeschlafen.
Es ist weder eine Log-File noch VB-Code-Sequenz von Leo1 bei mir
eingegangen. Ob Leo1 noch lebt?
Naja wie auch immer. Habe meine Software für die schnelle Integration der
Digitemp-Lösung vorbereitet. Sollte sich da noch etwas tun, helfe ich gerne
wieder.
(Mit der reellen log.txt könnte ich schon ein wenig was anfangen.
Hier nochmals meine email-Adresse: Thomas.Karpen@web.de, falls jemand mir
die noch senden möchten sollten würde).
Werde mich dann nun mal an die 1-wire-Lösung begeben. Dafür habe ich
wenigstens die Hardware hier vor Ort.
Grüsse Thomas
[Editiert am 12.3.2007 um 19:55 von Samba und Bier]
____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 290 |
|
Posting Freak Beiträge: 2947 Registriert: 15.11.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 12.3.2007 um 21:52 |
|
|
Thomas, Du hast Post!
Alex
|
|
Antwort 291 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 12.3.2007 um 23:23 |
|
|
Hallo Alex,
vielen vielen Dank schonmal für die LogFile.
Da wir diese Logfile nur als Schnittstelle zweckentfremden, brauche ich nur
Einträge mit der Temperatur in °C (schön wären die Einträge
zeilenweise).
Dies wäre sehr schön, und den zugehörigen Aufruf könnte ich brauchen, damit
ich diesen mit der Shell-Anweisung realisieren kann.
Aber wenn die Logfile schonmal hübsch zusammengestellt ist, kann ich diese
schonmal auslesen und mit der Temperatur arbeiten, das schonmal als
nächsten Schritt.
Ich möchte ja niemanden dazu überreden, aber:
Alex, hast Du Skype? Falls ja, vielleicht könntest Du mir Deinen Skypenamen
per pm oder mail zukommen lassen?
Grüsse Thomas
[Editiert am 12.3.2007 um 23:24 von Samba und Bier]
____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 292 |
|
Senior Member Beiträge: 289 Registriert: 17.2.2007 Status: OfflineGeschlecht:
|
|
erstellt am: 12.3.2007 um 23:45 |
|
|
Hallo,
ich lese schon eine Weile mit und habe leider auch keine Patentlösung
parat, um mit Hilfe eines PC unter Windows eine Lösung zu präsentieren, die
einen oder mehrere 1-wire-Temperatur-Sensoren plus diverse binäre Ausgänge
ohne jede zusätzliche Hardware für einen Brauprozeß zum Laufen zu bringen.
Seit vielen Jahren begeisterter Visual-Basis-Anwender (auch für die
erfolgreiche Automatisierung der eigenen Heizung) habe ich lernen müssen,
dass VB weder für Echtzeit-Anwendungen besonders tauglich ist noch
hardwarenahe Applikationen besonders gut unterstützt. Auch ich hatte bis
vor kurzem keine Ahnung von der 1-Wire-Technik, habe dann aber mit einer
vorhandenen C-Control von Conrad und dem DS18B20 experimentiert. Das hat
unter Verwendung einer Bridge I2C/1-Wire auf Anhieb perfekt funktioniert,
so dass selbst eine Gradientenregelung mit 1°C/Minute möglich ist .
Grundsätzlich: Ich wünsche mir, dass Ihr eine reine PC-Lösung findet. Dazu
kann ich beitragen, dass der DS18B20-Sensor im 12 bit-Mode mindestens 750
ms für die Wandlung benötigt und dass in dieser Zeit kein Traffic auf dem
Bus stattfinden darf.
Aber: Wegen der vorgenannten Probleme habe ich für mein Projekt VQB =
ViertelQuadratmeterBrauerei derzeit eine autarke C-Control-Lösung (also
ohne PC) entwickelt. Das beschränkt (in der 1. Version) zwar die Zahl der
Rezepte auf 1, funktioniert aber auch mit mehreren Temperatursensoren, den
Ausgängen für Heizung, Umwälzpumpe und „Braumeister-Ruf“ plus der
Ansteuerung eines Roboterarmes für die automatische Hopfenzugabe.
Ganz egal, ob man nun eine autarke Lösung favorisiert oder das Ganze nur
als Interface für VB ansieht, es kostet einige Euros zusätzlich und
erfordert die Beherrschung der C-Control. Es macht aber unabhängig von all
den Problemen, die ich bisher lesen konnte – und es funktioniert!
mfg Gerd
|
|
Antwort 293 |
|
Senior Member Beiträge: 293 Registriert: 3.10.2005 Status: Offline
|
|
erstellt am: 13.3.2007 um 06:08 |
|
|
HI Thomas,
Ich lebe noch.Aber in der Woche muss ich arbeiten und bei dem schönen
Wetter auch mal in den GARTEN.Ich werde mal sehen wegen des Headsets.Am
Wochenende werde ich weiter basteln.
leo1
|
|
Antwort 294 |
|
Posting Freak Beiträge: 2947 Registriert: 15.11.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 13.3.2007 um 10:38 |
|
|
Ich noch mal..
Thomas, das Logfile versuche ich gerade vom Layout her anzupassen, aber
Digitemp hat da wohl ein paar eigene Vorstellungen, was die Parameter
angeht... vor allem der LF+CR macht noch Probleme. Meine Hauptfrage ist
nun, welche Daten sollen alle gelogged werden?
Im Moment bestehen bei mir dieEintrage aus der Uhrzeit (hh:mm:ss) und der
Temperatur, keine weiteren Einträge. Es besteht aber auch die Möglichkeit,
die Uhrzeit durch die "verstrichene Zeit seit Programmstart in Sekunden" zu
ersetzen:
0 32.72
5 32.96
...
Aber das dürfte Probleme geben, wenn Digitemp jedes mal neu aufgerufen
wird.
eine weitere Möglichkeit wäre, nurdie Temp zu loggen, ohne zeitangabe. aber
dann muß deinem programm bekannt sein, in welchen zeitabständen die temp
geschrieben wird. ich denke, das bringt über die dauer eines
(maisch)-prozesses eher große ungenauigkeiten.
ich bin heute auf nachtschicht, da habe ich wahrscheinlich ein bißchen
zeit, mich damit auseinander zu setzen... schick mir mal deine "wünsche".
am besten per email.
alex
PS: Über den Aufruf mit Parametern mach Dir mal nicht so viele Gedanken.
Das ist immer das Gleiche ("digitemp.exe -a -llogdatei.txt"). Den Rest
erledigt ein einmalig zu schreibendes config-file
[Editiert am 13.3.2007 um 10:41 von alexbrand]
|
|
Antwort 295 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 13.3.2007 um 12:32 |
|
|
Hallo Leute,
zunächst zu Leo1:
Ja klar, dafür hast Du natürlich mein vollstes Verständnis
Ein Headset musst Du ja nicht unbedingt haben, Chat und Dateiversand
reichen ja auch.
@Gerd
Ich teile Deine Ansichten voll und ganz. Auch ich habe mich ja für eine
Lösung entschieden, die problemlos funktioniert, welche aber dann auch
etwas teurer ist.
@Alex
Nun es interessiert nur die Temperatur, ohne Uhrzeit. wenn das mit dem CR
nicht hinzukriegen ist, schick mir ne logfile ohne CR.
Wichtig ist, dass ich an den zuletzt eingetragenen Temperaturwert
herankommen kann. Dies kann ich ja dann mal versuchen.
Was die Ungenauigkeiten im Brauprozess betrifft: Dieses Argument kann ich
nicht ganz nachvollziehen, vielleicht verstehe ich das aber auch falsch,
daher eine kurze Erklärung:
Auch wenn das Auslesen des Temperaturwertes mit Digitemp etwas dauern
sollte:
Jede Brau-Konstantphase hat bei mir eine Startzeit und eine Endzeit, die
aus der Startzeit und der Phasendauer (Parameter) berechnet wird. Beim
Vergleich Endzeit/aktuelle Zeit nehme ich die PC-Zeit, die ja immer stimmt.
Ich brauche keine Zeit aus der Log-File. Ich möchte die Log-File nur als
Schnittstelle für die Ermittlung der Ist-Temperatur verwenden. Wenn diese
etwas nachhängt macht das nix (beim trägen Temperaturverghalten des
Sudes).
war das ungefähr so gemeint?
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 296 |
|
Posting Freak Beiträge: 2947 Registriert: 15.11.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 13.3.2007 um 16:38 |
|
|
Hallo Thomas!
Ja, so habe ich es gemeint. Du hast es aber besser formuliert. Es entsteht
übrigens gerade eine Logdatei, die schicke ich Dir nachher mal.
Alex
|
|
Antwort 297 |
|
Senior Member Beiträge: 293 Registriert: 3.10.2005 Status: Offline
|
|
erstellt am: 13.3.2007 um 18:25 |
|
|
HI Brauer,
Digitemp rufr ich aus VB mit Shell auf.Das geht auch alles gut.
Bloß es wird jedes mal ein Dosfenster aufgemacht.Die versuche es aus VB zu
schliessen ist mir
noch nicht gelungen.
leo1
|
|
Antwort 298 |
|
Posting Freak Beiträge: 1736 Registriert: 19.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 14.3.2007 um 01:04 |
|
|
Hallo Alex,
mir ist es gelungen, bei jedem Aufruf (alle 5 Sekunden) den letzten
Temperatur-Eintrag aus Deiner Log-File herauszulesen.
Allerdings ist mir aufgefallen, dass Deine Log-File mit 2 CR abgeschlossen
wird.
Ist das immer so? Vielleicht hasst Du die auch versehentlich mit dem Editor
reingemacht?
Dies muss ich noch wissen. Sonst sieht das sehr gut aus.
Grüsse Thomas ____________________ Link mit Fotos unserer Klein-Brauanlagen mit Automatisierung sind auf
folgender website zu finden:
http://cervejakarpens.oyla.de
|
|
Antwort 299 |
|