B&R AS: Butten aktiviert anzeigen

Am einfachsten geht das wohl mit einer Schaltfläche (Button), an der Du 2 Bitmaps hinterlegst. (BitmapSource --> MultipleBitsmaps --> Bistmapliste auswählen)
Als Action ist es dann am einfachsten "ToggleDatapoint" zu verwenden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke für die hilfe hat super geklappt.

Eine Frage hätte ich noch, passt zwar jetzt nicht direkt in dieses Thema, wollte aber kein eigenes eröffnen.

Gibt es eine möglichkeit in einer Funktionblock auf Konstanten zuzugreifen ohne diese an diesen zu übergeben?


mfg
 
Wie "an diesen Übergeben?"
Ohne dass die Konstanten an die Library gebunden werden?

Dafür gibts 3 Möglichkeiten:
- Konstanten von anderen Libraries verwenden - dadurch erzeugst Du eine Abhängigkeit zu dieser Library (achtung: bei den Abhängigkeiten sollte immer "von Version x.xx" & "zu allen neueren Versionen" eingestellt werden, sonst kann man später böse Überraschungen erleben)
- C-Libraries erstellen - in den C-Quelltextdateien lassen sich dann "lokale" Konstanten definieren
- Konstanten so definieren, dass sich aus dem Namen der Konstante von vornherein auf die Library zurückschließen lässt (sodass niemals Konstanten von 2 Libraries beansprucht werden) - B&R macht das generell bei den AS-Libraries (z.B. bei alle Acopos-Parameter-IDs beginnen mit dem Präfix ACP10PAR_)


mfg Maxl
 
Sorry für die undeutliche Formulierung!

ich möchte die Konstanten und Variablen (die aus diesen Berechnet werden) zentral in einer Datei speichern z.B. config.st.

Und die Konstanten die ich dort definiert habe möcht ich dann natürlich auch in meinen Libraries verwenden.

Jedoch schein es so als wenn er diese dort nicht kennt obwohl ich diese als global deklariert habe.

mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo fighter,
eine Library ist etwas eigenständiges, sie kann maximal von anderen Libraries abhängig sein; zB. ist eine Library in der du Funktionen der CAN_LIB benutzt von dieser abhängig, sprich deine Library funktioniert nicht ohne der anderen.

Du vergibst jetzt in deinen Projekt eine globale Konstante die du in deiner Lib nutzen möchtest, jetzt wäre deine Lib von deinem Projekt abhängig, da ja in diesem die Konstante deklariert ist, das geht nicht. Du musst deine Konstanten/Variablen über Funktionsparameter übergeben.

BTW: Libs sind etwas funktionielles, sie enthalten Code die du in anderen Projekten wieder verwenden kannst. Ich würde auf keinen Fall projektgebundene Funktionen in eine Library auslagern.

Grüsse, harrylask
 
bei den konstanten handelt es sich um skalierungen von Druckaufnehmern usw.

Wie könnt ich sowas sonst machen ohne diese zweimal zu definieren?
Es sind ca. 50 verschiedene Konstanten.

mfg
 
Ich kann dir jetzt nicht folgen warum du jetzt auf ein Datenobjekt zurückgreifen willst, erklär mal genauer was du vorhast.

Eine Frage hätte ich noch, passt zwar jetzt nicht direkt in dieses Thema, wollte aber kein eigenes eröffnen.

... würde ich jetzt doch machen ...
 
bei den konstanten handelt es sich um skalierungen von Druckaufnehmern usw.

Wie könnt ich sowas sonst machen ohne diese zweimal zu definieren?
Es sind ca. 50 verschiedene Konstanten.

Skalierungskonstanten haben meiner Meinung nach in Libraries ohnehin nichts verloren! Zum Skalieren wäre wohl der fertiger Skalier-FUB LCRScale aus der Library LoopConR am einfachsten (die Skaliergrenzen sind hier als Parameeter anzugeben). Der Aufruf kann dann am einfachsten aus einem C-Task heraus erfolgen, in dessen .h-File kannst Du kann Deine Konstanten definieren.

Warum willst Du diese Konstanten in Libraries verwenden? Libraries bei B&R sind völlig eigenständig (nicht zu verwechseln mit FCs bei S7). Daten oder Konstanten aus dem "normalen" Programm können lediglich per Parameter übergeben werden.
Definitionen von Prozessrelevanten größen (wie z.B. Skalierwerte von Sensoren) haben in Libraries nicht verloren!!!!
 
Zurück
Oben