Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Probleme mit Aquariensteuerung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sunny0815



Anmeldungsdatum: 24.11.2004
Beiträge: 28
Wohnort: Ludwigshafen

BeitragVerfasst am: 24.11.2004, 23:56    Titel: Probleme mit Aquariensteuerung Antworten mit Zitat

Hallo Leute,

ich bin ziemlich neu hier und brauche einen Rat von Euch. Wer kann mir helfen?

Ich steuere mit einem 330 MHz Rechner und einem QBasic Programm ein Seewasseraquarium, insgesamt 16 Ausgänge und 12 Eingänge- läuft fehlerfrei.
Ich habe vor etwa einem Jahr mit dem Programmieren angefangen (Programmiererfahrungen hatte ich noch aus den C 64ér Zeiten).
Aber nun zu meinem "Problem": das Programm führt um Mitternacht einen Neustart durch so dass alle Variablen gelöscht werde- muss so sein, war ein Fehler am Anfang der Programmierung und der Aufwand das zu ändern wäre ein neues Programm und damit zu gross. Ich muss aber dem Programm sagen wieviel Tage vergangen sind, da alle 7 Tage Spurenelement nachdosiert werden müssen. Ich möchte aber die Daten (Zähler) nicht auf der Festplatte zwischenspeichern sondern will Peek und Poke verwenden, in welchem Bereich kann ich peeken und pokken?

Vielen Dank
Michael
P.S. bin fast wahnsinnig geworden alles möglich ohne Erfolg ausprobiert
Ihr seit meine letzte Rettung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FatalError



Anmeldungsdatum: 22.11.2004
Beiträge: 21
Wohnort: Berga/Elster

BeitragVerfasst am: 25.11.2004, 00:49    Titel: Antworten mit Zitat

Erstmal ist es wichtig zu wissen, ob du nur das Programm, oder den ganzen Rechner neustartest?
Schätze mal es beschränkt sich nur auf das Programm...
Ich würde den Datenausgang vom LPT benutzen...

[EDIT] Quark, da hängt bestimmt n Teil der Steuerung dran, oder?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 25.11.2004, 01:25    Titel: Antworten mit Zitat

Hallo

Setze doch vor dem ersten Start einmal das Datum mit DATE$ zurück auf 1.Januar 1970 oder so. Die Uhr und damit das Datum laufen ja unabhängig vom Programm weiter und können als Referenz benutzt werden. Am 8. Januar ist es dann wieder Zeit für Spurenelemente.

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
sunny0815



Anmeldungsdatum: 24.11.2004
Beiträge: 28
Wohnort: Ludwigshafen

BeitragVerfasst am: 25.11.2004, 12:03    Titel: Antworten mit Zitat

Hallo Leute,

danke erstmal für diese Tipps.

klar natürlich wird nur das Programm neu gestartet
LPT : habe 3 Karten am Rechner für Ausgänge und Eingänge mehr kann QB nicht verwalten.
date$ : diesen Befehl kenne ich nicht. Ich darf das Datum aber nicht verändern, da um Mitternacht alle Daten und Messwerte des Tages als Datei abgespeichert werden, der Dateiname ist das Datum, um später zu wissen was wann gemessen wurde.

Guß

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 25.11.2004, 13:09    Titel: Antworten mit Zitat

Hallo

Um dein Problem mal einzukreisen: geht es darum, um Mitternacht alle Variablen nach dem Speichern zu löschen ausser den vergangenen Tagen ?

Was ich nicht ganz verstehe - du legst die Messwerte ja wohl auch auf der Platte ab. Warum dann nicht auch die Laufzeit ? Dann könntest du das Startdatum anschliessend wieder einlesen.

Wenn du aber unbedingt die Festplatte umgehen willst, vielleicht doch die Methode mit dem Datum. Mit

DATE$ = "MM-TT-JJJJ"

kannst du das Datum setze, und mit

datum$ = DATE$

abfragen. Beachte dabei die englische Schreibweise - der Monat wird zuerst angegeben. Also z.B.

DATE$ = "09-11-2001"

