現在実験装置の電流・電圧測定値をGP-IBでパソコンに
取り込んで実験しているのですが、制御している
ソフトが代々伝わるNEC98のN88Basicなので、
そろそろソフト・ハード共無理が生じてきました。

そこでN88Basicで書いたGP-IBの制御プログラムを
VisualBasicに書き直そうと考えているのですが、
なにか参考になるサイトや文献等ないでしょうか。

多々あるVB関連のHPを見てもゲームなどが中心で
GP-IBでの制御に関するものは見つからなかった
もので・・・

このQ&Aに関連する最新のQ&A

A 回答 (3件)

VBじゃなしに、F-BASICにしてはいかがでしょうか。


N88-BASICと(ある程度)文法互換で、シリアルポート(RS-232C)の制御も比較的簡単だったはずですので、少ない労力でWindows用のアプリに変換できると思います。

VBで制御系のプログラムするなら、市販の制御用コンポーネントを購入するのが早道ですね。
一からプログラムするのは、かなり大変だったと記憶しています。

参考URL:http://www.fujitsu.co.jp/hypertext/fps/Products/ … , http://www.boc.co.jp/support/database/P1_81.htm
    • good
    • 0
この回答へのお礼

うっかり違うカテゴリに入れてしまったにもかかわらず
回答いただきありがとうございます。

F-BASICというのは知りませんでした。
N88-BASICで作りためたプログラムを簡単に移せる
というのは魅力です。ちょっと購入を検討してみます。

お礼日時:2000/12/18 18:26

やっぱインターフェースでしょ。


ライブラリ類も用意されているようです。

参考URL:http://www.interface.co.jp/catalog/pci/software/ …

この回答への補足

うっかり違うカテゴリに入れてしまったにもかかわらず
回答いただきありがとうございます。

このGP-IBボードもよさそうですね。
ただ、やはりGP-IBボードはできるだけ現在使用している
ものを使いたいのです。
サンプルプログラムやプログラムの作成に重きをおいた
サイトはないでしょうか。

補足日時:2000/12/18 18:50
    • good
    • 0

 検索したら、以下の様なサイトがヒットしました。



 参考にどうぞぉ

参考URL:http://www.din.or.jp/~yec/gpib_pci/gpib_pci.htm

この回答への補足

うっかり違うカテゴリに入れてしまったにもかかわらず
回答いただきありがとうございます。

このGP-IBボードは比較的安いし使い勝手もよさそうですね。
ただ、GP-IBボードはできるだけ現在使用しているものを
使いたいのです。
サンプルプログラムやプログラムの作成に重きをおいた
サイトはないでしょうか。

補足日時:2000/12/18 18:42
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVisual BasicでGP-IBの通信を制御したいのですが

VBを使ってGP-IBのポートの通信を制御したいのですが、それは可能ですか?また可能であれば、どのように制御すればいいのか教えてください。よろしくお願いします。
できれば、RS232Cとの違いも教えてください。お願いします。

Aベストアンサー

GP-IBを使うってことは、相手がレコーダやオシロスコープですかね。
温度や圧力、流量を電圧に変換してレコーダに入力させて、レコーダからPCにデータを送ることはやってます。データはエクセルに落としてグラフ化してます。
RS232Cとの通信手法は異なりますが、文字列を送って返事を待つことは同じです。
GP-IBにはAPIがたくさんあるので一つ一つ確認する手間が要ります。メーカーによっても異なるのでやっかいですが、細かな設定ができます。
ボードはコンテック社がいいかな。

QVisual BasicでのFAX制御

Visual Basic 6.0を利用して、FAX制御をしたく考えております。OSは、Windows2000です。まず、fax関連のオブジェクトを使う前提として
[プロジェクト]-[参照設定]で、faxcom 1.0 Type Libraryにチェックをつけています。
ここで、もっとも前提となる質問ですが、
1)そもそも、モデムは必ず入っていないとだめですか?
2)1)に加えて、モデムの設定が完全になされていない
とだめですか?
3)それとも、モデムは不必要ですか?
4)または、モデムのドライバーが、所定の位置に入って
れば大丈夫ですか?

基礎の基礎とは思いますが、どなたかお教え下さい。

Aベストアンサー

faxcomを使用してコーディングするするだけなら、モデムは不要だと、、、
FaxComオブジェクトを作成だけなら、ドライバとか、ハード環境は影響しないと思います。
実際に送信コマンドを発行するときに、環境を求められるかと、、、

1~4までの選択肢が用意されていましたが、どこまでの開発を行い、どのようなテストを行うかによると思います。

ちなみにFaxモデムは近所の中古屋で1000円もしなかったような気が・・・

QVisual Basic によるNC機械制御

(以下N88-Basic プログラム)

open "通信ポート設定" as #1

