对于从事信息化层开发的人员来讲,亟待解决打通底层自动化数据的问题,有没有一种比OPC、Modbus自动化专业度更低更简单又比数据库接口简单更易维护的方式呢?来看看易控软件的webservice用法吧。
一、WebService应用背景
随着工业互联网和智能制造、智慧城市等智能场景应用的加速推进,越来越多的项目渴望有一种模式,能够打通自动化层软件与信息管理层软件之间的数据交互,把大量实时数据、图像数据、地理数据、管理数据、虚拟与现实场景应用等融合到一起,从而实现数据之间的实时联动、集成分析,进而成功打造出各类智能场景应用。
但是在实际部署的过程中,却常常因为自动化软件和信息化软件的技术强项不同,导致在数据的交互上出现断层。自动化软件擅长的OPC、Modbus等通信技术对于信息化软件通常比较陌生,开发往往面临着难度大、周期长、可靠性低等问题。反过来信息化软件熟悉的数据库交换方式则存在部署复杂、接口多样、维护成本高等弊端。
面对这样的问题,WebService通信方式逐渐成为了很多信息化软件与底层数据实时交互的不错的选择。
二、WebService技术概述
1、什么是WebService?
WebService是一个平台独立的,低耦合的,自包含的,基于可编程的web应用程序,可用于开发分布式的互操作应用程序。能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可以相互交换数据或集成。依据WebService规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
2、WebService的主要特点有哪些?
跨平台
基于XML格式的SOAP消息是互联网上通用的标准协议,任何能够访问Internet的平台既可以发布WebService也可以接收来自WebService的SOAP消息,与操作系统无关。
跨语言
WebService的接口定义是标准的,实现WebService服务接口和调用WebService接口客户端程序编程语言可以不同。C#可以调用Java编写的WebService,反之亦然。可以用C++、C#、Java、Python等任意一种编程语言编写或者调用WebService。WebService服务软件供应商和客户可以根据自已业务需要选择编程语言。
分布式应用
WebService本质上是一种跨编程语言和跨操作系统平台的远程调用技术,服务端和客户端通过基于XML的SOAP消息进行通信,可方便搭建分布式应用。
三、易控天地对WebService的支持
在以上所述的背景之下,我们看到越来越多的自动化软件厂商也都开始在其组态软件产品中增加了对WebService功能的支持。但是深究后我们会发现,碍于传统组态软件对于WebService技术的支持具有天生的劣势,目前常见的做法是组态软件提供若干可以调用的方法,其预设了固定的数据格式和固定的用法,能够交互的内容也无非是设备点表读取、实时数据读写等。这样在对接千变万化的信息管理系统时,对双方的要求难免就会比较高,导致实际应用面过窄。
与之相比,易控天地智能化监控和运营管理平台则完美地支持了WebService通信方式。在易控天地平台中,不是将固定结构的方法厂家封装起来以供调用,而是可以通过工程层面客户自己做工作就可以实现非常复杂的功能,并允许用户自由发挥要如何利用WebSerivce来交换不同的数据格式、结构、甚至文件的类型,例如企业的管理数据、政府公布的天气预报数据、环保数据、交通地理数据、图像数据等等。
在易控天地平台中,用户可以自定义服务方法,将易控工程作为服务端,工程运行后即可提供WebService服务,以供各种高级编程语言编写的信息化软件客户端程序所调用,很方便地从控制系统中把数据传递给信息化软件,为其提供分析和管理的数据基础。除此之外,易控工程也可以作为WebService客户端,既支持调用其他易控工程的WebService服务,也支持调用其他语言编写的第三方WebService服务,将项目中的信息层数据贯穿到底层控制系统,指导和优化控制过程,从而帮助企业实现信息化、智能化。
四、实际应用案例
下面将通过一个实际的应用案例来展示在易控天地平台中如何使用WebService方式与其他平台进行数据交互。
某用户现有一个使用Java语言自研开发的信息化平台,需要在该平台中调用3万多条从现场采集的实时温度、管道压力、实时报警等数据。作为信息化平台,其最初的设计中并没有实现从现场设备层直接采集数据的功能,即使现在投入研发,也将面临成本高、时间长、稳定性差等问题。于是用户决定借助于易控天地平台在数据采集和报警机制等方面的优势,先通过易控天地来完成现场设备层的数据采集,再采用WebSerivice技术与易控天地直接之间进行信息交换。基于双方对WebService支持的完善性,该需求可以采用以下两种方案实现:(1)信息化平台做服务端,易控天地做客户端;(2)易控天地做服务端,信息化平台做客户端。
方案1:易控做服务端
在本方案中,信息化平台通过调用易控天地提供的WebService服务,来获取采集的实时数据和产生的实时报警信息,实现两个系统的无缝集成。
1、首先在易控工程中,通过“集成互联”建立一个WebService服务项:
2、在易控天地的程序编辑器中提供访问接口:
3、在设置选项中,配置WebService的服务名称和端口号:
4、上述配置好之后,运行本工程,即可启动易控的WebService服务。
方案2:易控做客户端
在本方案中,信息化平台制定并实现了WebService服务接口供易控天地调用,易控将采集的实时数据和产生的实时报警信息推送至平台,实现两个系统的无缝集成。
1、拿到信息化平台提供的WebService的dll文件(如setinfo.dll,)通过工具生成setinfo.dll,在该文件中定义了WebService服务端的数据接口方法,通过调用这个方法,就可以与服务端进行数据交互。
2、在易控天地的编程子系统中引用setinfo.dll:
3、在用户程序中直接使用封装在SetInfo.dll程序集中的SetInfof方法,就可以将数据通过WebService发送给信息化平台。