こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

リモートデスクtップ接続とRS-232C通信

サーバー(Windows2012Server)--(無線)--Windows10==(RS232C)==計量器
この接続間で、Windows10から計量値取得コマンドを計量器に投げるところで、
「デバイスが存在しない」(GetLastErrorで1167が返ってくる)となります。

ただし、本現象が必ず起きるわけではなく、1回/数日ぐらいのペースで発生
します。
本現象がおきるとWindows10でRDPで起動しているアプリケーションがフリーズ
してしまいます。
対処のしかたでよい方法があれば、教授いただきたく。

投稿日時 - 2019-03-06 16:19:26

QNo.9594264

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

今回の構成で、現象発生時にRDPのアプリケーションが固まってしまっていることから、RDP通信がうまくCOMの通信を転送できていない状況の為と考えられます。可能であれば無線LANを有線化する切り分けの実施が必要と思います。
2400bpsのボーレートに関して2秒のタイムアウトが適切かどうかはすみません。よくわかりません。

投稿日時 - 2019-03-11 12:11:45

補足

mabyos様 回答ありがとうございます。
毎回起きる現象でないことから、ハード面とソフト面の両面より追跡を行っています。
無線LANですが、他のマシンも無線LANで接続されており、環境的には問題ないかと考えられます。
今回の問題がおきているマシンは秤量器との通信を行っているマシンにのみに限定されています。

問題はプログラム中の2か所でおこる可能性があります。
1.OPENしたデバイスに対してコマンドを書き込む
2.OPENしたデバイスに対してコマンドを書き込むが、タイムアウトを起こす
OPENしたデバイスを持ち回ってのコマンドの書き込みなので、1.については(限りなく)起きないと想定できます。
対して2.は他者様の回答より、ネットワークやCPU負荷などによりタイムアウトが発生する可能性があるとのこと
で、2のタイムアウトにもう少し下駄をはかした値を設定する方向で調整しております。
※無線LANでの使用は客先所掌であり、こちらからはアドバイス程度の権限しかありません。

投稿日時 - 2019-03-11 12:48:45

ANo.6

秤量器とのIFはデバイスをOPENして、デバイスに書き込み/読み込み、最後にCLOSEする

上記の処理を実行するアプリケーションはサーバ上で動作するアプリケーションではなく、
Windows10側のクライアントで動作するexeということでしょうか?
それとも、サーバ上で動作しているexeかを確認させて下さい。

COM通信するアプリケーションがサーバ上で動作しているのであれば、RDPは関係しますし、サーバとWindows10との通信も関係します。

投稿日時 - 2019-03-08 21:20:28

お礼

mabyos様 回答ありがとうございます。
APはサーバー上で動作するexeです。RDP接続でサーバーとWindows10間を接続し、さらに、
Windows10と秤量器をRS232Cで接続しています。

1つ気になったことがあります。
Windows10と秤量器間の通信で、ボーレート=2400で、タイムアウトが2秒でマスタ定義されています。
この2400の速度に対して2秒のタイムアウト値は遅いと感じるのですが・・・

投稿日時 - 2019-03-11 08:50:40

ANo.5

>APを疑いはしたのですが、毎回起きるわけではないので、バグの可能性は低いと考えます。

私も様々なソフトを開発してきましたが、毎回起きるかどうかは条件次第ですから、それだけでは判断できません。
例えばネットワーク通信の負荷が一時的に上がる場合があり、その影響で間接的に伝わって232cでの通信に影響が出ているといった可能性も考えられます。

投稿日時 - 2019-03-08 09:54:52

お礼

unokwave様 回答ありがとうございます。
発生条件については確かにソフトだけではなく、ハード面からの疑いもあります。
現在、現場で本現象が発生した場合、各種ログを取得してもらうようお客様にお願いをしております。

投稿日時 - 2019-03-08 10:25:44

ANo.4

リモートデスクトップ接続時にローカルのcomポートへのマッピングが失敗していないでしょうか。

アプリケーション側でエラーが捕捉できているなら、起動時にチェックし、エラーの場合に再接続を促すメッセージを出すことも可能かと思います。

切り分けとして有線LANで安定するかも確認されてはいかがでしょうか。

投稿日時 - 2019-03-06 21:20:53

お礼

mabyos様 回答ありがとうございます。
ローカルのCOMポートへの「OPEN」は成功しており、次に秤量値を取得するためのコマンドをデバイスに
書き込むところでエラーになっています。
確かにAPでエラーが拾えているので、エラー時は再度、同操作をしていただくという逃げてを考えています。
※最初、私もサーバーとWindows10間を疑ったのですが、それは間違いで、Windows10と秤量器間のエラーで
 した。

投稿日時 - 2019-03-08 09:04:02

ANo.3

RDPは関係なさそうですね。
RS232やパラレル(死語)はクリティカルな処理が可能な反面、エラー処理がマズイと固まりやすいですね。計量器のI/Fを検討した方がいいですね。

投稿日時 - 2019-03-06 21:14:22

お礼

chachaboxx様 回答ありがとうございます。
確かにRDPは関係ありません。秤量器とのやりとりの中でのことです。
秤量器とのIFはデバイスをOPENして、デバイスに書き込み/読み込み、最後にCLOSEするといった
単純なつくりなのですが、この方式はすでに100以上のお客様に導入しており、今回の現象は初めておきた
ことです。(なので、逆にハード面など不具合も考察の1つに入れています)

投稿日時 - 2019-03-08 09:08:01

ANo.2

RS232Cは、とても雑電磁波に弱い接続方法です。
護るためのシールド付きのケーブルもありますが、取り合えずばアルミホイルで被ってみては?

投稿日時 - 2019-03-06 20:44:29

お礼

potatorooms様 回答ありがとうございます。
RS232C通信は昔からある通信方法で、ケーブルに問題があるとは考えにくいです。
本システムはすでに100以上のお客様に導入しており、今回の現象は初めてです。
基本的には、APで逃げるつもりで考えています。

投稿日時 - 2019-03-08 09:12:43

ANo.1

232c接続しているアプリ自体にあるバグの影響に見えます。

投稿日時 - 2019-03-06 19:17:05

お礼

unokwave様 回答ありがとうございます。
APを疑いはしたのですが、毎回起きるわけではないので、バグの可能性は低いと考えます。

投稿日時 - 2019-03-08 08:53:40

あなたにオススメの質問