有谁用过KEPWareEX OPC服务器读写SQL数据库的

有谁用过KEPWareEX OPC服务器读写SQL数据库的,第1张

网上搜到的:

pc从西门子plc读取数据的方法有两类:

1是通过wincc这类组态软件

2是自己用高级语言(vb、vc等等),方法主要有:

opc(西门子simaticnet opc、第三方kepware opc)

prodave(西门子的一个软件包,提高vb和c的通讯函数库)

simticnet软件提供了几个通讯dll(此法是一般的第三方scada所采用)

可以用其他组态软件,比如组态王。也可以用vb编写一程序然后从plc读取数据再写入数据库。如果不需要监控画面,我觉得vb好些。

.准备工作:

载opc基金OPC Proxy DLL按照说明进行安装些态库opc程序运行所必须

1. 列文件拷贝至要运行OPC服务器OPC客户端机器SYSTEM32目录

copy opcproxy.dll C:\WINDOWS\system32

copy opccomn_ps.dll C:\WINDOWS\system32

copy opc_aeps.dll C:\WINDOWS\system32

copy opchda_ps.dll C:\WINDOWS\system32

copy aprxdist.exe C:\WINDOWS\system32

copy opcenum.exe C:\WINDOWS\system32

2. 注册些 dll 文件

REGSVR32 opcproxy.dll

REGSVR32 opccomn_ps.dll

REGSVR32 opc_aeps.dll

REGSVR32 opchda_ps.dll

3. windows 系统(\WINDOWS \system32)目存actxprxy.dll运行aprxdist.exe

4. 安装 opcenum.exe

opcenum /regserver

二.opcserver发

1. 新建vc工程比建控制台工程工程包含文件

#include "opcda.h"

#include "opc_ae.h"

#include "WTOPCsvrAPI.h"

#include "WtOPCsvrEXTapi.h"

文件例程序都能找拷贝自工程

WTOPCsvrAPI.h发包态库提供导函数文件面每函数具体说明调用候看说明

2. .cpp定义GUIDguid用标识opcserver唯id通操作系统工具编格式

const GUID

CLSID_OPCSimSvr = {0x99b8f472, 0xc037, 0x11d2, {0x80, 0xb8, 0x0, 0x60, 0x97, 0x58, 0x58, 0xbe}}

3. 工程加入WtOPCSvr态库连接

WTOPCsvr态库关文件都前例包面能找

WTOPCsvr.lib WTOPCsvr.dll应libdll

4. 初始化

(1)调用UpdateRegistry()函数完注册面调用参考例代码

BOOL COPCSimSvrApp::InitInstance()

