3. 开发环境搭建:工欲善其事,必先利其器
说实话,做工业通信开发,环境搭不好,后面全是坑。我见过太多人上来就写代码,结果连串口都打不开,折腾半天发现是驱动没装。所以这一章,咱们老老实实把环境整利索。
我会带着你一步步来:Python环境、pyModbus库、虚拟串口工具。嗯,这三样东西,缺一不可。
3.1 Python环境配置
我个人习惯用Python 3.8以上版本。为什么?因为pyModbus库对3.8+支持最好,而且很多工业现场的工控机,装的就是这个版本。
下载地址我就不贴了,你直接去python.org下载安装包。安装时记得勾选「Add Python to PATH」——这个选项不勾,后面你敲python命令会提示找不到。
装完后,打开命令行(CMD或PowerShell),验证一下:
python --version
pip --version
如果能看到版本号,说明环境OK。如果提示「不是内部或外部命令」,嗯,回去检查PATH吧。
3.2 pyModbus库安装
pyModbus是Python里最成熟的Modbus库之一。我最早用的时候它还叫pymodbus,后来改成了pyModbus。名字变了,但用法基本一致。
安装命令很简单:
pip install pyModbus
如果你在公司内网,或者网络不好,可以用国内镜像源:
pip install pyModbus -i https://pypi.tuna.tsinghua.edu.cn/simple
装完后,进Python环境测试一下:
python
>>> from pymodbus.client import ModbusTcpClient
>>> client = ModbusTcpClient('127.0.0.1')
>>> print(client)
<pymodbus.client.ModbusTcpClient object at 0x...>
没报错?恭喜,库装好了。
3.3 虚拟串口工具使用(VSPD)
这是整个环境搭建里最容易被忽略的一环。你想想看,没有真实PLC的时候,你怎么调试Modbus通信?
答案就是虚拟串口。VSPD(Virtual Serial Port Driver)可以在你的电脑上创建一对虚拟串口,比如COM1和COM2。它们之间是连通的——你往COM1发数据,COM2就能收到。反过来也一样。
说白了,就是模拟两根物理串口线。
3.3.1 安装VSPD
去Eltima官网下载VSPD。有试用版,够我们学习用了。安装过程一路Next就行,没什么坑。
3.3.2 创建虚拟串口对
打开VSPD,界面很简洁。你会看到两个下拉框:
- 第一个选COM1
- 第二个选COM2
然后点击「Add Pair」按钮。搞定。
这时候你打开设备管理器,会看到多出两个串口:COM1和COM2。它们就是一对虚拟串口。
3.3.3 验证串口通信
我习惯用串口调试助手来验证。打开两个串口助手窗口:
- 一个打开COM1,波特率9600,8数据位,1停止位,无校验
- 另一个打开COM2,参数一样
在COM1的发送区输入「Hello PLC」,点发送。COM2的接收区应该能收到同样的内容。反过来也试试。
能收发数据?说明虚拟串口对工作正常。
3.4 本章知识体系
下面这张图,帮你理清整个环境搭建的逻辑关系:
3.5 避坑指南
最后,分享几个我踩过的坑:
- 串口号冲突: 有些电脑的蓝牙或虚拟COM口会占用COM1。如果VSPD创建失败,换个串口号试试,比如COM3和COM4。
- 权限问题: 在Windows上,有些串口操作需要管理员权限。如果代码报错说打不开串口,试试以管理员身份运行你的IDE或命令行。
- 防火墙拦截: 如果你用Modbus TCP(后面章节会讲),Windows防火墙可能会拦截通信。临时关掉防火墙测试一下,能通的话,再给Python加防火墙规则。
好了,环境搭好了。下一章咱们就开始写真正的Modbus通信代码了。你准备好了吗?