目前项目中做WinCC与PLC连接状态的弹窗提示,本人是通过一个图片的显示与否的状态变化来触发一个C脚本,脚本内容如下:
#pragma option(mbcs)
DWORD state;
HWND hWnd;
hWnd=FindWindow(NULL,"WinCC-运行系统 - ");
GetTagDWordState("STATUS",&state);
if(state == 0)
{
MessageBox(hWnd,"PLC已连接!","警告",MB_OK);
}
else
{
MessageBox(hWnd,"PLC连接异常!","警告",MB_OK);
}
代码中的外部变量 "STATUS” 的类型是DWORD,是对应DB区的DD0,我的想法是当网络断开时会有弹窗提示PLC连接异常,当连接恢复后弹出PLC已连接的提示框,而目前的情况是我扒掉网线后,大概20秒左右才会提示弹窗“PLC连接异常”,插上网线后大概5秒钟显示“PLC已连接”,我这边是一个西门子的交换机通过PN线连接S7-300的CPU,然后我用PN线连接这个交换机,程序中我也插入了监控连接状态的好像叫channel D什么的那个控件,那个控件的变化时间也跟上面提到的时间一致,本身我的WINCC的周期是250MS,请问下有什么好的解决办法又或者我的上面的代码是不是有问题,麻烦高手帮忙解答下,不胜感激