Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Steuerung und Fernbedienen Kategorie: Programmierung Basic (von Börner - 14.05.2009 13:04)
 Als Antwort auf Re: Steuerung und Fernbedienen von Mak - 13.05.2009 22:20
Börner nutzt:  CC1-Station V1.1
Hallo es gibt bereit eine erste Version.

Die CC-Schaltet Zeitgesteuert die Pumpen und die Meßwerte werden auf gezeichnet.

Es ist möglich die Pumpen vom PC zu schalten und die gespeicherten Messwerte mit Excel auszulesen.

Das VB-Programm ist eigenständig un mit VB 6.0 realisiert.

Nur wie kann ich von dem VB Programm die Schaltzeiten der Pumpen ändern und diese wiederrum in meinem VB-Programm anzeigen lassen ?


Hier das Programm was bislang in der Station läuft:

'*********************************************************************************************
'
' C-Control Station/BASIC
' Steuerprogramm mit Zeitsteuerung der Pumpen
'
' Aufgabe:
'
' Steuerung der Filteranlage
' Ausgabe von Meßwerten an den PC
' Kommmandos vom Leitrechner empfangen
' Meßwerte aufzeichnen und auf Kommando an Leitrechner senden
'*********************************************************************************************
' --- Definitionen --------------------

define Ausgang byteport[1]
define Eingang byteport[2]

define AD1 AD[1]                ' AD 1 ---
define AD2 AD[2]                ' AD 2 Batterie - Strom
define AD3 AD[3]                ' AD 3 Start Taster
define AD4 AD[4]                ' AD 4 Reset Taster
define AD5 AD[5]                ' AD 5 Lufttemperatur
define AD6 AD[6]                ' AD 6 Wassertemperatur
define AD7 AD[7]                ' AD 7 Batteriespannung
define AD8 AD[8]                ' AD 8 Netzspannung

define Kommando byte
define Gruppe Byte

define UVC          port[8] 'Definition Relais UV - Klärer
define Luft         port[7]     'Definition Relais Belüftungspumpe
define Pumpe1       port[3] 'Definition Digitalport Pumpe 1
define Pumpe2       port[4] 'Definition Digitalport Pumpe 2
define Ãœberlauf     port[5]     'Definition Digitalport Schwimmschalter Ãœberlauf

define LED1         port[13] 'Definition Betriebsmodusanzeige LED 1
define LED2         port[14] 'Definition Betriebsmodusanzeige LED 2
define LED3         port[15] 'Definition Betriebsmodusanzeige LED 3
define LED4         port[16] 'Definition Betriebsmodusanzeige LED 4

define F1           port[9] 'Definition Folien-Funktionstaster Fl
define F2           port[10]    'Definition Folien-Funktionstaster F2
define F3           port[11] 'Definition Folien-Funktionstaster F3
define F4           port[12] 'Definition Folien-Funktionstaster F4

define F1gedrueckt  bit[189]
define F2gedrueckt  bit[190]
define F3gedrueckt  bit[191]
define F4gedrueckt  bit[192]
define StörungAktiv bit[180]

define BitAnfang bit[180]
define Wert byte
define n Word
define Minuten byte
define Sekunde byte

' --- Programmoperationen -------------

beep 250,30,5

Minuten = 0          'erste Messung bei dieser MinuteX starten (einmalige Vorgabe beim Start)

Luft =   OFF
UVC =    OFF
Pumpe1 = OFF
Pumpe2 = OFF

'##################################################################################################
'Programm:
#Loop
'--------------------------------------------------------------------------------------------------
'Zeitprogramm für Pumpe 1 und Pumpe 2              AKTUELL !!! 26.09.2008 !!!!!

if (hour =  10)  and (minute =  0)  then Pumpe1 = ON                    'Pumpe 1 einschalten
if (hour =  10)  and (minute =  0)  then Luft =   ON
if (hour =  10)  and (minute =  0)  then UVC =    ON
if (hour =  18)  and (minute =  0)  then Pumpe1 = OFF                   'Pumpe 1 ausschalten
if (hour =  18)  and (minute =  0)  then Luft =   OFF
if (hour =  18)  and (minute =  0)  then UVC =    OFF

if rxd then gosub loop12        'Kommandosignal vom Leitrechner abfragen
'--------------------------------------------------------------------------------------------------
' Abfrage der eingeschalteten Pumpen und Anzeigen an den LED´s
LED1 = Pumpe1
LED2 = Pumpe2
LED3 = Luft
LED4 = UVC
'--------------------------------------------------------------------------------------------------
' Tastenabfrage an der C-Control Station
if F1 then F1gedrueckt = OFF ' F1 losgelassen merken
if F1 or F1gedrueckt then goto NotF1 ' F1 neu gedrueckt?
F1gedrueckt = ON ' F1 gedrueckt merken
tog Pumpe1 ' Zustandswechsel nur einmal, bis F1 wieder losgelassen
wait 1 ' Taste entprellen
#NotF1

if F2 then F2gedrueckt = OFF ' F2 losgelassen merken
if F2 or F2gedrueckt then goto NotF2 ' F2 neu gedrueckt?
F2gedrueckt = ON ' F2 gedrueckt merken
tog Pumpe2 ' Zustandswechsel nur einmal, bis F1 wieder losgelassen
wait 1 ' Taste entprellen
#NotF2

if F3 then F3gedrueckt = OFF ' F3 losgelassen merken
if F3 or F3gedrueckt then goto NotF3 ' F3 neu gedrueckt?
F3gedrueckt = ON ' F3 gedrueckt merken
tog Luft ' Zustandswechsel nur einmal, bis F3 wieder losgelassen
wait 1 ' Taste entprellen
#NotF3

