【问题标题】:Receiving data from com port by pyserial通过pyserial从com端口接收数据
【发布时间】:2016-08-03 09:14:55
【问题描述】:

我无法通过 pyserial 接收来自 com 端口的数据!我已经编译了可以正确发送数据并从控制器接收答案的程序!我使用 comport 监控程序来监视来自控制器的请求和应答:correct send and answer

但是当我发送相同的请求时,我什么也得不到((my request without answer 我的 Python 程序:

#!/usr/bin/env python
import sys, os
import serial, time
from serial import *
ser = serial.Serial(
     port='COM7',
     baudrate=4800,
     bytesize=5,#18,
     parity='N',
     stopbits=1,
     timeout=5,
     xonxoff=0,#
     rtscts=0,#   
     writeTimeout = 1#1
myz= '\x10\x02\x00\x00\x01\x4e\xf0\x04\x01\xff\x10\x17\x02\x4e\xf0\x04\x02\xff\x10\x17\x10\x03\xff' 
while True:
ser.write(myz) #send data
ser.readline()

我尝试了不同的速度(4800,9600)但一无所获((( 谁能告诉我哪里弄错了?

【问题讨论】:

  • #!/usr/bin/env python vs port='COM7' AND bytesize=5 AND ser.write(myz) ; ser.readline()(所以有光纤串行?时间间隔?)
  • Pyserial 可能会像您一样在初始化时切换 RS-232 控制线,从而重置您的控制器。字节大小通常为 8。为什么要“尝试不同的速度”?你不知道你的控制器使用什么波特率吗?仔细检查您的数据是否正确发送(Unicode 字符串与字节)。

标签: python serial-port pyserial


【解决方案1】:

您不会在写入消息的 com 端口上收到您自己的消息。要么将电缆的另一端连接到不同的端口,要么与可以接听您的设备进行通信。

【讨论】:

  • 在另一边,我有必须回复我的设备。在第一张图片上,我可以看到发送和回复!
  • 您是否使用相同的波特率和其他设置?从截图来看,似乎有所不同。此外,让两个设备监听同一个端口可能会导致问题。您想与什么设备通话?
  • 是的,您在端口监视器中看到了哪些不同之处?我为此设备创建了手册 - 停止位必须为 '2',波特率 = '4800',字节大小 = '8'。它开始起作用了!我试图连接的设备是 1970 年初创建的苏联(苏联)工业控制器“РЕМИКОНТ Р-122”!你能想象这个设备现在正在制定一个大计划吗?)))疯狂)))谢谢你的帮助)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多