現在のサイクルタイム値など、ターゲットの状態を取得する方法



ISaGRAF Ver.4/5の場合
グローバルなシステム変数があり、プログラム内からそれらを読み書きするようにします。これらの変数はターゲットのソースの dsys0def.h ファイルで定義されています。
変数名
データ型
属性:
R=Read W=Write
意味
__SYSVA_RESNAME
STRING
R
リソース名(最大255文字)
__SYSVA_SCANCNT
DINT
R
入力スキャンの回数
__SYSVA_CYCLECNT
DINT
R
実行したサイクルの回数
__SYSVA_KVBPERR
BOOL
R/W
バインディング変数のプロデューサエラーの有無
__SYSVA_KVBCERR
BOOL
R/W
バインディング変数のコンシューマエラーの有無
__SYSVA_TCYCYCTIME
TIME
R/W
設定されているサイクルタイム値
__SYSVA_TCYCURRENT
TIME
R
現在のサイクルタイム値
__SYSVA_TCYMAXIMUM
TIME
R
スタートしてからの最大のサイクルタイム値
__SYSVA_TCYOVERFLOW
DINT
R
サイクルタイムオーバーフローの発生回数
__SYSVA_RESMODE
SINT
R
リソースの実行モード。
0= 実行可能なリソースがない
1= 格納されているリソースが使用されていない (CMG)
2= 実行可能状態
3= リアルタイムモードで実行中
4= サイクルモードで実行中
5= 実行中にブレークポイントで停止中
-1= 致命的なエラー
__SYSVA_CCEXEC
BOOL
W
サイクルモード実行時に1サイクルを実行
__SYSVA_WNGCMPTNM
STRING
R
コンポーネント名の警告
__SYSVA_WNGCMD
SINT
R/W
コマンドの警告
__SYSVA_WNGARG
DINT
R
警告のアーギュメント
__SYSVA_WNGNUM
DINT
R
警告数
      1. これらの変数を辞書で明示的に登録する必要はありません。
      2. 変数名は全て "__SYSVA_"で始まります。
      3. デバッグ時にはワークベンチでこれらの変数の状態を参照することができます。「デバッグ」メニューの「診断」を開き、「システム変数」で表示されます。
      4. これらの変数を参照できる言語はST言語からのみです。また、スパイリストに登録することはできません。
      そのかわり、プログラム中で他の変数に一旦代入することで間接的に参照することができます。
      【例】
      __SYSVA_TCYCYCTIME := modiftim; (* 現在のサイクル設定値の変更 *)
      t2:= __SYSVA_TCYCURRENT ; (* 実際にかかったサイクルタイムの取得 *)
      d1:= __SYSVA_TCYOVERFLOW ; (* サイクルタイムオーバーフローの数 *)
      5. __SYSVA_CCEXECは、STプログラム中で使用しても意味がありません。これは、プログラム自身がサイクルモードだと、このコマンドを実行できないためです。この変数の利用手段は、外部アプリケーションがIXLインタフェースを経由して値を書きこむことです。
最終更新:
2008-07-31 15:16
改訂:
1.1
評価点数: 5 (1 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