在WINCC中使用C#脚本
目录
在WINCC中,我们一般都是使用VBS,C脚本进行编写。如果进行一般的控制应用完全是没有问题。如果涉及到数据运算,访问数据库,远程数据等等应用。这两个语言就显得有些尴尬了。特别是喜欢用C脚本的工程师,C语言虽好,但是太古老了(一个字符串运算分分钟让你头大);另外程序的保密性问题虽然有密码保护,终究还是有纰漏之处。
由于我们在之前控件中采用调用CCHMIRUNTIME方式,那也就可以采用这种方式进行采用C#类的方式进行脚本管理,而且能有效控制程序保密性,版本问题。由于.net有许多的灵活性。你只需要用一种语言进行编写,在WINCC中可以用VB,C的任何一种方式进行调用
环境:
1、TIA WINCC V15
2、VisualStudio 2015
测试结果:(经典版WINCC也适合使用)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WinccControl
{
[ComVisible(true)]
[Guid("67B2F6AF-CF98-47E3-A47E-E37C18853734")]
public class WINCCHelper
{
public void msgBox(string msg)
{
MessageBox.Show(msg);
}
}
}
1、创建对象,在脚本管理的C头文件GlobalDefinitions.h中添加程序类对象:
__object *testCSharp=__object_create("WinccControl.WINCCHelper");
2、在wincc画面添加按钮,创建按钮的单击C事件
添加脚本
#include "GlobalDefinitions.h"
void OnClick(char* screenName, char* objectName, char* propertyName)
{
testCSharp->msgBox("c#脚本调用");
}
1、在wincc画面添加按钮,创建按钮的单击VB事件
添加脚本
Sub OnClick(ByVal item)
Dim obj
Set obj=CreateObject("WinccControl.WINCCHelper")
obj.msgBox "VB脚本调用c#函数"
End Sub
楼主最近还看过