WinCC V7.0 支持.NET 控件的编程入门 
WinCC V7.0 supports .NET control 
Getting Started                                                           Edition 2008-07 
 
 
 
 
 
 
摘   要 
WinCC V7.0 新增了支持.NET 控件的功能,本文叙述了如何编写能够加载到
WinCC V7.0 的用户自定义的.NET 控件,以及控件的测试、加载和使用过程。 
 
关键词 
WinCC V7.0、.NET 控件、Visual Studio 2005、C#、ActiveX 控件测试容器 
 
Key Words 
WinCC V7.0, .NET control, Visual Studio 2005, C#, ActiveX Control Test 
Container 
 
 
 
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 2-7 
目       录 
 
 
 
 
开发.NET 控件的示例程序 
 
开发.NET 控件的安装程序 
 
测试.NET 控件 
 
在 WinCC V7.0 中加载和使用该控件的步骤
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 3-7 
 
 
1. 开发.NET 控件的示例程序 
        WinCC V7.0 支持的自定义.NET 控件,需要使用 Visual Studio 2005 编写。
下面以 C#编程语言为例,开发一个简单的.NET 控件,这个控件仅提供一个方法
Add, 实现两数相加的功能。 
在 VS2005 中新建一个工程 CalculateControl,工程类型为 Visual C# 中的
Windows Control Library,在 Solution Explorer 窗口中,将 UserControl1.cs 重
命名为 Calculate.cs,弹出的对话框询问是否改变所有与 UserControl1 相关的代
码,点击[Yes]确认。在 Calculate.cs 文件的 Calculate 类中添加 Add 函数,用于
计算两数之和,如下所示: 
        public double Add(double dblA, double dblB) 
        { 
             return ( dblA + dblB ); 
        } 
 
在 Calculate.cs 文件的 Calculate 类之前插入如下代码: 
 
  // CalculateControl.Calculate 是该控件的PROGID. 
  [ProgId("CalculateControl.Calculate")] 
  // 缺省的是ClassInterfaceType.AutoDispatch,该方式下只生成dispatch接口, 
  // 只能被使用script、VB等late bingding方式的COM客户使用。 
  [ClassInterface(ClassInterfaceType.AutoDual)] 
 
 
 
 然后在 Calculate.cs 文件的上部插入如下代码: 
 
 using System.Runtime.InteropServices; 
 
将工具栏中的 Solution Configurations 下拉列表设为 Release,在工程\属性
的 Application 页中,点击 [Assembly Information…] 按钮,选中 Make assembly 
COM-Visible,并点击 [OK] 按钮确认。在 Build 页中,选中 Register for COM 
interop 后,保存设置,并编译程序,这样编译后同时会生成 CalculateControl.tlb
文件,并且自动将其注册(命令行命令 regasm 有同样的效果),注意到
CalculateControl.dll 生成到 bin\Release 文件夹中。 
2.开发.NET 控件的安装程序 
如果该控件需要在另一台计算机上使用,需要为该控件设计安装程序。新建
一个 VS2005 工程 SetupCalculateControl,工程类型为 Setup and Deployment \ 
Setup Project。在 Solution Explorer 窗口中的工程名(SetupCalculateControl)
节点上右键单击,在弹出的快捷菜单中选择 Add\Assembly…项,在 Browse 页
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 4-7 
 
中,找到刚才编译的 CalculateControl.dll,将其加入到安装程序中,注意到
CalculateControl.tlb 也一并被加入进来。选中 CalculateControl.dll 节点,将其属
性中的 Register 从 vsdraDoNotRegister 改为 vsdraCOM,用于在安装过程中自
动注册控件。将工具栏中的 Solution Configurations 下拉列表设为 Release,编
译该安装工程,在 Release 文件夹中可以找到生成的安装文件(包括 setup.exe
和 SetupCalculatorControl.msi)。 
 
