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数据。