为了方便第三方软件和WinCC交互,SIEMENS为WinCC提供了一个COM组件CCHMIRUNTIME。通过这个组件,我们既可以访问WinCC中的变量,也可以访问其画面上的对象。
WinCC项目
为了演示如何通过C#访问WinCC画面中的对象,我们在WinCC项目的画面“Test”上添加一个圆,将其名称修改为“circle”,参见下图所示。
图1WinCC画面
C#项目
新建一个WinForm项目,为其添加对WinCCHMIRUNTIME1.0类型库的引用。
图2引用COM类型库
窗体上添加两个按钮,设置它们的文本分别为“设置为绿色”和“设置为红色”。
图3C#窗体
快捷键F7切换到代码编辑器,首先声明并创建一个CCHMIRUNTIME.HMIRuntime对象。
图4创建COM对象
然后分别在两个按钮的点击事件中输入下面代码。
图5设置控件背景色
上图中的“Test”是控件所在的画面名称,“circle”是控件名称。激活WinCC,运行C#项目,然后点击按钮就可以看到圆的背景色在变化了。
图6切换控件背景色
C#可以控制画面上所有的控件,包括报警视图、曲线控件等,并且支持访问控件所有的属性。
其它问题
如果C#程序运行时出现下面的错误,请将程序目标平台修改为X86。
图7加载COM组件错误
因为COM类型库CCHMIRUNTIME是32位组件,而我们使用VS开发应用程序时默认目标平台是AnyCPU,而此COM类型库又不支持在64位CLR上运行,所以导致调用COM失败。使用VS编译可以避免此问题,如果你使用的是VS或者以下版本,将应用程序的目标平台修改为X86即可。
图8设置目标平台
HwLib(慧兰博)技术团队专注于高端自动化技术,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”
关于HwLib(慧兰博)技术团队的更多信息: