1. 威纶通HMI与西门子PLC以太网通讯概述
在工业自动化领域,人机界面(HMI)与可编程逻辑控制器(PLC)的通讯是实现设备监控和操作的基础。威纶通(Weintek)作为知名的HMI品牌,与西门子PLC的以太网通讯是常见的应用场景。本文将详细介绍西门子S7-1200/1500系列PLC与威纶通HMI通过以太网建立通讯的完整流程,包含从PLC设置到HMI配置的每个关键步骤。
以太网通讯相比传统的串口通讯具有明显优势:传输速率更快(可达100Mbps)、连接距离更远(理论可达100米)、支持多设备同时连接。在实际项目中,这种通讯方式特别适合需要实时监控和快速响应的应用场景,如生产线控制、设备状态监测等。
2. 西门子PLC端设置详解
2.1 PLC硬件组态与IP地址配置
首先需要在TIA Portal(博途)软件中完成PLC的硬件组态。打开项目后,按以下步骤操作:
- 在项目导航中双击"设备组态",进入硬件配置界面
- 从硬件目录中选择与实际硬件匹配的S7-1200或S7-1500 CPU型号
- 将CPU拖拽到设备视图中完成基本组态
IP地址设置是通讯成功的关键前提。在硬件配置界面中:
- 右键点击CPU模块,选择"属性"
- 在"常规"选项卡中找到"以太网地址"设置项
- 选择"在项目中设置IP地址",输入以下参数:
- IP地址:192.168.0.1(示例,可根据实际网络规划调整)
- 子网掩码:255.255.255.0
- 默认网关:根据网络情况设置(非必须)
重要提示:威纶通HMI的IP地址必须与PLC在同一网段。例如PLC设为192.168.0.1,HMI可设为192.168.0.2-254之间的任意地址。
2.2 通讯权限与安全设置
西门子PLC默认具有严格的访问保护机制,需要特别配置才能允许HMI访问:
- 在CPU属性中找到"防护与安全"→"连接机制"
- 勾选"允许来自远程对象的PUT/GET通讯访问"
- 如需更高安全性,可在"访问级别"中设置密码保护
这一步骤常被忽视,但却是导致通讯失败的主要原因之一。PUT/GET指令是HMI与PLC数据交换的基础,必须开启此权限。
2.3 DB块优化设置与标签导出
威纶通HMI需要通过DB块访问PLC数据,而西门子PLC默认使用"优化的块访问"模式,这会隐藏变量的偏移地址信息。因此需要:
- 在项目树中找到需要通讯的DB块
- 右键选择"属性",取消勾选"优化的块访问"
- 重新编译DB块(Ctrl+B)
取消优化访问后,DB块中的变量将保留传统的地址偏移信息,这是威纶通HMI识别变量的必要条件。
标签导出步骤:
- 右键点击DB块,选择"从块生成源"
- 在弹出的对话框中选择"生成源文件"
- 生成的.awl文件包含了所有变量标签信息,将用于威纶通HMI的标签导入
3. 威纶通HMI端配置
3.1 HMI基本网络设置
在威纶通HMI设备上进行IP地址配置:
- 点击屏幕右下角的向左箭头,进入系统菜单
- 选择齿轮图标(设置),输入默认密码"111111"
- 进入"Network"设置界面
- 选择"IP address get from below"(手动设置IP)
- 输入与PLC同网段的IP地址,例如192.168.0.2
- 子网掩码设置为255.255.255.0
- 保存设置并重启HMI使配置生效
实际经验:建议在HMI和PLC都断电的情况下连接网线,然后同时上电,可避免一些网络识别问题。
3.2 EasyBuilder Pro软件配置
使用威纶通的EasyBuilder Pro软件进行通讯配置:
- 新建或打开一个HMI项目
- 点击"常用"→"系统参数"
- 在"设备列表"中点击"新增设备/服务器"
- 设备类型选择"Siemens S7-1200"(根据实际PLC型号选择)
- 接口类型选择"Ethernet"
- 输入PLC的IP地址(如192.168.0.1)
- 端口号保持默认102(西门子S7通讯标准端口)
- 通讯超时可设置为3000ms(根据网络质量调整)
3.3 标签导入与变量映射
将PLC中的变量导入HMI项目:
- 在系统参数中选择"本机设备"
- 点击"导入标签",选择之前从TIA Portal导出的.awl文件
- 在导入界面中勾选需要的DB块和变量
- 设置变量前缀(可选,便于在HMI中识别)
- 点击"导入"完成变量映射
导入后,可以在HMI的变量表中看到所有PLC变量,包括数据类型、地址等信息。这些变量可以直接用于HMI画面设计。
4. 通讯测试与故障排查
4.1 在线模拟测试
在投入实际运行前,建议先进行在线模拟测试:
- 确保PLC程序已下载并运行
- 在EasyBuilder Pro中点击"在线模拟"按钮
- 选择"使用实际设备通讯"
- 观察通讯状态指示灯(通常为绿色表示正常)
- 测试各变量的读写功能
4.2 常见通讯问题与解决方案
-
通讯超时或无响应
- 检查网线连接是否正常(指示灯是否亮起)
- 确认PLC和HMI的IP地址在同一网段
- 验证PLC中PUT/GET访问权限是否开启
- 检查防火墙设置,确保102端口未被阻止
-
部分变量无法读写
- 确认DB块的"优化的块访问"已取消
- 检查变量地址在HMI和PLC中是否一致
- 验证变量数据类型是否匹配
-
通讯不稳定或时断时续
- 尝试更换网线或交换机端口
- 降低通讯速率(调整HMI的轮询间隔)
- 检查网络是否存在IP地址冲突
4.3 实际应用中的优化建议
-
对于大量数据传输,建议:
- 使用DB块数组而非单个变量
- 设置合理的轮询周期(通常100-500ms)
- 避免在同一个画面中同时刷新过多变量
-
对于关键控制信号,建议:
- 使用保持型变量(Retain)
- 在HMI中添加操作确认对话框
- 实现状态反馈验证机制
-
长期运行稳定性建议:
- 使用高质量的工业级交换机和网线
- 定期检查通讯连接状态
- 在HMI中实现通讯中断报警功能
5. 高级应用:控制轴动作实例
以一个简单的伺服轴控制为例,演示HMI与PLC的完整交互:
-
在PLC中创建轴控制DB块,包含:
- 控制字(Start, Stop, Jog等)
- 状态字(Ready, Busy, Error等)
- 设定位置/速度
- 实际位置/速度反馈
-
在HMI中创建对应画面:
- 按钮:启动、停止、复位
- 数值输入:目标位置设定
- 数值显示:当前位置反馈
- 状态指示灯:运行、报警等
-
实现功能逻辑:
- HMI按钮按下→写入PLC控制字→PLC执行相应动作
- PLC状态变化→反馈到HMI指示灯
- 位置设定值从HMI写入→PLC执行位置移动
通过这种模式,可以实现复杂的设备控制功能,同时保持代码结构清晰,便于维护和扩展。
