技术中心
 
 

工厂里的Java

   日期:2005-11-22     作者:管理员    

    平台和操作系统独立性、可复用软件、Web服务以及工业标准将Java编程环境吸引到了制造业的竞技场上。但是,一些实时性的问题还需要解决。
  新技术携带的是改进以往技术的内在潜力。关于这一点,Sun Microsystems 1995年推出的Java软件和编程语言就是一个例子,由Java引导的技术进步包括平台/操作系统独立性、复用软件应用程序的能力、网络连通性、以工业标准为基础等。
  Java的显著成就接踵而来。然而,对于工厂与商务系统之间的更简便的网络化信息流动而言,目前Java技术如此之强的吸引力在于业界以惊人的规模部署了互联网和基于Web的通信系统。为了取得完全的成功,Java将需要解决一些实时性和确定性的问题。
  对于工业用户来说,基于Java的软件提供了多种好处。其中,Schneider Electric-IAC Services业务发展部门的Paul Bennison把硬件和操作系统独立性列在了首位,他援引了Java与Microsoft Windows/Intel平台以及其他一些流行的可选择的平台方案(比如ARM、AMD 64位Opter

on处理器、Linux以及VxWorks操作系统)之间的兼容性为例。此外他还表示,Java对SQL、XML、Web服务、开放式数据库链接等IT企业连通性标准的“天生支持”也有助于构建工厂车间与商务套件之间的桥梁。
  Java的另一种好处是其“可伸缩模块化部署模型”。例如,它可以改进原有的PLC系统功能,使之能够获取有关过程/生产的数据或者将数据部署到受控设备。Bennison表示,“而且,本地用户和远程用户能够即时得到信息,从而及时地将决策支持通过便携式浏览器或者电子邮件警示,以可视化的表现形式提供给操作员,或者直接传送到企业的远程监控系统上。”
  他补充道:“1996年,Schneider Electric是率先将Java软件、Ethernet以及Web服务作为核心特性嵌入到自动化系统架构控制层面的工业自动化供应商之一,这种技术策略现在被称为透明工厂(Transparent Ready)。”Schneider声称,现在其所有的自动化及控制设备都嵌入了Java远程监控设备诊断程序,所以只要符合公司的防火墙限制规则以及IT安全配置的要求,任何企业用户都可以通过HTTP、基于Java功能的浏览器诊断程序以及用户定义的Web页面获得信息。


  集成工厂设备
  Java 2企业版(J2EE)是来自Java鼻祖Sun Microsystems的一项新发展,根据Sun的资深工程经理Bernard Traversat博士的说法,它整合了Java连接件体系架构(JCA),这提高了软件与使用不同的基于TCP/IP协议的工厂设备之间进行集成的能力。以前,J2EE应用程序通过HTML和HTTP给了用户一个基于Web的界面,但是对于典型的制造环境来说,这种带一个瘦客户端浏览器的极为一般的界面不够鲁棒。他说:“有了Java Server Face,现在J2EE可以通过同样可以通过同样的瘦客户端途径给出更为丰富的用户界面。”

Traversat表示Web服务…如图1

  Traversat表示,Web服务协议代表了B2B通信领域的新兴标准,而这是J2EE应用服务器为了保证互操作性必须实施的。而且,Web服务(WS)及其基本原理兼容于典型制造设施的分布式体系架构。所以,WS成为了车间与中心办公室之间通信的有效模型,承担了生产订单调度/查询、材料需求、质量信息、后勤等任务。
  Traversat还提到了Sun的J2SE(标准版)5.0版及其新的协同工具库。它增强了Java的“线程构造”特性,使核心Java技术有效地被用于复杂的过程控制算法、模拟及自动化。通过缩减启动时间和内存使用量,J2SE 5.0还提高了Java的执行性能和可伸缩性。这些特点“提高了Java在制造环境中普遍使用的小型计算机上的生存能力”。
  Rockwell Automation公司的软件体系架构总监John Baier把J2EE看作为Java技术的一次真正的进步,主要是因为它简化了Web服务界面的开发,而这对于开发分布式制造应用程序来说是至关重要的。在Java带来的好处中,他看重的是到不同平台的可移植性以及Java作为一种MES应用的集成化语言所具有的普及程度,其中前者允许把同样的代码部署在各种不同的配置上。Baier还提到了Java对工业应用领域中有用的小型设备(以及便携式计算单元)的部署能力。


如图2


在这个演示中,来自Mitsubishi/Cyberonix的基于Java的自动控制器
















