ISaGRAFでは他のプログラム言語同様、パソコンのハードウェア(シリアルポートやディスク)も制御できるか?


可能です。ファイル入出力の命令もあります。
ただ、IEC61131-3言語のみを使用する場合、いくつか制限があります。
  • 割込の処理が出来ません。
  • 同一のI/O出力ポートには1サイクルタイム中に1回しかデータを出力できません。
  • 1個のプログラム上に続けてI/O出力の命令を書いても、後に書いた方の値が出力されるだけです(下図をご覧ください)。
  • 連続アクセスが必要な周辺ICなどへのアクセスにはプログラム上工夫が必要になります。
  • 同一のI/O入力ポートは,1サイクル中はISaGRAFアプリケーションから見た場合、I/Oの値は変化しません(下図をご覧ください)。
    I/O(入力)値を入力スキャンで内部バッファにコピーします。PLCプログラム実行値はこの内部バッファの値を参照しています。I/O(出力)も同様で、プログラム実行中はとりあえず内部バッファに値が書き込まれ、出力スキャンで実際の出力が行われます。
  • C言語のライブラリにあるようなOSのファンクションコールなどの命令はありません。
そのため、下記のような方法をもちいます。
  • 各種I/OにアクセスするためのI/O開発キット(オプション)でドライバを作る。
  • C言語ファンクション/ファンクションブロック(CF/FB)を作り、その中でパソコンをコントロールする。ただし、OS依存のプログラムになってしまいます。また、制御のサイクルタイムが保証できなくなります。
  • マルチタスクOS、例えばWindowsNTを使い、制御以外の部分を別言語で作る。
最終更新:
2009-03-19 12:24
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

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

タグ