产品名称 | SIEMENS西门子辽宁省沈阳市(授权)伺服电机一级代理商——西门子东北总代理 |
---|---|
公司名称 | 广东湘恒智能科技有限公司 |
价格 | .00/件 |
规格参数 | 西门子总代理:PLC 西门子一级代:驱动 西门子代理商:伺服电机 |
公司地址 | 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房 |
联系电话 | 15903418770 15915421161 |
新建Wincc画面,右键点击控件>WPF控件
,选择添加/删除...
在打开的选择.NET对象
窗口中,点击添加
按钮。选择我们生成的wincc.dll
文件。
我们在wincc中创建一个字符串型的内部变量输入
。在新建的画面中创建三个控件:
输入\输出域
image.png
一是为了测试改变了Wincc中的变量,我们自定义的控件是否会跟着变化。二是为了测试当我们自定义的控件改变了绑定的内部变量输入
时,Wincc中的内部变量值输入
是否会变化。
由于在测试的时候,当自定义控件输入框里的值变化时,Wincc的内部变量没有改变,怀疑是否是自定义的控件有疏漏,因此创建了一个微软定义的TextBox作为验证。发现也是不会变化。
我们自定义的控件属性微软的TextBox属性Wincc自带的输入输出域控件属性OK,开始测试。
00:24
测试的结果是:当我们使用输入输出域来改变输入
变量的值时,WPF控件都会立即更新。但是我们使用WPF的自定义的控件的输入框来改变输入
变量的值时,Wincc中的输入
变量值并没有改变。
为什么这样呢?我们可以猜测是自定义的控件属性中连接的变量只是读取了Wincc中变量的数据,并没有把自定义控件改变后的值通知给Wincc程序去刷新变量的值。在网上查了下资料。发现国外的官方论坛上https://support.industry.siemens.com/tf/ww/en/posts/change-tag-from-wpf-control/80200/?page=0&pageSize=10有类似的问题,但是没有给出有效的解决办法。
我们可以通过事件触发来通知Wincc中的变量数据刷新。配置如下所示:测试视频:
这种触发变量更新的方式局限性很大:
1.是组态麻烦,相当于一个变量我要连接至少两次,一次读取,一次回调触发刷新。
2.是如果有很多属性需要刷新的话就不好弄了。