到低CD库存的信息后,发送一个补充指令给Mitsubishi RV-1A机械手,
这个机械手就自动夹取完成的货品并送到运输部门。

  GE Fanuc Automation的软件开发副总裁Bernie Anger表示,在GE Fanuc Automation,Java带来的好处(以及XML模式)是使用商务系统和移动设备的互操作性战略的关键。他解释道,当用户能够接收和分析来自于一系列设备的事件并随之做出响应的时候,用户就获益于缩减了集成成本、增强功能以及更快的响应时间。这是GE Fanuc的Proficy战略的一个扩展。
  Anger举例说,GE Fanuc将推出的新软件能够使用连接用户和工作指令并向Proficy服务器提供更新状态的双路通信通道把工作指令下载到具有Java功能的电话上。
  生产管理软件供应商Visiprise公司的应用程序架构师Mike Houston赞同这样的观点:J2EE的平台独立性和一致的应用程序环境以及对标准的支持组合形成了Java新的优越特性。平台独立性给了用户选择其心仪的硬件和操作系统的机会,而J2EE则提供了具有一致性的应用程序编程接口(API)和公共开发语
言的工作环境。
  Houston表示,“大部分的商业应用程序J2EE服务器都为制造软件的执行提供了快速可靠的环境。Java是一个非常开放的开发平台,内建有对多种标准的支持。”为了易于和机器控制、ERP以及其他系统进行集成,应用程序服务器一般提供对标准的支持,比如XML、HTTP、WS等。该公司基于J2EE的MES软件Visiprise Manufacturing意在作为车间系统和企业系统之间的桥接工具使用。Visiprise还提到,与不如Java开放的环境相比,定制和维护用Java写成的软件模块更为容易。Houston补充道:“Java代码处理起来更快,而且在大部分情况下也更能节省成本。”


如图1


基于Java的SCADA系统是制药用离心机制造商Heinkel USA公司控制和工厂集成的关键。
这个应用服务器运行在配备了JVM的Schneider Electric的Quantum模块,
帮助将此SCADA系统的运行寿命延长到传统SCADA系统的2~3倍。


  实时性事项,安全性
  在实施任何制造控制系统时,对实时性(RT)的考虑都是不可或缺的。用最简单的话来说,实时性意味着控制系统的响应必须按照可预见的方式在应用程序设置的确定时间限制之内完成。
  Rockwell Automation的Baier提到了用Java开发RT应用程序,但是也指出在开发过程中必须多加注意,给出了两个主要的注意事项。第一,实时性应用程序经常使用编译后的Java以实现更快的执行速度。他解释道,由于Java虚拟机(JVM)的解释执行方式不能用在程序的RT部分,所以此处必须以接近操作系统的方式编写可靠的Java代码;第二,Java的存储管理(碎片收集)特性可能会要求添加一个实时层,这个层由软件供应商提供。Baiser补充说:“人们需要考虑用于实时开发的整个应用程序环境,其中语言因素只是总体因素的一部分。”
  对RT应用来说,Sun Microsystems的Java产品着重于保障制造领域至关重要的对高度分散数据的处理以及启用传感设备的各种高级功能,比如精确至亚微秒级的时间同步。Java分布式数据采集与控制(JDDAC)是Sun的Java System RFID软件中的一种API,它能为“几乎所有的传感设备”提供与Sun的RFID Event Manager之间的接口。Traversat说:“JDDAC保证了传感器和执行器的自我描述特性并使之成为网络上支持就绪的网络实体。”
  而在实时应用的前沿,Java社区组织(Java Community Process,JCP)下属的一个软件供应商专家组正在开发实时Java规范(RTSJ),这个规范将RT线程和异步事件引入了Java功能之中。Sun Microsystems最近发布了RTSJ的一种实施。而Java的实时应用还需要更多的开发,特别是在嵌入式系统领域。确定性碎片收集就是其中的一个例子。Open Group是活跃在发展RT Java方面的另一个组织。
  Schneider Electric的Bennison解释道,与商务网络相比,工厂网络的可访问程度更低而安全度更高,但仍然容易受到网络攻击。针对非授权访问的保护措施需要采用多种防范手段——其中包括数字认证、安全套接层(SSL)加密,当然还有适当的合法用户访问级。Java技术的特点在这方面可以有所帮助。
  “Java平台允许以具体到某一控制设

















