摘要:随着技术的发展,原先互不相干的互联网和现场总线,得以相互延伸与整合,大大丰富了工业控制的手段。在原先由软PLC与现场总线技术构建的Web监控系统中,再集成应用RIA技术,使得这种基于RIA架构的Web远程监控,既实现了现场总线网络内网与Intemet外网之间的信息交换,又利用RIA和多层结构提高了系统的性能,改善了用户体验,形
摘要:随着技术的发展,原先互不相干的互联网和现场总线,得以相互延伸与整合,大大丰富了工业控制的手段。在原先由软PLC与现场总线技术构建的Web监控系统中,再集成应用RIA技术,使得这种基于RIA架构的Web远程监控,既实现了现场总线网络内网与Intemet外网之间的信息交换,又利用RIA和多层结构提高了系统的性能,改善了用户体验,形成了一种有效的工业控制与管理信息化的集成解决方案。
关键词:RIA;软PLC;Web监控;现场总线
现场总线控制技术融合了最新的网络技术,促进了从标准以太网延伸到工业控制领域的进程,这种进程使得通过Web对远程或恶劣工业环境中的实时监控成为可能 与此同时,RIA(riehInternetapplieation,富因特网应用)技术的发展改善了传统的Web应用的体验 为此,在Web远程监控中运用RIA架构,利用RIA的异步传输和局部刷新技术,可以改善数据快速交互,满足实时性的要求,也提供了一种更直观、更好的用户体验。
1系统结构
基于RIA架构和软PLC技术的Web现场总线控制系统主要由3个模块组成,分别是现场UO!监控中心和Web应用 其结构如图l所示 .
系统模块的逻辑功用是:现场FO采集控制现场设备的运行状况数据,然后经现场总线交送给监控中心,同时也可以接受监控中心发回的逻辑控制指令;监控中心由软PLC构成,主要发送指令至现场FO,完成预设的逻辑控制动作,同时也接受由Web应用发来的干预指令 而Web应用则形成了远程的监控界面 其中涉及的主要技术包括用于控制逻辑的软PLC!用于数据采集的远程FO端子,以及带来更好的用户体验的基于RIA的Web应用 .
2系统硬件技术特点
2.1软PLC
软PLC即软件形式的逻辑控制器,以软件形式封装实现硬件PLC的全部功能 相比于传统的硬件PLC,软PLC是基于PC机的,这使得它既能完成传统PLC的逻辑控制功能,同时更易于融入现场总线网络的体系结构,便于采用一系列开放的国际工业标准,实现真正意义上的工业自动化与信息化的无缝集成 目前,软PLC的执行标准是IEC61131一 该标准的定义涵盖了PLc整个生命周期的各个部分,如设备调试!安装维护!编程语言!设备通信等 该标准定义的PLC编程语言,包括了目前使用最广泛的5种:梯形图(ladderdia脚m)!结构文本(strueturelist)!J顷序功能图(sequentialfunetionehart)!功能块图(funetionbloekdi聊m)和指令表(instruetionlist)[.] 软PLe工作原理图如图2所示 .
基于RIA和软PLC的现场总线监控系统采用了Bekhoff公司的软PLC产品TwinCAT,TwinCAT软件系统支持IEc61巧8公布的全部现场总线标准,其编程环境完全支持IEC61131一3,还可以根据不同需求和用户喜好实现上述5种PLC编程语言的混合编程 使用时只需在PC机上插加对应不同现场总线协议的通信卡,就可以对连接在现场总线上的现场设备进行逻辑控制 为了实现控制现场物理FO节点与软PLc中的FO控制变量的数据组态映射,TwinCAT提供了系统管理器(systemman路er),如图3所示 .
2.2OPC数据交换
本系统中,软PLC与Web应用之间的数据交换是用oPe(o比fo:proeesseontrol)实现的,作为一种得到微软公司支持的用于信息交换技术的标准接口,OPC的主要技术包括:
1.COM/nCOM(eomponentobjeetmodeFdistributedc0M,组件对象模型/分布式组件对象模型标准) .他是微软公司开发的通信组件,支持不同网络的不同对象之间的相互通信。
2.OLE(objeetlinkingandembedding,对象链接和嵌人技术)。定义和实现了一种允许应用程序作为软件 对象 (数据集合和操作数据的函数)彼此进行 连接 的机制,也是由微软公司制定的在应用程序之间传输和共享信息的一组综合标准。
3.ActiveX。是一些以D几(动态链接库)为主要表现形式的组件或文档,使用时以引用方式插人应用程序。ActiveX组件的应用技术基础是组件对象模型(COM)。
4.TwinCAT软件。在数据交换时提供了一个基于AetiveX技术的AdsOex.Oex控件,借助于该控件,TwinCAT可方便快捷地实现与VB、C#或Delphi之间的数据交换。软PLC中对应实际FO的变量常采用变量数组进行定义,下面的代码通过Adsocx声明了变量数组ErmrRetl[20]。
2.3远程I/O端子
远程FO端子是分布于现场总线末端用来连接控制现场各种传感器、操作终端和控制器的端子,用于收集现场监控信号。其物理链路是:现场设备的各种I/0信号-总线端子-现场总线耦合器-计算机中的现场总线通信卡-PC机-软PLC。对于不同的控制和监控对象(如开关信号、模拟信号、转速信号等),可以通过更换不同类型的I/O端子来实现。如需采用不同的总线协议,如profibus、InterbuS、CAN、ControlNET等,只需更换该物理链路中的总线通信卡和现场总线藕合器,同时对总线拓扑作相应调整即可 本系统中的TwinCAT软件PLC支持IEC61158标准中包含的主要总线协议,无需针对不同总线协议作特别调整.
3软件系统的实现
3.1RIA技术
与基于文本的传统Web页面相比,在基于RIA的Web应用中,由于数据能够被异步缓存在客户端,故可实现接口更健壮、反应更灵敏、响应速度更快并具有媲美桌面系统界面功能的Web应用。
RIA是基于XML、脚本语言和WebServiee的。对开发者而言,应用RIA技术有着多种途径:基于Flash的Flex、基于.NET技术的SilverUght及基于Java技术的JavaFX等。相比较而言,Flash的强大影响使得Flex技术成为广受青睐的解决方案,Flex编程模型、Flash等各个产品也构成了完整的RIA开发平台。对用户而言,使用Flex与使用Flash一样,无系统平台和浏览器兼容性问题,只需在客户端运行环境中安装有FlashPlayer就可以了。
由于RIA的应用模型是多层架构的,与此对应,本系统的结构被划分成明显的功能单元和多层逻辑结构:客户层、表示层、业务逻辑层和资源层(见图4)。这种多层架构可以降低系统各层之间的藕合度,使得客户端与数据库隔离,这样既可有效地保证系统的安全可靠,又使系统具有较好的可扩展性与可维护性。
3.2多层逻辑结构
1.客户层。由基于RIA的Web应用来实现。使用浏览器,系统可以显示所有的动态监控数据和完成控制指令设置等操作。基于RIA的Web应用采用Flex的开发语言ActionScriPt3.0和编译器,使用时Flex会在weh服务器中生成和发布swf文件,并在客户端Web浏览器访问服务器时,由客户端的FlashPlayer下载和运行。
2.表示层。Flex本身不能直接与数据库通信,系统的表示层是用ASP.NET来完成的,当用户需要进行数据交换时,AsP.NET服务器负责与数据库的通信(由ASP.NET经由中间层提供的ServieeInterface接口进行访问)。Flex本身可以通过多种方式和Socket进行数据交换,如WebService、HTTPSerVice、RemoteObject等。本系统采用了WebService方式。下面为使用webservice进行数据交互通信的一个简单示例。
首先准备后台服务端的WebService。
这里,使用wsdl设置WebServiee的URL,最终,由load的onRequest()方法指定testService调用webService的MyTest()。其中onSuccess()方法用于处理调用成功的信息,而onFault()用于处理调用失败的信息。
3.中间层。所有与数据有关的处理,如并发操作,完整性和一致性控制、安全控制等都是在这一层完成。
4.业务层。完成控制系统需求的业务逻辑,由软PLC对经由现场采集的I/O数据按照业务需求加工处理,并保存和更新数据库数据。与常见的多层体系相同,在业务层中完成系统的数据库访问事务。如需要将系统整合到企业的信息管理系统中,可以通过业务层以定制方式组织各公用数据库的连接。通常认为,这是一种值得推荐的企业生产信息管理模式。
5.资源层。资源层是为系统提供资源服务的,如数据库的数据资源。开发者也可以利用该层集成与整合企业的其他信息资源。
3.3完成中间层
系统多层架构中的中间层的实现主要依托WebService。WebService主要利用HTTP和SOAP(simpleobjectaccessprotocol)协议使业务数据在Web传输,也就是说,webService在系统中形成了一种多层应用通信机制的规范。这样,中间层可以做到:远程监控用户可以从Web页面直接调用中间层组件,从而不再需要建立某些相关的互动页面,提高了系统开发效率。系统网页的开发是基于C#的,使用WebService时,直接使用了.NET的SOAP客户端。
系统运行时,用户通过浏览器访问远程监控现场的操控页面并对控制节点发出控制信号。作为响应,web页面以SOAP协议与WebService组件通信,将获得的控制信号以参数形式传递给Webservice,再由webservice调用软PLC中预设的业务控制逻辑(TwinCAT程序中的POU(programorganizationunit)并执行,从而实现了对远程现场节点的控制.
在本系统中,实现WebService的主要步骤是:首先需要生成SOAP代理类:在命令行使用Wsdl.EXE(webservicesDescriptionLanguage)生成代理类:Ws-dl.exe/l:C#/n:mywebservice/out:test.eshttp://292.168.0.4/myControl.asmx;然后,需要编译并部署代理类,以便将代理类文件myControl.cs编译为DLL文件,存放在bin文件夹下:CSC/t:libray/out:binmy-Control.dllmyControl.es/r:System.dll/r:System.Web.serviee.dll/r:system.XML,dll。一旦生成代理类后,Web服务就如同系统的内置类般,只需通过在Web应用程序项目中 添加Web引用 来建立与WebService的联系,就可直接使用Web服务了。
系统运行时,Web页面首先查询对WebSercice进行分类和描述的UDDI(universaldeseription,discovery,andintegration)协议注册表,在完成对指定WebServ-ice的定位后,由代理类对象实现与实际的远程WebService以SOAP协议进行通信,然后由WebService完成相应的业务逻辑。这样,WebService组件作为中间层,形成了与表示层和业务层之间的纽带。
4结束语
软PLC+现场总线+分布式远程I/O的控制系统集成和利用了PC平台上的硬件和软件资源,简化了工控系统的组成结构,提高了效率,也降低了系统成本。以此为基础,再将其与基于RIA的Weh技术集成,借助RIA架构带来的数据异步传输和局部刷新,可实现数据快速交互。这样,只需通过浏览器,就可以在远程对控制系统完成组态、诊断和实时监控,其中的RIA技术又大大改善了Web监控的可视化体验性能与系统的响应性能。