4、上位机开发环境搭建:Python 环境配置、pySerial 库安装、虚拟串口工具使用

好,咱们正式开始动手了。

前面聊了那么多变频器的原理、协议、接线,说实话,都是纸上谈兵。真正要让变频器听你的话,你得有个「指挥官」——也就是上位机。这一章,我就带你把这个指挥官给搭建起来。

你想想看,没有环境,你写再多代码也跑不起来。我见过不少新手,上来就抄代码,结果一运行报错「No module named serial」,然后卡在那半小时。嗯,咱们别走这个弯路。

4.1 Python 环境配置:选对版本,省一半心

Python 版本怎么选?我个人习惯用 Python 3.8 到 3.10 之间的版本。为什么?因为 pySerial 在这些版本上最稳定,而且很多工控库对 3.11、3.12 的支持还没完全跟上。

我在项目中遇到过一件事:有次用 Python 3.11 跑一个老项目,结果 pySerial 死活装不上,最后发现是某个依赖不兼容。折腾了两小时,换回 3.9 就搞定了。所以,别追新,稳定第一。

推荐版本: Python 3.9.13(64位)

下载地址我就不贴了,你直接去 python.org 找。安装时记得勾选「Add Python to PATH」——这个很多人会忘,忘了后面命令行敲 python 就找不到。

小技巧: 装完后打开命令行,输入 python --versionpip --version,如果都正常显示版本号,说明环境搞定了。

4.2 pySerial 库安装:一行命令的事

pySerial 是 Python 操作串口的标配库。说白了,它就是你和变频器之间的「翻译官」。你发 Modbus 指令,它帮你转成串口信号发出去。

安装非常简单,打开命令行(Windows 用 cmd 或 PowerShell,Linux 用终端),敲一行命令:

pip install pyserial

如果你用的是 Python 3,有时候需要写成:

pip3 install pyserial

安装完成后,验证一下:

python -c "import serial; print(serial.__version__)"

如果输出版本号,比如 3.5,那就成了。

注意: 如果你电脑上同时装了 Python 2 和 Python 3,一定要确认你用对了 pip。我曾经帮一个同事排查问题,他装了 pySerial 但代码里还是报错,结果发现他用的是 Python 2 的 pip,装到了 2 的环境里,而代码跑的是 Python 3。

4.3 虚拟串口工具使用:没有硬件也能调试

好,环境搭好了,库也装上了。但问题来了——你手边可能没有变频器,或者变频器还没接线。怎么办?

这时候就需要虚拟串口工具了。它可以在你的电脑上创建一对「假串口」,比如 COM1 和 COM2,这两个口是连通的。你往 COM1 发数据,COM2 就能收到。这样你就可以模拟上位机和变频器的通信了。

我个人常用的工具是 Virtual Serial Port Emulator(VSPE) 或者 com0com。VSPE 有图形界面,操作简单;com0com 是开源的,功能更强大。

4.3.1 用 VSPE 创建虚拟串口对

  1. 打开 VSPE,点击「Create new device」。
  2. 选择「Pair」模式,点击「Next」。
  3. 设置两个串口号,比如 COM3 和 COM4。
  4. 点击「Create」,搞定。

这时候你打开设备管理器,就能看到 COM3 和 COM4 了。它们就像一根虚拟的串口线,把两个口连在了一起。

我的习惯: 调试时我一般用 COM3 作为上位机端,COM4 作为设备端。这样代码里写死 COM3,测试工具连 COM4,逻辑清晰,不容易搞混。

4.3.2 用 Python 验证虚拟串口

来,写一小段代码测试一下:

import serial
import time

# 打开两个虚拟串口
ser1 = serial.Serial('COM3', 9600, timeout=1)
ser2 = serial.Serial('COM4', 9600, timeout=1)

# 从 COM3 发数据
ser1.write(b'Hello, VFD!')
print("已发送: Hello, VFD!")

# 从 COM4 收数据
time.sleep(0.1)
data = ser2.read(12)
print("已接收:", data)

# 关闭串口
ser1.close()
ser2.close()

运行后,如果看到:

已发送: Hello, VFD!
已接收: b'Hello, VFD!'

那就说明虚拟串口工作正常,你的 Python 环境也完全就绪了。

重要提醒: 实际项目中,串口参数(波特率、数据位、停止位、校验位)必须和变频器设置一致。变频器默认通常是 9600、8、1、无校验。但不同品牌可能不同,一定要看说明书。

4.4 常见问题与避坑指南

  • 「Port already open」错误: 串口被占用了。检查是不是有其他软件(比如串口助手)也在用同一个串口。关掉就好。
  • 「No module named serial」: pySerial 没装对。重新执行 pip install pyserial,注意看安装路径。
  • 虚拟串口工具打不开: 有些工具需要管理员权限。右键「以管理员身份运行」试试。
我曾经踩过的坑: 有次调试一个变频器,代码逻辑完全正确,但就是收不到数据。折腾了一下午,最后发现是虚拟串口工具的「Pair」模式选错了,选成了「Splitter」。那个工具把数据分成了两路,一路发到了别的地方。所以,工具设置一定要仔细核对。

好了,环境搭建就到这里。你现在有了 Python、pySerial、还有虚拟串口工具。下一章,我们就开始写真正的 Modbus 通信代码,让上位机和变频器「对话」起来。

记住,工控这行,环境搭好了,后面就顺了。别急,慢慢来。