
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
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?
'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"
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 |