基于 OPC 和Java 的远程监控系统架构研究与设计

合集下载

基于OPC技术的数控机床远程监控技术研究

基于OPC技术的数控机床远程监控技术研究
关 键词 : C 远 程监控 OP 数 控
T e R s a c n Ma hn o e h e e rh o c ie To l mo e Co t l n p r ioy R t n r d Su e vs r o a
T c n lg s d o C Te h oo y e h oo y Ba e n OP c n lg
了传统 控制无 法实 现集 中管理 和 实 时监 控 的 问题 , 且 无需增 加额外 的数 据采 集装 置 , 运 行 维护 人员 从 大 将
量繁琐 的工作 中解放 出来 , 强监 控 管理 的灵 活性 和 增 可控性 , 大大减 少 了因故 障带 来 的各 种不 良影响 。
出现 故障不 能及 时发现 , 在 隐患不能及 时排 除 , 导 存 将
业 开始尝试 利用 远程监 控技术来 统一集 中管 理所有 的 数 控机床 , 这些 监控 装 置 多需 要 添加 额外 的数 据 采 但
集装 置 , 在增 加 了额外费 用 的同时 , 还无 法与 现有数 控
力和上 层应用 系统集 成 能力 , 于用 户对 系 统功 能 进 便 行 定制 和参数调 节 , 硬件框 架如 图 1 其 所示 … 。
Y ANG Ja o g,XU Z i n ,W AN C a g u i rn h mi g G h n f

( hn hi l tcG o pC . Ld , hn h i 0 0 0 C S ag a Ee r ru o , t. S ag a 2 0 7 , HN) ci
性增 加 了维 修 的技术 难 度 和维 修 费用 。 目前 , 于 数 对 控机 床 的管理还停 留在 一 个 较低 的水 平 , 多是 采 用 发 现故 障后上 报等 形式 通 过 人工 控 制 。在这 种 模 式下 ,

基于Web和OPC技术的远程监控系统的研究

基于Web和OPC技术的远程监控系统的研究