Also ich stelle mir das so vor: Du schreibst in die Messwert-Speicherdatei das wirkliche Startdatum und setzt das Datum dann mit DATE$ zurück. Das wird nur einmal ganz am Anfang gemacht. So kannst du deinen Messwerten eben statt dess echte Datums nur Tag 1, Tag 2 etc. zuordnen. Das wirkliche Datum hast du aber am anfang gespeichert. So kannst du's ja ausrechnen. Wenn es über einen Monat Laufen soll, muss noch eine kleine Tagesberechnung eingebaut werden, damit der 1. Februar eben als Tag 32 gezählt wird. Mit diesem Tageszähler kannst du dann z.B. mit

IF tag MOD 7 = 0 THEN GOSUB gibspurenelemente

oder so arbeiten. Die Messwerte um Mitternacht mit APPEND an die entsprechende Datei anhängen.

Da fällt mir gerade noch was ein. Kannst du nicht, wenn du die Messwertdatei sowieso öffnest, deren Länge mit LOF ermitteln, und daraus die bereits vergangenen Tage anhand der schon geschriebenen Messwerte errechnen ? Aber da müsstest du ja wieder nach dem Neustart auf die Platte zugreifen, und das willst du ja partout nicht...

Zitat:

LPT : habe 3 Karten am Rechner für Ausgänge und Eingänge mehr kann QB nicht verwalten.


Wie meinst du das ? Sebastian - der Rekordposter dieses Forums - hat sich z.B. nach einem Plan von mit eine 24-Kanal Relaiskarte für den COM-Port gebaut, die gut zu funktionieren scheint. Das Prinzip nach dem diese arbeitet, kann auf fast beliebig viel Ein- und Ausgänge erweitert werden. Wie gesagt - für einen COM-Anschluss. Den Plan gibt es seit neustem (ich fühle mich ja so geehrt) ) in Form eines kleinen Tutorials von mir in der Rubrik Tutorials-> Steuern und Regeln mit dem PC -> COM-Port.ZIP auf www.qbasic.de. Die ganze Schaltung kostet ohne Relais nur ein paar Euro.

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 25.11.2004, 15:07    Titel: Antworten mit Zitat

Und nebenbei bemerkt: Eine wahnsinns Idee ist das, mit QBasic ein Aquarium zu befüttern grinsen
Coole Sache!
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
sunny0815



Anmeldungsdatum: 24.11.2004
Beiträge: 28
Wohnort: Ludwigshafen

BeitragVerfasst am: 25.11.2004, 16:55    Titel: Antworten mit Zitat

Hallo zusammen,

das mit dem Datum auslesen ist die Lösung, werde ich machen.
Zur Info:
alle Variablen werden um24:00 Uhr gelöscht.
LPT1 hier habe ich 8 Ausgänge die ich dirkt über out(&hxxx),y ansteuern kann. Gleichzeitig kann ich Schalter gegen Masse = ein einlesen, ist vorgeseh um Daten vom Drucker einzulesen wie z.B. Papierende. Habe alles über Optokoppler getrennt.

Der PC macht alles außer füttern (meerwasser werden mit Frostfutter gefüttet.
Es gibt folgende Schaltmöglichkeiten im Prg: - kleine Übersicht

Heizen > 25°C
Kühlen > 28°C

Licht 1 ein 12:00 Uhr
Licht 2 ein 16:00 Uhr
HQI ein 18:00 Uhr
alles aus 24:00

Niveau im Aquarium messen und ggf nachfüllen.
Niveau Vorratsbehälter kontrollieren wenn leer nicht nachfüllen sondern Alarm auslösen
Eiweißabschäumer kontrollieren: Wenn Vorratsbehälter für Abschäumer voll, Abschäumer inkl. Luftpumpe Ausschalten Alarm auslösen
Redoxpotential messen, ggf Wasserstoffperoxid nachdosieren
pH kontrollieren ggf Bicarbonat nachdosíeren
Überlauf im Aquarium konrollieren, wenn Wasserrücklauf zum Filter schlecht (Rohr verschmutzt) Flterpumpe asuschalten Alarm auslösen. 4 Stömungspumpen steuern Intervall/Strömungsrichtung.
Temperatur der Abdeckung Prüfen und Ablüfterdrehzahl anpassen
usw.

Vielen Dank für Eure Hilfen, hat mir sehr geholfen

Gruß

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 25.11.2004, 21:28    Titel: Antworten mit Zitat

Aha interessante Idee... ;-) Ich nehme an, der PC, der das Aquarium steuert, hängt hoffentlich an einer USV (unterbrechungsfreie Stromversorgung) ähnlich wie meine Server. Für so eine Anwendung würde ich dem Prozessrechner zusätzlich noch ein RAID mit Promise-Festplattencontroller spendieren und eine Datenbank mit Transaktionen verwenden (von der Natur der Anwendung her ist dies bereits eine sog. OLTP-Datenbank), so dass die Anwendung jederzeit gestoppt und gestartet werden kann und sie aber weiss, in welchem Zustand sie das letzte Mal war. Und ebenfalls wichtig: Ich würde noch so eine Applikation ein Protokoll (einfache .TXT-Datei, welche man mit OPEN .. FOR APPEND öffnet, reicht bereits aus) schreiben lassen. Nur so kann man später auch einmal nachvollziehen, warum z.B. die Fische zu kalt hatten, Wasser schmutzig usw., wenn etwas einmal nicht so läuft, wie es sollte.