*INP_DAT

  if loc(1)>0 then
     DAT$=input$(1,#1)
     if DAT$<>chr$(17) then goto *INP_DAT
  else
     goto *INP_DAT
  end if

  print #1,"送信データ"
stop

*NC機からChr$(17)信号がパソコンに入り
 Chr$(17)であれば、NC機にデータを送信する
 プログラムです。(ポート設定、送信データ内容は省略)
 N88ーBASICからWindowsプログラムへ移行したいのですが、
 Visual Basicではこのような処理をどのように
 すればよいのでしょうか?
 宜しくお願いします。

Aベストアンサー

NC工作機械との通信にVBを使うのですね。
私の会社にある自動プログラムソフトもN88からVBに移動しました。
私の会社のタレパンはFDでデータをやり取りしています。
FDの中身を覗いてみるとアマダのペガとコマはテキストデータでGコードが書かれている様です。
なのでテキストデータの入出力で考えてみました。
また、タレパンを制御しているコンソールは15年前の8ビット機くらい遅いですから、同期についてはコンソールを他のPCが待つ形になりそうです。

sub inputdata()
Dim filename as string
Dim DAT as string
filename ="通信ポート設定"
open filename for input as #1
  Do
     DAT =input (1,#1)
     if DAT=chr(17) then print #1,"送信データ":exit Do 'データ送信したらループを抜ける
loop
close #1
end sub

終了の方法がないのでデータ送信したら終わる様にしました。延々と続けたい場合はexit Doを外してください。

物作りや加工機の知識がありますので完成したら物凄く使いやすいものになります。
しかし、素人がソフトを組むと完成まで五年位掛かりますが頑張ってください。
私もネスティングを完成させたいと思っています。

NC工作機械との通信にVBを使うのですね。
私の会社にある自動プログラムソフトもN88からVBに移動しました。
私の会社のタレパンはFDでデータをやり取りしています。
FDの中身を覗いてみるとアマダのペガとコマはテキストデータでGコードが書かれている様です。
なのでテキストデータの入出力で考えてみました。
また、タレパンを制御しているコンソールは15年前の8ビット機くらい遅いですから、同期についてはコンソールを他のPCが待つ形になりそうです。

sub inputdata()
Dim filename as string
Di...続きを読む

QVisual Basic 2005でRS-232Cを用いて機器を制御する際のエラーについて

現在,ディジタルマルチメータをPCで制御するため,PCとディジタルマルチメータをRS-232Cケーブルで接続し,Visual Basic 2005を用いて制御しようとプログラムを作成しています.
以前は,Visual Basic 6.0で制御していたのですが,今後の為を考え,2005へ移行することにしました.

そこで,VB6のプログラムと同様の設定を用いて,同じ命令をマルチメータ側に送信しようとするのですが,マルチメータ側で命令を受信した後に,マルチメータがエラーを出してしまいます.
全ての命令に対してエラーを出すのではなく,マルチメータ側から返信を伴う命令に対してのみエラーが出るようです.

環境は,PC:Windows XP (Home),マルチメータ:Agilent 34401Aです.
以下がソースの一部です.

[VB6]
With SerialPort
.CommPort = 4
.Settings = "9600,n,8,1"
.Handshaking = comNone
.RThreshold = 1
.SThreshold = 1
.InputLen = 0
.PortOpen = True
End With

SerialPort.Output = ":SYST:REM" & vbCrLf 'マルチメータをリモートにする
SerialPort.Output = "MEAS:VOLT:DC? 10V,0.003V" & vbCrLf '直流電圧を測定


[VB2005]
With SerialPort
.PortName = "COM4"
.BaudRate = 9600
.DataBits = 8
.Parity = IO.Ports.Parity.None
.Handshake = IO.Ports.Handshake.None
.Open()
End With

SerialPort.WriteLine("SYST:REM" & vbCrLf) 'マルチメータをリモートにする(エラーは出ない)
SerialPort.WriteLine("MEAS:VOLT:DC? 10V, 0.003V" & vbCrLf) '直流電圧を測定(エラーが出る)

原因などが分かれば,教えてください.
よろしくお願いします.

現在,ディジタルマルチメータをPCで制御するため,PCとディジタルマルチメータをRS-232Cケーブルで接続し,Visual Basic 2005を用いて制御しようとプログラムを作成しています.
以前は,Visual Basic 6.0で制御していたのですが,今後の為を考え,2005へ移行することにしました.

そこで,VB6のプログラムと同様の設定を用いて,同じ命令をマルチメータ側に送信しようとするのですが,マルチメータ側で命令を受信した後に,マルチメータがエラーを出してしまいます.
全ての命令に対してエラーを出すのでは...続きを読む

Aベストアンサー

#2の方が書いているように、
WriteLine()は、自動的にデリミタをつけます。
デリミタはSerialPort.NewLineで指定し、デフォルトはvbLfだったと思います。(今.NETの環境が無いので自信無し)
送信時にvbCrLfを付加するなら、Write()を使うと良いです。

QVisual Basic4でオシロスコープの制御

VBを用いてオシロスコープにX-Yモードになるようにして、その波形を受信するプログラミングなんですが全く分かりません。どのようにしていけばよいのかヒントでもかまいませんので教えてください!
よろしくお願いします。

Aベストアンサー

オシロスコープ側にデバイスドライバの仕様書なんかが付属しているハズですので、そちらを熟読するしか無いです。
運がよければサンプルプログラムが付いていたり、メーカーや有志のサイトでサンプルが公開されている事もあります。

普通は制御用のAPIの仕様が決められているので、規定通りに呼び出します。


このカテゴリの人気Q&Aランキング

おすすめ情報