在 PC 上配置和使用西门子 PLC 的以太网通信,需要完成硬件连接、软件配置、参数设置和通信测试等步骤。以下是详细的操作指南,适用于西门子 S7-1200/1500、S7-300/400 等主流系列 PLC:
硬件清单
物理连接
设置 IP 地址西门子 PLC 与 PC 通信需在同一网段:
打开电脑 “控制面板→网络和共享中心→更改适配器设置”
右键 “以太网”→“属性”,选择 “Internet 协议版本 4(TCP/IPv4)”
设置 IP 地址(如192.168.0.2)和子网掩码(255.255.255.0),PLC 默认 IP 需与之匹配(如 PLC 设为192.168.0.1)
验证网络连通性
新建项目并添加 PLC
启用通信权限
在 TIA Portal 中点击 “在线→扩展的在线搜索”,选择电脑网卡,搜索到 PLC 后双击连接
成功连接后,可在线监控 PLC 的变量、修改程序或强制输出,验证基本通信
下载支持西门子 S7 协议的软件(如Sharp7Test附带的测试工具)
输入 PLC 的 IP 地址(如192.168.0.1),选择 CPU 型号,点击 “连接”
尝试读取 PLC 的内存地址(如 M0.0、DB1.DBW0),若返回数据则通信成功
使用snap7库与 S7 系列 PLC 通信:
安装库:pip install python-snap7
示例代码(读取 PLC 的 DB 块数据):
python
运行
import snap7# 连接PLC(IP地址、机架号、槽号,S7-1200/1500默认机架0、槽1)plc = snap7.client.Client()plc.connect('192.168.0.1', 0, 1)# 读取DB1的前10个字节(DB号1,起始地址0,长度10)data = plc.db_read(1, 0, 10)print("读取的数据:", data)# 写入数据到DB1.DBW2(地址2,写入16位整数3000)plc.db_write(1, 2, snap7.util.get_int_at(data, 0)) # 需转换数据格式# 断开连接plc.disconnect()无法 Ping 通 PLC
第三方软件连接失败
重新检查 PLC 的 “PUT/GET 权限” 是否启用
关闭电脑防火墙或添加端口例外(S7 协议默认端口 102)
验证 PLC 的机架号和槽号(S7-300 通常为机架 0、槽 2)
数据读写异常
确认 DB 块是否设置为 “非优化的块访问”(TIA Portal 中 DB 块属性设置)
检查数据地址和格式是否匹配(如 16 位整数对应 DBx.DBWy)
使用 Wireshark 抓包分析(过滤条件tcp port 102),排查协议错误
OPC UA 通信:在 TIA Portal 中启用 PLC 的 OPC UA 服务器,通过 Kepware 等客户端实现标准化通信
PROFINET 配置:对于带 PROFINET 接口的 PLC,可在 TIA Portal 的 “网络视图” 中分配设备名称,实现基于名称的通信
多设备组网:通过交换机连接 PLC、HMI、SCADA 等设备,统一规划 IP 网段(如192.168.1.x)
按照以上步骤操作,即可在 PC 上实现与西门子 PLC 的以太网通信。不同型号 PLC 的细节可能略有差异,建议结合官方手册(如《S7-1200 以太网通信指南》)进一步调试。