私は、メインプロジェクトで定義されているグローバル定数を使用して、それらの定数のサイズの配列を作成し、それらを循環するようなものを実行するtwincat 3ライブラリーを達成しようとしています。しかし、私はうまくいっていないし、これができるかどうか疑問に思います。私はちょうどこのエラーを取得 "私はメインプロジェクトを構築しようとすると、配列のエラー4ボーダー 'cPassedConstant'は定数値ではありません"。エラーは、ライブラリで定義された配列から発生します。ライブラリーから定数を参照すると、twincat 3
ライブラリーと同じ名前の定数を使用してGVLを作成し、「外部実装」プロパティーをtrueに設定しようとしましたが、それは役に立ちません。
ここでの目標は、フィルタリングなどでIO管理ライブラリを作成することです。そして、私はそれをメインプロジェクトに追加し、 "cDigitalIputsCount"、 "cAnalogInputCount"などの定数を定義することができます。
私は本当に問題を理解していません。定数がライブラリ内にあっても、定数を使用する配列は可能です。ライブラリにあるものと、他のプロジェクトに含まれているものとを明確に区別してコードを提供してください。 –
私は特に、定数がメインプロジェクトで定義され、ライブラリによって使用されるようにしたいと思います。たとえば、10個のアナログI/Oなどのシステムを作成したいとします。 –
...次に、私のIOライブラリをメインプロジェクトに含め、グローバル定数を定義します。CAIN:UINT:= 10; MAINでは、ライブラリにあるPRG_IO POUを呼び出します。 PRG_IOにはforループで実行されるFB_AnalogInのARRAY [1..cainss]があります。また、ライブラリにはFBのフィルタリングされた/スケーリングされたAI値を取得する関数F_GetAnalogInがあります。いくつかの定数を定義してPRG_IOを呼び出すだけで、ライブラリをインクルードするだけで、IOの可変数のIOシステムを簡単に作成できるということです。あなたは今理解していますか? –