Zum Thema Datum und Uhrzeit: So etwas wie die Systemzeit ändern sollte man niemals aus Anwendungen heraus machen, auf einem normalen Windows-Benutzerkonto ohne Administratorenrechte ist das Ändern der Systemzeit ohnehin nicht möglich. Besserer Tipp von mir: Schau Dir am besten einmal

http://www.dreael.ch/Deutsch/Download/DatumBerechnung.html

an. Damit kannst Du ein Datum in eine absolute Anzahl Tage umwandeln und danach das MOD 7 anwenden und so z.B. Montag-Samstag etwas anderes als am Sonntag machen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 25.11.2004, 22:45    Titel: Antworten mit Zitat

Hallo !

Zitat:

Zum Thema Datum und Uhrzeit: So etwas wie die Systemzeit ändern sollte man niemals aus Anwendungen heraus machen, auf einem normalen Windows-Benutzerkonto ohne Administratorenrechte ist das Ändern der Systemzeit ohnehin nicht möglich.


Wieso denn nicht ? Ich schätze mal, der Rechner macht sowieso nichts anderes, als das Aquarium zu überwachen. Ausserdem wird unter Windows meiner Erfahrung nach bei der Rückkehr die Systemzeit wieder hergestellt, wenn sie in der DOS-Box mit QB geändert wurde.

Was die Sicherheit (USV usw.) angeht, wäre wohl ein Microcontroler am besten für die Steuerung geieignet . Mit eingebautem oder externem EEPROM zur Protokollspeicherung.

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
sunny0815



Anmeldungsdatum: 24.11.2004
Beiträge: 28
Wohnort: Ludwigshafen

BeitragVerfasst am: 26.11.2004, 11:52    Titel: Antworten mit Zitat

Hallo

noch kurz zum Abschluß:

der Rechner hängt am normalen Stromnetz, mit externer Kontrolle ob sich der Rechner "aufgehängt" hat, kann manchmal vorkommen wenn es Problem mit z.B. dem pH-Meter gibt- Batterie leer z.B..
Rechner wird komplett ausgeschaltet und Regelung läuft auf minimaler Basis mit elekt. Zeitschaltuhren

Gruß
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 26.11.2004, 12:05    Titel: Antworten mit Zitat

Wie nimmst du eigentlich die Messwerte wie pH-Wert etc. auf ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
sunny0815



Anmeldungsdatum: 24.11.2004
Beiträge: 28
Wohnort: Ludwigshafen

BeitragVerfasst am: 26.11.2004, 13:16    Titel: Antworten mit Zitat

Ph -Wert

den pH-Wert, das Redoxpotential und die Temperatur erfasse ich über 2 verschiedene ph-Messgeräte (Redox-Messungen benötigen eine andere Elektrode als pH-Wert) die Messgeräre verfügen über RS 232 Schnitstellen. Über Com 1 und Com 2 werden die Werte ausgelesen, angezeigt und ausgewertet.

Gruß

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz