Im Versuch, eine TwinCAT 3 Bibliothek zu erreichen, die Konstanten tut Dinge global im Hauptprojekt definiert, wie Arrays die Größe dieser Konstanten zu schaffen und Radfahren Trog sie. Aber ich war erfolglos und ich frage mich, ob das gemacht werden kann. Ich bekomme nur diesen Fehler "Fehler 4 Border 'cPassedConstant' des Arrays ist kein konstanter Wert", wenn ich versuche, das Hauptprojekt zu erstellen. Der Fehler kommt von dem Array, das in der Bibliothek definiert ist.auf Bezug einer konstanten aus der Bibliothek, TwinCAT 3
Ich habe versucht, eine GVL mit einer konstanten des gleichen Namens in die Bibliothek zu machen und dann die „externe Implementierung“ Eigenschaft true setzen, aber das hilft nicht.
hier Mein Ziel ist es, eine IO-Management-Bibliothek mit Filtern und so zu machen. Und dann könnte ich es einfach zum Hauptprojekt hinzufügen und einige Konstanten wie "cDigitalIputsCount", "cAnalogInputCount" und so weiter definieren.
Ich verstehe das Problem nicht wirklich. Arrays, die Konstanten verwenden, sind auch dann möglich, wenn sich die Konstante in der Bibliothek befindet. Können Sie bitte einen Code mit klarer Trennung angeben, was in der Bibliothek ist und was in dem anderen Projekt ist? –
Ich möchte speziell, dass die Konstante im Hauptprojekt definiert ist und von der Bibliothek verwendet wird. Sagen wir, ich möchte ein System mit zB 10 analogen IOs erstellen. –
...Ich würde dann meine IO-Bibliothek zum Hauptprojekt hinzufügen, definieren Sie eine globale Konstante cAINs: UINT: = 10; und dann in MAIN würde ich PRG_IO POU aufrufen, das sich in der Bibliothek befindet. In PRG_IO wäre ein ARRAY [1..cAINs] von FB_AnalogIn, das in einer for-Schleife ausgeführt würde. Auch in der Bibliothek würde eine Funktion F_GetAnalogIn vorhanden sein, die den gefilterten/skalierten AI-Wert für den FB erhalten würde. Punkt ist, dass ich einfach ein IO-System mit einer variablen Anzahl von IOs erstellen konnte, indem ich einfach die Bibliothek einfügte, einige Konstanten definierte und PRG_IO aufruft. Verstehst du das jetzt? –