webscada-client
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.6 • Public • Published

    WebScadaClient

    介绍

    这个组件是基于浏览器实现SCADA的前端插件。通过WEBSocket实现与后端服务器的实时通信,实现各种设备数据的采集与变化响应。

    软件架构

    后端服务器是使用C++语言编写,并采用IOCP技术实现高并发支持的WEBSocket服务器。WEBSocket服务器又通过COM技术与OPCServer连接,以实现与所有PLC型号良好兼容的服务能力。

    安装教程

    1. 在VSCode上安装 TagsEditor插件。以实现设备标记名的配置,并自动生成类型定义文件。(通过这个插件定义的标记名可以在代码编写中实现更好的智能提示) 安装方法为在VSCode商店搜索TagsEditor并安装。

    2. 下载并安装服务器端程序OPCWebServer,安装方法请参照该项目说明

    3. 下载安装开发脚手架WebPack

    4. 安装组件

      npm install --save webscada-client

    使用说明

    1. 使用TagsEditor插件创建并编辑标签信息。保存后会自动生成对应的定义模块文件"Tags"。(tag定义中,设备如果不指定IP地址,则该设备为内存设备,标记名数据将存储在本地内存)
    2. import { app } from "tags"
    3. 通过app.tagName来读写设备数据。
          app.tagName1="test";
          console.log(app.tagName1);
      
    4. 数据变化事件捕获:
        //单标记名情况。
        app.on(
            "tagName",
            e=>{
                e.sender 触发事件的TAG对象
                e.type: 触发事件的类型
                e.tagName: 触发事件的标记名
                e.tagAddr?: 触发事件的
                e.devValue: any;
                e.tagValue: any;
            },
            //是否只触发一次,默认为false
            false,
            //事件处理程序的this指针。
            app
        )
        //多标记名情况。
        app.on(["tagName1","tagName2"],e=>{
            
        })
        //条件判断情况。
        app.on((e)=>{
            if (e.tagName1>20) return false;
            return true;
        },{
            //为真时触发
            onTrue(e){
    
            },
            //为真时延时时间。
            onTrueDelay:1,
            //为真时间隔时间。
            onTrueInterval:5,
            //为假时
            onFalse(e){
    
            },
            //为假时延时时间
            onFalseDelay:1,
            //为假时间隔时间
            onFalseInterval:5
        })
    

    版本说明

    1.1.4 增加Number类型的位操作。
    console.log(app.tagName.bit2);
    app.tagName.bit2=1;
    
    1.1.5 将PLC写操作改为要写的值与缓存数据比较,不相等则写入到PLC。这样操作可能会增加实质写PLC的次数。但可以保证最终目标值有效写入到PLC。此前的做法是要写入的值与PLC最后一次返回的值进行比较。
    1.1.6 App函数增加一个参数为autoOpen,默认值为True。当需要延迟连接PLC时,可以先创建App,然后调用App的Open()方法连接到PLC。
        let app=App(tags)   //默认创建时直接连接到PLC。
        let app=App(tags,false);    //创建时不连接到PLC。
        app.open();                 //在特定时期,可调用open()方法连接到PLC。
    
      Bug修正:写入PLC时事件逻辑错误,导致重复调用写PLC的BUG。

    注意事项

    OPCWebServer及脚手架为非免费软件,如有需要,可电话联系我:13120118297。另外,如有好的工作机会,也可与我联系。

    Install

    npm i webscada-client

    DownloadsWeekly Downloads

    1

    Version

    1.1.6

    License

    UNLICENSED

    Unpacked Size

    23.6 kB

    Total Files

    5

    Last publish

    Collaborators

    • shuaihu