Register   |   Login

Print

Webaccees/SCADA高级API调用

Webaccees/SCADA高级API调用



前言


在研华公司组态软件Webaccess/SCADA的实时数据交互的功能当中,有一项是“高级API的调用”,也就是可以使用高级开发语言例如:C++/C#.NET/VB.NET等等进行API的调用,从而实现与WebAccess的点(tag)进行实时数据交互的功能。


此项功能可以很好满足高级用户的应用需求,根据项目要求,将WebAccess/SCADA采集的数据利用自定义的程序(即高级语言编写的用户自由程序)进行深度加工处理或者分析利用等等,作为WebAccess/SCADA的应用扩充。


正文


Webaccess/SCADA提供的高级API都封装在“bwdllobj.dll”动态库里面(动态库文件所在路径就是WebAccess/SCADA的安装路径c:\webaccess\node\)。通过调用此dll,即可实现实时数据交互。


  1. 几个常用的Webacces/SCADA高级API介绍


  • KrlInit() & KrlFree()
    KrlInit():初始化动态库,创建与当前核心程序连线,此时可以调用其他API与当前的核心程序进行相应的交互操作。
    KrlFree():释放资源,断开与核心程序的连线操作。
    注:除了 Bwspool() & IsKrlRunning() 两个API以外,所有其他API必须在KrlInit()执行成功之后才能调用,用毕或者退出程序,必须使用KrlFree() 释放内存资源。


  • GetSerialNumber()
    获取当前WebAccess/SCADA的版本信息,例如是多少点数的专业版还是演示版。
  • GetId(ID,tagName)
    将WebAccess/SCADA的点名称转换成程序使用的ID,对于这个点的数据交互,程序内都是使用该ID作为对象进行读写操作。
  • GetValue(ID)
    读取WebAccess/SCADA的点的当前值。


  • SetValue(ID,Value
    Value写到WebAccess/SCADA的相应的点。
  • Bwspool()


可以将程序的信息推送到WebAccess/SCADA所提供的debug工具 (bwspool.exe),此工具在WebAccess\Node路径下或者WebAccess\Client\路径下。


  • KrlStatus() & IsKrlRunning()


KrlStatus():监测当前的核心程序是否在运行,只能监测由KrlInit() 函数所创建连线的核心程序。


IsKrlRunning():监测本机的是否有核心程序在运行。


注:如果计算机内有多个核心程序,要判断是否有任意一个核心程序在运行,只能使用IsKrlRunning()。如果只监测特定的某个核心程序是否运行,就使用KrlStatus()


       2. Webacces/SCADA高级API的调用


             1.  新建VB.NET工程,添加bwdllobj.dll。如下图:
              


             2.  在程序编辑界面,导入相应的库,如下图,开始编写程序。
              
              


             3. 范例(vb.net2008或以上版本)
      





总结:




WebAccess/SCADA
的高级API提供了外部第三方高级语言开发的程序与WebAccess/SCADA项目的数据交互通道,使用起来简易便捷。同时,对于需要高速、复杂的数据处理,也可以利用这种方式把数据调出来进行外部处理再传送回去。







Attachment: Your usergroup does not have permission to access attachments

TOP

Quick search in Advantech Support Portal