if F4 then F4gedrueckt = OFF ' F4 losgelassen merken
if F4 or F4gedrueckt then goto NotF4 ' F4 neu gedrueckt?
F4gedrueckt = ON ' F4 gedrueckt merken
tog UVC ' Zustandswechsel nur einmal, bis F4 wieder losgelassen
wait 1 ' Taste entprellen
#NotF4

IF Ãœberlauf=ON then Pumpe1=OFF
if überlauf=on and second mod 2=1 then led1=on else led1=off

if rxd then gosub loop12        'Kommandosignal vom Leitrechner abfragen
'--------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------
' Meßwerte der Analogen Eingänge und der Frequenzmessung im Epprom speichern
'minute = Minuten
if  minute = Minuten then goto messen
goto Loop ' Anfang

#messen
open# for append
if filefree then print# AD5 'Lufttemperatur
if filefree then print# AD6 'Wassertemperatur
if filefree then print# AD7 'Akkuspannung
if filefree then print# AD8 'Netzspannung
if filefree then print# freq 'Durchfluß
if filefree then print# minute 'Zeit bei Messung

close#

Minuten = Minuten + 15
if Minuten = 60 then Minuten = 0
goto Loop
'----------------------------------------------------------------------------------------
'Kommunikation mit Leitrechner
#loop12
get Kommando
if Kommando = 27 then gosub Auslesen

Gruppe = Kommando / 16
on Gruppe gosub G0, G1, G2, G3, G4, G5
return             'Endlosschleife


#G0                 'keine Aktion
return

#G1                 'digitale Ausgabe
get Ausgang
return

#G2                 'digitale Eingabe
put Eingang
return

#G3                 'analoge Eingaben
if Kommando = 48 then put AD1
if Kommando = 49 then put AD2
if Kommando = 50 then put AD3
if Kommando = 51 then put AD4
if Kommando = 52 then put AD5
if Kommando = 53 then put AD6
if Kommando = 54 then put AD7
if Kommando = 55 then put AD8

if Kommando = 56 then put hour
if Kommando = 57 then put minute
if Kommando = 58 then put second
if Kommando = 59 then put freq2

return

#G4                 'analoge Ausgaben
if Kommando = 64 then get second
if Kommando = 65 then get day
return

#G5                 'Freuquenz Hi, Lo
put freq / 256
put freq mod 256


return
'----------------------------------------------------------------------------------------

#Auslesen
  'close#
  open# for read
#Next
  input# Wert
  put Wert
  if not EOF then goto Next
  close#
 return
'-------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------
' SPS Teichfilter Steuerungsprogramm
' Geschrieben in der Basic-Entwicklungssoftware 1.33
' Abgespeichert unter Steuerprogramm für die SPS-Teich.bas

> Hallo Björn,
> das Projekt sollte in einzelne Module zerlegt werden. Es macht keinen Sinn, alle Funktionen zur gleichen Zeit zu erstellen. Am besten auf eine Sache erstmal konzentrieren (z.B. das zeitabhängige Schalten der Relais (Pumpen) oder das Abspeichern der Temperaturen etc).
> Das Projekt ist im Grunde nicht schwierig und sollte gut mit der CC1 Station zu lösen sein. Allerdings macht die Fülle an Funktionen die Realisierung u.U. unübersichtlich.
>
> Was hast Du denn schon für das Projekt vorentwickelt? Gibt es schon weitere Überlegungen oder sogar schon ein erstes Programm?
> Muss das Visual Basic als stand-alone laufen oder kann es auch VBA in Excel sein?
>
> Grüsse,
> Mak
>
> > Hallo,
> >
> > ich habe folgendes Projekt vor und vielleicht kann mir ja jemand hier helfen.
> > Das wäre echt Super !!!
> >
> >
> > Folgendes soll realisiert werden mit einer C-Control Station Vers. 1
> > Programmierung mit Basic
> >
> >
> > Die Steuerung soll 2 Förderpumpen nach Zeit Ein- und Ausschalten (2x am Tag)
> > Ausserdem sollen die Werte der beiden Temperaturfühler gespeichert werden (alle 15 min. Messung).
> > Die Taster an der CC- Station sollen für das Ein- und Ausschalten der beiden Pumpen sein (je Pumpe einen Taster belegen)
> >
> > Die Anderen beiden Taster sollen aufgeteilt werden für: Zeitgesteuerte Pumpensteuerung und Alles Aus bis auf die Messwertspeicherung.
> >
> >
> >
> > Soweit so gut..
> >
> > Nun soll das ganze über Visual Basic auch noch steuerbar sein.
> >
> > Ich möchte direkt vom PC aus:
> > - die Pumpen Ein- und Ausschalten können
> > - die Ein- und Ausschalt - Zeiten in der CC-Station ändern können
> > - die Onlinewerte der beiden Temperaturfühler anzeigen lassen
> > - die gespeicherten Messwerte aus der CC Station auslesen können und in einem Liniendiagramm   darstellen können.
> >
> > Das ganze soll ein eigenständiges Programm sein das mit Visual Basic erstellt werden soll.
> >
> >
> > Für jede Hilfe zur Realisierung dieses Projektes wäre ich sehr dankbar!
> > Auch gerade was die Programmierung in Visual-Basic angeht.
> >
> > mfg
> > Björn

 Antwort schreiben

Bisherige Antworten:

Re: Steuerung und Fernbedienen (von ManfredW - 15.05.2009 20:26)