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 

 Programm umschreiben!! Kategorie: Programmierung Basic (von Björn - 1.06.2011 23:39)
Björn nutzt:  CC1-Station V1.1
Hallo!

Ich habe mir die C-Control 1 Station 2 zugelegt.

Nun möchste ich mein Programm aus der Station V1.1 in die Sation V1.2 haben.
Leider klappt das ja nicht so einfach.

Wer ist so nett und hilft mir beim Umschreiben des Programmes?
Wäre echt supernett wenn sich jemand von Euch dazu findet!!

Vielen Dank schon einmal!!!

Gruss
Björn


Hier das Prog:


'*********************************************************************************************
'
' C-Control Station/BASIC
' Steuerprogramm mit Zeitsteuerung der Pumpen
'
' Aufgabe:
' Steuerung der Filteranlage
' Ausgabe von Meßwerten an den PC
' Kommmandos vom Leitrechner empfangen
' Sollwerte senden und empfangen
' Meßwerte aufzeichnen und auf Kommando an Leitrechner senden
'*********************************************************************************************
' --- Definitionen -------------------- ' Stand: 25.01.2010
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 BitAnfang    bit[180]

define StörungAktiv bit[188]    'Flankenbit für Schwimmer
define F1gedrueckt  bit[189]    'Flankenbit für Taste F1
define F2gedrueckt  bit[190]    'Flankenbit für Taste F2
define F3gedrueckt  bit[191]    'Flankenbit für Taste F3
define F4gedrueckt  bit[192]    'Flankenbit für Taste F4

define n Word
define Wert byte
define Minuten byte
define Sekunde byte

define h_startP1 byte           'Variable Start Std. Pumpe 1
define m_startP1 byte           'Variable Start Min. Pumpe 1
define h_stopP1 byte            'Variable Stop  Std. Pumpe 1
define m_stopP1 byte            'Variable Stop  Min. Pumpe 1

define h_startP2 byte           'Variable Start Std. Pumpe 2
define m_startP2 byte           'Variable Start Min. Pumpe 2
define h_stopP2 byte            'Variable Stop  Std. Pumpe 2
define m_stopP2 byte            'Variable Stop  Min. Pumpe 2

define h_startLuft byte         'Variable Start Std. Belüftungspumpe
define m_startLuft byte         'Variable Start Min. Belüftungspumpe
define h_stopLuft byte          'Variable Stop  Std. Belüftungspumpe
define m_stopLuft byte          'Variable Stop  Min. Belüftungspumpe

define h_startUVC byte          'Variable Start Std. UVC-Lampe
define m_startUVC byte          'Variable Start Min. UVC-Lampe
define h_stopUVC byte           'Variable Stop  Std. UVC-Lampe
define m_stopUVC byte           'Variable Stop  Min. UVC-Lampe

' --- Programmoperationen -------------
Beep 250, 20, 5
'Grundzustand herstellen
Minuten = 20          'erste Messung bei dieser MinuteX starten (einmalige Vorgabe beim Start)
''Sekunde = 30
Luft = OFF
UVC = OFF
Pumpe1 = OFF
Pumpe2 = OFF
'Standartwerte laden:
Hour = 7
Minute = 45
#Startwerte
h_startP1 = 8   'Uhr
m_startP1 = 0  'Uhr
h_stopP1 = 18   'Uhr
m_stopP1 = 0   'Uhr

h_startP2 = 17 'Uhr
m_startP2 = 0 'Uhr
h_stopP2 = 17  'Uhr
m_stopP2 = 57  'Uhr

h_startLuft = 8
m_startLuft = 1
h_stopLuft = 17  'Uhr
m_stopLuft = 58

h_startUVC = 8
m_startUVC = 2
h_stopUVC = 17  'Uhr
m_stopUVC = 59  'Uhr
Return

'##################################################################################################
'Hauptprogramm:
'##################################################################################################
#Loop
'--------------------------------------------------------------------------------------------------
'Zeitprogramm für Pumpe 1 und Pumpe 2

