変数のリンク
タスクの変数とI/O変数との関係
TwinCATでは、PLCやC/C++などのタスクの変数やI/O変数がどのアドレス(チャネル)に割り付けられているかということは考えたり、設計したりする必要はありません。タスクの変数とI/O変数はリンク (Link) で関係付けを行い、タスクの入出力を実I/Oの入出力にします。
タスクとI/Oの場合はそれぞれの出力変数間または入力変数間をリンクします。タスク間で変数を交換する場合は入力変数と出力変数をクロスしてリンクします。(例: PLCタスク1の出力変数をPLCタスク2の入力変数としてリンク)
タスクの作成
ここでは例示のため、タスクを追加します。
「SYSTEM」内の「Tasks」を右クリックし、「Add New Item」を選択します。
「With Image」にチェックを入れて「OK」をクリックします。
1bitの変数と1Byteの出力変数をそれぞれ1個追加します。
まず、1bitの出力変数を追加します。
タスク内の「Outputs」を右クリックし、「Add New Item」を選択します。
「Insert Variable」ダイアログで、「BIT」を選択し、「OK」をクリックします。
同様に、「BYTE」の出力変数を追加します。
上の図のように1bitと1Byteの出力変数を定義が完了しました。
(この例では、わかりやすいように変数名を変更しています)
リンクの手順
Term 2 に1bitの出力変数を8個、Term 3に1bitの出力変数を2個持つターミナルがあり、これらの物理的なI/Oの変数とタスクの変数をリンクします。
I/Oとタスクの変数型が一致する場合
一般的にはタスクとI/Oの変数は同じ型を使用します。
I/O変数とタスク変数の型が一致する場合は、変数のリンクはそのいずれからでも設定できます。
ここでは、タスク変数「Var 1bit」からTerm 2の変数をリンクします。
タスクの出力変数「Var 1bit」を右クリックし、「Change Link」を選択します。
「Attach Variable (変数名)」ダイアログがオープンします。
デフォルトでサイズが一致する変数が表示されます。 (Matching Size)
Term 3の出力変数1bitめを選択し、「OK」をクリックします。
下の図のように、タスクとI/Oの両方でリンク済みの変数に矢印のマークが付き、リンク済みであることが表示されます。
タスクの変数
ターミナルの変数
複数のI/O変数を1つのタスク変数に割り付ける場合
デジタルI/Oなどの1bitの変数をまとめてByteやWordに割り付けることができます。
ここでは、1Byteのタスク変数にTerm 2の1bit変数8個をリンクします。
この場合、1Byteの変数側からリンクの設定を開始します。
前述の方法と同様に「Var 1Byte」を右クリックし、「Change Link」を選択します。
「Maching Size」(リンクする変数の型が一致) のチェックを外し、「All Types」(全ての変数型) をチェックします。
「Continuous」をチェックし、複数選択した変数が連続してマッピングされるようにします。
1bitめの変数をクリックし、シフトキーを押しながら8ビットめの変数をクリックして8bit全てを選択し、OKをクリックするとリンク設定が完了します。