複数ターゲット間でI/Oを共有する場合の注意


マルチタスクシステム上では、複数のターゲット間で同じI/Oボードを使用する場合がありえます。このとき、同じI/Oに異なる値を出力しようとすると不整合が起きてしまいます。標準のISaGRAFのカーネル自身には、このようなアクセスの競合を管理する機能はありません。I/Oドライバ側でこのような機能を作りこむ必要があります。
一般的な実現方法は、I/Oドライバ(主に出力ボードの場合)に、アプリケーション間の優先度を指定するようなOEMパラメータをI/Oドライバへ付加することです。このパラメータで、ターゲットの優先度に応じて物理的なI/Oアクセスを有効にしたり、無効したり、切り替えられます。

このような管理は、C言語ファンクション/ファンクションブロックの場合にも当てはまります。一般的に複数のファンクション間で、コンピュータのある資源を共有する場合は、何らかの排他制御が必要になります。
最終更新:
2008-07-30 09:20
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

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

タグ