如何在WinCC中获取与S7-300/400 CPU的通讯状态

希殿电气技术有限公司供应 

全国西门子供应代理

康qq;192061030   18621061383

WinCC项目中通讯连接至关重要,获取连接通讯状态能有效的判断当前系统的运行情况,及时处理问题。

此文档提供了三种方式来获取通讯连接状态。文档中所述的样例,是已经建立了与S7-300/400 CPU的通讯连接。关于通讯设置的具体步骤请参考文档《WinCC连接Siemens PLC的常用方法》

            文档适用于WinCC 6.2WinCC 7.0系统。

1 画面中添加控件来获取通讯状态

            WinCC 提供工具“Channel Diagonsis”来判断项目中连接的通讯状态,此工具在操作系统 开始”—>“Simatic”—>“WinCC”—>“Tools”目录下可以找到。此工具也可以添加到WinCC画面中使用。

  

 

1

 

打开WinCC“图形编辑器,在右边对象选项板中选择控件列表,如果是V6.2的系统在列表空白区域点击鼠标右键选择添加/删除(图1),如果是V7.0的系统需要先选中“ActiveX 控件,再点击鼠标右键选择添加/删除(图2)。

 

 

2

 

打开选择OCX控件对话框,在OCX控件列表中找到并且选中“WinCC Channel Diagonsis Control”控件(图3),点击确定。然后在选项板控件列表中就能找到此控件,把此控件添加到画面中,激活WinCC项目。

 

   

3

 

项目激活运行后,通道诊断控件会显示项目中通讯连接的通讯状态,绿勾表示通讯正常,红叉表示通讯故障。选中故障链接,在右边列表中能显示出此故障的错误代码(图4)。 

 

 

 

4

           

 

错误代码的说明可以在帮助文档“S7CHNERRORchs.HLP”中查到,此帮助文档在WinCC 的安装路径下(如:C:\Programs\Siemens\WinCC\bin )找到。

           

 

 根据通讯状态改变对象属性

            在连接中所建的变量,在通讯时都会带有变量状态信息,变量状态包含WinCC 和自动化设备之间的连接状态。通过获取这个变量状态,我们就能得知变量所在连接的通讯状态。

首先在需要监控的通讯连接下新建一个变量“status”,地址取位存储区首地址(图5)。

 

 

 

 

            在此文档中我们以静态文本来举例。在画面中添加一个静态文本,选择对象属性字体à 文本,在动态列表中选择动态对话框(图6)。

 

 

 

6

 

 

在动态对话框中,表达式/公式选择变量“status”,把表达式/公式的结果列表中其他范围对应的文本修改成通讯已连接。选择变量状态,在弹出的状态列表中,把没有连接范围对应的文本修改成通讯干扰(图7),应用此设置。

 

 

 

7

 

            项目激活运行后,如果通讯正常,静态文本会显示通讯已连接,如果通讯故障会显示通讯干扰。(具体故障原因可检查通道诊断)

            此组态方法也可应用到其他对象,例如修改对象的背景颜色等。

 

 

 

 使用脚本获取通讯状态

            上一章节是把变量的变量状态直接与对象属性关联,这个变量状态也可以直接使用脚本来读取,在脚本中判断通讯状态,继而执行比较复杂的逻辑操作。

首先在需要监控的通讯链接下新建一个变量“status”,地址取位存储区首地址(图5)。

            打开全局脚本”—>“C-Editor”,新建一个动作,编写如下代码(图8)。脚本中“GetTagDWordState”函数获取了变量的变量状态,然后使用If语句执行判断。

 

 

8

 

            在工具栏上点击信息/触发,(信息/触发按钮在V6.2系统中图标参考图8,如果是V7.0系统中图标参考图9)在属性选项板上选择触发器à定时器à周期,然后点击添加按钮,在弹出对话框中填写触发器名称“Action1”,然后定义周期”5秒。这种组态(图10)会让此脚本在WinCC运行期间以5秒的时间间隔,循环执行。

 

 

9

 

 

 

10

 

注意事项

1.项目运行前必须把计算机属性启动列表中全局脚本行系统给勾选上(图11)。

2.脚本的执行周期用户可根据项目自行修改,但是不建议执行周期过密。因为在WinCC系统中脚本是单进程的,如果脚本中有很耗时的执行过程,过密的执行周期会造成系统负担过大,导致脚本不执行或者系统运行缓慢等现象。

 

11

4  CPU停机监控

            这里需要注意一点,WinCC系统的默认设置是会监控CPUSTOP状态的,如果CPU打到STOP状态,也会显示通讯故障,通道诊断的错误代码“ 7001” 。这个默认设置可修改(图12),打开变量管理器,选择所用通讯协议,例如“TCP/IP”,点击鼠标右键选择系统参数,在对话框中选择 “CPU 停机监控取消激活,则不对CPUSTOP状态进行监控。

 

 

12