2024年4月27日发(作者:)
WinCC V7.0 支持.NET控件的编程入门
1. 开发.NET控件的示例程序
WinCC V7.0支持的自定义.NET控件,需要使用Visual Studio 2005编写。下面以C#编程
语言为例,开发一个简单的.NET控件,这个控件仅提供一个方法Add, 实现两数相加的功
能。
在VS2005中新建一个工程CalculateControl,工程类型为 Visual C# 中的Windows
Control Library,在 Solution Explorer 窗口中,将重命名为
,弹出的对话框询问是否改变所有与UserControl1相关的代码,点击[Yes]
确认。在 文件的Calculate类中添加Add函数,用于计算两数之和,如下
所示:
public double Add(double dblA, double dblB)
{
return ( dblA + dblB );
}
在 文件的Calculate类之前插入如下代码:
// ate 是该控件的PROGID.
[ProgId("ate")]
// 缺省的是spatch,该方式下只生成dispatch接口,
// 只能被使用script、VB等late bingding方式的COM客户使用。
[ClassInterface(al)]
然后在 文件的上部插入如下代码:
using pServices;
将工具栏中的 Solution Configurations 下拉列表设为 Release,在工程属性的
Application 页中,点击 [Assembly Information…] 按钮,选中 Make assembly COM-
Visible,并点击 [OK] 按钮确认。在 Build 页中,选中 Register for COM interop
后,保存设置,并编译程序,这样编译后同时会生成文件,并且自
动将其注册(命令行命令regasm有同样的效果),注意到生成到
binRelease 文件夹中。
2.开发.NET控件的安装程序
如果该控件需要在另一台计算机上使用,需要为该控件设计安装程序。新建一个VS2005工
程SetupCalculateControl,工程类型为Setup and Deployment Setup Project。在
Solution Explorer窗口中的工程名(SetupCalculateControl)节点上右键单击,在弹出
的快捷菜单中选择AddAssembly…项,在Browse页中,找到刚才编译的
,将其加入到安装程序中,注意到 也一并
被加入进来。选中节点,将其属性中的Register从
vsdraDoNotRegister改为vsdraCOM,用于在安装过程中自动注册控件。将工具栏中的
Solution Configurations 下拉列表设为 Release,编译该安装工程,在Release 文件夹
中可以找到生成的安装文件(包括和)。
3. 测试.NET控件
使用ActiveX Control Test Container测试该控件的功能,双击(位于
$Program FilesMicrosoft Visual Studio 8Common7Tools),在Edit菜单中选择
[Insert New Control…] ,在弹出的 Insert Control 对话框中,点击 [Implemented
Categories…] 按钮,选中 .NET Category 复选框,点击 [OK] 按钮确认。在列表框中选
择 ate,如图1所示:
图 1:在ActiveX Control Test Container中插入控件
点击 [OK] 按钮确认,这时该.NET控件被加入到测试容器中。选中该控件,在Control菜
单中选择[Invoke Methods…]项,在Method Name中选择Add(Method),分别设定两个加
数的值,点击 [Invoke] 按钮,在 Return Value 文本框中可以看到两数相加的结果。
4. 在WinCC V7.0中加载和使用该控件的步骤
1.双击该控件的安装文件,安装并注册控件,用户可
以修改安装目录,并按照正常的步骤安装(如果想卸载该控件,可以在控制面板的添加/删
除程序中移除该控件)。
2.新建一个WinCC V7.0工程,并新建一个画面。按照如下步骤加载和使用该控件:
•
在Object Palette(对象面板)的Controls页中的.NET Control上右键单击,选择 [Add/Remove…] 快
捷菜单项。
•
在弹出的对话框中点击[Add…]按钮,在打开的对话框中找到安装路径下的控件
(例如:C:Program FilesDefault Company NameSetupCalculateControl
),双击该控件或者选中它并按[Open]按钮。
图 2:在Select .NET Object对话框中插入自定义.NET控件
•
如图2所示,在Available Controls列表中高亮显示Calculate项,选中它前面的Check Box,点击最
下面的[OK]按钮,即可将控件加入到WinCC V7.0中。
•
•
•
将.NET Control节点展开,找到” ate”并将其拖拽到窗体上的合适的位置。
在窗体上加入一个静态文本控件,将其对象名称改为 CalculateResult。
在窗体上加入一个按钮,将其文本改为Add,在按钮的鼠标左键单击(ButtonMousePress left)事件
中加入VBS脚本,创建.NET控件并调用它的Add方法,源程序如下所示:
Dim objCalculateControl
Dim objCalculateResult
Set objCalculateControl = CreateObject("ate")
Set objCalculateResult = ScreenItems("CalculateResult")
= ( 6, 12 )
注意,WinCC V6.2使用ScreenItems(”控件对象名”)引用加入窗体的ActiveX控件。但
WinCC V7.0不能使用这种方法,建议使用CreateObject(“.NET控件的PROGID”) 来创建
和引用加入的.NET控件。
•
保存并运行该程序,点击[Add]按钮,静态文本中将显示结果18。
注意:本文提供了 WinCC V7.0 支持.NET控件的基本编程方法和测试程序,所有的源程序
及测试过程仅供参考。
发布评论