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 

 Dimmer-Modul für C-Control Station Kategorie: C-Control I V1.1 (von Mario - 8.11.2004 3:56)
bevor ich hier loslege, möchte ich gleich zwei Fragen loswerden.

- gibt es bei der C-Control Station eine Möglichkeit, dass man mehr digitale Ausgänge hat?
Die digitalen Ports sind als Aus- und Eingang programmierbar, kann man die Analogen Ports evtl. auch umprogrammieren?

- weiß jemand ob man das Assemblerprogramm für die Ansteuerung des Dimmer-Moduls, dass an Port3 der C-Control Station einen PLM-Ausgang erzeugt, so erweitern kann, dass man einen zweiten Dimmer ansteuern kann? Im Basic-Programm steht da am Ende folgender Code:

    '--------- EINBINDUNG DES TREIBERS -----------
    'PLM auf PORT 3
    'Variable "Dimmer" muß auf Byte1 definiert sein
    'syscode &HA6 &H06 &HB7 &H52 &H81 &HB6 &HA1 &H14 &H01
    '        &H4A &H26 &HFD &H15 &H01 &HA6 &H01 &H81
    syscode "dimmer.s19"
und die Datei dimmer.s19 hat folgenden Inhalt:
    S1130101A606B75281B6A114014A26FD1501A6011E
    S10401118168
    S9030000FC

----------------------------------------------------------------------------------------

Hallo,

Ich habe mir die C-Control Station und zusätzlich dieses Dimmermodul zugelegt.
Ich hatte große Probleme das mitgelieferte Bsp-Programm meinen Wünschen entsprechend anzupasssen, da die mitgelieferte Dokumentation für Anfänger wie mich überhaupt nicht ausreichend ist.
Nach vielen Stunden verzweifelter Suche im Netz habe ich schließlich ein paar nützliche Infos zum Dimmer und auch ein Programm gefunden, das mir wirklich geholfen hat. Für alle, denen es ähnlich wie mir geht und die hier auf dieser Seite nicht fündig werden, möchte ich meine Newbie-Erfahrungen mal niederschreiben:

1. Der Dimmer wird tatsächlich an den Digital-Ausgang Port3 angschlossen. Mittels eines mitgelieferten Assembler-Programmes wird Port 3 zu einem PLM-Ausgabe-Port für Digital-Analog-Wandlung.

2. Das Dimmen für Verbraucher 0-230V wird im Programm mit Werten im Bereich von 0-150 erzeugt. Allerdings habe ich bei einem Wert von 30 schon eine Ausgabespannung von 220V am Dimmer, sodass bei Werten darüber eine Helligkeitsänderung an einer Glühlampe kaum noch wahrnehmbar ist.

3. Die Windows-Programmierumgebung CCBasic stürzt regelmäßig bei einer Programmübertragung ab. Deshalb: vor jedem Übertragen das Programm speichern.
Und auch wichtig: CCBasic speichert die Einstellungen für die Arbeitsoberfläche ab (geöffnete Fenster, Anordnung der Fenster, Arbeitsverzeichnis, Einstellung in den Optionen(Umgebung+Farben))
Allerdings erst beim Beenden des Programms. Stürzt das Programm vorher ab - kann man alles nochmal einstellen. Deshalb selber neustarten.

4. Wenn man den Simulator benutzt und dann Variablen beobachtet(Funktionsweise steht im Handbuch der C-Control Station), dann stimmt das nicht immer mit dem überein, was das Programm auf der C-Control Station tatsächlich macht. (so erscheint es mir zumindest)

5. Bei der Abfrage der Funktionstasten F1 bis F4 sollte man beachten:
betätigter Zustand:      =off
nichtbetätigter Zustand: =on

6. Bei der Programmübertragung zur C-Control Station wird neben dem Basic-Programm in diesem Fall auch das angehängte Assembler-Programm mit übertragen. Dieses Assemblerprogramm wird auf einen Extra-Speicher geschrieben, der nur für 10000 Schreibzyklen ausgelegt ist. Das ist aber nur halb so schlimm:
Das Assembler-Programm braucht nur dann übertragen zur werden, wenn man es auch ändert. Und das war bei mir nicht der Fall, da ich nur den Code des Basic-Programmes geändert habe. Ist das Assemblerprogramm beim ersten mal übertragen worden, dann kann man anschließend die letzte Programmzeile auskommentieren:
'syscode "dimmer.s19"

anschließend habe ich noch das Programm angefügt, welches mir so sehr geholfen hat. Ein Netz-Fundstück in den Tiefen des Forums bei http://www.sterbai.de/.

