在WinCC中获取与S7-300/400 CPU的通讯状态
[p=30, 2, left][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]项目中通讯连接至关重要,获取连接通讯状态能有效的判断当前系统的运行情况,及时处理问题。[/size][/font] [/p][p=30, 2, left][font=SimSun][size=10.5pt]此文档提供了三种方式来获取通讯连接状态。文档中所述的样例,是已经建立了与[/size][/font][size=10.5pt]S7-300/400 CPU[/size][font=SimSun][size=10.5pt]的通讯连接。关于通讯设置的具体步骤请参考文档《[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]连接[/size][/font][size=10.5pt]Siemens PLC[/size][font=SimSun][size=10.5pt]的常用方法》[/size][/font][size=10.5pt][url=http://support.automation.siemens.com/CN/view/zh/71787681]http://support.automation.siemens.com/CN/view/zh/71787681[/url][/size] [/p][p=30, 2, left][font=SimSun][size=10.5pt]文档适用于[/size][/font][size=10.5pt]WinCC 6.2[/size][font=SimSun][size=10.5pt]或[/size][/font][size=10.5pt]WinCC 7.0[/size][font=SimSun][size=10.5pt]系统。[/size][/font] [/p][font=SimSun][size=12pt][font=Arial]1[/font] 画面中添加控件来获取通讯状态[/size][/font][p=30, 2, left][size=10.5pt] WinCC[/size] [font=SimSun][size=10.5pt]提供工具[/size][/font][size=10.5pt]“Channel Diagonsis”[/size][font=SimSun][size=10.5pt]来判断项目中连接的通讯状态,此工具在操作系统[/size][/font] [size=10.5pt]“[/size][font=SimSun][size=10.5pt]开始[/size][/font][size=10.5pt]”—>“Simatic”—>“WinCC”—>“Tools”[/size][font=SimSun][size=10.5pt]目录下可以找到。此工具也可以添加到[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]画面中使用。[/size][/font] [/p][p=30, 2, center][size=10.5pt] [img=245,320]http://cache.automation.siemens.com/dnl/DM/DMyMjI3AAAA_71677330_FAQ/images_01.png[/img][/size] [/p]
[p=30, 2, center][size=2][font=SimSun]图[/font]1[/size] [/p][p=30, 2, center]
[/p][p=30, 2, left][font=SimSun][size=10.5pt]打开[/size][/font][size=10.5pt]WinCC“[/size][font=SimSun][size=10.5pt]图形编辑器[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],在右边[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]对象选项板[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]中选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]控件[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]列表,如果是[/size][/font][size=10.5pt]V6.2[/size][font=SimSun][size=10.5pt]的系统在列表空白区域点击鼠标右键选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]添加[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]删除[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt](图[/size][/font][size=10.5pt]1[/size][font=SimSun][size=10.5pt]),如果是[/size][/font][size=10.5pt]V7.0[/size][font=SimSun][size=10.5pt]的系统需要先选中[/size][/font][size=10.5pt]“ActiveX[/size] [font=SimSun][size=10.5pt]控件[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],再点击鼠标右键选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]添加[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]删除[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt](图[/size][/font][size=10.5pt]2[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p][p=30, 2, center][size=2]
[/size] [/p][p=30, 2, center][size=2][font=SimSun][img]http://cache.automation.siemens.com/dnl/DA/DAzNjA1OQAA_71677330_FAQ/images_02.png[/img] [/font][/size] [/p][p=30, 2, center][size=2][font=SimSun]图[/font]2[/size] [/p][p=30, 2, center]
[/p][p=30, 2, left][font=SimSun][size=10.5pt]打开[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]选择[/size][/font][size=10.5pt]OCX[/size][font=SimSun][size=10.5pt]控件[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]对话框,在[/size][/font][size=10.5pt]OCX[/size][font=SimSun][size=10.5pt]控件列表中找到并且选中[/size][/font][size=10.5pt]“WinCC Channel Diagonsis Control”[/size][font=SimSun][size=10.5pt]控件(图[/size][/font][size=10.5pt]3[/size][font=SimSun][size=10.5pt]),点击确定。然后在选项板控件列表中就能找到此控件,把此控件添加到画面中,激活[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]项目。[/size][/font] [/p][p=30, 2, left]
[/p][p=30, 2, center][font=SimSun][size=10.5pt][img=306,304]http://cache.automation.siemens.com/dnl/jg/jgzMTE5AAAA_71677330_FAQ/images_03.png[/img] [/size][/font]
[/p][p=30, 2, center][size=2][font=SimSun]图[/font]3[/size] [/p][p=30, 2, center][size=2]
[/size] [/p][p=30, 2, left][font=SimSun][size=10.5pt]项目激活运行后,通道诊断控件会显示项目中通讯连接的通讯状态,绿勾表示通讯正常,红叉表示通讯故障。选中故障链接,在右边列表中能显示出此故障的错误代码(图[/size][/font][size=10.5pt]4[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p]
[p=30, 2, center][img=386,260]http://cache.automation.siemens.com/dnl/DE/DExMzA0OQAA_71677330_FAQ/images_04.png[/img] [/p]
[p=30, 2, center][size=2][font=SimSun]图[/font]4[/size] [/p][p=30, 2, left]
[/p][p=30, 2, left]
[/p][p=30, 2, left][font=SimSun][size=10.5pt]错误代码的说明可以在帮助文档[/size][/font][size=10.5pt]“S7CHNERRORchs.HLP”[/size][font=SimSun][size=10.5pt]中查到,此帮助文档在[/size][/font] [size=10.5pt]WinCC[/size] [font=SimSun][size=10.5pt]的安装路径下(如:[/size][/font][size=10.5pt]C:\Programs\Siemens\WinCC\bin[/size] [font=SimSun][size=10.5pt])找到。[/size][/font] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, left][size=2] [/size] [/p][font=SimSun][size=12pt][font=Arial]2 [/font] 根据通讯状态改变对象属性[/size][/font][p=30, 2, left][size=2] [/size] [font=SimSun][size=10.5pt]在连接中所建的变量,在通讯时都会带有变量状态信息,变量状态包含[/size][/font][size=10.5pt]WinCC[/size] [font=SimSun][size=10.5pt]和自动化设备之间的连接状态。通过获取这个变量状态,我们就能得知变量所在连接的通讯状态。[/size][/font] [/p][p=30, 2, left][font=SimSun][size=10.5pt]首先在需要监控的通讯连接下新建一个变量[/size][/font][size=10.5pt]“status”[/size][font=SimSun][size=10.5pt],地址取位存储区首地址(图[/size][/font][size=10.5pt]5[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p][p=30, 2, left]
[/p][p=30, 2, center] [img]http://cache.automation.siemens.com/dnl/jg/jgyNzA1OQAA_71677330_FAQ/images_05.PNG[/img] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, left]
[/p][p=30, 2, left]
[font=SimSun][size=10.5pt]在此文档中我们以静态文本来举例。在画面中添加一个静态文本,选择对象属性[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]字体[/size][/font][size=10.5pt]”[/size][font=Wingdings][size=10.5pt]à[/size][/font] [size=10.5pt]“[/size][font=SimSun][size=10.5pt]文本[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],在动态列表中选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]动态对话框[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt](图[/size][/font][size=10.5pt]6[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p][p=30, 2, left]
[/p][p=30, 2, center] [img=428,223]http://cache.automation.siemens.com/dnl/DA/DAxNjE0MQAA_71677330_FAQ/images_06.png[/img] [/p]
[p=30, 2, center][size=2][font=SimSun]图[/font]6[/size] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, left][font=SimSun][size=10.5pt]在动态对话框中,表达式[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]公式选择变量[/size][/font][size=10.5pt]“status”[/size][font=SimSun][size=10.5pt],把表达式[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]公式的结果列表中[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]其他[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]范围对应的文本修改成[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]通讯已连接[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]。选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]变量状态[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],在弹出的状态列表中,把[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]没有连接[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]范围对应的文本修改成[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]通讯干扰[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt](图[/size][/font][size=10.5pt]7[/size][font=SimSun][size=10.5pt]),应用此设置。[/size][/font] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, center][img=296,440]http://cache.automation.siemens.com/dnl/jk/jk4ODUxAAAA_71677330_FAQ/images_07.PNG[/img] [/p]
[p=30, 2, center][size=2][font=SimSun]图[/font]7[/size] [/p][p=30, 2, left][size=2] [/size] [/p][p=30, 2, left]
[font=SimSun][size=10.5pt]项目激活运行后,如果通讯正常,静态文本会显示[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]通讯已连接[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],如果通讯故障会显示[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]通讯干扰[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]。(具体故障原因可检查通道诊断)[/size][/font] [/p][p=30, 2, left]
[font=SimSun][size=10.5pt]此组态方法也可应用到其他对象,例如修改对象的背景颜色等。[/size][/font] [/p][p=30, 2, left]
[/p][p=30, 2, left]
[/p][p=30, 2, left]
[/p][font=SimSun][size=12pt][font=Arial]3 [/font] 使用脚本获取通讯状态[/size][/font][p=30, 2, left][size=2] [/size] [font=SimSun][size=10.5pt]上一章节是把变量的[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]变量状态[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]直接与对象属性关联,这个[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]变量状态[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]也可以直接使用脚本来读取,在脚本中判断通讯状态,继而执行比较复杂的逻辑操作。[/size][/font] [/p][p=30, 2, left][font=SimSun][size=10.5pt]首先在需要监控的通讯链接下新建一个变量[/size][/font][size=10.5pt]“status”[/size][font=SimSun][size=10.5pt],地址取位存储区首地址(图[/size][/font][size=10.5pt]5[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p][p=30, 2, left]
[font=SimSun][size=10.5pt]打开[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]全局脚本[/size][/font][size=10.5pt]”—>“C-Editor”[/size][font=SimSun][size=10.5pt],新建一个[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]动作[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],编写如下代码(图[/size][/font][size=10.5pt]8[/size][font=SimSun][size=10.5pt])。脚本中[/size][/font][size=10.5pt]“GetTagDWordState”[/size][font=SimSun][size=10.5pt]函数获取了变量的变量状态,然后使用[/size][/font][size=10.5pt]If[/size][font=SimSun][size=10.5pt]语句执行判断。
[/size][/font][/p][p=30, 2, left]
[/p][p=30, 2, center][img=389,354]http://cache.automation.siemens.com/dnl/jA/jAzODU5NQAA_71677330_FAQ/images_08.png[/img] [/p][p=30, 2, center][b][size=2]
[/size][/b] [/p][p=30, 2, center][b][size=2][font=SimSun]图[/font]8[/size][/b] [/p][p=30, 2, center][b][size=2]
[/size][/b] [/p][p=30, 2, left]
[font=SimSun][size=10.5pt]在工具栏上点击[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]信息[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]触发[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],([/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]信息[/size][/font][size=10.5pt]/[/size][font=SimSun][size=10.5pt]触发[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]按钮在[/size][/font][size=10.5pt]V6.2[/size][font=SimSun][size=10.5pt]系统中图标参考图[/size][/font][size=10.5pt]8[/size][font=SimSun][size=10.5pt],如果是[/size][/font][size=10.5pt]V7.0[/size][font=SimSun][size=10.5pt]系统中图标参考图[/size][/font][size=10.5pt]9[/size][font=SimSun][size=10.5pt])在属性选项板上选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]触发器[/size][/font][size=10.5pt]”[/size][font=Wingdings][size=10.5pt]à[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]定时器[/size][/font][size=10.5pt]”[/size][font=Wingdings][size=10.5pt]à[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]周期[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],然后点击[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]添加[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]按钮,在弹出对话框中填写触发器名称[/size][/font][size=10.5pt]“Action1”[/size][font=SimSun][size=10.5pt],然后定义[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]周期[/size][/font][size=10.5pt]”5[/size][font=SimSun][size=10.5pt]秒。这种组态(图[/size][/font][size=10.5pt]10[/size][font=SimSun][size=10.5pt])会让此脚本在[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]运行期间以[/size][/font][size=10.5pt]5[/size][font=SimSun][size=10.5pt]秒的时间间隔,循环执行。[/size][/font] [/p]
[p=30, 2, center] [img]http://cache.automation.siemens.com/dnl/DY/DYxMTc1AAAA_71677330_FAQ/images_09.png[/img] [/p][p=30, 2, center][b][size=2][font=SimSun]图[/font]9[/size][/b] [/p]
[p=30, 2, center][img=426,335]http://cache.automation.siemens.com/dnl/jA/jAxNTgzMwAA_71677330_FAQ/images_10.png[/img] [/p][p=30, 2, center][b][size=2][font=SimSun]图[/font]10[/size][/b] [/p][p=30, 2, center][b][size=2]
[/size][/b] [/p][p=30, 2, left][b]注意事项[/b]: [/p][p=30, 2, left][size=10.5pt]1[/size][font=SimSun][size=10.5pt].项目运行前必须把计算机属性[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]启动[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]列表中[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]全局脚本行系统[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]给勾选上(图[/size][/font][size=10.5pt]11[/size][font=SimSun][size=10.5pt])。[/size][/font] [/p][p=30, 2, left][size=10.5pt]2[/size][font=SimSun][size=10.5pt].脚本的执行周期用户可根据项目自行修改,但是不建议执行周期过密。因为在[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]系统中脚本是单进程的,如果脚本中有很耗时的执行过程,过密的执行周期会造成系统负担过大,导致脚本不执行或者系统运行缓慢等现象。[/size][/font] [/p][p=30, 2, center][img]http://cache.automation.siemens.com/dnl/zQ/zQzMjgzMDUA_71677330_FAQ/images_11.png[/img] [/p][p=30, 2, center][size=2][font=SimSun]图[/font]11[/size] [/p][font=SimSun][size=12pt][font=Arial]4 CPU[/font]停机监控[/size][/font][p=30, 2, left]
[font=SimSun][size=10.5pt]这里需要注意一点,[/size][/font][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt]系统的默认设置是会监控[/size][/font][size=10.5pt]CPU[/size][font=SimSun][size=10.5pt]的[/size][/font][size=10.5pt]STOP[/size][font=SimSun][size=10.5pt]状态的,如果[/size][/font][size=10.5pt]CPU[/size][font=SimSun][size=10.5pt]打到[/size][/font][size=10.5pt]STOP[/size][font=SimSun][size=10.5pt]状态,也会显示通讯故障,通道诊断的错误代码[/size][/font][size=10.5pt]“ 7001”[/size] [font=SimSun][size=10.5pt]。这个默认设置可修改(图[/size][/font][size=10.5pt]12[/size][font=SimSun][size=10.5pt]),打开变量管理器,选择所用通讯协议,例如[/size][/font][size=10.5pt]“TCP/IP”[/size][font=SimSun][size=10.5pt],点击鼠标右键选择[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]系统参数[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],在对话框中选择[/size][/font] [size=10.5pt]“CPU[/size] [font=SimSun][size=10.5pt]停机监控[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt]取消[/size][/font][size=10.5pt]“[/size][font=SimSun][size=10.5pt]激活[/size][/font][size=10.5pt]”[/size][font=SimSun][size=10.5pt],则不对[/size][/font][size=10.5pt]CPU[/size][font=SimSun][size=10.5pt]的[/size][/font][size=10.5pt]STOP[/size][font=SimSun][size=10.5pt]状态进行监控。[/size][/font] [/p][p=30, 2, left]
[/p][p=30, 2, center][img=398,355]http://cache.automation.siemens.com/dnl/DA/DAzODM5AAAA_71677330_FAQ/images_12.png[/img] [/p][p=30, 2, center][size=2][font=SimSun]图[/font]12[/size] [/p][p=30, 2, center][size=2]
[/size] [/p][p=30, 2, left][b]关键词[/b] [/p][p=30, 2, left][size=2][size=10.5pt]WinCC[/size][font=SimSun][size=10.5pt],通讯,[/size][/font][size=10.5pt]S7-300[/size][font=SimSun][size=10.5pt],[/size][/font][size=10.5pt]S7-400[/size] [/size] [font=arial][size=2][color=#0000ff][/color][/size][/font][/p]
页:
[1]