C#でのタイマーについてお聞きしたいです。 PCに外部I/Oを持たせ、0.1秒間隔でON/OFFを繰り返し PCの生存確認を外部でおこないたいです。

パソコン | C言語関連138閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

外部IOはイーサネットを通じておこないます。 相手側はPLCで上位リンク機能を使用し、PLC内のIOを PCからON/OFFで書き込みを繰り返します。 ちなみにPCアプリ内の±何ms程度が可能なのでしょうか。

ThanksImg質問者からのお礼コメント

ご回答ありがとうございました。 時間制度もある程度わかったので 一度、PLCで精度検査をしてみます。

お礼日時:2019/12/13 9:11

その他の回答(2件)

まず第一に、生存確認の周期が0.1秒間隔で必要なのか?はしっかり検討されましたか? 逆に言えば0.1秒のダウンも許されないのでしょうか?0.1秒あれば例えばスタンバイのPCに切り替えられるのでしょうか?だとすればそもそも別の手を考えた方が良いかと思いますが? 次に、PCのタイマーがさほど正確ではないのは確かですが、100msを刻む内に10msもずれる、などと言うほど不正確ではないのでその点、どこまでのズレが許容できるのかによって話は変わってきます。

正直なところ生存確認の0.1秒は必要ありません。 生存確認タイムアウトエラーはおよそ3~10秒ほどと考えております。 延長上で今後、タイマを使用する際、C#での性能を知りたいと思います。

PCのタイマーがズレることを想定して、外部ハードウェアを設計して下さい。 極端な話、PCからは0.1秒周期、ハードウェアは1秒間(1分でも?)ON/OFFが切り替わらなかったらPCは死んでいると判断する設計でも可能です。 さすがに、PCのタイマーがズレると言っても、私が刻むハイハットより正確です。 設計には安全マージンという物が必要です 0.1秒周期で出しているのなら、10倍で1秒、100倍で考えれば10秒間待っても切り替わらなければPCが死んでいると設計すれば良いわけです。