webscada-client
Version:
webSocket SCADA communication client components
80 lines (73 loc) • 3.17 kB
Markdown
这个组件是基于浏览器实现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
})
```
```
console.log(app.tagName_bit2);
app.tagName_bit2=1;
```
1. 点状态非192时为非激活状态,不发送事件。
2. 当点状态激活时,重新发送事件.
3. 当点状态为非激活时更改点的值会导致控制台输出 "Write Tag in unActive status. Tag:<font color=red>TAGNAME</font>"
OPCWebServer及脚手架为非免费软件,如有需要,可电话联系我:13120118297。另外,如有好的工作机会,也可与我联系。