if (hour = h_startP1)   and (minute = m_startP1)   then Pumpe1 = ON     'Pumpe 1 einschalten
If (Hour = h_stopP1) And (Minute = m_stopP1) Then Pumpe1 = OFF
if (hour = h_startP2)   and (minute = m_startP2)   then Pumpe2 = ON     'Pumpe 2 einschalten
If (Hour = h_stopP2) And (Minute = m_stopP2) Then Pumpe2 = OFF
if (hour = h_startLuft) and (minute = m_startLuft) then Luft   = ON     'Luft einschalten
If (Hour = h_stopLuft) And (Minute = m_stopLuft) Then Luft = OFF
if (hour = h_startUVC)  and (minute = m_startUVC)  then UVC    = ON     'UVC einschalten
If (Hour = h_stopUVC) And (Minute = m_stopUVC) Then UVC = OFF
If rxd Then GoSub Abfrage        'Kommandosignal vom PC 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
Return
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
Return
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
Return
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
Return
If rxd Then GoSub Abfrage        'Kommandosignal vom PC abfragen
'--------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------
' Meßwerte der Analogen Eingänge und der Frequenzmessung im Epprom speichern
' minute = Minuten
'if second = Sekunde then goto messen
If Minute = Minuten Then GoTo messen
goto Loop ' Anfang

#messen
open# for append
if filefree then print# AD5    'Lufttemperatur speichern
if filefree then print# AD6    'Wassertemperatur speichern
if filefree then print# AD7    'Akkuspannung speichern
if filefree then print# AD8    'Netzspannung speichern
if filefree then print# freq2   'Durchfluß speichern
if filefree then print# Minute 'Zeit bei Messung speichern
close#

''Sekunde = Second + 2
''if Sekunde = 60 then Sekunde = 0
Minuten = Minuten + 5         'nach Messung 15min auf die aktuelle Minuten rechenen
If Minuten = 60 Then Minuten = 0
goto Loop
'----------------------------------------------------------------------------------------
'Kommunikation mit Leitrechner
#Abfrage
get Kommando
If Kommando = 27 Then GoSub Auslesen 'Messwerte auslesen (geht über Excel)
If Kommando = 70 Then GoTo Sollwerte 'Sollwerte empfangen
'if Kommando = 80 then gosub Abfrage1


Gruppe = Kommando / 16
On Gruppe GoSub G0, G1, G2, G3, G4, G5, G6
Return             'Endlosschleife


#G0                 'keine Aktion 0..15
Return

#G1                 'digitale Ausgabe 16..31
get Ausgang
Return

#G2                 'digitale Eingabe 32..47
if Kommando = 32 then put Eingang

if Kommando = 33 then put h_startP1
if Kommando = 34 then put m_startP1
if kommando = 35 then put h_stopP1
if kommando = 36 then put m_stopP1

if Kommando = 37 then put h_startP2
if kommando = 38 then put m_startP2
if kommando = 39 then put h_stopP2
if kommando = 40 then put m_stopP2

if Kommando = 41 then put h_startLuft
if Kommando = 42 then put m_startLuft
if kommando = 43 then put h_stopLuft
if kommando = 44 then put m_stopLuft

Return

#G3                 'analoge Eingaben 48..63
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 h_startUVC
if Kommando = 57 then put m_startUVC
if kommando = 58 then put h_stopUVC
if kommando = 59 then put m_stopUVC
'if Kommando = 60 then put freq2
Return

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

Return

#G5                 'Freuquenz Hi, Lo 80...95
put freq / 256
put freq mod 256
Return

#G6  '96..111?
if Kommando = 96 then put hour
if Kommando = 97 then put minute
if Kommando = 98 then put second
if Kommando = 99 then put freq2


Return

'----------------------------------------------------------------------------------------
'Hier werden die Meßwerte aus dem Epprom an Excel gesendet
#Auslesen
  'close#
  open# for read
#NextA
  input# Wert
  put Wert
  If Not EOF Then GoTo NextA
  close#
 goto loop
 
'----------------------------------------------------------------------------------------
'Hier die Vorbereitung für das Einlesen der Sollwerte aus der VB-Apli..
#Sollwerte
get h_startP1
get m_startP1
get h_stopP1
get m_stopP1

get h_startP2
get m_startP2
get h_stopP2
get m_stopP2


get h_startLuft
get m_startLuft
get h_stopLuft
get m_stopLuft

get h_startUVC
get m_startUVC
get h_stopUVC
get m_stopUVC

Return

#Abfrage1
'vorbereitung für weitere Funktionen
Return
'----------------------------------------------------------------------------------------

'-------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------
' SPS Teichfilter Steuerungsprogramm
' Geschrieben in der Basic-Entwicklungssoftware 1.33

 Antwort schreiben

Bisherige Antworten:

Re: Programm umschreiben!! (von MaPi - 5.06.2011 20:08)
    Re: Programm umschreiben!! (von Björn - 10.06.2011 20:20)