动态数据交换(DDE)在ZJ19E机组数采编程中的使用
- 格式:pdf
- 大小:175.89 KB
- 文档页数:3
在数据库应⽤程序中,经常需要与外部的数据源进⾏数据交换。
通常我们会考虑利⽤开放式数据库互连标准ODBC。
ODBC由驱动程序管理器和⼀系列把SQL作为它们访问语⾔的驱动程序所组成。
当需要时,ODBC驱动程序翻译各种产品的SQL语⾔以使不同产品间的连接完美⽆缺,从⽽使得连接另外⼀个应⽤程序上的数据成为可能,甚⾄可以在Visual FoxPro并不直接⽀持的格式(例如电⼦表格)中提取和修改数据。
鉴于ODBC早已经被很多程序员所熟知,我们这⾥仅仅讨论⼀种不太常⽤的⽅法:DDE。
----DDE是⼀种动态数据交换机制(Dynamic Data Exchange,DDE)。
使⽤DDE通讯需要两个Windows应⽤程序,其中⼀个作为服务器处理信息,另外⼀个作为客户机从服务器获得信息。
客户机应⽤程序向当前所激活的服务器应⽤程序发送⼀条消息请求信息,服务器应⽤程序根据该信息作出应答,从⽽实现两个程序之间的数据交换。
在Visual FoxPro中,⼀共⼗⼀个常⽤的DDE函数,它们是: DDEAbortTrans() 删除异步的DDE处理 DDEAdvise() 建⽴与服务器应⽤程序的温或热连接 DDEEnabled() 设置或返回DDE状态 DDEExecute() 向服务器应⽤程序发送⼀条执⾏消息 DDEInitiate() 打开到服务器应⽤程序的DDE控制板 DDELastError() 返回DDE函数引起的最后⼀条错误信息 DDEPoke() 传送数据库到客户机或服务器应⽤程序 DDERequest() 服务器应⽤程序请求数据 DDESetOption() 修改或返回DDE设置 DDESetService() 添加、删除、修改服务名的状态 DDESetTopic() 连接服务名与标题名 DDETerminte() 关闭DDE控制板 ----Visual FoxPro既可以作为DDE客户机,也可以作为DDE服务器。
L abV IEW与Fo rce Con tro l组态软件DD E通讯的实现A pp lica tion of DD E C omm un ica tionB e t w e e n L a bV I E W a ndC onfigura tion S oft w a reFo rce C on tro l裴 锋 汪翠英 邓永强(江西省电力试验研究院 江西南昌 330006)[摘 要] 文章阐述了利用DD E通讯技术,将L abV IE W强大的数据处理能力、丰富的函数库资源与工业组态软件力控(Fo rce Con tro l)的易用性结合起来的方法,从而解决工业组态软件对复杂算法支持的不足,实现测控系统软件功能的扩展。
[关键词] DD E技术 组态软件 Fo rce Con tro l L abV IE W 数据通讯[中图分类号] T P393 [文献标识码] B 力控(Fo rce Con tro l)作为一款优秀的国产组态软件,它提供了良好的开发界面和简捷的工程实现方法,只要进行简单的“组态”,便可以轻松实现现场数据采集与过程控制。
当需要较复杂的控制算法时,可以使用力控提供的策略生成器作为开发工具。
然而,由于控制现场和控制对象的多样性,当直接使用力控内置的函数库资源无法完成时,如何与其它软件进行数据共享便成为急需解决的问题。
美国国家仪器公司(N ati onal In strum en ts,简称N I)的创新软件产品L abV IE W是目前应用最广、发展最快、功能最强的图形化软件开发集成环境之一。
L abV IE W面向没有编程经验的用户,提供了丰富的函数库和功能强大的工具包,适合于从事科研、开发的科学家和工程技术人员,被誉为工程师和科学家的语言。
鉴于此,本文介绍了一种仅需编写少量的L abV IE W程序就可实现与力控DD E数据通讯的方法。
使用此方法,用户可以充分利用L abV IE W提供的优秀函数库和工具包进行各种先进算法的快速开发。
e算量dde数据模式1. 什么是e算量?e算量是一种用于度量计算机程序的复杂度的概念。
它可以衡量程序在处理输入数据时所需的计算资源,例如处理器时间、内存使用和网络带宽等。
e算量通常用于评估和优化程序的性能,以确保其在各种情况下都能够高效地运行。
2. 数据模式数据模式是指在特定情境下数据出现的规律或者模式。
在e算量中,数据模式可以用来描述输入数据的特点和规律,从而帮助我们更好地理解程序在不同输入情况下的表现。
2.1 单一数据模式单一数据模式是指输入数据具有明显的统一规律。
这意味着程序需要处理相似类型或结构的数据,并且针对这种类型或结构进行相同的操作。
例如,在一个简单的排序程序中,如果输入数据是一个已经按照升序排列好的数组,那么程序只需要进行少量比较操作就可以确定数组已经有序。
这种情况下,e算量较低,程序执行时间较短。
2.2 随机数据模式随机数据模式是指输入数据没有明显的规律或者统一性。
这种情况下,程序需要对不同类型或结构的数据进行不同的操作。
例如,在一个搜索程序中,如果输入数据是一个无序的数组,那么程序需要逐个比较数组中的元素才能找到目标值。
这种情况下,e算量较高,程序执行时间较长。
2.3 增长数据模式增长数据模式是指输入数据的规模逐渐增加。
这意味着程序需要处理更多的数据量,并且可能需要进行更多的计算操作。
例如,在一个图像处理程序中,如果输入是一张小尺寸的图片,程序可以很快地完成图像处理任务。
但如果输入是一张大尺寸的图片,那么程序可能需要花费更多时间来处理每个像素点。
这种情况下,e算量随着输入数据规模的增加而增加。
3. 如何优化e算量?优化e算量可以提高程序的性能和效率。
以下是一些常见的优化方法:3.1 算法优化选择合适的算法可以显著减少计算资源的使用。
一些高效的排序、查找和计算算法可以在相同时间内处理更多数据。
例如,在排序任务中,快速排序算法通常比冒泡排序算法具有更低的e算量。
因此,选择合适的排序算法可以提高程序的性能。
在控制系统中实现组态王与MATLAB 的DDE 通讯董新利[1] 王景景[2](1中国海洋大学,计算机科学系,山东青岛 266071;2 青岛科技大学,信息学院,山东青岛 266042)摘要:在试验控制系统的改造设计中,提出把组态王与MATLAB 相结合设计监控系统的思想,并成功的解决了二者之间结合的关键技术:DDE 数据通讯。
组态王与MATLAB 二者结合的优点及DDE 技术的引入,极大丰富了控制系统功能。
经试验DDE 通讯在控制系统取得良好的效果,该设计方法具有广阔的实用价值。
关键词:组态王;MATLAB;动态数据交换;控制试验系统中图分类号:TP273 文献标识码:AThe Communication of DDE between Kingview and PLC designed in control testsystemDONG Xinli [1], WANG Jingjing [2](1 Department of Computer Sciences, Ocean University of China, Qingdao 266071, China; 2 Information College,Qingdao University of Science & Technology, Qingdao 266042,China)Abstract: In design of the control test system, we present a design project of based on Kingview and MATLAB, and solve the primary technical difficulty: Dynamic data exchange (DDE) between Kingview and MATLAB. By uniting Kingview and MATLAB and joining DDE technique, the functions of control test system are enriched largely. DDE communication has a good effect by examination, so the design project has been of great value.Keywords: Kingview; MATLAB; dynamic data exchange (DDE); control test systemIntroductionThe process control test system can achieve the process control of the minitype boiler system by using industry components ,for example, intelligent meter, PLC , sensor, executive parts, etc. This test system can achieve real time引言过程控制实验系统利用工业生产中实际使用的智能仪表、PLC、传感器和执行机构等工业元件,在一个微型锅炉系统上实现过程控制,利用组态软件开发上位机监控系统,实现实时监控。
DDE使用方法完整版DDE(动态数据交换)是一种微软开发的机制,用于在Windows操作系统中的应用程序之间共享数据和命令。
DDE的使用方法有很多,下面将介绍一些常见的DDE使用方法。
首先,DDE有两种角色,分别是DDE服务器和DDE客户端。
DDE服务器通常是提供数据或命令的应用程序,而DDE客户端则是接收并处理这些数据或命令的应用程序。
在使用DDE之前,首先需要确保已经创建了DDE通道。
可以通过在应用程序中调用DdeInitialize函数来创建DDE通道。
DdeInitialize函数接受一个指向DDEML实例的指针,以及一个回调函数的指针作为参数。
回调函数用于处理DDE事件和消息。
接下来,可以使用DdeCreateStringHandle函数创建DDE字符串句柄。
DDE字符串句柄用于标识应用程序中的字符串,以便在DDE通信中引用它们。
DdeCreateStringHandle函数接受一个DDEML实例的指针、应用程序标识符(APPID)和要创建句柄的字符串作为参数,并返回一个句柄。
一旦创建了DDE字符串句柄,就可以使用DdeConnect函数建立与DDE服务器的连接。
DdeConnect函数接受一个DDEML实例的指针、DDE字符串句柄、DDE服务器的应用程序标识符和连接ID作为参数,并返回一个连接句柄。
连接ID是一个用于标识连接的唯一数值。
建立与DDE服务器的连接后,可以使用DdeClientTransaction函数进行数据交换。
DdeClientTransaction函数接受一个连接句柄、一个数据句柄(用于标识要发送的数据)、一个字符串句柄(用于标识要发送的命令)、一个服务标识符和一个事务标识符作为参数,并返回一个事务标识符。
要接收DDE服务器发送的数据或命令,可以在回调函数中处理DDE事件。
使用DdeGetData函数可以获取从DDE服务器接收到的数据。
DdeGetData函数接受一个连接句柄、一个数据句柄、一个接收缓冲区和一个缓冲区大小作为参数,并返回接收到的数据的长度。
C#中应用DDE技术实现动态数据交换DDE是个很老的东西了,基本已经被淘汰。
但有些地方还在使用这个东西,最近遇到个问题要使用这个东西,比如MT4就运用DDE让自己成为服务端,程序可利用DDE获取MT4的外汇报价数据实现实时更新。
[csharp]view plaincopying NDde.Client;2.3.private void MainForm_Load(object sender, EventArgs e)4.{5.try6.{7.//申明并实例化一个DdeClient对象8.client = new DdeClient("MT4", "BID", this);9.client.Advise += client_Advise;10.//连接到DDE服务器11.client.Connect();12.//循环获取数据13.client.StartAdvise("USDCHF", 1, true, 60000);14.}15.catch (Exception ex)16.{17.displayTextBox.Text = "MainForm_Load: " + ex.Me ssage;18.}19.}20.21.private void client_Advise(object sender, DdeAdvi seEventArgs args)22.{23.//显示更新数据24.displayTextBox.Text = "OnAdvise: " + args.Text;25.}这样就能实时获取MT4服务器的数据了。
第21章InTouch数据采集应用║类型是DDE,这样当InTouch软件转入运行方式时,就会向DDEML申请服务,与服务器建立连接,一个DDE会话活动开始了。
会话连接建立后,每当有数据变化,服务器就会将数据发送给客户。
客户发送数据到服务器:在数据库的组态中,定义输出数据点的类型和设备地址,驱动类型是DDE,这样当InTouch软件转入运行方式时,就会向DDEML申请服务,与服务器建立连接。
DDE会话活动开始后,每当输出点数据有变化,InTouch就会将输出点数据的值发送给服务器。
DDE数据交换的速度在点数很多时会受到限制,一般是每秒200个点的交换信息量。
当点数很多又要求更快地交换信息时,会丢失信息,甚至会发生连接中断。
此时,必须对故障进行恢复或重发。
VBA是应用程序自动化语言(过去常常称为宏语言),在办公自动化软件中常用。
将PLC 中数据通过InTouch采集并写入到Excel中,按一定格式显示或定时执行某些操作时,需要用VBA编写相应的程序。
21.2 利用DDE通信协议对现场数据采集并写入到Excel1.配置InTouch要利用DDE通信协议让InTouch访问Execl数据,先要配置InTouch,具体方法如下。
①配置InTouch访问名,应用程序名输入Excel,主题名输入Excel文件的完整路径,例如:C:\test.xls。
如果要使用sheet2表里面的数据,那么主题名就输入:C:\test.xls\sheet2。
②建立标记名的时候,标记类型必须是I/O型,访问名输入刚才新建的访问名。
③项目名输入Excel中每个单元格的编号,例如:R1C1表示第一行第一列,即A1;R2C1表示第二行第一列,即A2,依次类推。
④在与Excel通信时,必须先打开对应的Excel表(即DDE服务端)。
2.Excel中访问InTouch在表格中输入 =VIEW|TAGNAME!'ActualTagname',“VIEW”是应用程序的名称,“TAGNAME”是主题名,“ActualTagname”是实际InTouch标记名。