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. 修改LiveChart的提示显示位置

    问题:修改LiveChart的提示显示位置 摘要:相信WPF开发者在用LiveCharts的时候会有遇到这个需求.就是产品要求折线图的提示要显示的正常点. 需求:如下图所示.原本显示是在下方并且没有小 ...

  2. 最大子段和之M子段和

    最大M子段和 题目模型 N个整数组成的序列 \(a_1,a_2,a_3,-,a_n\) ,将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的. 问题分析 方法一: 看到序列,我们首先要尝试 ...

  3. wine实用经验教程

    本篇讲类unix系统下的用以模拟运行Windows程序的wine.会从普通使用者的比较实用的角度去讲.有专为国内用户准备的内容. 本篇面向有Linux经验但对wine不熟悉的人. wine可靠吗?该不 ...

  4. Cypress系列(67)- 环境变量设置指南

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 常见的环境变量设置方式 可参考这篇文章: ...

  5. is, ==, id 用法、代码块和缓存机制

    id(): 获取对象的内存地址:print(id(i)) == : 比较两边的值是否相同 is : 判断内存地址是否相同 id相同,值一定相同 值相同,id不一定相同 代码块: Python是由代码块 ...

  6. [阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列

    [阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列 目录 [阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列 0x00 摘要 0x01 DIN 需要什么数据 0x02 如何产生数据 2 ...

  7. 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

    注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致. 可靠性级别是 Service Fabric 群 ...

  8. WCF服务创建到发布(SqlServer版)

    在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构.该架构的项层为服务模型层. 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型. ...

  9. poj1050 To the Max(降维dp)

    To the Max Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 49351   Accepted: 26142 Desc ...

  10. python提取视频第一帧图片

    一.实现代码 # -*- coding: utf-8 -*- import cv2 from PIL import Image from io import BytesIO def tryTime(m ...