0

急需您的帮助...

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

称重传感器是来自Eilersen的 MD 类型,连接到同样来自Eilersen的 MCE2040串行通信模块类型的称重传感器信号转换器。MCE2040 通过 USB 到串行连接器连接到我的 PC,如下链接_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
4

1 回答 1

1

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

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

关于如何继续:

有用的基本命令:

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 回答