前提・実現したいこと
Pythonからの機器のシリアル制御
発生している問題・エラーメッセージ
WinPythonのコマンドプロンプトでは装置が制御できるが、スクリプト(.py)にして実行させると装置が反応しなくなる
該当のソースコード
Python
1import serial 2 3ser = serial.Serial(port="COM5", baudrate=115200, bytesize=8, parity="N", stopbits=1, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None, exclusive=None) 4 5ser.close 6time.sleep(1) 7ser.open 8 9ser.write(b"F3\n\r") #F3は機器の制御コマンド 10 11ser.close() 12
試したこと
ser.write(b"F3\n\r") の前後にtime.sleepを入れて実行のタイミングを変えてみたが、装置は反応しなかった。
Linux上のPythonでも試したが、装置は反応しなかった。
baudrateを変えても装置は反応しなかった。
シリアルポートの出力を見ると文字列は出力できている。改行コードか?
VBでは動いていて、vbcrlfを改行コードに使っている。
補足情報(FW/ツールのバージョンなど)
WinPython3.6.5
この話と似ています(Python2.5ですが)
http://d.hatena.ne.jp/kinneko/20070926/p3
コマンドプロンプトからの実行、装置が動きます。最後に「4」が出力されます。
2018.7.9追記
ロジアナでコマンドプロンプトとスクリプトの出力を見てみましたが、全く同じでした。(ますますわからなくなりました...)
装置の構成について詳しく書くと、制御PCからUSBケーブルを変換回路を介して装置のSCSIに繋いでいます。USBーSCSI変換回路はシリアル入出力となっています。
PC =>USBケーブル =>USBーSCSI変換回路 =>SCSIデジタルマルチメーター
出力信号をモニタする時はUSBシリアル変換回路を介してみています。
PC =>USBケーブル =>USBシリアル変換回路 =>USBロジアナ(モニタ用PC)
なにか大ポカをしていないか心配ですが....
2018.7.10追記
オシロの波形です。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。