第一章:课程导论与基础环境搭建
各位同学,大家好。我是你们这门课的老朋友。说实话,在工业自动化这行摸爬滚打了十几年,我见过太多「PLC 只管逻辑,IPC 只管显示」的割裂式项目。结果呢?数据传不上来、系统卡死、调试周期翻倍……说白了,就是没把两者当成一个整体来设计。
所以这门课,咱们就干一件事——让 IPC 和 PLC 真正「聊」起来,协同干活。今天第一章,先把地基打牢。
1.1 IPC 与 PLC 协同工作模式概述
先问大家一个问题:为什么非要把 IPC 和 PLC 凑一块?
PLC 强在实时性、可靠性,但弱在数据处理、界面显示、复杂算法。IPC(工控机)正好相反,它跑 Windows/Linux,能装 Python、能搞数据库、能做人机界面。但 IPC 直接控制设备?那稳定性就悬了。
所以典型的协同模式是这样的:
- PLC 负责底层控制:采集传感器、执行电机、处理急停等实时逻辑。
- IPC 负责上层应用:数据记录、报表生成、视觉检测、远程监控。
- 中间层用 OPC UA 通信:IPC 通过 OPC UA 客户端读写 PLC 的变量,实现数据交换。
我个人习惯把这种架构叫做「大脑+小脑」模式。IPC 是大脑,做决策;PLC 是小脑,执行动作。嗯,这里要注意:千万别让 IPC 直接参与实时控制,否则一旦系统蓝屏,设备可就失控了。
1.2 硬件选型:工控机、PLC、交换机
硬件选型这块,我踩过的坑不少。记得有一次项目,客户图便宜买了台家用 PC 当工控机,结果车间温度一高,直接死机。从那以后,我对硬件选型就特别较真。
工控机(IPC)选型要点
| 参数 | 推荐规格 | 我的经验 |
|---|---|---|
| CPU | Intel i5 及以上 | 别用赛扬,跑 Python+OPC UA 会卡 |
| 内存 | 8GB 起步,16GB 推荐 | 我习惯上 16G,给数据库留余量 |
| 存储 | 256GB SSD | 必须工业级 SSD,普通固态扛不住震动 |
| 接口 | 至少 2 个千兆网口 | 一个连 PLC,一个连上层网络 |
| 环境 | 无风扇设计,宽温(-20~60℃) | 车间没空调?选宽温就对了 |
PLC 选型要点
PLC 这块,我建议选支持 OPC UA 服务器功能的型号。比如西门子 S7-1200/1500、倍福 CX 系列、罗克韦尔 CompactLogix。为什么?因为 OPC UA 是标准协议,不用额外写驱动。
如果你手头是老旧 PLC(比如 S7-200),那得加一个 OPC UA 网关模块。我曾经在一个改造项目里用过,虽然也能用,但多了一个故障点,不推荐。
交换机选型
别小看交换机。工业环境里,电磁干扰大,普通家用交换机经常丢包。我建议:
- 选用 工业级非网管交换机(比如 MOXA、赫斯曼)
- 端口数:至少 5 口,留余量给调试笔记本
- 电源:24V DC 供电,和 PLC 共用电源
1.3 软件环境安装与配置
好,硬件选完了,咱们开始搭软件环境。这部分我会带着大家一步步来,别急。
第一步:安装 Python
Python 版本我推荐 3.9 或 3.10。为什么不是最新的 3.12?因为有些 OPC UA 库对最新版支持还不稳定。我在项目中吃过这个亏,所以现在都选 LTS 版本。
# 下载地址:https://www.python.org/downloads/
# 安装时记得勾选 "Add Python to PATH"
# 验证安装
python --version
# 输出:Python 3.10.11
第二步:安装 PyCharm
PyCharm 社区版就够用,不用花钱买专业版。我习惯用社区版写 OPC UA 脚本,完全没问题。
- 下载地址:https://www.jetbrains.com/pycharm/download/
- 安装时勾选「创建桌面快捷方式」和「添加右键菜单」
- 首次启动后,设置解释器为刚才安装的 Python 3.10
第三步:安装 OPC UA 库
Python 的 OPC UA 库有好几个,我推荐用 opcua-asyncio。它支持异步操作,性能好,而且文档全。
# 打开命令行(Win+R,输入 cmd)
# 安装 opcua-asyncio
pip install opcua-asyncio
# 验证安装
python -c "import opcua; print(opcua.__version__)"
# 输出:1.0.1(版本号可能不同)
pip install opcua-asyncio -i https://pypi.tuna.tsinghua.edu.cn/simple
第四步:测试 OPC UA 通信
装好了,咱们写个简单脚本测试一下。假设你的 PLC 已经开启了 OPC UA 服务器,IP 是 192.168.1.10,端口是 4840。
from opcua import Client
# 连接 PLC 的 OPC UA 服务器
client = Client("opc.tcp://192.168.1.10:4840")
try:
client.connect()
print("连接成功!")
# 读取一个变量(假设变量名为 "DB1.Int1")
var = client.get_node("ns=2;s=DB1.Int1")
value = var.get_value()
print(f"当前值:{value}")
finally:
client.disconnect()
print("断开连接")
如果运行后看到「连接成功」和「当前值」,恭喜你,环境搭好了!
1.4 本章小结
这一章我们干了三件事:
- 搞清楚了 IPC 和 PLC 为什么需要协同,以及怎么协同。
- 选好了硬件:工控机、PLC、交换机,每样都有讲究。
- 搭好了软件环境:Python + PyCharm + OPC UA 库,并且跑通了第一个测试脚本。
说实话,环境搭建这一步最枯燥,但也是最重要的。后面所有章节的代码,都依赖今天搭好的环境。如果你卡住了,别硬撑,回头检查每一步。我当年第一次搭环境,折腾了整整一天才搞定。
下一章,咱们开始写真正的 OPC UA 通信程序,实现 IPC 和 PLC 的数据读写。到时候你会发现,今天流的汗都是值得的。
好了,动手试试吧。有问题随时在群里问我。