RESEARCH oN REM oTE oNI M ToRD SYS. G I EM BAS ED oN Ⅵ B AND oPC TECHNoLoGY
Q a o ga L uu i D nh i i jn n F
( col , carnc n uo ainS a g a n e i ,hn h i 0 0 2 C / ) Sho Me t i a dA tm t ,hn h i w rt S g a 0 7 , hn D h o s o U sy a 2 a
Ab ta t sr c
T eda b c f h p l aino eOP e h ooyb sd o OM/ OM d sr oto n lzd, n !me — h rw a ko ea pi t f h Ctc n lg a e n C t c o t DC t i utycnrlsa aye a da i e n on i n mp
业标准 , 这个标 准定义 了应用 M c sf操 作系统 在基于 P ir o o t c的 客户机 与服务器之间交换 自动化实 时数据 的方法 , 极大提 高了 控制 系统 的互操 作性 和适 应性 。O C技 术 必定为 将来 的工 业 P
{赢 I 堂… 厂


l 射 骨c 户睁I 毫|
tm r i





Байду номын сангаас
!i
控 制领域赋予更强 的生命力 。
基 于 C S模式的 O C技 术 已经在工 业监控 系统 中得 到了 / P
c rs i e . a h f r t Ke wo d y rs O C Re t n tr g s se P moe mo i i y t m OP e e W e e e Acie on C sr r v b sr r v t X v

基于OPC技术的实时监控系统的设计与实现

基于OPC技术的实时监控系统的设计与实现
中图分类 号 :T 3 4 7 P 3 . 文献标 志码 :A
传 统 的实 时监 控 系 统 作 为 支 撑 现 代 工 业 生 产 法 的应用 ,可 以利 用 面 向对 象 的继 承 等 方 法 大量
和社会 生 活 的基 础 设 施 ,得 到 了广 泛 的 应 用 和 发 重用 源代 码. 但 这 些 重 用 只 是 对 源 代 码 级 的重 用
展 ,也 取 得 了很 大 的 成 就 .但 在 过 去技 术 条 件 限 而不 是对 可 执 行 文 件 级 的重 用 ,对 每一 类 库 都 要 制下 ,虽 然动用 了当时最 好 的技术 和最 好 的人 才 , 重新 编译 ,所 以 并 没 有 真 正 实 现 资 源 共 享 ,并 且
的实时监 控系统 的体 系结构 ;以 O C数据 存取 自动化 接 口规范 ( . ) 蓝本 , 用 C M 7软 件 P 20 为 利 O Ls
配置 O C服务器 ,用 V P B语言编写 O C应用程序 ,给出了实时监控系统的详细设计步骤和具体程 P
序 ,实 现 了对 被控对 象 的实时监控 . 关键词 :实时 监控 系统 ;O C技术 P
信的 ( 1 、B 、D为设备驱 动程序 ) 图 ,A 、C ,这 与微 软合 作 的 自动化 硬 件 和 软 件 供 应 商 合 作 定 义
就意 味着 同一 个 设 备 为 适 应 不 同 的 应 用 程 序 可 能 了一 种解决 这些 问题 的新 的标 准 , 就是 用 于 过程 这 需要有 多 种 不 同 的 驱 动 程 序 ,造 成 软 件 的准 后 , 件 开 L OC . 硬 发 ,软件 不 能 够 重 用 ,资 源 不 能共 享 ,浪 费 大 量 发商将取代软件开发商为 自己的硬件 产品开发 统

基于OPC技术的远程监控系统应用研究的开题报告

基于OPC技术的远程监控系统应用研究的开题报告

基于OPC技术的远程监控系统应用研究的开题报告一、选题背景和意义近年来,随着工业自动化水平的不断提高和互联网技术的快速发展,基于OPC技术的远程监控系统在工业控制、智能制造等领域得到了广泛应用。

OPC技术是一种开放的数据通信协议,它可以实现不同设备、不同厂家的数据交换和通信,简化了设备之间的集成难度,提高了互操作性,降低了设备集成和维护成本,从而增强了系统的可靠性和稳定性。

基于OPC技术的远程监控系统具有以下优点:1. 可以实现实时监测和远程控制,提高了生产过程的可控性和自动化水平;2. 可以快速获取和处理大量的数据和信号,实现全面的数据分析和优化;3. 可以实现分布式和分级管理,增强了系统的可维护性和可扩展性。

因此,研究基于OPC技术的远程监控系统在自动化生产中的应用,对于提高生产效率、降低管理成本、优化生产过程、保障生产安全等方面具有重要意义。

二、研究目的本文旨在研究基于OPC技术的远程监控系统在自动化生产中的应用,探讨其实现原理、技术特点、应用场景和研究现状,结合实际工程案例,构建一个完整的远程监控系统,实现对生产过程的实时监控和控制,为工业自动化和智能制造领域的发展提供有益的参考和借鉴。

三、研究内容和步骤本文的研究内容主要包括以下几个方面:1. OPC技术概述:介绍OPC技术的基本概念、结构、分类、应用领域等,了解OPC技术的优势和局限性。

2. 远程监控系统设计:通过对系统的需求分析和数据采集,确定系统的架构设计、功能模块划分、数据通信协议等,为后续的开发和实现奠定基础。

3. 系统实现和测试:根据系统设计的要求,利用C#语言和OPC技术,编写相应的程序代码和接口协议,实现远程监控系统的各个功能模块,经过实验测试和实际运行,验证系统的性能和稳定性。

4. 应用案例分析:以某企业的生产管理系统为例,利用所研发的远程监控系统进行生产数据采集、分析和控制,并对系统的效果和经济效益进行评估。

研究步骤如下:1. 文献调研和资料收集。

Java远程监控系统设计及功能介绍

Java远程监控系统设计及功能介绍

Java远程监控系统设计及功能介绍JavaJava远程监控系统是一个C/S系统,分为服务器端和客户端两部分。

服务端与客户端建立远程连接,可以抓取客户端的图像,还可以进行远程操作。

要实现Java远程监控系统,主要是通过以下几个功能设计实现。

Socket1.Socket,ServerSocketSocket 位于.包中,是网络通信重要的类,Socket中文称它为套接字,ServerSocket构造一对通信套接字方法如下ServerSocket sr=new ServerSocket(port);Socket sc=new Socket("ip",port);其中ServerSocket的accpet方法十分重要,当一个服务套接字建立之后它一直阻塞等待一个套接字的请求,直到建立连接。

套接字 =ip+port;一个套接字是由一个由一个ip地址和一个端口组成的,在网络通信中的底层实现也的确如此,要一个进程通信就必须为之制定工作端口,在连接端口之后才能在该端口上通信.2.InputStream , OutputStream当一个套接字连接成功后就可以获得基于这个套接字的输入输出流,一切数据的发送和接受都离不开输出输入流,我们可以通过流封装的方法选择你要输入或者输出的数据类型.Robotjava的Robot对象可以完成屏幕图像截取操作,控制鼠标,键盘。

Robotrobot=new Robot();BufferedImage image = robot.createScreenCapture(rect);UDP网络传输选用TIP/IP协议组中的UDP, UDP提供的是无连接的传送方式。

主控端和被控端通过UDP进行指令交互/*-主控端向被控端发送指令-*/String command = ...; //指令InetAddress inet = ...; //被控端地址int port = ...; //端口byte sp[] = command.getBytes();DatagramPacket packet = new DatagramPacket(sp,sp.length(),inet,port);DatagramSocket sd = new DatagramSocket();sd.send(packet);/*-被控端接收指令-*/DatagramSocket stockUDP = ...;DatagramPacket packet = ...;stockUDP.receive(packet);String message=new String(packet.getData(),0,packet.getLength()); //得到指令本程序中用到的指令public static final String Command_Connection = "connection" ; //建立连接public static final String Command_Disconnection = "disconnection";//断开连接public static final String Command_Screen = "screen"; //显示被控端屏幕public static final String Command_Control="control"; //建立控制套接JPEGJPEG的压缩和解码,可以大大优化传输过程中的带宽占用,提高程序运行效率/*-被控端开启图像传送线程-*/Socket socket = ...;OutputStream out = socket.getOutputStream();BufferedImage image ;JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out);//JPEG图像的压缩......public void run(){while(true){image = ...; //获取屏幕图像encoder.encode(image); //发送图像给主控端Thread.sleep(Environment.IMAGE_GETTIME); //图像采集时间间隔}}/*-主控端图像接收线程-*/JPEGImageDecoder de =JPEGCodec.createJPEGDecoder(socket.getInputStream());// JPEG图像的解码BufferedImage image = null ;......public void run(){while(true){image = de.decodeAsBufferedImage();if (image != null) {/*显示图像*/}}}/*-图像显示-*/public class ControlledScreenPanel extends JPanel implements MouseMotionListener,MouseListener,MouseWheelListener ,KeyListener{private BufferedImage image ;public void setBufferedImage(BufferedImage bi) { //更新图像image = bi;Dimension d = newDimension(image .getWidth(this),image .getHeight(this));setPreferredSize(d);revalidate();repaint();}public void paintComponent(Graphics g) { //绘制图像super.paintComponent(g);Dimension d = getSize();g.setColor(getBackground());g.fillRect(0, 0, d.width, d.height);if (image != null) {g.drawImage(image , 0, 0, this);}}}主控端和被控端通过鼠标,键盘事件进行指令交互发送鼠标,键盘事件到被控端private MainControlSocket control ;public void mouseDragged(MouseEvent e) {control.sendControlledAction(e);}public void mouseMoved(MouseEvent e) {control.sendControlledAction(e);}//--------------------------------------------------------------------------public void mouseClicked(MouseEvent e) {requestFocus();//单击获得焦点}public void mousePressed(MouseEvent e) { //鼠标按下control.sendControlledAction(e);}public void mouseReleased(MouseEvent e) { //鼠标释放control.sendControlledAction(e);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}//--------------------------------------------------------------------------public void mouseWheelMoved (MouseWheelEvent e){ //滑轮滚动control.sendControlledAction(e);}//--------------------------------------------------------------------------public void keyTyped(KeyEvent e) {}public void keyPressed(KeyEvent e) { //键盘按下control.sendControlledAction(e);}public void keyReleased(KeyEvent e) { //键盘释放control.sendControlledAction(e);}发送鼠标,键盘事件到被控端class MainControlSocket {private Socket socket = null;private ObjectOutputStream out = null; //事件对象发送封装......public void sendControlledAction(InputEvent event) {try {out.writeObject(event);}catch (IOException e) {e.printStackTrace();}}......}被控端接收,响应键盘鼠标事件private Socket socket = ...;private ObjectInputStream in = newObjectInputStream(socket.getInputStream());private Robot action = new Robot();public void run(){......while(true){Object obj = in.readObject(); //获得鼠标键盘事件if (obj != null) {handleEvent( (InputEvent) obj); //处理鼠标键盘事件}}......}private void handleEvent(InputEvent event){ MouseEvent mevent = null ; //鼠标事件MouseWheelEvent mwevent = null ;//鼠标滚动事件KeyEvent kevent = null ; //键盘事件int mousebuttonmask = -100; //鼠标按键switch (event.getID()){case MouseEvent.MOUSE_MOVED : //鼠标移动mevent = ( MouseEvent )event ;action.mouseMove( mevent.getX() , mevent.getY() ); break ;case MouseEvent.MOUSE_PRESSED : //鼠标键按下mevent = ( MouseEvent ) event;action.mouseMove( mevent.getX() , mevent.getY() ); mousebuttonmask = getMouseClick( mevent.getButton() );if(mousebuttonmask != -100)action.mousePress(mousebuttonmask);break;case MouseEvent.MOUSE_RELEASED : //鼠标键松开mevent = ( MouseEvent ) event;action.mouseMove( mevent.getX() , mevent.getY() ); mousebuttonmask = getMouseClick( mevent.getButton() );//取得鼠标按键if(mousebuttonmask != -100)action.mouseRelease( mousebuttonmask );break ;case KeyEvent.KEY_PRESSED : //按键kevent = ( KeyEvent ) event;action.keyPress( kevent.getKeyCode() );break ;case KeyEvent.KEY_RELEASED : //松键kevent= ( KeyEvent ) event ;action.keyRelease( kevent.getKeyCode() );break ;default: break ;}}private int getMouseClick(int button) { //取得鼠标按键if (button == MouseEvent.BUTTON1) //左键return InputEvent.BUTTON1_MASK;return -100;}......}Java(1)被控端通过Robot截取桌面图像通过socket通信传给主控端。

基于JAVA平台的远程监控系统的设计与实现

基于JAVA平台的远程监控系统的设计与实现
o p me n t t o o 1 . Us e r c a n u s e I E a s t h e we b s e ve r r . I n J S P we c a n c a l l J a v a Be a n s o r e mb e d J A V A c o d e t o a c h i e v e t h e c o mb i n e b e t we e n J A vA a n d HTM L we b p a g e . a c h i e v e t h e I n t e r a c t i o n b e t we e n t h e we b p a g e . Cl i e n t a n d S e r v e r . Us e r s c a n e n t e r t h e s e r v e r ’ S I P a d d r e s s t o r e mo t e l y mo n i t o r b y b r o ws e r . Ke y wo r d s : B/ S Ar c h i t e c t u r e ; Re mo t e Mo n i t o r ; J a v a E E P l a t f o r m; J S P Mo d e 1 1
t r i b u t e d r e mo t e mo n i mr i n g s y s t e m b a s e d o n B/ S a r c h i t e c t u r e . Al l t e c h n o l o g y i s b a s e d o n J a v a E E p l a t f o r m . Us e t h e J S P Mo d l e 1 : J S P a n d J a v a Be a n a s z h e d e v e l o p me n t mo d l e . Us e t h e J S P l a n g u a g e a n d J a v a Be a n T e c h n o l o g y t o wr i t e f r o n t p a g e b a s e d o n t h e my e c l i p s e

基于JAVA的远程视频监控系统设计

基于JAVA的远程视频监控系统设计
3.移动视频监控
如今移动视频监控在电信运营的推动下,也有了新的进展,但对移动视频监控尚无明确的标准定义。业界认为,无论是视频采集端还具有移动性还是后台移动端具有移动性,都属于移动视频监控的范畴。例如,车载摄像机可以将一些实时情况上传给监控中心。此外,在一些危险场景下(如易燃易爆、烈性传染病、生化等危险区域),可采用无线监控对其进行监控。上述应用属于采集端具有移动性。中国电信所研究开发的“全球眼”,实现了图像前端采集和后台监控端都具有移动的性能,使得监控更加方便,“全球眼”是一种基于IP技术和宽带网络技术的可以实时的远程视频监控业务。分散、独立的采集点图像信息通过网络视频监控业务平台进行联网处理,以实现可以跨区域的统一监控、管理、存储,以此来达到用户进行远程视频监控、管理、信息传递的需求。所以移动化、高清化、智能化是视频监控发展的必然趋势。
A universal remote video monitoring system based on JAVA and JMF technology is designed, which has the characteristics of good performance, portability, and so on. Remote video monitoring system mainly includes two parts, respectively are mobile phone remote control terminal and locally controlled end.The paper focuses on the local system controlled end software.Locally controlled end module through the camera acquisition video image formation of streaming media, which will be displayed at the end of the local computer controlled. The compressed video image is sent to the remote control terminal by TCP / IP protocol socket communication, which realized the remote and local controlled end of video surveillance. Real time monitoring of remote video had realized at any time and anywhere. Through testing, the picture is smooth, clear, which meets the expected requirements of the design.

Java语言下的智能监控系统设计与开发

Java语言下的智能监控系统设计与开发

Java语言下的智能监控系统设计与开发智能监控系统是一种基于先进技术的监控系统,能够实时监测、分析和处理各种数据信息,为用户提供全面、准确的监控服务。

在当今信息化社会,智能监控系统已经成为各行各业必不可少的一部分。

本文将重点介绍在Java语言下如何设计和开发智能监控系统,包括系统架构设计、关键功能模块实现等方面。

1. 系统架构设计在设计智能监控系统时,首先需要考虑系统的整体架构。

一个完整的智能监控系统通常包括数据采集、数据传输、数据存储、数据处理和用户界面等模块。

在Java语言下,可以采用分层架构设计,将系统划分为表现层、业务逻辑层和数据访问层三个层次。

表现层:负责与用户交互,展示监控数据和结果。

可以使用Java Swing或JavaFX等技术实现用户界面。

业务逻辑层:负责处理业务逻辑,包括数据处理、算法实现等。

可以使用Java多线程技术实现并发处理。

数据访问层:负责与数据库进行交互,进行数据的读写操作。

可以使用JDBC或ORM框架进行数据库操作。

2. 数据采集模块数据采集是智能监控系统的基础,通过数据采集模块可以获取各种传感器、设备或系统产生的数据。

在Java语言下,可以使用第三方库如Apache Kafka、Spring Integration等来实现数据的采集和传输。

同时,也可以通过网络编程技术实现与外部设备的通讯。

3. 数据处理模块数据处理是智能监控系统的核心功能之一,通过数据处理模块可以对采集到的数据进行分析、挖掘和计算。

在Java语言下,可以利用Java多线程技术实现并发处理,提高数据处理效率。

同时,也可以借助第三方库如Apache Spark、Hadoop等来进行大数据处理。

4. 告警与通知模块智能监控系统需要具备告警与通知功能,及时向用户反馈异常情况。

在Java语言下,可以通过邮件、短信或App推送等方式实现告警通知功能。

同时,也可以结合第三方服务如阿里云短信、融云即时通讯等来实现消息推送功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3
Dri ver
JAVA
RMI
RMI



4.1 数据服务器层 (1) 数据服务器的功能和组成
数据服务器的主要功能是负责与数据采集卡相 连接 , 采集控制系统设备生产过程中的数据。同时 , 数 据服务器还向应用服务器提供服务 , 按 照应用服务 器 的要求 , 执行相应的操作 , 提供所需的数据 , 包括 系统 的实时数据、 历史数据和报警信息等。 系统的数据源来自 OPC 服务器 ( OPC Server ) 。在 这里 , OPC 服务器代替了传统三层模式中数 据层通常 采用的商业数据库 , 可以看作是特殊的 实时数据库 。
言, 可以不加修改地运行于多种平台上面, 其良好的 可移植性和与平台无关性使得它在分布式系统的设 计中得到 广泛的 应 用 。 因 此 本 系 统 将 采 用 Java- OPC 复合方式 , 以便充分发挥各自的优点。 本系统采用 Java- OPC 的复合方式的 主要原因是 为了兼容目前高端的 J2EE EJB 系 统。目前企业 级的 上层应用系统, 如办公自动化系统、 物流管理系统等 大多采用 J2EE EJB 体系结构 构建。为了实 现企业底 层生产数据、 设备数据的实时上传 , 本系 统通过 Java-
OPC OPC OPC
OPC 服务器提供的统一接口 , 而不必再去关心现场设 备的驱动 程序。只要客 户应 用 程 序 符 合 OPC 接 口 规 范 , 就可以与 OPC 服务器进行数据交换。
4 系统体系结构详细设计与实现
系统结构的详细设计如图 3 所示 , 这是一 个分布 式远程监控系统 , 采用了多层 Client/Server 架构体系 :
从图 3 可以看出 , 数据服务器 层包含了 3 个 基本 组件 : 1 ) OPC DA 服务器 ( 实时数据服务器 ) , 该部分负 责获取设备数据 , 然后通过标准 OPC DA 接口为其它 各种客户程序提供实时数据服务。 2) OPC HDA 服务器 检索 , ( 历史数据服务器 ) , 该部分提供历史数据查询、 并 通 过 标 准 OPC HDA 接 口 向 客 户 提 供 历 史 数 据 服 务。 3) OPC EA 服务器 ( 报警及事件服务器 ) , 该部分提 供事件与报警管理等功能 , 并且通过 OPC EA 接口向 客户提供事件与报警服务。 ( 2 ) 三种 OPC 服务器的关系 从原理上来说 , OPC 规范定义的三种组件服 务器 ( OPC DA、 EA、 HDA) 之 间 没 有 任 何 必 然 的 关 系 , 三 者 都可以独立存在 , 具有各自的独立性。但是 , 在具体的 实现过程中, 往往三者有部分的耦合关系, 在本系统 中 , 三者之间的相互关系如下 : OPC 实时数据服务器完成数据采集、转发功 能 , 它的 OPCItem 被 OPC 报警与事件服务器作为事件源 , 即 OPC Item 既提供 DA 的数据 , 又 产成 AE 事件 ; 同 时 , 整个 OPC 数据服务器还作为 OPC 历史数据服务 器的数据来源 , 不同时刻的 OPC Item 数据的值被存储 在 OPC 历史数据服务器的数据库中 , 作为历史数据。 因此三者之间有间接的层次关系 , OPC 数据 服务 器是基础 , OPC 报警与事件服务器建构在 OPC 实时数 据服务器之上并为其提供事件与报警服务、 而 OPC 历 史数据服务器是支撑 OPC 数据服务器的协助者 , 三者 相互协调 , 共同 构成一个完 整的 OPC 服务器 , 完 成基 本监控功能的要求。 4.2 应用服务器层 ( 1 ) 应用服务器的功能和组成 应用服务 器 的 主 要 功 能 是 负 责 与 OPC 服 务 器 之 间的通信, 接收来自数据层的数据, 并根据不同性质 的数据采用不同的缓存及算法, 规整到实时数据交 互、 报警、 数据趋势显示等模块。同时 , 应用服 务器负 责向客户端提供数据访问服务以及服务管理。应用服 务器接收客户端发出的请求信息 , 根据客户端的请 求 与数据采集服务器或者存储数据库进行交互 , 实现客 户端的请求 , 最后把相应的信息返回给客户端。 应用服务器由 Java- OPC 桥、 应用服务模块和 Ja- Java- OPC 桥基于 Java 的 JNI va/RMI 接口模块等组成。 技 术 , 它 是 一 组 用 C++ 语 言 实 现 的 本 地 方 法 ( Native Method) 的 集 合 , 它 使 得 Java 语 言 开 发 的 程 序 可 以 很 应用服务是应 方便的调用 OPC 接口的各种成员函数。 用服务器提供给客户端地服务的具体实现 , 还包括 实 现对客户端的连接管理等功能。RMI 接口模块使得用 户能够对应用服务器进行访问 , 应用服务器与客户 之 间的连接采用 Java/RMI 技术 , RMI 技术使得客户端程 序可以很方便地调用应用服务器提供的方法。 ( 2 ) Java- OPC 桥的设计
OPC 服务器通过标准的 OPC 接口 , 负责完成实时数据
的采集以及上传 , 同时接收来自应用层的控 制指令 ,
- 75-
《 嵌入式系统应用精选 200 例》
邮局订阅号 : 82-946 360 元 / 年
控制系统
实现对硬件设备的控制。
中 文 核 心 期 刊《 微 计 算 机 信 息 》 ( 测 控 自 动 化 )2006 年 第 22 卷 第 2-1 期
1 引言
随着计算机技术与控制技 术的不断发 展 , 过程控 制系统的设计也得到了飞速的发展 , 不同的厂商相 继 推出它们的过程控制装置和数据采集设备。在传统的 过程控制系统中 , 解决客户应用程序从数据源 ( 如 : 现 场设备、 SCADA 系统等 ) 读取数据的方法是为不同的 客户应用程序编写不同的驱动程序。但是 , 这 种方式 存在许多问题, 例如, 同一个设备为适应不同的应用 程序可能需要多种驱动程序 , 不同的驱动程序之间存 在着不一致性 , 驱动程序对硬件存在着很大的依 赖性 等等。 为了解决这些问题 , 一些与 微软公司合 作的自动 化 硬件和软件 供应商联合 制定了一套 称 为 OPC( OLE for Process Control ) 规范的接口协议 , 它为 过程控制提 供了一套标准的接口、 属性和方法。 OPC 的出现使得 不同厂商的设备和驱动程序可以灵活地进行连接和 信息交互 , 从而大大地提高过程控制装置和数据 采集 系统的开放性和互操作性。 另一方面, 随着互联网络的发展, 分布式系统已 经成为当前计算机发展的重要方向。传统的集中式系 统大都采用单一主机的形式 , 在本地完成数据的采 集 焦青松: 讲师 华南理工大学自然科学基金项目 ( G04- E5041210 ) 国家自然科学基金项目 ( 70272047 ) ,
和处理工作 , 数据的显示和用户监控请 求的响应也 放 在本地主机执行。这样势必导致本地主机的高负荷运 转 , 从而大大降低了整个系统的效率。采 用分布式的 系统结构 , 用户可以在远程对采集过 程进行监视 和控 制。
Java 技术的飞速发展为分布式系统的实现提供了 良好的基础。Java 语言是一种纯粹的面向对象编程语
JAVA RMI
3 系统平台与网络计算的应用体系
结构
本 系 统 采 用 ADVANTECH 公 司 出 品 的 PCL1800 数据采集卡作为数据采集设备 , 通过数据采集卡模 拟 产生生产过程数据。系统的总体设计目标是构建一个 开放的分布式监控系统 , 实现对生产过程实时数据 的 采集和存储、 现场报警处理、 历史数据处理等功 能 , 并 在远程异构平台上实现对生产过程的监测。根据此设 计目标 , 本文设计的分布式远程监控系统采用了如 图
控制系统
文章编号 :1008- 0570(2006)02- 1- 0074- 03
中 文 核 心 期 刊《 微 计 算 机 信 息 》 ( 测 控 自 动 化 )2006 年 第 22 卷 第 2-1 期
基于 OPC 和 J a va 的远程监控系统架构研究与设计
Re s e a rch a n d De s ig n o f Dis trib u te d Mo n ito rin g S ys te m Ba s e d o n OPC a n d J a va Te ch n o lo g y
OPC 桥接技术、 Java RMI 技术实现底层 OPC 监控系统 与上层基于 J2EE EJB 应用系统的无缝连接。
2 OPC 简 介
OPC 是 以 Microsoft 公 司 的 OLE/COM 技 术 为 基
础 , 采用客户 / 服务器模型制定的一种工业控制领域的 开放式标准。OPC 在工业控制设备与应用软件之间建 立了统一的软件接口标准。主要解决监控程序与其数 据源的交互问题。 利用 OPC 技术 , 可以对现场设备及其驱动程序进 行封装 , 形成 OPC 服务器。OPC 服务器向下对设备数
( 1 ) 系统采用多层 Client/Server 结构。总体上可以 分为 3 个层次: 数据服务器层、 应用服务器层和客户 端。数据服务器负责提供所需的数据 , 包括系统的实 时数据、 历史数据和报警信息等; 应用服务器接收客 户端发出的请求信息 , 根据客户端的请求与数据 服务 器进行交互 , 实现客户端的请求。客户端负责数 据曲 线的显示 , 并负责处理用户的监控请求。 ( 2 ) 数据服务器层的开发基于微软公司 OLE/COM 技术的 OPC 技术。保证所有基于 OPC 规范开发的客
《 P LC 技术应用 200 例》
广东省普通高校人文社会科学重点研究基地项目( 2004- 02 ) 华南理工大学学科建设苗子项目( 306- D76080 ) “985 工程”


74 - 360 元 / 年 邮局订阅号 : 82-946
控制系统
据进行采集 , 向上与 OPC 客户应用程序通信完成数据 交换 , 如图 1 所示。 OPC 服务器屏蔽了现场物理设备 的驱动程序; 客户应用程序开发人员看到的, 只是 户端应用程序都可以实现对 OPC 服务器的访问 , 克服 了以往使用专用接口的方式。 ( 3) 在 分 布 式 应 用 的 实 现 方 面 , 整 个 系 统 结 合 使 用了 RMI 和 JNI 技术。客户端对应用服务器端的方法 的调用 , 主要通过 RMI 来实现。 在应用服务器端 , 主要 通过使用 JNI 技术对本地方法 ( Native Method ) 进行调 用 , 实现从 JAVA 到 OPC 的接口转换。在远程分布式 计算上采用 Java/RMI 技术。
相关文档
最新文档