备的粒度嵌入安全性代码。嵌入式Java服务器和虚拟机(或安全网关)在源头对访问进行限制。”由于所有的通信都要通过安全网关,所以就不存在直接到各个控制设备的访问。信息从安全Web服务器上提供给拥有适当权限的访问。Bennison表示:“Web页面视图提供了访问途径,对所有的修改实行完整的审核跟踪,使操作员能够进行干预。”
  他将Java技术的可伸缩安全配置分为三个级别。一般安全指使用安全网关对通信进行限制,禁止对设备的直接访问和未授权访问,并且对所有的访问进行记录。只有必要的端口才打开,所有不使用的端口都是安全的。他补充说明道:“Java的‘沙箱(sandbox)’模型〔安全运行时环境〕保证了禁止恶意代码的下载、缓冲区溢出或类似的攻击性程序。”较安全指的是“Web服务”模型。根据Bennison的说法,这种模型中的访问被限制在一种协议下(HTTP),这样就限制了可能被利用的攻击途径。“沙箱”模型的工作模式如上所述。只在很少出现的事件发生时才需要进行封包管理
。最安全指对系统的所有部分都进行访问加密,安全HTTP、物理/生物识别手段、指纹以及其他方法均可能被采用。
  根据Sun的观点,完全的企业连接和准时制生产模式使工厂容易受到攻击,这就要求增强安全性和连接方式。Traversat给出了几种可以采用的方案。明确地将执行中的Java程序的能力限制在某个合适的层面上有助于减少对计算机系统的潜在性破坏。其他的步骤包括采取严格的用户认证、控制用户对特定功能和数据的访问以及提供审核跟踪机制。为所有基于通道及基于消息的加密方法提供API也能提高通信过程中的数据隐私级别。


  产品、应用程序
  合作是当今时代技术开发必不可少的一环。Sun的合作伙伴,日本的Mitsubishi Electric公司已经与美国技术公司Cyberonix Inc.协作开发了一款基于Java的自动控制器(JAC)。JAC目前处于生产之中,它使用Java写成的通信驱动/适配器连接工厂的各种自动化设备,并将车间连接到后台办公室或其他上游应用程序。上行通信由10/100 Mbps Ethernet端口处理,下行数据流则由四个串口(3个RS-232,1个RS-485)处理。消息通过XML或或其他常见的格式进行传送。本文的第一幅图给出了将Java集成到制造供应链上的演示,在这里面JAC充当嵌入式实时信息网关的作用,用以补充消耗了的CD库存,并与Mitsubishi RV-1A机械手、Q-Platform控制器、J2伺服控制器以及上游设备进行通信。
  Schneider Electric提到了制药用离心机制造商Heinkel USA所使用的基于Java的解决方案,该公司生产的离心机在调节控制下运行。据报道,配备JVM的Quantum嵌入式PLC模块帮助将Heinkel的单节点SCADA系统的运行寿命延长到了10年,而传统的SCADA系统的最长寿命是3到5年。更换验证过的SCADA应用程序需要花费很高的成本。Schneider表示:“安全Web应用程序缩减了验证成本,并扩展了SCADA应用程序的使用寿命,从而减少了离心机运行和维护的生命周期成本。”
  几年前,Java技术因众多工厂应用程序而“培育”了重要的推广度。最近在制造前端就没什么动静了,或者Java在这方面的发展已经转向了表面以下的地方。随着新的Java技术的发展和在实时问题上的进展,很快它就会“卷土重来”。■

  Java基础初探
  Java技术是多线程的应用开发环境,采用面向对象的语言,语法类似C或C++,但简化并改进了此类语言特性。用Java编写的程序在不同的硬件平台和操作系统上具备可扩展性和可移植性。Java设计非常适合基于网络和因特网使用的分布式架构。其基本作为服务器工作,根据客户请求下载应用。Java还支持多种加密和认证协议。
  Java的一大特点在于,程序不直接在原生操作系统(OS)上工作,而是在Java虚拟机(JVM)上工作,该虚拟机处于平台和OS之间,作为“解释器”工作,使程序能运行在具备特定JVM的任何计算机系统之上。这种特性为系统添加了一定的安全性,因为Java小程序在发送至CPU之前被屏蔽在受保护的存储器空间或沙盒之中。如果应用需要实现更高性能,如实时(RT)系统,那么我们也可以绕开不用JVM。及时编译器在应用运行时将程序直接转变为机器代码。但这时不利之处则在于可移植性的降低。
  另一种特殊的Java特性是自动垃圾收集(GC)或存储器管理,可回收程序未使用的任何存储器空间。这种功能










可以帮助开发人员完成大量的工作,但又会给RT应用带来不确定性,因为GC算法的时间周期是不可预计的。为支持实时Java应用,我们正在研究多种动态和确定性的GC方法、线性计划安排问题和其他改进措施。

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