来自西门子技术支持热线的故事:WinCC 服务器客户机画面为什么一起切换

已锁定

西门子Lemon

官方工程师

  • 帖子

    128
  • 精华

    9
  • 被关注

    152

论坛等级:侠客

注册时间:2010-03-19

普通 普通 如何晋级?

来自西门子技术支持热线的故事:WinCC 服务器客户机画面为什么一起切换

5306

17

2010-03-19 15:39:12

大家好,

我是西门子工业自动化与驱动技术集团的一名热线工程师,负责人机界面产品(俗称HMI),包括WinCC,面板和工业计算机(IPC)。

热线上每天都会出现一些有趣的问题,有些纯粹跟技术相关,有些是过程比较有趣。随着西门子网站越办越好,我们也在想,能不能在网上跟大家分享这些热线上的趣事呢?而这种分享是不是会让更多有趣的事发生呢?

于是,我会尝试在这里时不时的跟大家聊些热线上的事。

今天想说的故事技术性并不强,只是有些峰回路转。

故事:
昨天,有个客户打热线说他的WinCC服务器客户机出问题了,不管在哪台台机器上切换画面,所有机器的画面都会跟着变。

于是,我问客户,你是在用变量控制画面变化吗?
客户说,没有啊。
我不着急,说:你是在切换画面按钮里改变变量值,而用变量值控制画面变化吗?
客户说,没有啊。
我说。。。客户说。。。我说。。。客户说。。。我说。。。客户说。。。
总而言之,客户说他就是用按钮的组态对话框做的画面切换。
于是,我茫然了。

昨天下午跟同事们讨论这个问题,大家敲打了我。
于是我给这位客户再打电话,我说一步,让他做一步。
结果,他是用按钮控制变量变化,用变量控制画面变化。

分析一:
这个问题在热线上并不罕见,一般是用切换画面的按钮改变某个变量值(用函数SetTagXXX,相应函数说明可以在在线帮助里查到),而在全局脚本(或者别的什么地方)里根据这个变量值的变化来控制画面的变化(用函数SetPictureName)。

这种组态方式比用标准画面切换的方法复杂,但是灵活,可以用一个按钮打开不同画面:按钮先根据不同条件给变量赋值,而不同的值导致打开不同的画面。

问题在于,在服务器客户机系统里,如果这个变量是全局的(指所有的服务器、客户机上),也就是说这个变量的变化发生在所有计算机上,因而所有计算机上的全局脚本都会被执行,导致所有计算机上的画面都会跟着变。

总的来说这种编程方式多转了一个弯(一般来说if...then SetPictureName()就很简洁了,无需用变量来间接改变画面),呵呵,技术流给项目实施带来了隐藏的小麻烦 :)。

解决这个问题的方法是,在按钮里用脚本直接根据情况切换画面。使用局部变量的方法则会使前面提到的灵活性受损。

用按钮的组态对话框做的画面切换,由于画面运行系统不是全局的,所有不会有这个问题。

分析二:
你得到的确定答复未必是真相,因为答复你的人知道的不是真相。

祝大家周末愉快!

Lemon
2010年3月19日
来自西门子技术支持热线的故事:WinCC 服务器客户机画面为什么一起切换 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31076条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。