0
私がしたいことは、タグ名が与えられたときに入力ポイントの信号を読み取るFBを作成することです。 たとえば、タグ名が "I_motor_sensor"である場合、 "I_motor_sensor"がRead_I_Point FBに送信されると、FBは現在のステータスを返します。これを行う方法はありますか?TwinCATでRead_I_Point FBを実装する2 BeckHoff PLC
私がしたいことは、タグ名が与えられたときに入力ポイントの信号を読み取るFBを作成することです。 たとえば、タグ名が "I_motor_sensor"である場合、 "I_motor_sensor"がRead_I_Point FBに送信されると、FBは現在のステータスを返します。これを行う方法はありますか?TwinCATでRead_I_Point FBを実装する2 BeckHoff PLC
はい、DataExchangeライブラリのFB_ReadAdsSymByNameブロックを使用してシンボルを読み取ることができます。 Info here.。 1回以上のスキャンが必要になるので、「重い」と考えるべきです。
すぐに読みたい場合は、初期化ルーチンで関心のある変数への参照を1つ作成し、キーを使用してアクセスします(文字列を使用します)。
私の自由に利用できるライブラリにTwinCAT3ディクテーションクラス、Intecre Utilities, available hereがあります。あなたはTC2のためにそれを適応させることができます。
ありがとう、MaTazz、それは答えです。あなたが言及したように、それは複数のスキャンを取る、私はそれを使用しません。私はTC 3をまだインストールしていないので、後であなたのライブラリをチェックアウトします。最初の入力ポイントにポイントポイントを使用して、正確に入力値を取得するためのインデックスを追加することは可能ですか? –
こんにちはサンハオ。あなたはおそらく10のデジタル入力を持っていると思いますが、ポインタインデックスを使って価値を得ていますか?このようなことは可能ですが、いくつかの方法があります。もう少し安全な方法は、boolの構造体を作成し、これをAT%I *と定義し、それらを入力に接続することです。または、名前を気にしない場合は、boolの配列を作成して公開することができます。すなわち、myInputs AT%I:BOOLのARRAY [0..5]。これはTwinCATのバージョン間でもう少し移植性があります。ありがとうございます。 –
これを行うには、配列を使用するのが安全な方法です。これにより、BeckHoff PLCはOMRON PLCのようになります。配列はIOステータスを保持し、タグはIOアドレスを使用して配列内のIOポイントの現在のステータスを検出します。 –