原创 WINCC CALL DLL

2008-6-11 15:00 3246 9 9 分类: 工业电子
点击下载
在WinCC中如何加载用户自定义DLLs?

icon_mlfblist_down.gif隐藏订货号显示订货号订货号:


6AV6344.. SIMATIC WinCC Operator Stations
6AV637.. WINCC SIMATIC HMI Software
6AV6371-1.. SIMATIC WinCC Optionen/Powerpacks
6AV638.. WINCC SIMATIC HMI Software 2
6AV6381-1.. SIMATIC WinCC Software
6AV6382-1.. SIMATIC WinCC Packages
6ES7650.. SIMATIC PCS 7 PC
6ES7658.. SIMATIC PCS7 SW-Packages (BLE, ES, OS)




描述:
WinCC中,您希望使用用户自定义动态链接库,在此条目,我们演示了如何在WinCC中加载一个实例DLL在带有VBSWinCC运行模式下,使用VB创建的DLLs不能被加载。

关于DLLs更多的信息可以在WinCC在线帮助系统下使用WinCC>用于创建函数和动作的ANSI-C>在函数和动作中使用DLL”
 


编号.


过程


1


实例DLL
使用下面的程序代码,利用C编译器创建动态链接库"T1_C.dll"

在这里,您可以下载已经可以编译的DLL
disk_35.gifT1_C.zip ( 17 KB )


extern "C" __declspec (dllexport) int aufruf1 (int a);

#include <stdio.h>
#include <windows.h>
FILE *h_test;
FILE *h_trace;
extern "C" __declspec (dllexport) int aufruf1(int a)
  {
  h_test= fopen ("C:/temp/test_dll.txt","a");
  if (h_test)
  {
    fprintf(h_test, "Function 'aufruf1' was called!\n");
    fclose (h_test );
  }
  a+=100;
  return a;
};


N.B.


  • 必须在无出错信息后,创建动态链接库
  • 所有在WinCC中使用的DLL功能都必须使用相应的语法在DLL的开始部分进行指定(在实例动态链接库"T1_C.dll"的第一行)
  • 为了能够使用DLL功能,在WinCC中的动作或者函数中调用DLL,必须使用"#pragma code"语法。

2


WinCC中的C脚本加载"T1_C.dll"动态链接库并且执行"aufruf1"功能:
使用下列的WinCC变量:


  • var1 (signed 32-bit value)
  • result (signed 32-bit value)

在一个按钮的事件的鼠标单击”C动作中输入下面的C脚本:


#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
  #pragma code ("c:/temp/T1_C.dll")
  int aufruf1(int a);
  #pragma code ()

  int value;
  value = GetTagDouble("var1"); //Return-Type: double
  SetTagDouble("result",aufruf1(value)); //Return-Type: BOOL
}


 


3


结果:

8301801_WinCC_DLL_einbinden_01.gif
. 01


重要信息!
示例中的脚本程序是免费软件。任何用户都可以免费使用、复制和传播该程序。该程序的作者和所有者对此软件的功能性和兼容性所引起的任何问题不负任何责任。对该软件的使用完全由用户自己承担所有风险。由于该软件是免费的,所以没有质量保证期,也没有任何错误更正和热线支持。

关键字:
函数调用,API



 条目号:8301801   日期:2008-04-28 
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条