Viele Grüße, Mario

------------------------------------------------------------------------------------------------------------

'****DIMMER-Demo V01******


define S1    port[3]   'Spots Dimmer (PLM-Ausgang)
define F1    port[9] 'Licht EIN - sofort 100%
define F2    port[10] 'Licht AUS - sofort 0%
define F3    port[11] 'Licht EIN - soft (langsames Hochdimmen >> MaxWert)
define F4    port[12] 'Licht AUS - soft (langsam Runterdimmen >> 0%)

define dimmer   byte[1] 'Vorgabe (nicht änderbar wegen ASM_SysPrg)
define dimstat  byte[2] 'Dimmer-Status: 0..Aus / 1..Hochdimmen / 2..Runterdimmen / 3..Ein (100%)
define dimMin   byte[3] '** Optional: Min-Wert für Dimmer (ASM-bedingt mind. 1)
define dimMax   byte[4] 'Max-Wert für Dimmer (ca. 150, da DAC ca. 2,5V/Uref- somit 150/255)
define is byte[5] 'Triggervariable f. Taktzeit

'----INITIALISIERUNG----
S1=off 'Port 3 (PLM)
dimmer=1:sys&H101 'ASM-Code
is=second+1 'Startzeit

dimstat=0 'Dim-Status = Aus
dimMin=1 'Dimmer Min-Wert   <<< ANPASSEN NACH ERFORDERNIS (**Optional)
dimMax=150 ' "     Max-Wert   <<< ANPASSEN NACH ERFORDERNIS


'----HAUPT_LOOP---------
#LOOP
  gosub CHECKKEYS 'Key-Abfrage (permanent)
  '++..weitere Sub-Prg hier einfügen, welche permanent abgefragt werden sollen (zwecks sofortiger Reaktion)

  if second<>is then goto LOOP  'Loopt, bis nächster Triggerzeitpunkt erreicht ist
  is=second+3 'Zeit-Takt (zB. +3 = alle 3 sec)...<<< ANPASSEN NACH ERFORDERNIS
  if is>59 then is=is-60 'Korrektur f. Sekundenüberlauf (60 >> is=1, 61 >> is=1, usw.)

  gosub DIMCHECK 'Dimmer setzen/getaktet alle 3 sek
  '++..weitere Sub-Prg, welche alle ..(3) Sekunden abgefragt werden sollen(zeit-getaktet)
goto LOOP

'----ENDE_HAUPTLOOP-------


'----SUB_PRG---
#CHECKKEYS
  if F1=off then gosub DIMEIN
  if F2=off then gosub DIMAUS
  if F3=off then dimstat=1
  if F4=off then dimstat=2
return

#DIMCHECK
  on dimstat gosub DIMAUS,DIMPLUS,DIMMINUS,DIMEIN 'Verzweigt je nach Dimmer-Status
return

#DIMEIN                                         'Dimmer ein / 100%
print "Dimmer an"
  dimstat=3
  dimmer=dimMax
return

#DIMAUS                       'Dimmer aus/ 0%
print "Dimmer aus"
  dimstat=0
  dimmer=1
  S1=off
return

#DIMPLUS 'Hochdimmen
print "Hochdimmen"
  if dimmer < dimMin then dimmer=dimMin '**Optional, da Lampe bei sehr kleinen Werten dunkel ist
  if dimmer < dimMax then dimmer=dimmer+1 '1 Digit je Zeit-Takt
  if dimmer= dimMax then dimstat=3 'Dimmer-Status EIN setzen, wenn dimMax erreicht
return

#DIMMINUS 'Runterdimmen, sinngemäß wie vor
print "Runterdimmen"
  if dimmer > 1 then dimmer=dimmer-1
  if dimmer < dimMin then dimmer=1 '**Optional, w.o.
  if dimmer=1 then dimstat=0
return




'--------- EINBINDUNG DES TREIBERS -----------
'PLM auf PORT 3
'Variable "Dimmer" muß auf Byte1 definiert sein
'syscode &HA6 &H06 &HB7 &H52 &H81 &HB6 &HA1 &H14 &H01
'        &H4A &H26 &HFD &H15 &H01 &HA6 &H01 &H81
'syscode "dimmer.s19"

------------------------------------------------------------------------------------------------------------

 Antwort schreiben

Bisherige Antworten:

Re: Dimmer-Modul für C-Control Station (von Kay - 11.11.2004 13:40)
    DA-Ausgang mehr Strom mit Spannungsfolger (von sl - 13.11.2004 10:52)
    nachtrag (von Kay - 11.11.2004 14:45)