0

あなたの助けが必要です...

データを読み込んで、ロード セルから Python コンソールに出力しようとしています。私のセットアップは次のとおりです。

ロード セルは、同じく Eilersen の MCE2040 シリアル通信モジュール タイプのロード セル信号コンバータに接続された Eilersen のMDタイプです。MCE2040 は、この link_http://www.usbgear.com/USB-COM-I-SI.html のような USB からシリアルへのコネクタを介して PC に接続されています (2 つのリンクしか許可されていません)。

ロードセルは COM 1 に接続されています。

このスニペットを実行しようとしました:

import serial
ser = serial.Serial(0)  # open first serial port
print ser.portstr       # check which port was really used
#ser.write("hello")      # write a string
ser.close()

...そして、「COM1」がコンソールに出力されるので、接続は問題ないと思います。

私の問題は、進め方がわからないことです。最後に、入力データのグラフをプロットし、タイム スタンプ付きのデータ ファイルを出力したいと思いますが、まず、ロード セル データをコンソールに出力したいと思います。

どんな助けでも大歓迎です。さらに情報が必要な場合は、お知らせください。

事前にThx。

編集:

MCE2040に関するドキュメントがいくつかあります:

3.1 EVC モード (タイムスタンプなし)

仕様:RS232/RS4422

ボーレート: 115200 bps

38400bps(SW1.5で選択)

データビット: 7

パリティ: 偶数

ストップビット: 1

プロトコル: 以下に説明する EVC プロトコル (送信のみ)

3.1.1 EVC プロトコルのフォーマット

各サンプル期間の後、新しい重量テレグラムが送信されます。送信されるテレグラムの形式は次のとおりです。

<LF>WWWWWWWW<CR>

各テレグラムには、改行文字、重量結果、およびキャリッジ リターン文字が含まれています。テレグラムには以下が含まれます。

<LF>    Line Feed character (ASCII 0Ah).
WWWWWWWW    Weight value for the loadcell. The value is an 8 byte ASCII hex number with MSB first.
<CR>    Carriage Return character (ASCII 0Dh).

次のコードからいくつかの出力を取得できました。

import serial
ser = serial.Serial(0, baudrate=115000 ,timeout=100) 

print ser.portstr      
x = ser.read(50)
print x
ser.close()  
print 'close'

出力:

COM1

ÆÆÆÆA0·5
ÆÆÆÆA0·6
ÆÆÆÆA0·5
ÆÆÆÆA0·±
ÆÆÆÆA0·±
close
4

1 に答える 1

1

COM1 は多くのコンピュータで使用されているため、最初にそれが本当にあなたの com ポートであることを確認してください。

USB からシリアルへのコンバーターで TX を RX に接続することにより、単純なワイヤーを使用して情報をループバックすることができます。これにより、エコーが発生します (書き込み内容を読み取ることができます)。コムポート。

続行方法について:

便利な基本コマンド:

ser.write("command")このコマンドを使用して、デバイスにコマンドを送信します。

ser.read(n)デバイスから n バイトを読み取るためのものです

ser.readline()到達するまで行を読み取ります\n(改行)

手順:

  1. コマンドをデバイスに送信します。
  2. すべてのデータを最終バイトまで読み取ります (フレーム同期)。
  3. データを解析して構造化 (リストなど)
  4. プロットしてグラフにします。

便利なリンク:

  1. pyserial ドキュメント
  2. シリアルを読むためのヒント
  3. Pythonでグラフをプロットする
于 2013-11-06T10:58:12.013 に答える