QQ登录

只需一步,快速开始

WINCC7.2中如何判断以太网的通断?

[ 复制链接 ]
WINCC7.2中如何判断以太网的通断?

我有几台上位机连在一起,还有个CPU315-2PN/DP的PLC和几个以太网接口的ET200M,我就想判断下上位机之间,以及与CPU和ET200M之间网络的通断,

1、是否有类此PING的指令或者函数?比如PING 192.168.0.1

2、我只要返回一个通断的状态就可以,请教各位如何实现呢?


----两个方法

一,调用ping命令,ping ip cp重定向生成文件并分析文件。
二,用krpware连接该模块,,kep的通道变量里有通道的状态描述



-------用“心跳”信号的方式测试吧。


-----两个方法:1.是你建立的链接上有一个绿色的对钩,这说明通讯上了

2.在WinCC——Tools下面有个诊断工具,打开后显示通断的。

注:这两个方法有一个共同的前提,WinCC要在运行状态。


-------我在网上找到如下代码,不清楚是否能用到WINCC7.2中,如果能用,如何修改,使网络通的时候返回一个内部变量TEST=1? 网络断的时候,TEST=0?


VBS代码如下:
网络不通后自动重启:
'═════代═══码═══开═══始═════
strMachine = "www.baidu.com"
set ws=CreateObject("wscript.shell")
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address ='" &strMachine& "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
ws.run "cmd /c shutdown -r -t 0",0
End If
Next
'Created By escortmnm from VBS团队


'[2] Ping
On Error Resume Next
ip = "www.baidu.com"
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & ip & "'")
For Each objStatus in objPing
if objStatus.ResponseTime>0 then msgbox "通":Exit For
Next



--------和PLC通讯可以用测心跳的方式进行,或者在PLC里面做一个变量,数字不停变化,检测不变化了,那就不正常。

没试过如果通讯不上,变量的数据会不会变0,如果变0的话,用脚本判断一下就能实现了,

PLC和ET200M可以在PLC里面用SFC51就能判断所有的DP从站,然后WINCC读取就行了


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索