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: Programm umschreiben!! Kategorie: Programmierung Basic (von MaPi - 5.06.2011 20:08)
 Als Antwort auf Programm umschreiben!! von Björn - 1.06.2011 23:39
MaPi nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, CC1-Station V1.1, C-Control 2
Hallo Björn,
da Du keine HW-nahen Zugriffe per SYS-Befehl im Programm hast sehe ich jetzt keinen Grund dafür, warum Du das Programm nicht in der CC1 V2.0 nutrzen können solltest.
Einzig die definierten Ports lassen sich wohl so nicht mehr ansprechen.

Ich empfehle Dir für die Portierung die Nutzung von CCBASIC V2.0 (auf der Conrad C-Control Seite noch zu haben). Aber Vorsicht: Einige CC-Basic Befehle existieren nicht mehr oder haben eine teilweise andere Funktion.

Schau mal beim Surfen auf der Conrad C-Control Seite auch nach den Downloads der Infos für CCBasic.
Da kannst Du Beispiele und Ifos runterladen, die Dir helfen, das Programm umzusetzen.

Wenn Du nicht zurecht kommen solltest, dann melde Dich unter der o.g. Emailadresse. Ich versuche dann, Dir etwas zu helfen.

Versuchs mal.
Servus, MaPi


> 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 Björn - 10.06.2011 20:20)