Ⅰ OpC 服务器变量怎么导出
机器人脉冲信号就可以导出。
通过外部自动启停,复位机器人的信号需要在示教器里配置。
路径:登陆用户组“SafetyMaintenance”权限---配置---外部自动运行---把输入端和输出端的信号配置完成。
Ⅱ 如何实现(OPC——组态王——SQL server数据库)使用组态王通过OPC读取然后将数据写入server,请高手指教
1.创建opc服务端,并启动opc服务端。i
2.打开组态王开发,创建与opc服务器的连接。如何创建连接请参考手册。创建与opc服务端的连接的时候组态王会自动列出可用的opc。
3.创建组态王变量以读取opc的数据。这一步很关键。变量名自己取,变量类型选择io字符串或io整数,这个看你opc发过来的是什么数据类型,按实际选择。连接设备选择你的创建的opc服务器连接。寄存器会自动列出,按照实际选择。数据类型按实际选择。
4.组态王创建了与opc连接的变量后,组态王就可以对变量进行操作了,你就可以把变量通过组态王命令语言写进数据库了。
5.数据库操作得先创建记录体。
6.说太多如果没有基础也很难搞懂,组态王有很详细的帮助,多看手册会大有帮助。
Ⅲ OPC服务器
用程序的动态数据交换(DDE)》相关章节部分
里面有组态王与EXCEL,VB等应用程序的通讯和数据交换
VC没搞过,示例程序我用VB6.0调试过,能运行!!
先参照一下,VB的吧!!
VB访问组态王的数据
在本例中,假设VB访问“组态王”的数据,VB作为客户程序向“组态王”请求数据。“组态王”通过OMRON驱动程序从下位机采集数据,VB又向“组态王”请求数据。数据流向如下图所示。
在“组态王”中定义设备
在工程浏览器中,从左边的工程目录显示区中选择“设备”,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”(设备的配置请参见第六章 I/O设备管理,在这里比如建立了OMRON的PLC),已配置的设备的信息总结列表框如图18.19所示。
图18.19 利用设备安装向导定义设备
定义的连接对象名为OMRON(也就是连接设备名),定义I/O变量时要使用此连接设备。
在“组态王”中定义I/O变量
在工程浏览器左边的工程目录显示区中,选择“数据库\数据词典”,然后在右边的目录内容显示区中用左键双击“新建”图标,弹出“变量属性”对话框,在此对话框中建立一个I/O实型变量。如图18.20所示。
图18.20 组态王定义IO变量
变量名设为FromViewToVB,这个名称由工程人员自己定义。项目名为OMRON.HR001。选择“允许DDE访问”选项。变量名在“组态王”内部使用,项目名是供VB引用的,连接设备为OMRON,用来定义服务器程序的信息,已在前面定义。
创建画面
在组态王画面开发系统中建立画面test1,如图18.21所示。
图18.21 组态王中输出变量
为文本对象“%%%%%”设置“模拟值输出”动画连接如图18.22所示。
图18.22 组态王为变量输出建立动画连接
选择菜单“文件\全部存”,保存画面。选择菜单“数据库\主画面配置”,将画面test1设置为主画面。
运行可视化编程工具Visual Basic
继续使用上一节的例子,设计Form1如图18.23所示。
图18.23 VB中建立窗体和控件
编制Visual Basic程序
双击Form1窗体中任何没有控件的区域,弹出“Form1.frm”窗口,在窗口内书写Form_Load子例程,如图18.24所示。
图18.24 VB中为控件建立与组态王变量的连接
生成可执行文件
在VB中选择菜单“File\Save Project”保存修改结果。选择菜单“File\Make Exe File”生成vbdde.exe可执行文件。激活OMRON驱动程序和“组态王”运行系统TouchVew。在Visual Basic菜单中选择“Run\Start”运行vbdde.exe程序。窗口Form1的文本框Text2中显示出变量的值。如图18.25所示。
图18.25 VB接收组态王的数据
运行可视化编程工具Visual Basic
选择菜单“File\New Project”,显示新窗体Form1。设计Form1,将窗体Form1的LinkMode属性设置为1(source),如图18.13所示。
图18.13 VB中建立窗体和控件
修改VB中窗体和控件的属性:
窗体Form1属性:LinkMode属性设置为1(source);LinkTopic属性设置为FormTopic,这个值将在“组态王”中引用。
文本框Text1属性:Name属性设置为Text_To_View,这个值也将在“组态王”中被引用。
生成vbdde.exe文件
在Visual Basic菜单中选择“File\Save Project”,为工程文件命名为vbdde.vbp,这将使生成的可执行文件默认名是vbdde.exe。选择菜单“File\Make EXE File”,生成可执行文件vbdde.exe。
在“组态王”中定义DDE设备
在工程浏览器中,从左边的工程目录显示区中选择“设备\DDE”,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”(DDE设备的配置请参见第六章 I/O设备管理),已配置的DDE设备的信息总结列表框如图18.14所示。定义I/O变量时要使用定义的连接对象名VBDDE(也就是连接设备名)。
图18.14 组态王中定义DDE设备
在工程浏览器中定义新变量
定义新变量,变量名为FromVBToView,项目名设为服务器程序中提供数据的控件名,此处是文本框Text_To_View,连接设备为VBDDE。“变量属性”对话框如图18.15所示。
图18.15 组态王中定义IO变量
新建组态王画面名为test,如图18.16所示。
图18.16 组态王中输出来自VB的数据
为对象“#####”设置“模拟值输出”的动画连接,如图18.17所示。
图18.17 组态王中为变量输出建立动画连接
设置完成后,选择菜单“文件\全部存”。选择菜单“数据库\主画面配置”,将画面test设置为主画面。DDE连接设置完成。
执行应用程序
在VB中选择菜单“Run\Start”,运行vbdde.exe程序,在文本框中输入数值。运行组态王,得到VB中的数值。如图18.18所示。
图18.18 组态王中为变量输出建立动画连接
如果画面运行异常,选择TouchVew菜单“特殊\重新建立未成功的DDE连接”,连接完成后再试一
Ⅳ 高分悬赏:opc sever,opc client,opc da关于OPC的疑问,opc服务器和客户端完成opc的写入和读取
个人理解:
举个简单的例子吧。比如我公司用的ABB DCS,有专门的上位机软件Digivis,可以实现现场数据读和写;同时,这个DCS也提供了OPC访问接口,我们自己也做了一个OPC Client也实现了对现场数据的读和写。
1、如果没有ABB DCS的底层驱动(原生组态软件),是无法实现PC与现场硬件的通讯的,那就不会有OPCServer了。
2、先有了ABB DCS的原生软件,将现场数据采集过来,然后在将这些数据通过OPC Server发布出去。
又比如Siemens S7 200的PLC,你能直接连接其OPC么?不能。因为它根本没这个接口。你得需要先使用Wincc与PLC建立连接,然后通过Wincc的OPCServer将数据发布出来,你才能使用OPC Client与该PLC通讯。OPC的出现就是为了解决我们用户访问各类控制器而提供的一个标准接口,它避免了用户去编写各类复杂甚至加密了的底层驱动。 其实组态王什么的工控软件,它就是编写了各类底层通讯驱动,所以,只有OPC Client是不行的。
Ⅳ 从opc服务器取数据,现在遇到的问题是opcquickclient 可以连接上服务器,却取不到数据,求大神解答,谢谢
DCOM配置问题,
opcquickclient不需要opcenum ,而服务需要配置opcenum及DCOM配置,请确认opcenum是否正常启动以及DCOM是否正确
Ⅵ opc服务器是什么是硬件还是软件啊!!麻烦知道的内行帮忙解释解释~~
opc既不是硬件也不是软件。OPC是一种通讯规范,OPC基金会组织规定的一套规范,按照这个规范去把程序写出来,包括一个OPC服务器程序和一个OPC客户端程序,只要是按规范写的,不管是谁写的,就能保证OPC服务器能被OPC客户端访问。
opc服务器向下可以读取设备的数据,比如PLC、DCS等等,但这部分OPC规范是不管的,只要厂家用任意接口任意方法把设备数据读到就OK,然后OPC服务器程序把这些读到的数据按规范要求开放在网络上,其他任意OPC客户端程序,可以远程浏览这些数据,并选择读取这些数据中需要的。
(6)opc如何导出服务器扩展阅读
OPC的工作原理
OPC以OLE/COM机制作为应用程序的通信标准,而OLE/COM是一种客户端/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。
OPC服务器中的代码确定了服务器所存取的设备和数据、数据项的命名规则和服务器存取数据的细节,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
客户应用程序仅须使用标准接口和服务器通信,而并不需要知道底层的实现细节。通过OPC服务器,OPC客户既可以直接读写物理VO设备的数据,也可操作SCADA,DCS等系统的端口变量(只要该系统提供OPC服务)。
Ⅶ OPC服务器如何获取数据
3)数据库服务器上安装Microsoft SQL2000中文版数据库软件,用来储存整个污水厂重要的历史数据,通过iFIX3.5与Microsoft SQL 2000的通讯来读取历史数据。单独
Ⅷ opc服务器 ex5里面的数据怎么样可以备份
企业备份服务器数据库的数据一般有四种方式:
数据库文件直接拷贝,如果不是频繁的读写长期占用,可以直接拷贝数据库目录源文件,另行保存一份即可。
数据库管理程序备份,比如phpmyadmin,有导出为.sql的备份文件格式,或者其他管理工具,都可以连接到数据库然后导出备份。
如果在本机操作,还可以使用脚本制定计划任务,定时执行脚本复制备份。
使用云备份系统,搭建云数据库云备份,全时间自动备份。
Ⅸ 如何开发OPC Server
一.准备工作:
下载opc基金会的OPC Proxy DLL然后按照说明进行安装。这些动态库是opc程序运行所必须的。
1. 将下列文件拷贝至要运行OPC服务器和OPC客户端的机器上的SYSTEM32目录下
opcproxy.dll C:\WINDOWS\system32
opccomn_ps.dll C:\WINDOWS\system32
opc_aeps.dll C:\WINDOWS\system32
opchda_ps.dll C:\WINDOWS\system32
aprxdist.exe C:\WINDOWS\system32
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中定义一个GUID这个guid是用来标识opcserver的唯一id可以通过操作系统的工具生成,也可以编一个。格式如下。
const GUID
CLSID_OPCSimSvr = {0x99b8f472, 0xc037, 0x11d2, {0x80, 0xb8, 0x0, 0x60, 0x97, 0x58, 0x58, 0xbe}};
3. 在工程中加入对WtOPCSvr动态库的连接。
WTOPCsvr动态库的有关文件都在之前的例子包里面能找到。
WTOPCsvr.lib WTOPCsvr.dll是对应lib和dll
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是否编写的正确。
Ⅹ 库卡控制器中 OPC UA 服务器如何导出
机器人$conf_mess(脉冲信号)就可以复位。
通过外部自动启停,复位机器人的信号需要在示教器里配置,路径:
登陆用户组“Safety Maintenance”权限---配置---外部自动运行---把输入端和输出端的信号配置完成。