# WAGO - FbDatenlogger - Globale Konstante gc_bMAXCHANNELS ändern



## KingHelmer (29 Oktober 2014)

Hallöchen,

in der Beschreibung zu .lib des FbDatenlogger von Wago steht beschrieben, dass zur Reduzierung des Speicherbedarfs und der Optimierung der Abarbeitungszeit die Konstante gc_bMAXCHANNELS angepasst werden kann.

Allerdings ist mir hier der Schreibzugriff untersagt, habe versucht, sie direkt in den glob. Variablen zu ändern und auch über das Programm im PLC_PRG zu ändern.
Beides erfolglos.

Weiß hier jemand Rat?

Grüße, 
Florian


----------



## EvilIce (29 Oktober 2014)

Also ich habe sie in den Globalen Variablen gesetzt.Kann aber sein das ich noch was im Editor verstellt hatte. Unter Projekt - Optionen - Übersetzungsoptionen sind zumindest ein paar Einstellungen dazu möglich. Bei mir kommt dann zwar ein Hinweis das die andere Konstante überschattet wird aber ansonsten ist das kein Problem.

Ich habe mal nen Screenshot mit angehängt mit meinen Einstellungen.


----------



## KingHelmer (29 Oktober 2014)

Ok, Merci, hat soweit funktioniert.

Verstehe nur nicht, wieso die Variable als CONST. festgelegt wird und gleichzeitig in der Doku empfohlen wird, sie anzupassen.
Aber gut, hauptsache es funktioniert so erst mal!

Grüße, 
Florian


----------



## SPS_Jack (7 November 2014)

KingHelmer schrieb:


> Ok, Merci, hat soweit funktioniert.
> 
> Verstehe nur nicht, wieso die Variable als CONST. festgelegt wird und gleichzeitig in der Doku empfohlen wird, sie anzupassen.
> Aber gut, hauptsache es funktioniert so erst mal!
> ...



Kannst Du vielleicht nochmal kurz erklären wie du es genau hinbekommen hast die Konstante gc_bMAXCHANNELS anzupassen?
Reicht einfach nur das Häkchen bei "Konstanten ersetzen"? Und wie kann ich dann einfach die Konstante ändern?
Einfach z.B.

```
gc_bMAXCHANNELS:=20 ;
```
Wäre super wenn das mir jemand kurz erläutern könnte.


----------



## MSB (7 November 2014)

Konstanten ersetzen hat imho damit gar nichts zu tun ... beim regulären Weg.

Du musst die konstante "verschatten", d.h. du legst eine Konstante gleichen Namens/Typs in einer niedrigereren Hierarchie, also Globale oder lokale Variablen an.
Bei Global gilt das ganze dann fürs ganze Programm, bei Lokal dann nur für den jeweiligen Baustein.

Mfg
Manuel


----------



## SPS_Jack (7 November 2014)

MSB schrieb:


> Konstanten ersetzen hat imho damit gar nichts zu tun ... beim regulären Weg.
> 
> Du musst die konstante "verschatten", d.h. du legst eine Konstante gleichen Namens/Typs in einer niedrigereren Hierarchie, also Globale oder lokale Variablen an.
> Bei Global gilt das ganze dann fürs ganze Programm, bei Lokal dann nur für den jeweiligen Baustein.
> ...




Ich habe nun folgendes unter dem Karteikartenreiter "Ressourcen" im Ordner "Globale Variablen" -> "Globale_Variablen (CONSTANT)" angelegt:

```
gc_bMAXCHANNELS : BYTE  := 71;
```

Dann erscheinen 4 Fehler, wobei 3 davon anzeigen, dass die Obergrenze"GC_BMAXCHANNELS" unbekannt ist.
Der 4. Fehler zeigt an, dass mehrere Deklarationen mit dem gleichen Bezeichner "gc_bMAXCHANNELS" vorliegen


Was mache ich hierbei falsch?


----------



## MSB (7 November 2014)

Steht die Variable unter VAR GLOBAL CONSTANT ?


----------



## SPS_Jack (7 November 2014)

MSB schrieb:


> Steht die Variable unter VAR GLOBAL CONSTANT ?



Nein, vielen dank. 

Das war die Lösung


----------



## KingHelmer (7 November 2014)

bin zu spät!


----------

