
01项目环境1.操作系统:Windows10专业版64位21H12.编程软件:Studio5000英文版3.上位软件:FTViewStudio中文版4.5370硬件:1769-L30ER5.5570硬......
01
项目环境
1.操作系统:Windows10专业版64位21H1
2.编程软件:Studio5000英文版
3.上位软件:FTViewStudio中文版
4.5370硬件:1769-L30ER
5.5570硬件:1756-L72+1756-ENBT
02
网络心跳

2.如何实现网络心跳监测程序呢?假设服务端与多个客户端进行以太网通信,服务端需要监测客户端的通信状态,方法应该有很多种,我是这样做的:

3.上面的图片可以放大了查看,如果不想费劲,那么,就看下面的文字吧,实现网络心跳监测的程序逻辑:
客户端以一定的频率产生心跳
客户端将网络心跳数发送给服务端
服务端监测客户端心跳数,并将其存入心跳缓存
服务端将客户端心跳与心跳缓存进行比较
如果心跳≠心跳缓存,通信正常;
如果心跳=心跳缓存,通信故障.

03
心跳程序
1.项目情景:1756-L72与1769-L30ER通过Ethernet/IP以太网通信,并接收它产生的心跳,并根据心跳变化来判断网络通信状态,IP地址详见下图.

2.由于这两款控制器,都属于ABLOGIX5000系列,那么,它们之间实现通信交换数据非常方便,本文使用的方法是生产/消费者标签,1769-L30ER作为生产者,1756-L72作为消费者,在1769-L30ER项目中,控制器名称为CML30ER,在控制器标签域中配置生产型标签HeartBeat,数据类型DINT,标签类型Produced,详见下图.

3.在1756-L72项目中,在以太网中添加1769-L30ER控制器CML30ER,在控制器标签域中,创建消费者标签HeartBeatFromCML30ER,数据类型DINT,标签类型Consumed,生产者选择CML30ER,远程标签填HeartBeat,RIP填写100ms,详见下图.

4.本文所描述的心跳程序,具体一定的通用性,所以决定使用AOI指令进行封装,程序分为两部分:
第1部分,产生网络心跳的程序:设置心跳频率、心跳最大数等;
第2部分,接收通信伙伴的心跳程序:设置通信中断时间、判断通信状态等;
AOI封装块使用,如下图,建议放大查看.

5.AOI封装块里第1部分,产生网络心跳的程序代码,详见下图,如果放大了还看不清楚的话,文末提供了代码下载方法.

6.AOI封装块里第2部分,接收通信伙伴的心跳,并以此判断通信状态的程序代码.

结语:综上所述,本文通过图文、理论、案例等方式方法比较详细的讲解了网络通信心跳机制,以及LOGIX5000控制器如何编写代码来实现,由于该属性具有通用性,即不仅仅限于ABPLC之间的通信,还适用于ABPLC与第三方设备通信,故使用了AOI封装的方式,便于快速移植和部署,感兴趣的朋友可以试试,也可以开发适合自己项目的代码。