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. 数据结构&算法的引言&时间复杂度

    什么是计算机科学? 首先明确的一点就是计算机科学不仅仅是对计算机的研究,虽然计算机在科学发展的过程中发挥了重大的作用,但是它只是一个工具,一个没有灵魂的工具而已.所谓的计算机科学实际上是对问题.解决问 ...

  2. 网页添加 Live2D 看板娘

        我是先参考别人的[点击跳转]博客来做的.不过我发现网上很多人都没有把一些细节写出来,用了别人那里下载的文件后里面的一些跳转链接就跳到他们的页面了.所以我这里写一写如何修改这些跳转链接吧. 1. ...

  3. laravel设置excel高度

    <?php use App\Services\UploadService; use Maatwebsite\Excel\Facades\Excel; class ExcelTest extend ...

  4. centos8平台使用ip命令代替ifconfig管理网络

    一,为什么建议使用ip命令代替ifconfig? 1,ifconfig所属的net-tools包已经不再被维护了 虽然可以用,但会发生看不到部分ip等情况, [root@centos8 liuhong ...

  5. PHP字符串如何转换成if条件语句

    例如: $condition = "2 == 2 && 3 == 5"; if ( $condition ){ echo 1; } 怎样把 $condition 转 ...

  6. spring-boot-route(十九)spring-boot-admin监控服务

    SpringBootAdmin不是Spring官方提供的模块,它包含了Client和Server两部分.server部分提供了用户管理界面,client即为被监控的服务.client需要注册到serv ...

  7. 浏览器页面左上角出现undefined

    浏览器页面左上角出现undefined, js文档中: let list; list += html代码; 解决办法: let list = html代码;

  8. jinjia2语言

    金家兔 网站: https://jinja.palletsprojects.com/en/2.11.x/ #Jinja is Beautiful {% extends "layout.htm ...

  9. CAS 算法与 Java 原子类

    乐观锁 一般而言,在并发情况下我们必须通过一定的手段来保证数据的准确性,如果没有做好并发控制,就可能导致脏读.幻读和不可重复度等一系列问题.乐观锁是人们为了应付并发问题而提出的一种思想,具体的实现则有 ...

  10. Deployer 的安装与配置

    Deployer 是一个 composer 包,你可以选择以 phar 包的形式,或者以 composer 全局安装来使用它,这里只讲后者,毕竟这是推荐大家使用的方式,升级也会方便很多: $ comp ...