4、在线监控入门:如何建立PC与PLC的在线连接,监控表的建立与使用
各位工程师朋友,大家好。今天咱们聊点实在的——在线监控。
说实话,我见过不少刚入行的同事,程序写得挺漂亮,但一遇到现场故障就抓瞎。为什么?因为不会看PLC内部的数据。你想想看,PLC就像个黑盒子,你不连上去看,怎么知道它脑子里在想什么?
这一章,我就带大家把PC和PLC连起来,再建一张监控表,把PLC的“内心世界”看得清清楚楚。
4.1 建立PC与PLC的在线连接
先说说硬件连接。这步搞不定,后面全是白搭。
4.1.1 硬件连接方式
常见的连接方式就三种,我列个表,大家一目了然:
| 连接方式 | 接口类型 | 适用场景 | 我的建议 |
|---|---|---|---|
| 串口(RS-232/RS-485) | DB9或端子 | 老款PLC、近距离调试 | 现在用得少了,但老设备还得靠它 |
| USB转串口 | USB-B / USB-A | 笔记本调试,方便快捷 | 我个人习惯用这个,随身带一根线就行 |
| 以太网 | RJ45 | 主流方式,支持远程 | 强烈推荐,速度快,还能多人同时看 |
嗯,这里要注意:用USB转串口时,一定要装好驱动。我在项目中遇到过好几次,插上线电脑没反应,折腾半天发现是驱动没装。说白了,驱动就是翻译官,没有它,电脑和PLC说不上话。
4.1.2 软件通信设置
硬件连好了,接下来是软件设置。以西门子博途(TIA Portal)为例,我给大家走一遍流程:
- 打开项目,在左侧项目树中找到你的PLC。
- 双击“在线访问”,选择你用的网卡(比如Realtek PCIe GbE)。
- 点击“搜索可访问的设备”,系统会自动扫描。
- 找到你的PLC,核对MAC地址或IP地址,确认无误。
- 点击“在线”,建立连接。
重要提示:IP地址必须和PLC在同一个网段。比如PLC是192.168.0.1,你的电脑就要设成192.168.0.x(x不能是1)。我见过有人设成192.168.1.100,结果死活连不上,急得满头大汗。
为什么会这样?因为不同网段的数据包,路由器默认不会转发。除非你配了路由表,否则别想跨网段通信。
4.2 监控表的建立与使用
连接建立后,咱们就可以建监控表了。监控表是什么?说白了,就是一张“偷窥”PLC内部数据的表格。
4.2.1 创建监控表
在博途里,操作很简单:
- 在项目树中,找到“监控与强制表”。
- 右键点击,选择“新增监控表”。
- 给表起个名字,比如“电机控制监控”。
我个人习惯,一个功能块建一张表。比如电机控制一张表,阀门控制一张表,这样查起来方便。别把所有变量塞到一张表里,那跟翻字典似的,累死人。
4.2.2 添加监控变量
建好表后,开始往里加变量。你可以手动输入,也可以从程序里拖拽。我建议用拖拽,不容易出错。
举个例子,监控一个电机的启停状态:
变量名:Motor_Start
数据类型:Bool
地址:%I0.0
监控值:TRUE (表示电机正在运行)
再比如监控一个模拟量:
变量名:Tank_Level
数据类型:Real
地址:%MD100
监控值:45.7 (表示液位45.7%)
小技巧:添加变量时,可以顺便写上注释。比如“电机启动按钮”、“液位百分比”。这样过几个月再看,不用猜也知道是啥。我曾经吃过这个亏,没写注释,后来查故障时对着变量名想了半天。
4.2.3 启动监控与数据解读
变量加好了,点击工具栏上的“眼镜”图标(监控按钮),数据就开始刷新了。
你会看到:
- Bool类型:显示TRUE或FALSE,或者1/0。
- 整数/实数:显示具体数值。
- 字符串:显示文本内容。
嗯,这里要注意:监控表的数据是实时刷新的,但刷新速度取决于你的通信负载。如果PLC程序很大,或者你监控的变量太多,刷新会变慢。我建议一次监控不超过50个变量,否则看着眼花,也影响PLC性能。
4.2.4 强制功能的使用
监控表还有一个“杀手锏”——强制。强制就是强行给某个变量赋值,不管程序逻辑怎么跑。
比如,你怀疑一个传感器坏了,信号一直为FALSE。你可以强制它为TRUE,看看后续逻辑会不会动作。如果动作了,说明传感器有问题;如果没动作,说明程序逻辑有bug。
警告:强制功能非常危险!我曾经在调试时,强制了一个输出点,结果设备突然启动,差点伤到人。强制前,一定要确认设备处于安全状态,最好有同事在旁边看着急停按钮。
4.3 实战案例:用监控表排查电机不转故障
光说不练假把式。我给大家讲个真实案例。
有一次,现场反馈说一台电机不转了。我远程连上PLC,建了一张监控表,加了这几个变量:
| 变量名 | 地址 | 监控值 | 分析 |
|---|---|---|---|
| Start_Button | %I0.0 | FALSE | 按钮没按? |
| Safety_Relay | %I0.1 | TRUE | 安全继电器正常 |
| Motor_Run | %Q0.0 | FALSE | 输出没给 |
| Overload_Trip | %I0.2 | TRUE | 热继电器跳了! |
看到没?Overload_Trip为TRUE,说明热继电器过载保护动作了。我让现场人员去检查电机,发现轴承卡死了。更换轴承后,复位热继电器,电机恢复正常。
整个过程不到10分钟。如果没有监控表,你得拿着万用表去现场一个个测,至少半小时起步。
4.4 避坑指南
最后,我总结几个常见坑,大家注意:
- 连接不上?先ping一下PLC的IP地址。ping不通,检查网线、IP设置、防火墙。
- 监控数据不刷新?看看是不是PLC处于STOP模式。STOP模式下,程序不运行,数据当然不动。
- 强制后变量不变化?检查一下是不是被其他程序块覆盖了。强制优先级低于程序赋值。
- 监控表卡死?关掉重开。我遇到过博途的bug,监控表开久了会假死。
好了,这一章就到这里。在线监控是故障诊断的“眼睛”,学会了它,你就成功了一半。下一章,咱们聊聊如何用监控表做更高级的故障分析。
记住:多练、多试、多总结。现场经验就是这么攒出来的。