{

TCHAR szTokens[] = _T("-/ ")

CString HelpPath

CString SvrName, SvrDescrip

int i

HelpPath = AfxGetApp()->m_pszHelpFilePath

i = HelpPath.ReverseFind('\\')

HelpPath = HelpPath.Left(i+1)

HelpPath += "OPCSIMSVR.EXE"

//

// Self-Registration code

// (look for cmdline options to register &unregister server)

//

SvrName = "WinTECH.OPCServer"

SvrDescrip = "WinTECH Software OPC Server Simulator"

CString tempCmdLine(m_lpCmdLine)

LPTSTR lpszToken = _tcstok(tempCmdLine.GetBuffer(1), szTokens)

while (lpszToken != NULL)

{

if (_tcsicmp(lpszToken, _T("UnregServer"))==0)

{

UnregisterServer ((BYTE *)&CLSID_OPCSimSvr, SvrName)

return (FALSE)

}

else if (_tcsicmp(lpszToken, _T("RegServer"))==0)

{

UpdateRegistry ((BYTE *)&CLSID_OPCSimSvr,

SvrName,

SvrDescrip,

HelpPath)

return (FALSE)

}

lpszToken = _tcstok(NULL, szTokens)

}

(2)调用InitWTOPCsvr完发包dll初始化

两步骤颠倒

5. 创建item

item服务器所item些item通opc库户端能浏览创建item函数CreateTag().

Opc两种址空间形式:扁平层结构

比调用创建点item1、item2、item3.类结构扁平各点类似与文件系统文件

比调用创建点test.item1、test.item2、test.item3种点名发包自形层点结构Test类似与文件系统文件夹item类似与文件系统文件夹文件扁平式层结构客户端浏览点名体现

层结构点名间默认用.隔简单我opcserver设计扁平结构

创建点返handle用标识点我程序需要自建立handle数据库保存设备实值应关系部参考例代码

6. 建立定器采集设备数据

定数据库取各handle应item值比较各item值否读取值变化变化调用UpdateTagToList放入应队列发包自变化值送客户端

致流程

(1) 数据库采集遍所点实值

(2) 调用StartUpdateTags()

(3) 循环读取每item数据库数据读取进行比较变化调用UpdateTagToList()

(4) 用调用EndUpdateTags()完所item更新

7. 客户端控制

客户端写tag值候opcserver通调函数响应

服务器端必须调用EnableWriteNotification()指定写值调函数调函数格式:

typedef VOID (CALLBACK* WRITENOTIFYPROC)(HANDLE, VARIANT*, DWORD*)

调函数内部实现HANDLE指定tag写具体控制设备应变量

8. 其用函数

RequestDisconnect()般opcserver关闭调用用通知客户端opcserver自要关闭

NumbrClientConnections()用计算前少客户端连接opcserver

UninitWTOPCsvr()程序退清理

SetVendorInfo()设置厂商信息

三.opc客户端测试

面本机opcquickclient.exe例说明服务器客户端间应用关系

1. 运行opcquickclient.exe

2. 点击edit->new server connection 菜单弹server properties框展opc data access server version 2.0.浏览本机安装所opcserver选我自发opcserver点击确定完与服务器连接

3. 点击edit->new group 用默认值添加组

4. 点击edit->new item 弹框(图层结构址空间例单层更简单)选左侧某父节点右侧显示各tag选要向opcserver查询tag点击add leaves点击ok

5. 客户端主界面能看刚才要查询tag自跟随opcserver端数据变化变换

6. 右键要控制tag菜单选择同步写或者异步写(般建议用异步避免阻塞客户端运行)键入要写入值查看设备否作检验opcserver否编写确

1、 OPC服务介绍

西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台,也提供了一套编程接口,可使用高级语言编程通过Simatic Net访问PLC数据。本文讨论的主要就是这个编程接口,最新版的Simatic NET支持五种编程方式:

<1>、ActiveX控件

提供了一系列数据访问控件,以便于向VB6这种语言使用控件的方式与PLC通讯。

<2>、OPC自动化

为VB6、Dephi等语言运用OLE 自动化的方式进行编程。

<3>、OPC用户接口

这是专门为VC++提供的一种高效编程方式,其灵活程度与执行效率比前面的两种方式均要高得多。

<4>、针对微软的.NET平台的OPC用户接口

这也是一种非常灵活的编程接口,不过它针对的是.NET平台,其提供了大量的.NET类库,以便于像VC#、VB.NET等高级语言编程。本文将详细的介绍该接口。

<5>、OPL XML接口

顾名思义,主要是针对XML编程的。

对于<2>、<3>、<4>编程方式,他们各自又可以分为同步访问方式和异步访问方式。按西门子的文档解释:同步通讯指的是当一个客户在访问服务器时,其他客户的访问必须等待,直到服务器处理完该客户的请求,才能继续进行下一个服务,异步访问与之正好相反,本文主要讲的是同步编程篇,异步篇以后再提供。

2、 配置OPC服务器

要进行编程,必须先配置服务器。本文以Prfibus DP网络为例,介绍PC站的配置。其内容主要来自西门子文档。

需要的软件:

Step7 V5.3

Simatic Net PC-Software CD 2005

需要的硬件:

至少为CP5611或以上级别,笔记本可以为CP5511,带DP口的S7-300 PLC(若使用Simatic NET的仿真功能可以不需要这些硬件,后面会介绍到)

<1>、组态一个S7站,配置Profibus DP网络,其DP地址设为3,并下载到PLC,然后把网线由MPI口转到DP口。S7站的配置这里就不介绍了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/300524.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存