Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Sollwertinit in Funktion Kategorie: Programmierung (von André H. - 30.03.2007 8:17)
Als Antwort auf Sollwertinit in Funktion von Tinber - 29.03.2007 22:15
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0, OSOPT V3.1
Hallo Tinber,

Da� überhaupt eine der beiden Varianten funktioniert, wunder mich.
Denn beides ist kein gültiger C2-Syntax.
Man kann in C2 einer Variabel nicht bereits bei der Definition einen Wert zuweisen.
Der Compiler muÃ? hier meckern!
Und zwar in etwa: "Modulname(Zeile): ;expectet"

auÃ?erdem willst Du scheinbar folgende Variablen doppelt definieren:

 int heizkurve_soll;
 byte T_Nachlauf_FBHb;
 byte FBH_pu_anforderung;

Denn Du definierst diese einmal global und einmal lokal.
(Definitionen von Variablen innerhalb Threads und Funktionen sind lokal.)

Ich vermute, Du willst die Variabeln lediglich global definieren, und aus dem Thread bzw.
der Funktion lediglich darauf zugreifen.
Dann benutze einfach folgenden korrekten Syntax mit Deinen beiden Varianten:

//**********************************************************
//Variante 1 so klappts wirklich
const Betr_Meld = 10;
const textsJ_N[]= "Ja  ", "Nein";
const textsA_E[]= "Aus", "Ein";
int heizkurve_soll;
byte T_Nachlauf_FBHb;
byte FBH_pu_anforderung;
long counter[4],online;
//usw.

thread glob_init
{
 heizkurve_soll = 10;
 T_Nachlauf_FBHb = 5;
 FBH_pu_anforderung = 1;
 //weitere befehle
 halt;
}//end thread

//**********************************************************
//Variante 2 klappt so auch;-)
const Betr_Meld = 10;
const textsJ_N[]= "Ja  ", "Nein";
const textsA_E[]= "Aus", "Ein";
int heizkurve_soll;
byte T_Nachlauf_FBHb;
byte FBH_pu_anforderung;
long counter[4],online;
 //usw.

function fxInitSollwGrundeinstellung ()
{
 heizkurve_soll = 10;
 T_Nachlauf_FBHb = 5;
 FBH_pu_anforderung = 1;
}

thread glob_init
{
 fxInitSollwGrundeinstellung ();
 //weitere befehle

 halt;
}//end thread


MfG André H.



> Hallo zusammen
>
> Ich bin dabei meine Regelung um einige Feinheiten zu erweitern.
> Um Sollwerte die ich am Display ändere ohne Reset übernehmen zu können,
> sollen diese in einer Funktion Initialisiert werden.
> Es handelt sich dabei um Global gültige Variablen und Konstanten die im ersten Modul stehen.
> Die Codeschnipsel stehen stellvertretend für einige Hundert Variablen und Konstanten,
> verdeutlichen aber die Struktur im Modul, es werden tatsächlich ca. 50 Variablen Initialisiert.
> Die bestehende Variante 1 funzt tadellos, während Variante 2 zwar ausgeführt wird der Programmablauf
> aber gestört ist, z.B. beginnen Ausgänge die gesetzt sind zu Takten und Displayausgaben brechen
>  vorzeitig ab.
> Zum Zeitpunkt der Funktionsdefinition sind alle Variablen bekannt, der Compiler meckert auch nicht.
> Ist gegen Variante 2 etwas einzuwenden?
>
> Danke
> GruÃ? Martin
>
>
>
> //**********************************************************
> //Variante 1 so klappts
> const Betr_Meld = 10;
> const textsJ_N[]= "Ja  ", "Nein";
> const textsA_E[]= "Aus", "Ein";
> int heizkurve_soll;
> byte T_Nachlauf_FBHb;
> byte FBH_pu_anforderung;
> long counter[4],online;
> //usw.
>
> thread glob_init
> {
> int heizkurve_soll = 10;
> byte T_Nachlauf_FBHb = 5;
> byte FBH_pu_anforderung = 1;
> //weitere befehle
> run 0;
> }//end thread
>
> //**********************************************************
> //Variante 2 klappt nicht
> const Betr_Meld = 10;
> const textsJ_N[]= "Ja  ", "Nein";
> const textsA_E[]= "Aus", "Ein";
> int heizkurve_soll;
> byte T_Nachlauf_FBHb;
> byte FBH_pu_anforderung;
> long counter[4],online;
> //usw.
>
>
> function fxInitSollwGrundeinstellung ()
>                {
>                 int heizkurve_soll = 10;
>                 byte T_Nachlauf_FBHb = 5;
>                 byte FBH_pu_anforderung = 1;
>                 }
>
> thread glob_init
> {
> fxInitSollwGrundeinstellung ();
> //weitere befehle
>
> run 0;
> }//end thread
>
>

>


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Sollwertinit in Funktion (von Tinber - 30.03.2007 21:20)
    Re: Sollwertinit in Funktion (von André H. - 9.04.2007 19:23)