【GP-IB】自動計測データ収集を語ろう【RS232】
ユニークで個性的な確実稼げるガイダンス
暇な人は見てみるといいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
15TY4 PICOSCOPE Dr.DAQ
ttps://www.picotech.com/data-logger/drdaq/overview
Analog Discovery 2: 100MS/s USB Oscilloscope, Logic Analyzer and Variable Power Supply
ttps://store.digilentinc.com/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply/ 最近はLANついている測定器が多くて、クッソ高いGP-IBケーブルじゃなくて安いLANケーブルが使えるからオータスカルタスカル 古い測定器(パワーメータBird製4421、488-1978仕様のもの)をGP-IBで制御しなきやならなくなって、
C#+NI-VISAでコード書いたんだけどうまく動かない
読み取り系コマンド(IDN?でも測定値読み取りコマンドでも)送ると、何送っても同じ内容が返ってくる(測定値っぽいもの)
機器設定コマンドは効かないけど(LLOとか)、プレフィックスのオンオフとか単位変換(WとdBm)の切り替えはできる
全部で4台の機器を制御してるんだけど、こいつだけこんな感じでうまく動きません
なんかいい解決案、サンプルコードご存じないですか? >>208
writeとreadの間に適当な時間のウェイト入れてみたらどう?
とりあえず試しに
System.Threading.Thread.Sleep(50);
で50msとかね
前に古い測定器のGPIBでウェイト無しでreadしたら、空文字列(0x00がいくつか)とか前の結果が混ざって出るということがあった >>209
ありがとう
ウェイト調整関係はいろいろ試したんだ
デバッガでステップ実行しててもダメなので、
ウェイトではないはず。。。
そもそも設定系のコマンドをWriteしたときに
通るコマンド(PYとか)と通らないコマンドが(LLOとか)あるのがよくわからん。。。
writeすると機器はlisten表示になるし、
readするとtalk表示になるんだけど
デリミタも変えてみたりしたけど変化なし
なんでだろう。。。 ソフト的な問題じゃなくてハード的な問題はない?
古くて中途半端に壊れてるとか・・・
それと同じ測定器があれば比較できるんだけど その可能性はあるけど検証のしようがないんだよね
アドレス設定のディップスイッチもグラグラしてるし(アドレス変えると通るコマンドも通らなくなるので、一応設定はできる)
1台しかない上に10年以上遊休設備になってた機器で、以前使ってた頃のPCやソースもないし
この機器はフェイルセーフのために使おうと思ってたんだけど、
使わなきゃもう運用開始できる状態まで調整終わってるから、いったんそれで始めるかな >> 208
> 何送っても同じ内容が返ってくる(測定値っぽいもの)
被制御機器のtalk終了の合図をgpibアダプタがうまく受け取れてなくて
タイムアウトを起こしてるときにそんな感じの症状出てた気がするのう
C#じゃなくてCのvisaライブラリ使ってたときの昔話じゃが
通信の関数の終了エラーコード(昔のCライブラリのViStatus型の
ステータスバイトに相当するもの)は見られんかいの? 確かに正常にコマンド通らなかったときにとりあえず表示値返してくる機器あるね。
DMMのHP3458Aとかそうだった
昨日もう一度試したけどステータス読み取り系のコマンドも通らない
(謎の数値が返ってくる。プレフィックスから判断すれば反射電力値のような)
NI IO-Traceで取ったログ見ても全部SUCCESSになってた (NI IO-Traceが何者かは承知してないが)エラー捕捉できんかったとな、むむ…
しかしIDN?受け取って測定値返すのが仕様とは考え難いのう
背面DIPスイッチが接触不良でtalkerモードが誤発動してるか
NI-VISAのC#ライブラリに潜んでる不具合を踏んでるか
pythonとpyvisaをインストールしてIDN?試すのはどうじゃろ NIがダメならキーサイトのIO Libraries Suiteで試してみるとか
アジレントの時には簡易的にデバッグ用コマンド入出力できるのが付属していたから
各社測定器メーカがVISAドライバを提供してたのを試したことがあったけど、
自社製品は問題ないけど他社製品はダメっていうのが大多数で、
IO Libraries Suiteは有能だったっけ いったんリリースして、そのあと他業務に追われてました
今日、提案してもらった二つを試してみた
Python
→C#と同じ結果。
ただC#のデバッガでは文字化けしてたところが見えて、
改ページコード(0x0C)を含む文字列が返ってきてることがわかった
IO Library Suite
→そもそもつながらない(IDN?がきちんと通らないから?)
でした。
とりあえず、これで諦めます
みなさんありがとう IO Libraries Suite付属の単独コマンド入出力モニタ(名前忘れた)で確認すれば
SCPI実装前の古い測定器でも関係なかったと思うけど
>古い測定器(パワーメータBird製4421、488-1978仕様のもの)をGP-IBで制御しなきやならなくなって、
ネット検索でマニュアル斜め読みしてみたけど、古い仕様のは解らなかった。
古い機種ではGP-IBでもSCPIコマンドじゃなくてRS-232C用コマンド体系で動くとかないのかなぁ
(ボーレートとかXON/OFFなどの特有のコマンドは除外して)
自分なら、あらゆる手段を駆使して当時(と同等)のマニュアルを入手するかな 諦めますか……
>>215 を書いたときはpyvisa導入後にどうやったら不具合箇所特定できるか
策を巡らしてたんじゃが時間たちすぎてほぼ忘れてしまったのう
pythonインタラクティブシェル起動して公式Webトップに書いてある
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('GPIB0::12::INSTR')
print(inst.query("*IDN?"))
を実行するのが基本形ようじゃが
open_resource()のオプション変数でタイムアウト(デフォ5秒)を15秒にしてみて
query()が+10秒遅れるかどうか(遅れたらホスト側のタイムアウト)、とか
"*IDN?" を "IDN?"(古代語)やら "*IDM?"(スペルミス)やらですり替えて
返る文字列が変わるかどうか(変わらなければ被制御機側のタイムアウト)、とか
どちらも通信ターミネータの認識失敗で起きがちな不具合 >"*IDN?" を "IDN?"(古代語)やら "*IDM?"(スペルミス)やらですり替えて
1978年仕様だと、まだそのコマンドが実装されていなかった可能性がある
IEEE 488.2 標準でコマンド等が策定されたのが1987年らしいし
よって、相手からすると"*IDN?"って知らないってことでは?
だから当時のマニュアルが... > よって、相手からすると"*IDN?"って知らないってことでは?
うん それは大いにありうると思う
>>219 内の文字列はアスタリスク有りと無しを逆にして書いたほうがよかったね
質問者が本体添付の旧版マニュアル持ってない説は全く思い及ばなかったでござる おお、みなさんさらにアドバイスありがとう
古いマニュアル、ソースはないです 途中で書き込まれてしまった
古いマニュアル、使ってた頃のソースはないです
たぶん、どっちも事業所改修に伴う一時的引っ越し、改修完了後に帰ってくるときのどこかで廃棄された可能性あり
まわりの人たちも遊休設備で残ってたことすらしらなかったし
IDNの変形は過去に経験のあるコマンド(ID,ID?,IDN?,*IDN?)は試したことあって、変化なしです
タイムアウトに関しては、何秒に設定してもタイムアウトしない(よくわからん文字列でも返ってきてるからだと思われる)
やはり合間見てもう少しやってみようかな >古いマニュアル、ソースはないです
マニュアルを入手するって、書庫棚を探すだけじゃないでしょ
ネットで漁って年代が近いものや、別の型名でも系統が近い製品の
マニュアルから類推するとか
このマニュアルのコマンド体系は参考にならない?
ttp://userequip.com/files/specs/3819/BIRD%204421%20Instruction.pdf
ネットから「bird 4421」だけで大量に資料が見つかるみたいなので
取捨選択してみて 2004版のマニュアルにも*IDN?が載っていないところを見ると、昔からコマンド変わらなかったんじゃないかなぁ
とりあえずRENとGTLを交互に送ってREMOTEインジケーターのLチカしてみたくなるw BLM運動の影響からかPythonではMaster/Slaveの単語を削除する
流れになってるみたいだけど、GP-IBはどうなんだろうう
ttps://developers.srad.jp/story/18/09/14/0935201/