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进行数据模拟的更多相关文章

  1. C51应用 Modbs Rtu协议实现与KEPServerEx 通信

    最近一客户要求使用STC12C5A60S2实现Modbus Rtu协议与KEPServerEx V4.0软件通信,采集单片机P2口每位的状态,设置P0口每位的状态,实现三路AD转换其中一路采集的是C0 ...

  2. 没有dev-server.js文件,如何进行后台数据模拟?

    最新的vue-webpack-template 中已经去掉了dev-server.js 但是要进行模拟后台数据的,如何模拟本地数据操作? 解决方法: dev-server.js 改用webpack-d ...

  3. OpenLayers学习笔记(十)— 动态加载JSON数据模拟航迹线

    在openlayers 3 上,加载本地json数据,动态绘制航迹线,以飞机当前位置为地图中心,此例子是模拟DEMO 本文链接:动态加载JSON数据模拟航迹线 作者:狐狸家的鱼 GitHub:八至 前 ...

  4. 基础知识-Mockjs进行数据模拟

    目录 1. 目标 2. 创建模拟数据服务器 3. 安装 mockjs, 熟悉 mockjs 语法 4. 设置代理,解决 vue 项目跨域问题 5. 设置响应头,解决无法获取获取 token 和 coo ...

  5. 微信小程序开发——使用mock数据模拟api请求

    前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...

  6. vue前后分离---数据模拟

    最近为在做CRM的前期工作,忙里偷闲写了个关于数据模拟方面的东西 主要是现在博客中满天都再说前后分离,但是还没有几个实际操作的---让许多新手{-_-} 方法一: 启动一个express静态服务器-- ...

  7. Vue如何mock数据模拟Ajax请求

    我们在做一个项目时前期可能没有后端提供接口模拟数据,那么作为前端就需要自己写json文件模拟数据加载.网上往往参考的都是不全面的,比如get请求没问题但是post请求就报错了.在Vue中只需要vue- ...

  8. 原创:用node.js搭建本地服务模拟接口访问实现数据模拟

    前端开发中,数据模拟是必要的,这样就能等后台接口写完,我们直接把接口请求的url地址从本地数据模拟url换成后台真实地址就完成项目了.传参之类的都不用动. 之前网上找了很多类似于mock等感觉都不太实 ...

  9. KepServerEX读写三菱PLC,车间现场测试记录,带你了解【数据采集的困境】的前世与今生

    1.不了解KepServerEX 的鞋童,可以先了解一下OPC UA,OPC UA服务端.我们当前项目读写三菱PLC是自己写的类库,但我感觉调用不够方便灵活,工作之余用OPC UA方式尝试一下 2.数 ...

随机推荐

  1. C++调用全局函数与类成员函数

    void testfunc(void *param) { printf("\n\tcall global function %s\n", param); } void *GetCl ...

  2. 利用HDFS实现ElasticSearch7.2容灾方案

    利用HDFS实现ElasticSearch7.2容灾方案 目录 利用HDFS实现ElasticSearch7.2容灾方案 前言 快照版本兼容 备份集群 HDFS文件系统 软件下载 JDK环境 配置系统 ...

  3. 题解:HDU 6598

    题解:HDU 6598 Description Now, Bob is playing an interesting game in which he is a general of a harmon ...

  4. Mock测试你的Spring MVC接口

    1. 前言 在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题.也有的使用Postman等工具进行测试,虽然在使用上没有什么问题,如果接口增加了权限测试起来就比较恶心 ...

  5. kinaba 安装踩坑: FATAL Error: [elasticsearch.url]: definition for this key is missing 转

     安装  https://www.jianshu.com/p/875457cb8da6   操作系统:Linux kibana 版本: 7.4.0 1. 在/etc/yum.repos.d/ 下新建 ...

  6. matplotlib 设置标题 xy标题等

    import matplotlib.pyplot as plt import matplotlib as mpl baseclass=[1,2,3,4] name = ['class1','class ...

  7. phpexcel导出数据 出现Formula Error的解决方案

    phpexcel导出数据报错 Uncaught exception 'Exception' with message 'Sheet1!A1364 -> Formula Error: Unexpe ...

  8. SLF4J :Failed to load class "org.slf4j.impl.StaticLoggerBinder".

    错误提示 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to ...

  9. Spark执行失败时的一个错误分析

    错误分析 堆栈信息中有一个错误信息:Job aborted due to stage failure: Task 1 in stage 2.0 failed 4 times, most recent ...

  10. axb_2019_heap-format_string + off-by-one

    axb_2019_heap 简单题,格式化字符串泄漏栈地址 算上rsp,格式化字符串参数是栈顺序+6-1 edit有off by one 构造unlink chunk0 chunk1 chunk2 构 ...