找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 上位机编程 查看内容

WinCC 面向对象的高效组态开发方式

2021-12-15 20:36| 发布者: gkket| 查看: 3134| 评论: 0

摘要: 原文作者:朱飞翔 -西门子工业技术支持中心遇到客户问:工厂里有几百个电机,每个电机都有成组的控制命令和状态数据,手动建千百个按钮和I/O域,再去连千百个变量,我要疯了能否以模块方式创建电机对象?之后能否统 ...

原文作者:朱飞翔 - 西门子工业技术支持中心



遇到客户问:

工厂里有几百个电机,每个电机都有成组的控制命令和状态数据,手动建千百个按钮和I/O域,再去连千百个变量,我要疯了

WinCC 面向对象的高效组态开发方式

  • 能否以模块方式创建电机对象?
  • 之后能否统一修改这些电机的属性,如颜色?

总之,就是想要:简单!复用!省时!



WINCC 的答案就是:

面板!直接拖拽“结构变量”到画面中,搞定

WinCC 面向对象的高效组态开发方式


本文以示例方式来介绍这个话题,包括:

  • 示例功能介绍
  • 示例实现步骤
  • 示例源程序下载链接及其它

  • 功能介绍

WinCC 中直接拖拽“结构变量”到画面中,自动生成3个不同面板(Faceplate)实例,对应现场3个实际对象,显示各自的状态。

WinCC 面向对象的高效组态开发方式

注:最新版WinCC 7.5 SP2还可以一次性拖拽多个UDT变量,自动生成多个面板实例!


  • 组态步骤
  • 在博途Step7中,创建UDT用户数据类型和变量


新建PLC项目,并创建用户数据类型“TankUnit”

WinCC 面向对象的高效组态开发方式

新建数据块“MyDB”,然后创建三个数据类型为“TankUnit”的变量,Tank1、Tank2和Tank3。

WinCC 面向对象的高效组态开发方式

  • 在博途Step7中,导出 PLC 变量


鼠标右击 PLC 项目的名称 (需安装SIMATIC SCADA Export导出工具:

https://support.industry.siemens.com/cs/de/en/view/109748955/zh)

WinCC 面向对象的高效组态开发方式

导出Zip格式文件,完成博途Step7中的组态

WinCC 面向对象的高效组态开发方式

  • WinCC V 7.5中的组态,创建结构变量


在WinCC变量管理的PLC连接中导入变量。选择“从文件中加载”。选择前面导出的ZIP文件。

WinCC 面向对象的高效组态开发方式

WinCC 面向对象的高效组态开发方式

在打开的界面中,在“AS 结构”页,选择结构“TankUnit”,在鼠标右键弹出菜单中选择“创建结构”。WinCC 中就创建了和PLC相同的结构类型。

WinCC 面向对象的高效组态开发方式

然后在左侧选中“ProgramBlocksFolder->MyDB”数据块,在画面中间的“AS 符号”标题栏点击鼠标右键,在弹出菜单中选择“全选”。

WinCC 面向对象的高效组态开发方式

画面中的“访问”项将被激活。PLC 中的变量成功导入到WinCC项目

WinCC 面向对象的高效组态开发方式

在变量管理中,选中新建的连接,并切换到“变量”页。就可以看到新创建的变量。

WinCC 面向对象的高效组态开发方式

修改WinCC中的结构变量,在“TankUnit”中新建一个结构类型元素“Name”,并设置为内部变量。完成WinCC中结构变量的创建

WinCC 面向对象的高效组态开发方式

  • WinCC V 7.5中的组态,创建面板类型


在WinCC图形编辑器中选择“文件->新建面板类型”。在面板中添加对象。并设置静态参数。如面板的画面宽度为200,高度为280等。本例中添加:静态文本1、输入输出域1、条形图1、按钮1和2个SVG对象。其中一个是“SVG全局库->
IndustryGraphicLibraryV2.0->Tanks->Tank2”,另一个是“SVG全局库->IndustryGraphicLibraryV2.0->Valves->ControlValve”。并调整对象参数

WinCC 面向对象的高效组态开发方式

通过图形编辑器“编辑->组态面板类型”菜单,打开组态面板类型对话框。切换到“变量”页。通过拖拽方式把“变量/结构类型”中的“TankUnit”添加到左侧“所选变量”中,然后把相应对象的属性拖拽到变量下。

WinCC 面向对象的高效组态开发方式

还可鼠标右键选择相应的对象设置更新周期。

WinCC 面向对象的高效组态开发方式

面板中各对象的功能

名称

功能

对应变量

静态文本1

用于显示对象的名称

TankUnit.Name

输入输出域1和条形图1

用于显示“TankUnit.Level”的数值

TankUnit.Level

按钮1

用于切换“TankUnit.State”的状态

TankUnit.State

SVG对象(Valve)

用于显示“TankUnit.Valve”的状态

TankUnit.Valve

SVG对象(Tank)

仅用于画面显示

其中,静态文本1、输入输出域1和条形图1这三个控件已经通过拖拽方式和变量建立了关联。对于按钮1首先需要设置“属性->效果->全局颜色方案”为“否”。然后在“事件->鼠标->单击鼠标”中添加VBS动作并编写脚本。该脚本用于切换“TankUnit.State”的状态。

WinCC 面向对象的高效组态开发方式

用“TankUnit.State”的值控制按钮1的背景颜色来显示运行结果。“TankUnit.State”为1时显示绿色,为0时显示红色。在按钮1的“动画”页,双击“添加新动画”添加“动态化属性0”,在“过程”中激活“实例特定变量”,然后选择“TankUnit.State”作为变量。通过添加属性添加“背景颜色”属性。实现变量特定数值和对象属性颜色之间的关联。

WinCC 面向对象的高效组态开发方式

对于SVG对象(Valve),用“TankUnit.Valve”的值控制对象的颜色。“TankUnit.Valve”为1时对象显

关注公众号,加入500人微信群,下载100G免费资料!
发表评论

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 22:34 , Processed in 0.069517 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部