3. 测试.NET 控件 
使用 ActiveX Control Test Container 测试该控件的功能,双击 tstcon32.exe
(位于$\Program Files\Microsoft Visual Studio 8\Common7\Tools),在 Edit 菜
单中选择 [Insert New Control…] ,在弹出的 Insert Control 对话框中,点击 
[Implemented Categories…] 按钮,选中 .NET Category 复选框,点击 [OK] 按
钮确认。在列表框中选择 CalculateControl.Calculate,如图 1 所示: 
 
           图 1:在 ActiveX Control Test Container 中插入控件 
 
点击 [OK] 按钮确认,这时该.NET 控件被加入到测试容器中。选中该控件,
在 Control 菜单中选择[Invoke Methods…]项,在 Method Name 中选择
Add(Method),分别设定两个加数的值,点击 [Invoke] 按钮,在 Return Value 文
本框中可以看到两数相加的结果。 
 
 
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 5-7 
 
4. 在 WinCC V7.0 中加载和使用该控件的步骤 
1.双击该控件的安装文件 Setup.exe,安装并注册 CalculateControl.dll 控件,
用户可以修改安装目录,并按照正常的步骤安装(如果想卸载该控件,可以在控
制面板的添加/删除程序中移除该控件)。 
 
2.新建一个 WinCC V7.0 工程,并新建一个画面。按照如下步骤加载和使用该
控件: 
  在 Object  Palette(对象面板)的 Controls 页中的.NET  Control 上右键单
击,选择 [Add/Remove…] 快捷菜单项。 
 
  在弹出的对话框中点击[Add…]按钮,在打开的对话框中找到安装路径下的
CalculateControl.dll 控 件 ( 例 如 :C:\Program  Files\Default  Company 
Name\SetupCalculateControl\  CalculateControl.dll),双击该控件或者选中它并
按[Open]按钮。 
 
 
 
               图 2:在 Select .NET Object 对话框中插入自定义.NET 控件 
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 6-7 
 
 
 
窗体上的合适的位置。 
 
  在窗体上加入一个静态文本控件,将其对象名称改为 CalculateResult。 
  如图 2 所示,在 Available  Controls 列表中高亮显示 Calculate 项,选中它
前面的 Check  Box,点击最下面的[OK]按钮,即可将控件加入到 WinCC  V7.0
中。 
 
  将.NET  Control 节点展开,找到”  CalculateControl.Calculate”并将其拖拽到
  在 窗 体 上 加 入 一 个 按 钮 , 将 其 文 本 改 为 Add , 在 按 钮 的 鼠 标 左 键 单 击
(Button\Mouse\Press  left)事件中加入 VBS 脚本,创建.NET 控件并调用它的
Add 方法,源程序如下所示: 
 Dim objCalculateControl 
 Dim objCalculateResult 
 Set objCalculateControl = CreateObject("CalculateControl.Calculate") 
 Set objCalculateResult = ScreenItems("CalculateResult") 
 objCalculateResult.Text = objCalculateControl.Add ( 6, 12 ) 
 
 
 注意,WinCC V6.2使用ScreenItems(”控件对象名”)引用加入窗体的ActiveX
控件。但WinCC V7.0不能使用这种方法,建议使用CreateObject(“.NET控件的
PROGID”) 来创建和引用加入的.NET控件。 
  
  保存并运行该程序,点击[Add]按钮,静态文本中将显示结果 18。 
 
        注意:本文提供了 WinCC V7.0 支持.NET 控件的基本编程方法和测试程
序,所有的源程序及测试过程仅供参考。 
 
附录-推荐网址 
 
HMI 
西门子(中国)有限公司  
自动化与驱动集团 客户服务与支持中心 
网站首页:http://www.ad.siemens.com.cn/Service/
专家推荐精品文档:http://www.ad.siemens.com.cn/Service/recommend.asp
HMI常问问题:http://support.automation.siemens.com/CN/view/zh/10805548/133000  
HMI更新信息:http://support.automation.siemens.com/CN/view/zh/10805548/133400 
“找答案”WinCC版区:
http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1032  
 
 
 
网上课堂-WinCC V7.0 支持.NET 控件的编程入门                                                                                              
Page 7-7