zoukankan      html  css  js  c++  java
  • WinCC OA-CTRL-使用CtrlHTTP对外开放数据接口

    有的时候我们需要将OA 中的数据提供给上层业务,当然这种需求WinCC OA给了我们很多方法, 比如使用OPC UA Server ,也可以使用API 二次开发,

    今天我们使用 OA内置的HttpServer 对外提供RESTful 风格的查询方式,使用这种方式应该是一般web开发工作人员最为熟悉的方法,

    OK,废话不多说 ,接着撸代码

    准备工作

    1)首先我们新建一个数据类型restful

    该数据类型下面有三个节点 其中 press temp 为浮点型,width为整形


    image

    2) 创建多个数据点 并赋值

    image

    小编在restful数据类型下创建了 data01 data02 data03 三个数据点

    编码

    1)新建restfulTest文件,并添加至启动列表

    image

    注意control manager 的修改

    image

    2编码restfunTest.ctl

    #uses "CtrlHTTP"
    main()
    {
      httpServer(FALSE, 12000,0); // 初始化http server 端口12000
      /*注意通配符*的使用*/
      httpConnect("getRestful", "/restful/*"); //定义restful类型的接口 
    }
    string getRestful(dyn_string names, dyn_string values, string user, string ip, dyn_string headerNames, dyn_string headerValues, int idx)
    {
    

    string result;
    string tag;
    int rc;
    dyn_string numbers;
    string sURI = httpGetURI(idx);

    //!!!!!重要
    strreplace(sURI,"/restful/","");//替换"/restful/"为空

    / 拼接为"System1:data01." /
    tag
    ="System1:"+sURI+".";
    numbers
    = dpNames(tag+"*");
    //遍历datapoint 下数据点
    for(int i =1;i<=numbers.count();i++)
    {
    anytype temp;
    //获取datapoint 下数据点值
    dpGet(numbers[i],temp);
    result
    += numbers[i]+" = "+temp+"<br/>";//<br/> 为html的换行符
    }

    return result;
    }

    这里我们针对 restful 数据类型进行了接口的定义,请详细阅读代码

    使用浏览器测试

    image


    在浏览器中 输入http://localhost:12000/restful/data01 发现在浏览器中已经获得了想要的结果(上图示)

    我们换一个datapoint data02再来试一下

    image

    好的,这样针对一个数据类型的简易接口就完成了,你学会了么?

    后记

    为了方便上层业务的调用 我们可以把取出的结果 拼接为json的格式

    {
    "data02":{
    "press":87.12,
    "temp":12.1
    "width":45,
    }
    }

    这样就便于跟IT 的小伙伴打交道了,


    码上关注 更多精彩

  • 相关阅读:
    IDEA 中直接连接远程服务器
    浙江大学软件学院2020年保研上机
    PAT甲级近五年题一览表
    浙江大学计算机与软件学院2021年考研复试上机
    浙江大学计算机与软件学院2019年保研上机
    PAT(甲级)2021年春季考试
    PAT(甲级)2020年冬季考试
    PAT(甲级)2020年秋季考试
    PAT(甲级)2020年春季考试
    PAT(甲级)2019年冬季考试
  • 原文地址:https://www.cnblogs.com/indus-eric/p/12957920.html
Copyright © 2011-2022 走看看