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.org 找。安装时记得勾选「Add Python to PATH」——这个很多人会忘,忘了后面命令行敲 python 就找不到。
python --version 和 pip --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,那就成了。
4.3 虚拟串口工具使用:没有硬件也能调试
好,环境搭好了,库也装上了。但问题来了——你手边可能没有变频器,或者变频器还没接线。怎么办?
这时候就需要虚拟串口工具了。它可以在你的电脑上创建一对「假串口」,比如 COM1 和 COM2,这两个口是连通的。你往 COM1 发数据,COM2 就能收到。这样你就可以模拟上位机和变频器的通信了。
我个人常用的工具是 Virtual Serial Port Emulator(VSPE) 或者 com0com。VSPE 有图形界面,操作简单;com0com 是开源的,功能更强大。
4.3.1 用 VSPE 创建虚拟串口对
- 打开 VSPE,点击「Create new device」。
- 选择「Pair」模式,点击「Next」。
- 设置两个串口号,比如 COM3 和 COM4。
- 点击「Create」,搞定。
这时候你打开设备管理器,就能看到 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 环境也完全就绪了。
4.4 常见问题与避坑指南
- 「Port already open」错误: 串口被占用了。检查是不是有其他软件(比如串口助手)也在用同一个串口。关掉就好。
- 「No module named serial」: pySerial 没装对。重新执行
pip install pyserial,注意看安装路径。 - 虚拟串口工具打不开: 有些工具需要管理员权限。右键「以管理员身份运行」试试。
好了,环境搭建就到这里。你现在有了 Python、pySerial、还有虚拟串口工具。下一章,我们就开始写真正的 Modbus 通信代码,让上位机和变频器「对话」起来。
记住,工控这行,环境搭好了,后面就顺了。别急,慢慢来。