从称重传感器读取数据

时间:2013-11-06 10:35:13

标签: python python-2.7 serial-port pyserial

迫切需要你的帮助......

我正在尝试读取数据并从称重传感器将其打印到python控制台。我的设置如下:

称重传感器是来自Eilersen的MD型,连接到MCE2040 Seriel通信模块的称重传感器信号转换器,也来自Eilersen。 MCE2040通过USB到seriel连接器连接到我的PC,如link_http://www.usbgear.com/USB-COM-I-SI.html(我只允许两个链接)一个。

称重传感器连接到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'打印到控制台,所以我猜我的连接应该没问题。

我的问题是我不知道该怎么办。最后,我想绘制输入数据的图形并输出带有时间戳的数据文件,但对于初学者,我想将一些称重传感器数据打印到控制台。

任何帮助都将受到高度赞赏。如果需要进一步的信息,请告诉我。

提前谢谢。

修改

我有一些文件是MCE2040:

3.1 EVC模式(没有时间戳)

规格:RS232 / RS4422

波特率:115200 bps

38400 bps(使用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

1 个答案:

答案 0 :(得分:1)

首先确保它真的是你的com端口,因为许多计算机都使用COM1,我不确定它是你的com端口。

您可以使用简单的线路通过在USB到串行转换器上将TX连接到RX来回送信息,它将产生回声(您将阅读您所写的内容)这是验证您正在谈话的一种非常简单的方法使用正确的com端口。

关于如何继续:

有用的基本命令:

ser.write("command")使用此命令向设备发送一些命令。

ser.read(n)用于从设备读取n个字节

ser.readline()将读取行,直到达到\n(新行)

<强>步骤:

  1. 向您的设备发送命令。
  2. 通过某个结束字节(帧同步)读取所有数据。
  3. 将数据解析为结构(列表或类似的东西......)
  4. 将其绘制成图表。
  5. 有用的链接:

    1. pyserial docs
    2. tips for reading serial
    3. plotly表示python中的图表