在工业自动化领域,PLC(可编程逻辑控制器)作为核心设备,其网络通信的稳定性和可靠性至关重要。本文将详细介绍如何在基于LicOS PLC中使用Smart Control软件进行Ping命令操作,以检测PLC与其他网络设备之间的通信状态。
什么是Ping命令?
Ping命令是一种广泛应用于电脑网络的工具,存在于Windows、Unix和Linux系统中。它工作在TCP/IP网络体系结构的应用层,通过向特定目的主机发送ICMP(Internet Control Message Protocol)Echo请求报文,测试目标主机是否可达及其状态。Ping命令能够帮助用户分析和判定网络故障,是网络调试中不可或缺的工具。
图 命令使用
LicOS PLC 进行Ping命令使用
Smart Control作为LicOS PLC的编程调试软件,支持在PLC调试阶段使用Ping命令,以检测PLC与其他网络站点的数据可达性。这一功能在网络调试和故障排查中尤为重要。
使用场景
在实际项目中,PLC通常作为网络中介连接不同网段的设备。例如,PLC通过LAN1与上层网络及上位管理平台通信,通过LAN2与前端执行设备通过现场总线(如ModBus TCP、Profinet、EtherNet等)通信。当两个网络环境处于不同网段时,PLC需要确保与各设备的网络连通性。此时,Ping命令的使用显得尤为关键。
图 适用的网络场景
以下为使用方法:
一、库文件添加
SysSockPing功能块属于SysSocket功能库。操作流程如下:
双击库管理器—添加库—显示高级库—搜索SysSocket—确定
图 添加库
图 搜索SysSocker
图 库添加完成
二、解读函数功能块
01
函数块
SysSockPing函数功能块如下图所示:
图 SysSockPing函数块
02
函数块引脚定义
SysSockPing函数功能块引脚定义如下图所示:
图 函数块引脚定义
SysSockPing: 函数返回数据,显示与其他通信伙伴的通讯建立结果。
szIPAddress:以字符串形式表示的通信伙伴的IP地址。
ulTimeout:等待答复的超时时间,以毫秒为单位。
pulReplyTime:指针以获取ping请求的平均响应时间,以毫秒为单位。
功能分析:
- szIPAddress:输入通信伙伴的目标IP地址,格式为字符串,例如“192.168.20.80”。
- ulTimeout:设置等待答复的超时时间(单位:毫秒)。该值不能为0,且应根据实际网络质量合理设置,避免过小导致误判。
- pulReplyTime:通过指针反馈Ping请求的平均响应时间(单位:毫秒)。如果其值等于ulTimeout,说明通信已断开。
- SysSockPing返回值:返回0表示通信正常,其他值表示通信失败。
三、函数块的使用例程
01
LD
1、定义相关变量。
PROGRAM PLC_PRG
VAR
str_szIPAddress : STRING ;
udi_ulTimeout : TIME;
udi_pulReplyTime : UDINT;
bTrigger : BOOL;//执行
bResult :UDINT ;//结果
END_VAR
如下图所示:
图 LD例程变量定义
2、函数调用
如下图所示:
图 例程函数调用
例程测试的PLC1的LAN1 IP地址为192.168.20.80/24、LAN2 IP地址为192.168.21.80/24,LAN3 IP地址为192.168.22.80/24,与其建立通讯的PLC2 IP地址为192.168.21.20/24,PLC2与PLC1的LAN2连接,调试PC IP地址为192.168.20.254/24,PC与PLC1的LAN1连接。
程序测试如下图所示。
图 例程通讯成功
可见设定的ulTimeout为10ms,函数执行返回结果为0,平均响应时间pulReplyTime为0ms,所以表明其与通信伙伴建立了通信并且通信网络质量优。
而下图所示则表明通讯失败:
图 例程通讯失败
可见设定的ulTimeout为10ms,函数执行返回结果为5,平均响应时间pulReplyTime为10ms,所以表明其与通信伙伴建立通信失败。
02
ST
1.定义相关变量。
PROGRAM PLC_PRG
VAR
str_szIPAddress : STRING ;
udi_ulTimeout : TIME;
udi_pulReplyTime : UDINT;
bTrigger : BOOL;//执行
bResult : UDINT ;//结果
END_VAR
如下图所示:
图 ST例程变量定义
2、函数调用
如下图所示:
图 例程函数调用
3.在线测试
例程测试的PLC1的LAN1 IP地址为192.168.20.80/24、LAN2 IP地址为192.168.21.80/24,LAN3 IP地址为192.168.22.80/24,与其建立通讯的PLC2 IP地址为192.168.21.20/24,PLC2与PLC1的LAN2连接,调试PC IP地址为192.168.20.254/24,PC与PLC1的LAN1连接。
程序测试下图所示:
图 例程通讯成功
可见设定的ulTimeout为10ms,函数执行返回结果为0,平均响应时间pulReplyTime为0ms,所以表明其与通信伙伴建立了通信并且通信网络质量优。
而下图所示则表明通讯失败:
图 历程通讯失败
可见设定的ulTimeout为10ms,函数执行返回结果为5,平均响应时间pulReplyTime为10ms,所以表明其与通信伙伴建立通信失败。
通过Smart Control软件在LicOS PLC中使用Ping命令,可以有效检测PLC与其他网络设备之间的通信状态。本文详细介绍了库文件的添加、函数功能块的使用方法以及具体的例程操作。在实际应用中,工程师可以根据本文的指导,快速诊断和解决PLC网络通信问题,提高工业自动化系统的稳定性和可靠性。