第一章:课程导论与基础环境搭建

各位同学,大家好。我是你们这门课的老朋友。说实话,在工业自动化这行摸爬滚打了十几年,我见过太多「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 直接参与实时控制,否则一旦系统蓝屏,设备可就失控了。

核心原则:IPC 只做「非实时」任务,PLC 只做「实时」任务。两者通过 OPC UA 这个标准接口对话。

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 共用电源
小技巧:把 IPC 和 PLC 的 IP 地址规划好。我习惯用 192.168.1.x 网段,IPC 固定为 .100,PLC 固定为 .10,方便记忆。

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 可能被墙。可以配置国内镜像源:
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("断开连接")

如果运行后看到「连接成功」和「当前值」,恭喜你,环境搭好了!

避坑指南:我曾经遇到过连接超时,后来发现是 Windows 防火墙没关。如果你连不上,先试试关闭防火墙,或者添加 4840 端口的入站规则。

1.4 本章小结

这一章我们干了三件事:

  1. 搞清楚了 IPC 和 PLC 为什么需要协同,以及怎么协同。
  2. 选好了硬件:工控机、PLC、交换机,每样都有讲究。
  3. 搭好了软件环境:Python + PyCharm + OPC UA 库,并且跑通了第一个测试脚本。

说实话,环境搭建这一步最枯燥,但也是最重要的。后面所有章节的代码,都依赖今天搭好的环境。如果你卡住了,别硬撑,回头检查每一步。我当年第一次搭环境,折腾了整整一天才搞定。

下一章,咱们开始写真正的 OPC UA 通信程序,实现 IPC 和 PLC 的数据读写。到时候你会发现,今天流的汗都是值得的。

好了,动手试试吧。有问题随时在群里问我。