用語集
せっと
SET
使用可能データ
設定データ | 使用可能データ | ||||||||||
ビットデバイス | ワードデバイス | 定 数 | 計算式 | ビット条件式 | 比較条件式 | ||||||
16ビット整数型 | 32ビット整数型(L) | 64ビット浮動小数点型(F) | フリーランタイマ | 16ビット整数型(K/H) | 32ビット整数型(K/H,L) | 64ビット浮動小数点型(K) | |||||
(D) | ○ | - | - | - | - | - | - | - | - | - | - |
(S) | ○ | - | - | - | - | - | - | - | - | ○ | ○ |
○:設定可
PXは書込み不可のため、(D)に使用できません。
M2001~M2032などのシステムデバイスを、(D)に使用できません。
実体ファイル:公開Data集/用語集/inc/デバイス/SET
関連用語:「RST」「OUT」
関連記事:
参考文献:
関連サイト:
投稿者:なーお 投稿日:2008年1月28日() 閲覧回数:6754
コメント一覧
なーお
投稿日時 2008/3/19 7:16 | 最終変更
SET/RSTで重要な使い方があります。
例えば、G箱内の最終行で以下のような記述をしたとき
SET M100=!M200 //M100:自プロセスでの占有フラグ、M200:他のプロセスで占有中フラグ
このとき、M200というインタロックフラグで他のプロセスが占有していなければ、M100という占有中フラグをセットして、以下に移行する、というものです。SFC内のインタロックは、この考え方一つが基本になります。
一方、以下のようなものは、同じことをやっているようですがSFCの移行中に衝突が生じてインタロックとしては成立しません。
G !M200 //M200:他のプロセスで占有中フラグ | F SET M100
↑の方法では、Gで条件を確認して移行中にメイン周期の関係で中断すると、他のプロセスで同様にM100のオフを確認して移行したり、やSFC以外のシステム側の変化などで衝突が発生してしまいます。
特に、イベントタスク(イベントSFC)を使った場合は、F-Gが1セットの移行数なので連続移行数の最後にGを評価して途切れてしまい、次のFを実行した時には状況が変わってしまう可能性があるので、要注意です。
この辺でハマると非常に厄介なので、素直に SET M100=!M200 的なインタロックを使っていくことをお勧めします。