首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过脚本实现对Wincc与PLC通讯状态的监视

第一步:创建变量

      在 WinCC Runtime Professional 项目的”HMI 变量“相应变量表中,添加 Int 类型的外部变量External_tag_1,Bool 类型的内部变量Trigger_connection_interrupted,如下图所示:

第二步:添加脚本

      在项目树中的 WinCC Runtime Professional 项目中脚本的“C脚本” 中添加新脚本“DiagConnection",如下图所示:

      在脚本中填写如下语句,语句内容为通过检查“External_tag_1“的变量状态来判断通信状态,如果通信正常给变量“Trigger_connection_interrupted”赋值为0,通信异常给变量“Trigger_connection_interrupted”赋值为1。

DWORD dwState = 0;

GetTagSWordState ("External_tag_1", &dwState);

if (dwState == 0)

{

//Tag status OK

printf ("Tag status Ok: [Statuscode (hex):%X]\r\n",dwState);

SetTagBit ("Trigger_connection_interrupted", FALSE);

}

else if (dwState&0X0001)

{

printf ("Tag status deviant: [Statuscode (hex):%X]\r\n",dwState);

SetTagBit ("Trigger_connection_interrupted", TRUE);

}

else

{

//Tag status deviant

printf ("Tag status deviant: [Statuscode (hex):%X]\r\n",dwState);

SetTagBit ("Trigger_connection_interrupted", FALSE);

如下图所示:

第三步:添加任务 

      然后在项目树中打开”计划任务“,新建 "DiagConnection" 的计划任务,计划任务类型选择“函数列表”,触发器选择 10秒,然后点击“属性”窗口中的“事件”选项卡,然后选择已经建立的C脚本“DiagConnection”。

第四步:开启服务

      然后在项目树中的 “运行系统设置” 中选择“服务”,并勾选 “运行系统中的计划任务” 选项。如下图:

      示例效果为每 10秒检查一次 外部变量 "External_tag_1" 所隶属的连接的通信状态,如果通信正常,则 “Trigger_connection_interrupted” 变量值为0,如果通信异常则 “Trigger_connection_interrupted” 变量值为1。

      注意:可通过对计划任务中触发器的设置,来调整通信诊断的时间间隔,本例中设置为10秒。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OSmOtXqSr-_QQsS3cbLlJlvg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券