编程语言应用

首页 » 常识 » 问答 » 使用C访问WinCC画面中的对象
TUhjnbcbe - 2021/8/10 18:24:00

为了方便第三方软件和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(慧兰博)技术团队的更多信息:

1
查看完整版本: 使用C访问WinCC画面中的对象