zoukankan      html  css  js  c++  java
  • 使用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连接就可以看到数据在愉快的跳动了。

  • 相关阅读:
    MyBatis缓存
    MyBatis动态SQL
    MyBatis中#{}和${}的区别
    MyBatis映射配置文件详解
    MyBatis核心配置文件详解
    MyBatis动态代理
    KO ------- 表中字段名和实体类属性名不一致
    对实体类的CRUD操作
    MyBatis配置数据源的两种方式
    MyBatis入门
  • 原文地址:https://www.cnblogs.com/laoxiongzhijia/p/13994331.html
Copyright © 2011-2022 走看看