应用程序之间互相通讯的几种方法
应用程序之间互相通讯的几种方法
![应用程序之间互相通讯的几种方法](https://img.taocdn.com/s3/m/287082f1941ea76e58fa0497.png)
应用程序之间互相通讯的几种方法应用程序之间的数据交换(互相通讯)一直是困扰广大程序员的难题,尽管已经出现了各式各样的解决方案,但迄今为止没有哪一种方案是完美无缺的。
因此,只有学习并了解了它们的优缺点后,才能在特定的情况下选择最佳方案,以满足最终的要求。
1、共享在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,这便是最简单的一种数据交换方式。
对于网络用户而言,只要两台终端上安装的都是Win311 For Workgroup或Windows 95(或NT),则只要设置一下目录共享,映射成网络驱动器,同样可以简单地实现数据交换。
但它的缺点也是显而易见的:只能采取轮询的方式获得最新数据(效率低下),网络映射的驱动器绝对不能变动或取消(可靠性差),所以这是一种“低级”的通讯方式。
2、DDE每个Windows程序员都不会对DDE(动态数据交换)感到陌生,它是最早的基于Windows的数据交换方法,有三种方式可供选择:冷连接、温连接和热连接。
一般都是由客户端向服务器端发出连接申请,并且必须指明服务器端的名字和标题。
在连接建立后,数据可以双向流动。
典型的例子如抓图软件SnagIt,它提供了DDE接口,能够让其它应用程序来控制它。
DDE是完全向后兼容的,从16位平台转到32位,源代码几乎不用修改。
DDE还有网络功能。
使用过Win311 For Workgroup的人大概都还记得,它自带一个非常吸引人的小程序“Chat”,能使两台计算机通过网络实时交谈,这在当时几乎是一项创举。
可是很少有人知道“Chat”使用的是一种特殊的DDE,即NetDDE。
它的基本工作原理仍然是DDE,但它能使一台计算机向在同一个网络中的另一台终端发消息,而不像普通DDE 只能局限在同一台机器上。
与其它的数据交换方式相比,DDE已不够先进,而且Microsoft也不再积极支持DDE,所以它的前景不被看好。
什么是网络协议
![什么是网络协议](https://img.taocdn.com/s3/m/5a0f3cea6bd97f192279e9fd.png)
什么是网络协议篇一:几种常用的网络协议几种常用的网络协议几种常用的网络协议一、OSI模型名称层次功能物理层 1实现计算机系统与网络间的物理连接数据链路层2进行数据打包与解包,形成信息帧网络层 3提供数据通过的路由传输层 4提供传输顺序信息与响应会话层 5建立和中止连接表示层 6数据转换、确认数据格式应用层 7提供用户程序接口二、协议层次网络中常用协议以及层次关系1、进程/应用程的协议平时最广泛的协议,这一层的每个协议都由客程序和服务程序两部分组成。
程序通过服务器与客户机交互来工作。
常见协议有:Telnet、FTP、SMTP、HTTP、DNS等。
2、主机—主机层协议建立并且维护连接,用于保证主机间数据传输的安全性。
这一层主要有两个协议: TCP(Transmission Control Protocol:传输控制协议;面向连接,可靠传输 UDP(User Datagram Protocol):用户数据报协议;面向无连接,不可靠传输3、 Internet层协议负责数据的传输,在不同网络和系统间寻找路由,分段和重组数据报文,另外还有设备寻址。
些层包括如下协议:IP(Internet Protocol):Internet协议,负责TCP/IP主机间提供数据报服务,进行数据封装并产生协议头,TCP与UDP协议的基础。
ICMP(Internet Control Message Protocol):Internet控制报文协议。
ICMP协议其实是IP协议的的附属协议,IP协议用它来与其它主机或路由器交换错误报文和其它的一些网络情况,在ICMP包中携带了控制信息和故障恢复信息。
ARP(Address Resolution Protocol)协议:地址解析协议。
RARP(Reverse Address Resolution Protocol):逆向地址解析协议。
OSI 全称(Open System Interconnection)网络的OSI七层结构20xx年03月28日星期五 14:18(1)物理层——Physical这是整个OSI参考模型的最低层,它的任务就是提供网络的物理连接。
WINCC和与PLC之间的通讯方式
![WINCC和与PLC之间的通讯方式](https://img.taocdn.com/s3/m/5908bc88453610661ed9f4d4.png)
第四章S7-400与WINCC通讯连接技术本章讲述WINCC与可编程控制器间的通讯方式。
WINCC是目前工业现场应用较为广泛的可视化软件技术,能实现工业现场的模拟画面,使现场设备除了提供专用的通道,用于连接到SIMATIC 55/57/5505等系列的PLC外,还提供了如PROFIBUS DP/FMS,DDE(动态数据交换)和OPC(用于过程控制的OLE)等通用通道连接到第三方控制器。
此外,WINCC还以附加件(add-ons)的形式提供连接到其他控制器的通讯通道。
另外,还提供了一个CDK选件,可以用它来开发一些专用通讯通道。
过程通讯原理4.1.1通讯术语下面列举了一些在通讯中应用的术语。
其中有关各种通讯网络的详细介绍已经在上章里详细介绍过,对于WINCC与PLC之间的通讯连接方式的掌握,熟悉下面几种通讯术语,能更好的加深对本章的了解和应用。
(1)通讯通讯用于描述两个通讯伙伴之间的数据交换。
(2)通讯伙伴通讯伙伴是指可以互相进行通讯的模块,也就是说它们可以互相交换数据。
它们可以是PLC中的中央处理器板和通讯处理器,也可以是PC中的通讯处理器。
(3)站站是可以作为一个单元与一个或多个子网连接的设备。
它可以是PLC,也可以是PC。
(4)子网、子网是用于描述一个通讯单元的术语。
该单元包含建立链接所必需的所有物理组件以及相关的数据交换方式。
(5)网络网络是由一个或多个互相连接的子网组成的单元,它包括所有可以互相通讯的站。
(6)通讯驱动程序在WINCC中通讯驱动程序也指通道。
它是一个软件组织,可在自动化系统和WINCC中的变量管理器之间设置连接,以便能向WINCC变量提供过程值。
在WINCC中有很多通讯驱动程序,可通过不同的总线系统连接不同的自动化系统。
每个通讯驱动程序只需被集成到WINCC 项目一次。
通讯驱动程序具有扩展名.chn,安装在系统中所有的通讯驱动程序可在WINCC安装目录下的子目录、bIN中查到。
即时通信系统
![即时通信系统](https://img.taocdn.com/s3/m/64c3f30a844769eae009ed12.png)
本科生课程设计即时通信系统院系计算机科学与技术学院专业计算机科学与技术班级学号学生姓名指导教师职称讲师2011年12月独创性声明本人郑重声明:所呈交的课程设计论文(设计)是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。
签名:年月日授权声明本人完全了解许昌学院有关保留、使用本科生课程设计论文(设计)的规定,即:有权保留并向国家有关部门或机构送交课程设计论文(设计)的复印件和磁盘,允许课程设计论文(设计)被查阅和借阅。
本人授权许昌学院可以将课程设计论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。
本人论文(设计)中有原创性数据需要保密的部分为:。
签名:年月日指导教师签名:年月日摘要本文介绍了即时通信系统的程序设计和功能实现。
该系统主要是基于TCP与UDP的C/S 模式通信系统。
该项目由两个主程序组成:服务器端应用程序,客户机端应用程序。
服务器启动监听进程,监听连接申请,对于来申请的客户机,或者说申请的ID,服务器进程将会对进行判别和分类,满足服务器要求就进行连接,从而实现客户端的通信。
该系统界面友好,操作简单,适应性强,扩展性强。
关键字:即时通信;服务器;客户端;ABSTRACTThis paper introduces the Instant Messaging systems program design and function realization. The system is mainly based on TCP and UDP C/S mode communication system. The project consists of two main program composition: the server application, the client application. Monitor process server startup, monitor connection application, to apply for the client, or apply for ID, the server process will be to discrimination and classification, and satisfy the requirements will connect server, so as to realize the client communication. The system friendly interface, simple operation, strong adaptability and expandability.Key word: Instant Messaging ;The server. The client;目录目录 (4)第1章引言 (6)1.1 概述 (6)1.2 研究背景 (6)1.3 系统简介 (6)1.4系统开发方法 (6)第2章系统分析 (7)2.1 可行性分析 (7)2.2 功能分析 (7)第3章系统设计与实现 (9)3.1 项目系统模型 (9)3.2 开发及运行环境 (9)3.3 系统结构设计 (9)3.4 系统功能设计 (10)3.5 服务器端应用程序 (12)3.5.1 服务器端应用程序的创建流程 (12)3.5.2 实现界面设计 (12)3.5.3 定义类设计 (13)3.5.4 实现类中的函数 (15)3.5.5实现界面功能按钮 (22)3.5.6 测试 (23)3.6 客户端应用程序 (23)3.6.1界面设计 (23)3.6.2控件的编辑与绑定 (24)3.6.3 定义类设计和实现类设计中的函数 (24)3.6.4 实现界面功能按钮 (25)3.6.5 测试 (25)第4章系统结构 (27)4.1 服务器端结构 (27)4.2 客户端结构 (27)第5章系统评价 (29)结束语 (30)致谢 (31)附录参考文献 (32)第1章引言1.1 概述即时通信(Instant Messaging)是基于互联网协议的应用程序,它能够使应用不同类型设备的用户一对一进行通信。
软件系统之间的接口方式
![软件系统之间的接口方式](https://img.taocdn.com/s3/m/1bd3452459eef8c75fbfb3ec.png)
软件系统之间的接口方式•概述软件接口是实现一个系统跟另外系统进行信息交互的桥梁,在不同的系统之间,根据系统的关联程度的不同存在紧耦合和松耦合两种:紧耦合要求接口响应反应快,消息不能阻塞;松耦合对响应反应要求比较低。
在目前应用中, Socket 、消息队列(Message Queue)、 WebService等都有相应的应用,但是应用中发现各通讯方式有自己固有的特征,“适合的才是最好的”,这是真理。
在接口和系统信息交互的过程中,两种模式使用得很普遍:同步调用和异步调用,同步调用要求接口发出请求消息后必须等待服务端系统的应答消息,接口阻塞直至超时;异步调用则发出请求消息后,接口可以从事其它处理,定时轮询服务端应答消息和消息或事件通知。
同步方式简单,但是很容易造成接口阻塞,造成消息积压超时。
•技术实现• Socket 通讯Socket 通讯相对来说是很古老的通讯方式,也是最常用的通讯方式。
Socket 通讯有阻塞和非阻塞两种方式。
在同步方式,采用阻塞编程比较简单,但是为了防止接口阻塞,我们需要设置 Socket 超时,因此可以使用 Socket 的 SELECT 模型(参考如下示例代码):ReceLen=0;CurReceLen=0;for(;;){iResult=select(0,&fdread,NULL,NULL,&timeout);if(iResult==0){AfxMessageBox("接收应答消息超时!!!",MB_OK|MB_ICONERROR); closesocket(Socket);return FALSE;}CurReceLen = recv(Socket, oBuf+ReceLen, len, NO_FLAG_SET); if((CurReceLen>0) && (CurReceLen != SOCKET_ERROR)){oBuf[ReceLen+CurReceLen]='\0';memcpy((char *)&MsgLen,oBuf,sizeof(WORD32));MsgLen=ntohl(MsgLen);if(ReceLen+CurReceLen==MsgLen){ReceLen+=CurReceLen;break;}ReceLen+=CurReceLen;}}在异步方式下,采用非阻塞方式实现比较方便,在非阻塞方式下可使用WSAAsyncSelect模型和 WSAEventSelect 模型: WSAAsyncSelect模型基于消息,WSAEventSelect 模型基于事件,下面的示例代码设置了 Socket 进行读写和关闭操作的消息:status = WSAAsyncSelect(TempSocket, hWnd, WSA_READ, FD_READ | FD_CLOSE | FD_WRITE);if (status == SOCKET_ERROR){WriteLogFile("Set stream socket module fail!!!IP(%s),Port(%d) and error(%d)",GetIPAddr((PeerMap+node)->IPAddr),(PeerMap+node)->PeerPortNo,WS AGetLastError());CloseSocket(TempSocket,__LINE__,__FILE__);return FALSE;}无论使用阻塞方式或非阻塞方式编程,需要重点考虑的一个问题:粘包现象,即应用发送两个或以上的数据包,在 Socket 通讯层将数据包合并成一个发送出去,因此接收端收到数据包以后需要对数据包根据应用定义的长度进行拆分,否则导致应用层丢包。
(最新整理)信息系统分析与设计课后题答案
![(最新整理)信息系统分析与设计课后题答案](https://img.taocdn.com/s3/m/dac933fa0066f5335a8121e2.png)
(完整)信息系统分析与设计课后题答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)信息系统分析与设计课后题答案)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)信息系统分析与设计课后题答案的全部内容。
第一章信息系统导论一、名词解释1.信息:信息是经过加工后的数据,它对接收者的决策或行为具有现实或潜在的价值.2.系统:系统是由处于一定环境中的若干相互联系和相互作用的要素组成并为达到整体目的而存在的集合。
3.信息系统:信息系统是指利用计算机、网络、数据库等现代信息技术,处理组织中的数据业务、管理和决策问题并为组织目标服务的综合系统。
4.决策支持系统:这是在现代信息技术的基础上,交叉管理学、行为科学、运筹学,控制论等学科运用、人工智能、专家系统、知识工程等理论和方法,辅助支持企业,决策活动的信息系统。
二、选择题1.信息运动的基本形式是(D)A.信息输入与输出 B信息处理 C信息控制 D信息循环2.决策的基础(C)A管理者 B客户 C 信息 D规章制度3.下列是分布式系统缺点是(D)A难于发挥用户的积极性和创造性 B应变能力差C系统难于扩展 D安全控制难度大4.集中式系统的缺点是(C)A不利于安全控制 B应变能力差C不利于调动各部门的积极性 D不利于人员素质的提高5.以下不是B/S结构特点的是(B)A 客户端统一 B速度快C开放性强 D 易于管理和维护6.系统通过与环境进行物质、能量和信息的交换,从而调节自身的行为,达到与环境平衡和适应,这是指系统的(A)A 动态性B 目的性C 整体性D 相关性三、简答题1.简述信息与数据的区别.答:信息是经过加工后的数据,它对于接收者的决策或行为具有现实或潜在意义。
C++进程间通信的十一种方法
![C++进程间通信的十一种方法](https://img.taocdn.com/s3/m/49458590e43a580216fc700abb68a98271feac3b.png)
C++进程间通信的⼗⼀种⽅法⼀个是操作系统⽤来管理进程的内核对象。
内核对象也是系统⽤来存放关于进程的统计信息的地⽅另⼀个是地址空间,它包含所有的可执⾏模块或DLL模块的代码和数据。
它还包含动态分配的空间。
如线程堆栈和堆分配空间。
每个进程被赋予它⾃⼰的虚拟地址空间,当进程中的⼀个线程正在运⾏时,该线程可以访问只属于它的进程的内存。
属于其它进程的内存则是隐藏的,并不能被正在运⾏的线程访问。
为了能在两个进程之间进⾏通讯,由以下⼏种⽅法可供参考:1、剪贴板Clipboard: 在16位时代常使⽤的⽅式,CWnd中提供⽀持2、窗⼝消息标准的Windows消息以及专⽤的WM_COPYDATA消息 SENDMESSAGE()接收端必须有⼀个窗⼝3、使⽤共享内存⽅式(Shared Memory)a.设定⼀块共享内存区域HANDLE CreateFileMapping(HANDLE,LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR)产⽣⼀个file-mapping核⼼对象LPVOID MapViewOfFile(HANDLE hFileMappingObject,DWORD dwDesiredAcess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,DWORD dwNumberOfBytesToMap);得到共享内存的指针b.找出共享内存决定这块内存要以点对点(peer to peer)的形式呈现每个进程都必须有相同的能⼒,产⽣共享内存并将它初始化。
每个进程都应该调⽤CreateFileMapping(),然后调⽤GetLastError().如果传回的错误代码是ERROR_ALREADY_EXISTS,那么进程就可以假设这⼀共享内存区域已经被别的进程打开并初始化了,否则该进程就可以合理的认为⾃⼰排在第⼀位,并接下来将共享内存初始化。
EAI简介
![EAI简介](https://img.taocdn.com/s3/m/96098fd428ea81c758f5788b.png)
EAI简介企业应用集成技术,即EAI (Enterprise Application Integration)技术,EAI是将基于各种不同平台、用不同方案建立的异构应用集成的一种方法和技术,通过它可以达到资源共享。
什么时候用:一般来讲,如果某一应用领域中的业务逻辑有一定的复杂性,不能单靠简单传统的用户界面加数据库技术解决其业务问题,那么在这个应用领域中,就有可能应用EAI技术。
EAI技术旨在整合既已封装的企业应用,通过一定的业务流程,来实现靠单个应用所不能完成的业务功能。
应用领域:已在各行各业中得到广泛的应用,如电信,金融,媒体,制造业等。
EAI在征管系统中的作用它在征管系统主要是为外围系统提供服务,为了保证征管系统的安全、有效、可靠的运行,同时还要为外围系统提供数据查询等服务,实现与外界资源达到数据共享。
EAI都应用到哪些技术1.HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它的工作原理是通过xml配置文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2. StrutsStruts是一个基于Sun J2EE平台的MVC框架,它是使用servlet 和JavaServer Pages 技术的一种Model-V iew-Controller 实现。
由于Struts能充分满足应用开发的需求,简单易用。
Struts把Servlet、JSP、自定义标签(taglib)和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
数据交换技术方案
![数据交换技术方案](https://img.taocdn.com/s3/m/db19842626284b73f242336c1eb91a37f11132dd.png)
数据交换中间件技术方案201106目录1项目概况 (4)2与业务应用接入关系 (4)2.1与已有业务系统的支撑关系 (4)2.2与新建业务系统的支撑关系 (4)2.3与业务系统之间的公共支撑关系 (5)3总体技术路线 (5)3.1JA V A EE规范 (5)3.2中间件技术 (5)3.3SOA服务体系架构 (6)3.4ESB企业服务总线 (7)3.5异构系统适配器服务 (7)3.6XSLT服务 (8)3.7Web Services (8)3.8消息队列技术 (8)4数据交换技术方案 (9)4.1需求分析 (9)4.2产品配置 (10)4.3产品部署 (11)5交换监控扩展设计 (12)5.1功能图 (12)5.2功能描述 (12)6ESB服务总线系统功能 (13)6.1服务封装 (13)6.1.1XML数据表示 (14)6.1.2适配器服务 (14)6.1.3数据描述工具 (14)6.1.4数据自动同步功能 (15)6.2共享交换机制 (15)6.2.1实时交换机制 (15)6.2.2定时交换机制 (16)6.2.3单向交换机制 (16)6.2.4双向交换机制 (16)6.3服务库及管理 (16)6.4服务编排功能 (17)6.4.1服务编排 (17)6.4.2数据加工 (18)6.4.3服务流程合成 (19)6.5数据可靠传输通道 (19)6.6服务管理监控 (22)6.6.1服务资源管理 (22)6.6.2服务流程管理 (22)6.6.3服务流程监控 (22)6.6.4安全及授权机制 (23)6.6.5服务流程日志 (25)7硬件建议配置 (25)8方案特点 (26)9产品介绍 (27)9.1应用集成中间件TongIntegrator SOA套件 (27)9.1.1产品概述 (27)9.1.2产品组成结构 (28)9.1.4产品特点 (30)9.2消息中间件TongLINK/Q (31)9.2.1产品概述 (31)9.2.2主要功能 (31)9.2.3技术特点 (33)9.3应用服务器中间件TongWeb (34)9.3.1产品概述 (34)9.3.2主要功能 (35)9.3.3技术特点 (40)10项目预算 (41)1项目概况随着政府职能部门服务意识的不断增强,以及便民服务需求的日益增加,外网接件内网办理等应用需求越来越多。
初中信息技术学考单项选择练习二
![初中信息技术学考单项选择练习二](https://img.taocdn.com/s3/m/dd591d9e01f69e314232944b.png)
初中信息技术学考单项选择练习二1. 以下不属于信息的是()。
[单选题] *A. 一段录像B. 一段新闻C. 一则广告D. 一张光盘(正确答案)2. 最先提出建设信息高速公路的国家是() [单选题] *A. 日本B. 美国(正确答案)C. 中国D. 英国3. 计算机病毒会给计算机造成的损坏是()。
[单选题] *A. 只损坏硬件B. 只损坏数据C. 只损坏软件D. 损坏硬件、软件或数据(正确答案)4. 按照现行的国内和国际的标准,存储一个汉字需要的字节数是()。
[单选题] *A. 3B. 4C. 1D. 2(正确答案)5. 下列活动,不属于危害计算机信息网络安全的是()。
[单选题] *A. 故意编制游戏程序并且传播给他人的(正确答案)B. 故意制作、传播计算机病毒等破坏性程序的C. 未经允许,对计算机信息网络功能进行删除、修改或者增加的D. 未经允许,进入计算机信息网络或者使用计算机信息网络资源的6. 在Windows 中,以下叙述正确的是()。
[单选题] *A. “画图”软件中无法在图片上添加文字B. “记事本”软件中无法在文本中插入一个图片(正确答案)C. “记事本”软件是一个文字处理软件,它可以处理大型而且格式复杂的文档D. “画图”软件最多可使用256种颜色画图,所以无法处理真彩色的图片7. 在Windows对话框中,可以在其中输入数据的控件是()。
[单选题] *A. 列表B. 命令按钮C. 文本框(正确答案)D. 标签控件8. 在Windows中,若系统长时间不响应用户要求,为了结束该任务,应使用的组合键是()。
[单选题] *A. Shift+Esc+TabB. Alt+Shift+DelC. Alt+Ctrl+Del(正确答案)D. Alt+Ctrl+Shift9. 在Word的主菜单中,含有“字体…”的主菜单项是()。
[单选题] *A. 工具B. 视图C. 插入D. 格式(正确答案)10. 将Word文档中部分内容移动位置,首先要进行的操作是()。
应用软件之间数据交互方法的研究与应用
![应用软件之间数据交互方法的研究与应用](https://img.taocdn.com/s3/m/ddf3a75ae418964bcf84b9d528ea81c758f52e78.png)
应用软件之间数据交互方法的研究与应用宋长法;沈俊杰【摘要】介绍实现软件通讯的几种主要实现方法,着重分析ActiveX和LabVIEW 共享变量各自的特点,通讯的设置、数据传输和编程方法.通过应用实例研究了LabVIEW和工业组态软件通讯的数据同步性.实践证明,在工业控制系统中,通过应用程序的数据交互,将LabVIEW优秀的数据处理能力、丰富的函数库与工业组态软件灵活的人机界面组态功能结合起来,不仅实现了复杂系统的控制,而且极大地方便了程序的编写和维护,提高了程序的开发效率.【期刊名称】《机械制造》【年(卷),期】2011(049)002【总页数】4页(P16-19)【关键词】OPC;ActiveX;组态软件;数据交互;共享变量引擎【作者】宋长法;沈俊杰【作者单位】上海大学精密机械系,上海,200072;上海大学精密机械系,上海,200072【正文语种】中文【中图分类】TP393.09在工业控制领域,组态软件提供了友好的人机界面,用户能根据自己的控制对象和控制目的任意组态,实现一般的监控功能。
LabVIEW提供了比较丰富的函数库和功能较强的工具包,用户可以利用美国NI公司的LabVIEW软件提供的函数库和工具包完成复杂控制算法的开发或较大的数据存储。
由于控制现场和控制对象的多样性,当需要实现一些复杂的控制算法或较大的数据存储功能时,如果能将LabVIEW强大的数据处理能力、相对丰富的函数库与工业组态软件灵活的人机界面组态功能结合起来,有利于发挥工控组态软件和LabVIEW各自的优势,实现复杂系统的监控。
要充分利用工控组态软件和LabVIEW各自的优势,就必须解决应用程序间的实时通讯问题。
本文将结合具体应用实例研究数据在LabVIEW和组态软件之间传递的过程,并给出实现LabVIEW和西门子组态软件WinCC flexible通讯数据同步性的方法。
1 应用软件数据交互方法LabVIEW实现与其它应用软件通讯的方法一般有以下几种:DDE数据交换技术;TCP、UDP等传输控制协议;ActiveX控件;基于TCP/IP协议的DataSocket技术;网络共享变量。
计算机基础知识复习资料
![计算机基础知识复习资料](https://img.taocdn.com/s3/m/cba96f3331126edb6f1a10a7.png)
第一章2、程序就是完成既定任务的一组指令序列,计算机按照程序规定的流程依次执行一条条的指令,最终完成程序所要实现的目标。
3、存储程序原理是由美籍匈牙利数学家冯.诺依曼于1946年提出的,存储程序原理是计算机利用存储器来存放所要执行的程序,而CPU可以依次从存储器中取出程序的每一条指令,并加以分析和执行,直至完成全部指令任务为止4、计算机指令系统。
所有指令的集合称为指令系统。
指令是对计算机进行程序控制的最小单位。
它的内核是硬件。
用机器指令编写的程序称为“机器语言程序”。
5、一条指令通常由两部分组成:操作码和地址码。
6、指令按其功能可分为两种类型:一类是命令计算机的各个部件完成基本的算术逻辑运算、数据存取和数据传送等操作,即操作类。
另一类则是用来控制程序本身的执行顺序,实现程序的分支、转移等,即控制转移类。
7、“复杂指令系统计算机”,简称CISC。
当某一系列计算机增设新型号机或高档机时,为维护老用户在软件上的投资不受损失,新机器中不得不继承老机器指令系统中的全部指令,这也使得同一系列计算机的指令系统越来越复杂,则称之为“复杂指令系统计算机”。
INTER采用此。
8、精简指令系统(简称RISC)的想法。
1975年,IBM的jhon Cocke针对日益庞大的指令系统加长了新机器的研制周期,增大了机器调试和维护的难度,从而降低了系统性能。
而对CISC机的测试表明,机器中最常执行的是一些简单指令,这些指令仅占指令系统中指令总数的20%,而占指令总数20%的最复杂指令却差不多占用了控制存储器容量的80%,提出了该想法。
ALPHA用此。
9、计算机组件中,“存储程序”计算机的硬件系统由五个基本部分组成:运算器、控制器、存储器、输入设备和输出设备。
其中,存储器又有内存储器和外存储器之分。
(图1-1)10、在计算机中,各部件之间来往的信息分成三种类型:地址、数据(包括指令)和控制信号。
系统总线成为计算机内部传输各种信息的通道。
《计算机文化基础》离线作业
![《计算机文化基础》离线作业](https://img.taocdn.com/s3/m/07ba5dfc551810a6f52486cf.png)
计算机文化基础第2次作业本次作业为简答题1. 简述计算机的几种主要类型,它们的主要应用领域是什么?1.巨型机巨型机运算速度超过一亿次/秒,存储容量大,主存容量甚至超过几千兆字节。
其结构复杂,价格昂贵,研制这类巨型机是现代科学技术,尤其是国防尖端技术发展的需要。
核武器、反导弹武器、空间技术、大范围天气预报、石油勘探等都要求计算机具有很高的速度、很大的容量,一般的计算机远远不能满足要求。
2.大型机大型机的运算速度一般在100万次/秒至几千万次/秒,字长32~64位,主存容量在几百兆字节以上。
它有比较完善的指令系统,丰富的外部设备和功能齐全的软件系统。
其特点是通用,有极强的综合处理能力,主要应用于大银行、政府部门、大型制造厂家等。
3.小型机小型机规模小、结构简单,所以设计试制周期短,便于及时采用先进工艺、生产量大、硬件成本低。
同时由于软件比大型机简单,所以软件成本也低。
小型机打开了在控制领域应用计算机的局面,小型机应用于数据的采集、整理、分析、计算等方面。
4.微型机微型机采用微处理器、半导体存储器和输入输出接口等芯片组装,使得微型机具有设计先进、软件丰富、功能齐全、价格便宜、可靠性高、使用方便等特点。
微型计算机已经极大地普及到家庭,促进着人们的学习、交流和社会的发展。
5.工程工作站工程工作站是20世纪80年代兴起的面向工程技术人员的计算机系统,其性能介于小型计算机和微型计算机之间。
一般具有高分辨率显示器、交互式的用户界面和功能齐全的图形软件。
6.网络计算机应用于网络上的计算机,该种机器简化了普通PC的外部存储器等支持计算机独立工作的部件,设计目标是依赖于网络服务器提供的各种能力支持以尽可能地降低制造成本。
这种计算机简称为“NC”。
按适用范围还可分为通用计算机和专用计算机。
专用计算机是根据特殊需求定制的满足专门使用目的的计算机。
如银行的ATM自动取款机等。
2. 计算机内部的信息为什么要采用二进制编码表示?(1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。
Internet网络测试习题
![Internet网络测试习题](https://img.taocdn.com/s3/m/6f802078f11dc281e53a580216fc700abb6852d3.png)
Internet网络测试习题多项选择题1、下列那些是测试局域网络通断。
()A. ping 192.168.1.1 C. ping 193.172.3.2 -t D. ping –l 512 192.168.1.12、计算机网络主要的功能是资源共享和通信,还有()A、负荷均衡B、分布处理C、提高系统安全D、可靠性功能3、100Mb/s快速以太网系统内的集线器按结构分为。
()A. 共享型B. 交换型4、常见的实用网络协议有。
()A. TCP/IPB. IPX/SPXC. NetBEUI5、“网络”主要包含几个方面?()A. 连接对象B. 连接介质C. 连接控制机制D. 连接方式与结构6、常用的网络拓扑结构有总线型结构、环形结构()A. 星型结构B. 树型结构C. 网状结构D. 混合型结构7、关于因特网,下列说法那些是正确的?()A.因特网是一个异种网互联,覆盖全球的计算机网络系统B.因特网采用客户机/服务器模式C.能提供WWW、E-mail、FTP等服务D.接入因特网的常用方法有电话线接入和局域网入网两种方式8、关于局域网叙述,正确的是()A.覆盖的范围有限距离短B. 数据传输速度高误码率低C.光纤是局域网最适合使用的传输介质D.局域网使用最多的传输介质是双绞线9、关于网络设备与网络传输介质的叙述正确的是。
()A.网卡是计算机与通讯介质之间进行数据转发的中间处理部件B.传输介质是网络中发送方与接收方之间传输信息的物理通道C.中继器的功能是对网络传输信号进行整形放大D.MODEM又称为调试解调器10、下列那些是网络调试常用命令。
()B.telnetC. ping11、计算机网络一般由网络通信协议等几个方面组成。
()A、服务器B、工作站C、连接设备D、传输介质12、按照接口类型的不同,可将网卡分为。
()A、ISA网卡B、PCI网卡C、PCI-E网卡13、充分利用现有接入条件的宽带接入技术有。
()A、全光网B、XDSLC、HFCD、光纤同轴混合单项选择题14、比较适合用于对等网的计算机操作系统是( Windows XP )15、按照地理面积划分,覆盖面积最大的网络为( Internet )16、下列不属于无线介质的是(紫外线)17、实现模拟信号和数字信号之间互相转换的设备是(调制解调器)18、为保证网页打开的速度,在制作网页中经常用到的图片格式是(GIF和JPEG )19、下面是一些Internet上常见的文件类型,请指出文件类型一般代表WWW页面文件是(htm 或html)20、Internet采用了目前在分布式网络中最流行的模式,大大增强了网络信息服务的灵活性。
应用层常用协议TCP、IP
![应用层常用协议TCP、IP](https://img.taocdn.com/s3/m/e4a9c16ea98271fe910ef9af.png)
第四章TCP/IP应用层常用协议习题:1、什么是Telnet协议?实现远程登录应具备哪些条件?答:Telnet含义为“电信网络协议”。
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。
在终端使用者的电脑上使用telnet 程序,用它连接到服务器。
终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
可以在本地就能控制服务器。
要开始一个telnet会话,必须输入用户名和密码来登录服务器。
Telnet是常用的远程控制Web服务器的方法。
Telnet是Internet的远程登录协议的意思,它让你坐在自己的计算机前通过Internet网络登录到另一台远程计算机上,这台计算机可以在隔壁的房间里,也可以在地球的另一端。
当你登录上远程计算机后,你的电脑就仿佛是远程计算机的一个终端,你就可以用自己的计算机直接操纵远程计算机,享受远程计算机本地终端同样的权力。
你可在远程计算机启动一个交互式程序,可以检索远程计算机的某个数据库,可以利用远程计算机强大的运算能力对某个方程式求解。
实现远程登录应具备如下条件:1、具有一个本地系统。
2、具有一个远程系统。
3、本地系统和远程系统可以互相通信。
4、本地系统的用户在远程多用户系统中有用户名账号。
2、简述Telnet的工作原理。
答:Telnet实现远程登录并访问远程资源,与TCP/IP的大多数应用一样,也采用了客户/服务器的模式。
客户端是本地系统,它有一个Telnet客户程序;服务器端是远程主机系统,它运行着一个telnet服务器进程。
在工作时。
本地客户telnet进程首先提出远程登录请求,远程telnet服务器进程在23端口进行守候,这样通过3次握手就在客户传输层与服务器传输层之间建立了一条TCP连接,在此连接上进行它们之间的交互通信,其原理可用下图表示:客户终端Telnet客户进程终端驱动进程TCP/IP操作系统内核Telnet服务器进程登陆外壳进程TCP/IP 伪终端驱动进程操作系统内核Telnet工作原理3、什么是网络虚拟终端NVT?为什么要提出网络虚拟终端NVC的概念?为了解决不同系统之间的互操作问题,TELNET协议专门定义了一种通用字符终端,即网络虚拟终端NVT。
第1章_CICS及联机事务处理系统概述--CICS 技术文档01
![第1章_CICS及联机事务处理系统概述--CICS 技术文档01](https://img.taocdn.com/s3/m/33dd3d48fe4733687e21aacf.png)
CICS 技术文档第一章CICS及联机事务处理系统概述1.1 联机事务处理系统(OLTP, On-Line Transaction Processing)联机事务处理,是面向事务应用的实际运行模式,其基本形式是大量会随机申请服务的客户,通过多种设备和渠道连接到业务处理系统中来,每一个服务请求在业务处理系统中以一个事务的方式运行,通过对一定业务数据的处理来完成客户的请求,并向客户返回数据。
通常,这种应用程序有大量的客户同时执行更改实时数据的事务。
尽管客户对数据的单个请求一般只涉及到少量数据记录,但是,这些请求绝大部分人是同时进行的,如图1-1所示。
OLTP 应用的常见例子是银行业务系统和航空订票系统。
OLTP 系统中,发生的每笔业务处理,都是一个事务,业内通常称之为交易。
比如现在流行的网上支付,从买家账号上转一笔资金到商家账号上,再比如在ATM机上存取现金。
这些都是典型的事务。
它要符合一个事务所必须具有的ACID 四个特性(详见1.2节),只有这样才能保证系统的可用性。
图 1-1 联机事务处理系统环境事务就是对于某种要求进行处理并返馈结果的一个完整处理过程。
在这种类型的处理程序中,有大量的相似的处理要求,联机事务管理系统就是提供事务处理中需要的通用逻辑处理功能,使用户的业务处理程序能够专注于应用本身的逻辑的软件系统。
事务处理要求的特性(ACID):原子性(Atomicity):一个事务中若干相关操作作为一个完整的单元进行处理,一个单元中的所有操作,要么整个完成(Commit),要么就得完全恢复到事务发生之前的状态,好像什么也没发生过一样(Rollback)。
一致性(Consistency):事务必须在两个一致的状态间移动数据,并以一种可重复的方式操作。
如果事务发生前相关数据是一致的,事务完成后数据必须仍然一致。
在事务内部因为数据处理的先后,可能出现数据的不一致,但在事务完成后外部数据要达到一致。
如果重复某一事物,它总是按相同的逻辑执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用程序之间互相通讯的几种方法应用程序之间的数据交换(互相通讯)一直是困扰广大程序员的难题,尽管已经出现了各式各样的解决方案,但迄今为止没有哪一种方案是完美无缺的。
因此,只有学习并了解了它们的优缺点后,才能在特定的情况下选择最佳方案,以满足最终的要求。
1、共享在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,这便是最简单的一种数据交换方式。
对于网络用户而言,只要两台终端上安装的都是Win311 For Workgroup或Windows 95(或NT),则只要设置一下目录共享,映射成网络驱动器,同样可以简单地实现数据交换。
但它的缺点也是显而易见的:只能采取轮询的方式获得最新数据(效率低下),网络映射的驱动器绝对不能变动或取消(可靠性差),所以这是一种“低级”的通讯方式。
2、DDE每个Windows程序员都不会对DDE(动态数据交换)感到陌生,它是最早的基于Windows的数据交换方法,有三种方式可供选择:冷连接、温连接和热连接。
一般都是由客户端向服务器端发出连接申请,并且必须指明服务器端的名字和标题。
在连接建立后,数据可以双向流动。
典型的例子如抓图软件SnagIt,它提供了DDE接口,能够让其它应用程序来控制它。
DDE是完全向后兼容的,从16位平台转到32位,源代码几乎不用修改。
DDE还有网络功能。
使用过Win311 For Workgroup的人大概都还记得,它自带一个非常吸引人的小程序“Chat”,能使两台计算机通过网络实时交谈,这在当时几乎是一项创举。
可是很少有人知道“Chat”使用的是一种特殊的DDE,即NetDDE。
它的基本工作原理仍然是DDE,但它能使一台计算机向在同一个网络中的另一台终端发消息,而不像普通DDE 只能局限在同一台机器上。
与其它的数据交换方式相比,DDE已不够先进,而且Microsoft也不再积极支持DDE,所以它的前景不被看好。
3、WM_COPYDATAWindows消息WM_COPYDATA功能强大,知之者却甚少。
它的确切定义是:一个应用程序向另一个应用程序传递数据时所发出的消息。
众所周知,Windows 在很大程度上依赖于消息机制,那么我们为什么不把数据放在消息中一起发送出去呢?这样,我们只要调用SendMessage(),以对方窗体的句柄作为第一个参数,以含有指向实际数据的指针结构的地址作为第二个参数,就可以把整个数据块当作消息发向另一个应用程序。
也许有的程序员会说,一个自定义的消息同样可以完成这样的工作。
他只说对了一半。
自定义消息的确可以发送到其它的应用程序上去,但其原始数据所在的内存区只有在发送过程中才是合法的,若在其它模块中存取该内存区就会导致“AccessViola tion”。
而使用WM_COPYDATA 则不存在这个问题,因为Windows 本身会替你处理这一切。
深入钻研下去,你会发现它其实是先创建了一个文件映射的对象,将发送方的原始数据先拷贝至映射文件,然后再在接收方对这个映射文件打开一个“视图”。
WM_COPYDATA 的不足之处在于:必须要有一个窗体来接收消息和数据(缺乏灵活性),数据在使用之前先得拷贝到一个映射文件(浪费资源)。
4、NetBIOS从80年代开始,NetBIOS就是开发Client/Server类程序的标准接口。
而当时其它的解决方案几乎都是从UNIX系统上发展而来的。
当然,对于今天的用户而言,NetBIOS已不是唯一的选择,他们可以从各种方案中择优选取。
在Windows 95和NT平台上,可以通过API函数Netbios()来调用NetBIOS功能。
NetBIOS兼容以下几种低层协议:NetBEUI协议(NBF)、NWLinkNetBIOS(NWNBlink)、NetBIOS over TCP/IP(NetBT)。
NetBIOS的优点是速度较快,缺点是可靠性较差。
5、标准的Sockets和WinSockSockets是15年前在UNIX系统上提出来的,一开始主要是用于本地通讯,但很快就应用在Client/Server体系上了。
它的内核很简单:你可以将一个Socket看作是一个双向的节点,一个应用程序可以通过它先与另一个程序建立连接(建立在一个双方都认可的端上,以便于区分同时运行的几个通讯线程),然后就可以彼此交换数据了。
微软公司在其基础上创建了WinSock,专门用于Windows接口,与Socket 完全兼容。
近年来基于TCP/IP协议的网络大行其道,Socket也随之获得了更加广泛的应用。
如今,Sockets已在Internet上获得了最广泛的应用,主要是因为它的可移植性好:Socket应用程序无论在任何平台间都能互相进行通讯(不管是PC机还是Macintosh,也不管是Windows平台还是UNIX平台)。
而最新推出的WinSock 2.0,已不仅仅只基于TCP/IP协议,还可基于其它几种传输协议(如IPX)。
Socket的缺陷是它工作在通讯的低层,所以实现起来较为复杂(如果是Win 95或NT平台,则不存在这个问题,微软公司提供了相应的控件)。
但是,如果要在多个平台间互相通讯,则Socket是不二之选。
6、Mailslot和PipeMailslot和Pipe有很多相同点,即都是高层的、基于内存的通讯系统。
Mailslot由Server端创建,代码如下:myMailslot = CreateMailslot(pSlotName, 0, MAILSLOT_WAIT_FOREVER, NULL);然后,Client端就可以像打开文件一样打开这个Mailslot,再通过API函数WriteFile()来将数据写入到消息队列中。
与此相类似,Pipe也是由Server端创建的,代码如下:pipe = CreateNamedPipe(pPipeName, PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE |PIPE_READMODE_MESSAGE | PIPE_WAIT,PIPE_UNLIMITED_INSTANCES, BUFSIZE,BUFSIZE, 20000, NULL);接着,Client端就可以通过一般的文件API读写数据,代码如下:pipe = CreateFile(pPipeName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,0,NULL);success = WriteFile(pipe, pMessage, strlen(pMessage) + 1,&bytesWritten, NULL);Pipe分两种,即命名Pipe和匿名Pipe。
匿名Pipe是以句柄而不是以名字来进行标识的,因而也就限制了它只能在同一台机器上通讯,而不能应用于网络。
命名Pipe则提供了以名字来进行标识,所以能在网络上的其它任何地方打开它。
需要注意的是:命名Pipe只能在 Win NT而不是Win 95上创建(即Server端),Client端则可以是任意平台。
Pipe既可以单向通讯也可以双向通讯,Mailslot则只能单向通讯。
Client 端可以发送消息给mailslot,但不能接收消息;如果你想要接收消息,则只能创建一个新的mailslot。
但mailslot有一个很大的优点:它支持数据广播。
也就是说,若Client 端发送一条消息,则整个网络中的同名对象都能收到。
这是因为mailslot的名字的作用域只是在本台机器上,所以可在不同机器上创建同名的mailslot,当Client端发来消息时则每一台机上的mailslot都得到了该消息的一份拷贝,并在本机上作出相应的反应。
Mailslot的最大缺陷是不可靠,因为它的数据是以数据报格式来传送的,网络错误或负荷过重都会导致数据丢失。
Pipe则较为可靠,但它不能广播。
所以,如果你不需要进行广播,则Pipe 是更好选择。
选择Mailslot,则要对此后遇到的麻烦有充分的准备。
7、剪贴板(Clipboard)大家对Windows的剪贴板应该不会感到陌生吧?它的出现就是为了实现应用程序间的互相数据交换。
Windows提供了一系列的API函数来让应用程序安全地打开剪贴板,读写其中的数据。
剪贴板的缺陷也是显而易见的:当有新的数据放在剪贴板上时,则先前的数据就会被冲掉,而在Windows中用到剪贴板的时候又实在太多了,所以这种方式用于程序间的通讯显然不够安全。
8、COM和DCOM公共对象模式(COM)是一种协议,它建立了一个软件模块同另一个软件模块之间的连接,然后将其描述出来。
当这种连接建立起来之后,则两个模块之间就可以通过称为“接口”的机制来进行通讯。
COM可以用不同的语言(VB、VC、Delphi)进行编制,又能被其它语言编写的程序所使用,并且不用管通讯双方实际所处的位置(是在同一台机上,还是在同一个网络上的不同机上)。
事实上,Internet上有大量的COM控件可供人们下载使用,其中有相当一部分就是用于应用程序间的相互通讯(甚至是Internet程序间的通讯),硬盘上能够看到的大量的.ocx文件其实就是一种COM。
COM对象为外部调用提供了一个标准的界面,COM Client通过创建COM Server的一个实例获得指针,转向所需的函数定义处并执行相应的程序。
讲得通俗一点,也就是先正确定义好COM对象的属性(Property),再执行相应的方法(Method)。
DCOM(分布式公共对象模式)是COM在网络上的一种扩展,它通过把分布式对象间的通讯变成一个实体来实现通讯。
COM如今被微软公司大力提倡,最著名的有OLE、ActiveX、DirectX和Win95、WinNT的外壳。
由于微软公司目前在软件业处于霸主地位,所以COM很有可能成为将来的业界标准,其前途也较为看好。
但COM的庞大也会使一些经验丰富的程序员望而却步,他们宁可自己多写一些代码以使整个程序更为简洁、有效而不愿使用COM。
以上介绍的只是现今流行的一些通讯方法,它们各有各的优缺点,没有哪一种是万能的。
因此,只有在合适的场合采用合适的方案,才是最好的解决办法。