# WebScadaClient **Repository Path**: mini-tiger/WebScadaClient ## Basic Information - **Project Name**: WebScadaClient - **Description**: WebSocket 前端PLC通信模块 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-09-04 - **Last Updated**: 2025-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WebScadaClient #### 介绍 这个组件是基于浏览器实现SCADA的前端插件。通过WEBSocket实现与后端服务器的实时通信,实现各种设备数据的采集与变化响应。 #### 软件架构 后端服务器是使用C++语言编写,并采用IOCP技术实现高并发支持的WEBSocket服务器。WEBSocket服务器又通过COM技术与OPCServer连接,以实现与所有PLC型号良好兼容的服务能力。 #### 安装教程 1. 在VSCode上安装 TagsEditor插件。以实现设备标记名的配置,并自动生成类型定义文件。(通过这个插件定义的标记名可以在代码编写中实现更好的智能提示) 安装方法为在VSCode商店搜索TagsEditor并安装。 2. 下载并安装服务器端程序[OPCWebServer](https://gitee.com/Opencl/OPCWebServer.git),安装方法请参照该项目[说明](https://gitee.com/Opencl/OPCWebServer/blob/master/README.md)。 3. 下载安装开发脚手架[WebPack](https://gitee.com/Opencl/webpack.git)。 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.2.1 增加Number类型的位操作。 ``` console.log(app.tagName_bit2); app.tagName_bit2=1; ``` ##### 1.2.5 增加Number类型的位操作。 1. 点状态非192时为非激活状态,不发送事件。 2. 当点状态激活时,重新发送事件. 3. 当点状态为非激活时更改点的值会导致控制台输出 "Write Tag in unActive status. Tag:TAGNAME" ## 注意事项 OPCWebServer及脚手架为非免费软件,如有需要,可电话联系我:13120118297。另外,如有好的工作机会,也可与我联系。