主题
网络工具例程 2:外网连通性探测 + 状态镜像
这一页只讲这一个例程。同组其余例程、以及这个库的函数说明都在 05-05-net。
适用:同上 | 依赖模块:net plc | 难度:★☆☆
场景:定期探一下外网通不通,把结果镜像到 M30 给梯形图/画面做"外网在线"指示灯。
完整代码(可直接下载运行):
lua
net.ping("223.5.5.5", function(msg)
local ok = msg:match("回复") ~= nil -- 回调是中文结果串,不是数值
plc.m(30, ok and 1 or 0)
print("外网:", msg)
end)要点:
net.ping必须传 2 个参数:目标 + 结果回调。- 回调收到的是已格式化的中文结果串(如"来自 223.5.5.5 的回复…"),不是结构化数值。
验证方法:
- 能上网时 M30 = 1,日志打印"回复"。
- 拔网线后 M30 = 0,提示超时。
注意事项:
- 不能直接把回调结果当数值比较,要用
match("回复")之类判断。 - 域名解析失败也走这个回调,须一并处理。