使用KepServerEx进行数据模拟
KepServerEx是一款在工业控制中比较常见的数据采集服务软件之一,提供了多种类型的驱动,具有比较广泛的适用性。很多厂商和个人都会选择用它来做OPCServer。在项目的实施或测试过程中,我们有时会遇到身边没有传感器、PLC之类设备的情况,就无法通过实时数据来测试工作成果的有效性。幸运的是KepServerEx提供了数据模拟功能,可以提供多种类型、格式的模拟数据。下面就是具体的配置过程。
创建Channel
Channel即通道,可以将它理解为OPC中的Server。
名字随便取。
这一步是关键,设备驱动选择“Simulator”,即模拟器驱动。然后一直点击下一步完成。。
剩余两项设置也可以调整,如果需要可以自行调整
创建Device
Device即设备,可以理解为OPC中的Group。
随便起个名。
设备类型可以根据需要选择16位或8位。
设备ID,可以自行修改。
下一步,完成。
创建Tag
Tag即标签,可理解为OPC中的Item。现在才来到整篇文章的重点。
添加标签的界面包含两部分,一部分是对标签的定义(Identification),包括名称(Name)、地址(Address)、描述(Description),另一部分是数据的属性(Data Properties),包括数据类型(DataType )、读写类型(Client)、扫描频率(Scan Rate)。
对我们而言,用处最大的就是Address,我们可以编写不同的函数放在Address中用来模拟不同类型的数据。官方文档提供了多种模拟函数供我们使用(可在帮助文档中找到)。
线形变化型
RAMP(Rate, Low
Limit, High Limit, Increment)
Rate:变化率,单位毫秒
Low Limit:下限值
High Limit:上限值
Increment:变化量
举例:
RAMP(120, 35, 100, 4)
从35 增长到100,每120毫秒增长4。
RAMP(300, 150.75, 200.50, -0.25)
从200.50降低到150.75,每300毫秒减少0.25。
随机变化型
RANDOM(Rate, Low
Limit, High Limit)
Rate:变化率,单位毫秒
Low Limit:下限值
High Limit:上限值
举例:
RANDOM(30, -20, 75)
在-20和75之间随机变化,每30毫秒变化一次。
三角函数型
SINE(Rate, Low
Limit, High Limit, Frequency, Phase)
Rate:变化率/变化周期,单位毫秒
Low Limit:下限值
High Limit:上限值
Frequency:三角函数频率
Phase:三角函数偏移量
注意:频率(Frequency)的最大有效值是5Hz,有效范围是从0.001到5赫兹。偏移量(Phase)取值范围在0.0至360.0之间。为了得到一个更好的正弦输出,变化率(Rate)应该至少比期望频率快一倍。比如频率(Frequency)为5赫兹的正弦曲线,其周期是200毫秒,那么变化周期(Rate)的值最大只能设为100毫秒。在这类函数中,变化周期的取值范围是10-1000毫秒。
举例:
SINE(10, -40, 40, 2, 0)
以2赫兹的频率在-40和40 之间进行正弦变化,偏移量为0
用户自定义型
USER(Rate, User
Value1, User Value2, User Value3,…User ValueN)
Rate:变化率,单位毫秒
User Value1….ValueN:用户自定义的值,可以有多个
举例:
USER(250, Hello, World, This, Is, A,
Test)
以250毫秒的频率循环显示Hello、World、This、Is、A、Test中的一个单词。
USER(50, 1,1,0,1,0,1,0,0,1,1,1,0,0,0)
以50毫秒的频率循环显示后面的1、0。
需要注意的是上面几种函数创建的Tag都是只读(ReadOnly)类型的,是不能写入的。
创建自己需要的标签
有了上面的函数我们可以根据自己的需要创建不同类型的标签。
RANDOM(200, 10.0, 40.0)模拟室内温度
RANDOM(200, 30.0, 90.0)模拟室内湿度
USER(1000, 1,1,0,1,0,1,0,0)模拟开关比变化量
RAMP(5000, 0, 1000, 1)模拟人员进入数量
将标签添加完之后保存,用OPCClient连接就可以看到数据在愉快的跳动了。
详细图文教程见下连接
https://blog.csdn.net/lordwish/article/details/79464090
使用KepServerEx进行数据模拟的更多相关文章
- C51应用 Modbs Rtu协议实现与KEPServerEx 通信
最近一客户要求使用STC12C5A60S2实现Modbus Rtu协议与KEPServerEx V4.0软件通信,采集单片机P2口每位的状态,设置P0口每位的状态,实现三路AD转换其中一路采集的是C0 ...
- 没有dev-server.js文件,如何进行后台数据模拟?
最新的vue-webpack-template 中已经去掉了dev-server.js 但是要进行模拟后台数据的,如何模拟本地数据操作? 解决方法: dev-server.js 改用webpack-d ...
- OpenLayers学习笔记(十)— 动态加载JSON数据模拟航迹线
在openlayers 3 上,加载本地json数据,动态绘制航迹线,以飞机当前位置为地图中心,此例子是模拟DEMO 本文链接:动态加载JSON数据模拟航迹线 作者:狐狸家的鱼 GitHub:八至 前 ...
- 基础知识-Mockjs进行数据模拟
目录 1. 目标 2. 创建模拟数据服务器 3. 安装 mockjs, 熟悉 mockjs 语法 4. 设置代理,解决 vue 项目跨域问题 5. 设置响应头,解决无法获取获取 token 和 coo ...
- 微信小程序开发——使用mock数据模拟api请求
前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...
- vue前后分离---数据模拟
最近为在做CRM的前期工作,忙里偷闲写了个关于数据模拟方面的东西 主要是现在博客中满天都再说前后分离,但是还没有几个实际操作的---让许多新手{-_-} 方法一: 启动一个express静态服务器-- ...
- Vue如何mock数据模拟Ajax请求
我们在做一个项目时前期可能没有后端提供接口模拟数据,那么作为前端就需要自己写json文件模拟数据加载.网上往往参考的都是不全面的,比如get请求没问题但是post请求就报错了.在Vue中只需要vue- ...
- 原创:用node.js搭建本地服务模拟接口访问实现数据模拟
前端开发中,数据模拟是必要的,这样就能等后台接口写完,我们直接把接口请求的url地址从本地数据模拟url换成后台真实地址就完成项目了.传参之类的都不用动. 之前网上找了很多类似于mock等感觉都不太实 ...
- KepServerEX读写三菱PLC,车间现场测试记录,带你了解【数据采集的困境】的前世与今生
1.不了解KepServerEX 的鞋童,可以先了解一下OPC UA,OPC UA服务端.我们当前项目读写三菱PLC是自己写的类库,但我感觉调用不够方便灵活,工作之余用OPC UA方式尝试一下 2.数 ...
随机推荐
- linux的pci驱动模型
做个笔记 linux通过pcibios_scan_root函数以深度优先的算法搜索整个pci架构,建立一个树形的链表,如下: 之后再调用pci_bus_add_devices函数把所有搜索到的pci_ ...
- MeteoInfo脚本示例:GrADS to netCDF
这里给出一个将GrADS数据文件转为netCDF数据文件的脚本示例程序,其它格式数据转netCDF可以参考: #-------------------------------------------- ...
- golang的http库使用代理
1.先上代码 package main import ( "crypto/tls" "flag" "fmt" "io/ioutil ...
- 利用github创建个人网站
先建个仓库,仓库名为: 用户名.github.io 进入仓库,删除README.md文件 新建个文件,文件名为: index.html,内容根据自己要求编写 打开网站,地址:https://用户名.g ...
- spring boot:使mybatis访问多个druid数据源(spring boot 2.3.2)
一,为什么要使用多个数据源? 1,什么情况下需要使用多个数据源? 当我们需要访问不同的数据库时,则需要配置配置多个数据源, 例如:电商的业务数据库(包括用户/商品/订单等) 和统 ...
- 面试官问:HashMap在并发情况下为什么造成死循环?一脸懵
这个问题是在面试时常问的几个问题,一般在问这个问题之前会问Hashmap和HashTable的区别?面试者一般会回答:hashtable是线程安全的,hashmap是线程不安全的. 那么面试官就会紧接 ...
- SSM中 spring.xml 配置文件
<!--扫描service的impl--><context:component-scan base-package="com.aaa.ssm.service.impl&qu ...
- 那些鼓吹国内首个.NET 5框架的,该醒醒了!
前两天看过园子里有篇[国内首个 .NET 5 框架 XX 斩获 XXX stars,XXX 发布],一顿羡慕嫉妒恨啊.我这.net core 3.1才上手没几天,还没用热乎呢,你这.NET 5的框架都 ...
- [OGeek2019]bookmanager
做过的代码量最大的一个题 说出的好也好,不好也不好,利用点很简单,就是一个大规模的heapoverflow,就是逆起来有点儿难度 思路很简单,就是利用堆溢出覆盖结构体中的指针为__free_hook, ...
- Dev中配置graphcis.h
下载地址:http://winbgim.codecutter.org/ 搞得自己有点奔溃 没成功 尝试了全网的所以的方法都没成功