python3 通过serical连接下位机(称重设备通过串口通信)

1、将称重设备的USB连接至主机

2、通过ls /dev查看当前连接设备,可以看到,除了之前配置过的USB,新增了一个未配置的USB

3、打开主板配置

cd /etc/udev/rules.d/
cat uvccam_z390.rules

4、查看刚刚插入的USB的ID_PATH,可以看到称重设备的号

 

 5、修改主板配置文件

SUBSYSTEM=="tty",ENV{ID_PATH}=="pci-0000:00:14.0-usb-0:5:1.0",MODE="0666",SYMLINK+="ttyWEIGHT"
SUBSYSTEM=="tty",ENV{ID_PATH}=="pci-0000:00:14.0-usb-0:5:1.0",MODE="0666",SYMLINK+="ttyUSB98"

6、重启主机,使用ls /dev 可以看到新增的设备ttyWEIGHT。

 

 7、使用serial与设备建立通信,称重设备的字节大小为8,停止位为1,校验位为None,波特率为9600,端口为刚刚配置的/

串行口的属性:
name:设备名字
portstr:已废弃,用name代替
port:读或者写端口
baudrate:波特率
bytesize:字节大小
parity:校验位
stopbits:停止位
timeout:读超时设置
writeTimeout:写超时
xonxoff:软件流控
rtscts:硬件流控
dsrdtr:硬件流控
interCharTimeout:字符间隔超时

ser = serial.Serial(
    port='/dev/ttyWEIGHT',
    baudrate=9600,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    timeout=0.02,  # 时间越小接收plc的速度越快
    writeTimeout=0.1
)

ser.flushInput()
ser.flushOutput()
ser.readline()

8、可以看到返回的信息为btye数据。

 

posted @ 2021-09-01 18:37  谢牧谚  阅读(288)  评论(0编辑  收藏  举报