tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル通信中に電源OFFで異常
記事No14636
投稿日: 2010/04/16(Fri) 17:03
投稿者Macky
VB6 SP6 にてRS-232C通信するソフトを作成し運用しています。
このソフトはXP上で動き、DOS-PCからRS-232C経由でデータを受け取っています。
このソフトは起動すると通信ポートを開き、常にデータ受信を出来るように待機しています。

通常はこのソフトを終了させ(内部的には通信ポート閉じている)、その後PCの電源を落とすのですが、たまにこのソフトを終了させずに(PCも起動したまま)工場電源がOFFされて、PC電源も強制OFFされる事があります。

この場合、次回起動時にこのソフトは異常となり、「パスが見つかりません」とかのエラーを表示し、OKを押すと通常の画面表示まではするのですが、通信は出来ない状態となってしまいます。この後は再起動してもこの症状が発生します。

EXEファイルをWindws2000等の互換モードで起動すると症状がなくなり、正常に通信出来るようになり、その後、互換モード設定を無しにしても通信は出来ます。
正常なファイルを上書きするだけでは、正常には戻りません。

この様な現象への対処方法をご教授頂けないでしょうか。宜しくお願い致します。

[ツリー表示へ]
タイトルRe: 通信中に電源OFFで異常
記事No14637
投稿日: 2010/04/16(Fri) 17:44
投稿者ハツ
> この様な現象への対処方法をご教授頂けないでしょうか。宜しくお願い致します。

とりあえず、ログを吐くようにして、人為的に同じ状況を作り出した上で、
どの部分でエラーとなっているのか切り分けた上でソースを提示しないと、
誰も何もできないんじゃないですかね?
エスパーじゃないですし。

[ツリー表示へ]
タイトルRe^2: 通信中に電源OFFで異常
記事No14642
投稿日: 2010/04/21(Wed) 10:26
投稿者Macky
> とりあえず、ログを吐くようにして、人為的に同じ状況を作り出した上で、
> どの部分でエラーとなっているのか切り分けた上でソースを提示しないと、
> 誰も何もできないんじゃないですかね?
> エスパーじゃないですし。

ご教授有り難うございます。
もう少し詳しくエラー内容を検討してみます。

[ツリー表示へ]
タイトルRe: 通信中に電源OFFで異常
記事No14638
投稿日: 2010/04/17(Sat) 20:38
投稿者オショウ
> この場合、次回起動時にこのソフトは異常となり、「パスが見つかりません」とかのエラーを表示し、OKを押すと通常の画面表示まではするのですが、通信は出来ない状態となってしまいます。この後は再起動してもこの症状が発生します。
>
> EXEファイルをWindws2000等の互換モードで起動すると症状がなくなり、正常に通信出来るようになり、その後、互換モード設定を無しにしても通信は出来ます。
> 正常なファイルを上書きするだけでは、正常には戻りません。

  ハード的要因に起因するようにも見えますが・・・
  PC側のシリアル通信ポートは、通常のCOM1?とか?
  それともUSBタイプの変換アダプタ使っているとか?

  次にソフトを互換モードで起動すると動作する・・・というのも
  不可思議ですネ!〜

  FA関係で20年以上通信に関わるソフトを制作していますが、
  大抵ハード的要因で、いろいろなトラブルがありましたが、今回
  のケースはお初にお目にかかります。

  UPS入れるとかして、強制電源オフだけは回避するのがよい様
  に思います。一次側電源がオフした場合、UPSの設定でイベン
  トログに電源異常のメッセージが出力されますので、それを監視
  して、プログラム側で自動的に終わるようにするとか・・・

  あと、Windowsメッセージに電源断に関わるメッセージが流れたと
  思いますので、それを検出するようにして終わらせるとか・・・

※ 工場では、原動停止があるのに、稼働中のPCなんかほったらかし
  で、次回起動できなくなり、PCの補修に何回ハシラされたことか

※ VB6で上記の機能うぃ作ることは可能ですが、少々厄介ですネ!
  VB.NETなら簡単にできてしまうんですが・・・

以上。

[ツリー表示へ]
タイトルRe^2: 通信中に電源OFFで異常
記事No14643
投稿日: 2010/04/21(Wed) 10:52
投稿者Macky
ご回答有り難うございます。

通信ポートは通常のCOM1で、変換アダプタは使っていません。

UPS導入・電源断時に終了処理する という手もやりたいですが、客先設備の為入れさせてもらえるかどうか・・・

以下の様に対処してみます。
・別PCを持ち込んで同様のエラーが発生するか検証
 →発生しないなら、PC変更
・PC再起動時に、強制的に互換モードを書き換えてEXE起動する処理追加
・特定の曜日・時間になると、受信用ソフトを自動終了させる機能追加
 ※工場電源が切られる前に、自動で終了させる

ご協力ありがとうございました。

[ツリー表示へ]