[18918]
MSComm32.ocxについて
投稿者:タビ猫ちゃん さん
2001-10-22 18:07:01
Excel97/2000からRS232C接続機器のデータを取り込みたいと思って
EXCEL232という実習セットを購入して”実習”してみております。
宣伝するわけではないのですが、デジタルマルチメータのデータが
簡単にExcelの表に取り込める、大変面白い、勉強になるセットです。
ところで、DOS/V機ではWindows98でうまく動作するのですが、PC-9821Xnの
Windows95上では動作しないのです。
Excelの、MSCOmm32.ocxを使ったマクロ(VBA)から
COM1のBAUDレートなどを設定しようとするとエラーメッセージがでますので、
MSComm32.ocxがPC-9821には対応していないのではないか、
と考えているのですが、どなたかこの問題について経験のある方、
教えていただけませんか?
-
かげまる さん
2001-10-22 20:47:24
アプリケーションレベルであるエクセルのocxでは機種依存問題は出ないのでは・・?
(某office xpも)
出るとしたらその「機器」のドライバのレベルから下ですよね。
そのRS232Cに接続する計測機器とEXCEL232というメーカーは同じですか?
検索しても見つからないので、メーカーサイトがあったら挙げると分かりやすいかと思います。
-
エクセリア さん
2001-10-23 10:01:52
Windows95は無印またはOSR1ですよね?
Windows95アップデートモジュール(PC-98)
http://www.microsoft.com/japan/win95/modules/pc98.htmのシリアルポート関係のアップデートは行いましたか?
-
タビ猫ちゃん さん
2001-10-23 13:56:18
怒られるかなと思って書かなかったのですが、OSR2です。
私が購入したRa266に同梱されていたものです。
接続される機器はRS232ポートのついたデジタルマルチメータで、
ドライバはいらないものです。
-
エクセリア さん
2001-10-23 17:49:47
それだと、当然ながら対応外OSなので何があってもおかしくは無いという所ですが・・。
使用権の問題もありますし、OSR1に差し戻された方がよいですね。またはWindows98以降にしましょう。Windows98もPC-9821Xnは対応外ではありますが、こちらだとまだ動作する可能性があるでしょう。
あとは、MScomm32.ocxのバージョンが古いとかの可能性がありますが、そのあたりはどうですか?PC-9821Xn側のExcelのバージョンがかかれていないので、アレですが、VisualStudio6.0SP3や、Office97/2000のサービスリリースとかも入れてみましたか?
-
タビ猫ちゃん さん
2001-10-23 20:28:21
PC-9821Ra266、Windows98SEを使ってテストしてみました。
1.2GByteのハードディスクを使うため、Xn、Windows95にこだわってました。
ADR-100というデータロガーから9600bpsでデータが取り込めることがわかりました。
でも、データ落ちがありました。VBAプログラムの側に問題があるかもしれません。
デジタルマルチメータからのデータの取り込みはやはりダメでした。
このVBAプログラムではserialポートを600bpsに設定して使うのですが、
PC-9821,DOS/VのWindows98SEとも600bpsの設定のエントリーはないのです。
でもDOS/V機では動作するのです。さて、どう考えたらよいものやら、です。
-
SPCC さん
2001-10-24 00:57:26
憶測でのカキコなのですが。
Win95or98でのRS-232Cはデータの取りこぼしがあると聞いてます。
600bps指定が有ることは、かなり低速にしないと使えないかもしれません。
>取りこぼしの有無
マシン性能に差がありませんか?
-
ma_hi さん
2001-10-24 11:31:57
で、一点確認ですが、
>PC-9821,DOS/VのWindows98SEとも600bpsの設定のエントリーはないのです
MSCOMM32のプロパティにない、ってことでしょうか。それとも、デバイスマネージャーのCOMMポートに設定がない、ということでしょうか。
後者で有れば、仕様!です。
-
ma_hi さん
2001-10-24 11:43:41
>600bps指定が有ることは、かなり低速にしないと使えないかもしれません
計測装置って、結構600bpsとか1200bpsで使用されることが多いです(遅いor速いの問題ではなくて。信頼性ですな)。
PDCも600bps通信ですからねぇ。
ADR-100は、恐らくトラ技の配布品だと思いますが、あれは確かハンドシェイクはやってなかったと思います。MSCOMMのプロパティ(メソッドだっけ?)で、受信バッファを多めに取るとか、FIFOバッファを増やしたり切ったりしてみるのも一つだと思います。
ちなみに、MSCOMM32は、Xa9+Win95a+VB6.0で使ったときには300bps~115,200bpsで動作してました。
-
タビ猫ちゃん さん
2001-10-24 18:38:40
ここにVBAのソースをのせて議論してもらうのがよいのですが、当方はExcelの
VBAのプログラミングをまだしたことがなく、EXCEL232に付属のサンプルの
ソースをみて、少しいじり始めたばかりなのです。
ma_hiさんのレスではPC-9821でも問題なくいきそうなので安心しました。
VBAのプログラムから、comポートを600bpsに設定できない(させない)のが
問題なのかもしれません。Windows95,98で、デバイスマネージャでの
ボーレートの設定の選択タブは110,300,1200,2400,~となっており、
600がありません。
ADR-100は昨年のトラ技の配布で求めた物です。
VBAのプログラムで9600bpsが設定できた(?)、
(設定の前に9600bpsになっていた)ので動作したのでしょう。
-
ma_hi さん
2001-10-25 10:29:48
Win98SEではやったことはないのですが、MSCOMM32に600bpsを渡して、そこでどんなエラーが出るのでしょうか。
他のビットレートでポートをオープンして問題はないのでしょうか?(データの転送は伴わなくても、オープン/クローズは処理できるはずです。タイムアウトは起こすかもしれませんが)。
-
タビ猫ちゃん さん
2001-10-25 18:16:44
pc-9821Xn,Windows95 OSR2, 素のEXCEL2000でためしてみました。
EXCEL232に付属のRS232ツール.xlsというファイルをひらきますと、
動作条件設定というマクロがあります。
これをダブルクリックしますと動作条件設定のパネルが表示されます。
デフォールトではcomポート:com1,ポートレート:600bps,
フォーマット:N,7,1となっております。
設定ボタンをクリックしますと、以前は”通信条件設定ファイル”
というラベルのいたエラーメッセージのボックス(?)が開き、
”異常です。設定を中断します”となっておりました。
My DocumentディレクトリにおかれたUty232.prm,Commbin.prm
の読みとり専用を解除しましたらエラーメッセージがでなくなりました。
でも、デジタルマルチメータのデータのとりこみは、だめです。
9600bpsに設定してもエラーメッセジななく、設定されたようにみえるのですが
ADR-100のデータを取り込みもダメでした。
終了させますと、
”実行時エラー:8012, デバイスが開かれておりません”とでます。
EXCEL232についてはDOS/V機では何のトラブルも感じなく動作しているのです。
もう少し勉強と経験をつまないとだめですね。
-
ma_hi さん
2001-10-25 21:27:45
>pc-9821Xn,Windows95 OSR2, 素のEXCEL2000でためしてみました。
この時点でアウトですね。なぜかは・・ここの掲示板の一番上を参照。ちなみに、Win98はXnに正式対応です。
どうやら、パラメータ設定がOCXにうまく伝わってないですねぇ。
MSCOMM32.OCX自体の問題ではなさそうです(OCXが正常にセットアップされていればですが)。
-
タビ猫ちゃん さん
2001-10-26 18:02:19
確かに正式対応していないもので、動作しないと言ってもダメですね。
今日はVBAのプログラムファイルをプリントして読んでいます。
メーカーにメールをだしました。
CTSとRTの結線をしていなかった!。
未解決な部分が沢山残っているのですが、しばらく独力でやってみます。
みなさま、いろいろとありがとうございました。
-
タビ猫ちゃん さん
2001-11-01 18:19:36
もう誰もみてくれないと思いますが、自己レスです。
PC-9821 Xn,Windows95(OSR2)で問題なくMSComm32.ocxが動作する事が
わかりました。一つはPC-9821シリーズではRS-232CコネクタでCTSとDTRを
結線する必要があることでした。もう一つは私の知識、経験不足でした。
(有)ビーアイティー社のEXCEL232実習セットは、Excel VBAの理解に
大変やくだちました。
特に例題が参考になります。少し改変するだけで他の目的にすぐ使える
プログラムができます。
VBAがこんなに簡単だとは思いませんでした。
もう、外部の機器からデータを取り込むプログラムをかいております。
ちゃんと動きます。皆様もお試しあれ。