WinCC项目中通讯连接至关重要,获取连接通讯状态能有效的判断当前系统的运行情况,及时处理问题。
此文档提供了三种方式来获取通讯连接状态。文档中所述的样例,是已经建立了与S7-300/400CPU的通讯连接。文档适用于或系统。
1画面中添加控件来获取通讯状态
WinCC提供工具“ChannelDiagonsis”来判断项目中连接的通讯状态,此工具在操作系统“开始”—“Simatic”—“WinCC”—“Tools”目录下可以找到。此工具也可以添加到WinCC画面中使用。
图1
图2
图3
项目激活运行后,通道诊断控件会显示项目中通讯连接的通讯状态,绿勾表示通讯正常,红叉表示通讯故障。选中故障链接,在右边列表中能显示出此故障的错误代码(图4)。
图4
错误代码的说明可以在帮助文档“”中查到,此帮助文档在WinCC的安装路径下(如:C:\Programs\Siemens\WinCC\bin)找到。
2根据通讯状态改变对象属性在连接中所建的变量,在通讯时都会带有变量状态信息,变量状态包含WinCC和自动化设备之间的连接状态。通过获取这个变量状态,我们就能得知变量所在连接的通讯状态。
首先在需要监控的通讯连接下新建一个变量“status”,地址取位存储区首地址
在此文档中我们以静态文本来举例。在画面中添加一个静态文本,选择对象属性“字体”à“文本”,在动态列表中选择“动态对话框”(图6)。
图6
在动态对话框中,表达式/公式选择变量“status”,把表达式/公式的结果列表中“其他”范围对应的文本修改成“通讯已连接”。选择“变量状态”,在弹出的状态列表中,把“没有连接”范围对应的文本修改成“通讯干扰”(图7),应用此设置。
图7
项目激活运行后,如果通讯正常,静态文本会显示“通讯已连接”,如果通讯故障会显示“通讯干扰”。(具体故障原因可检查通道诊断)
此组态方法也可应用到其他对象,例如修改对象的背景颜色等。
3使用脚本获取通讯状态
上一章节是把变量的“变量状态”直接与对象属性关联,这个“变量状态”也可以直接使用脚本来读取,在脚本中判断通讯状态,继而执行比较复杂的逻辑操作。
首先在需要监控的通讯链接下新建一个变量“status”,地址取位存储区首地址(图5)。
打开“全局脚本”—“C-Editor”,新建一个“动作”,编写如下代码(图8)。脚本中“GetTagDWordState”函数获取了变量的变量状态,然后使用If语句执行判断。
图8
图9
图10
注意事项:
1.项目运行前必须把计算机属性“启动”列表中“全局脚本行系统”给勾选上(图11)。
2.脚本的执行周期用户可根据项目自行修改,但是不建议执行周期过密。因为在WinCC系统中脚本是单进程的,如果脚本中有很耗时的执行过程,过密的执行周期会造成系统负担过大,导致脚本不执行或者系统运行缓慢等现象。
图11
图12
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系