QQ登录

只需一步,快速开始

维纶通触摸屏动态仪表使用实例

[ 复制链接 ]
1. 简介与操作
简介
以下范例介绍如何在 XE、iE、eMT系列使用 [使用者定义标签] 结合 [巨集指令副函数],
让 [錶针] 物件具有平滑移动的效果。
[使用者定义标签] 会不停地执行 [巨集指令副函数],
借由写入连续的值,[錶针] 的指针看起来就像在平滑移动一样。

操作
1. 执行离线模拟。
2. 在Input  Value 输入数值,观看两个不同 [錶针] 物件的变化,
可以看到指针会如车内表盘一样动态的移动在数值指定位置
Original 的指针会直接移到输入数值对应的位置,
Conversion Tag 则会显示 [使用者定义标签] 结合 [巨集指令副函数] 后,指针的平滑效果。

维纶通触摸屏动态仪表使用实例

维纶通触摸屏动态仪表使用实例

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:Dynamic meter.rar 
文件大小:288.6 KB  售价:3金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我



2. 设定程序
步骤 1. 在 [巨集函数库] » [工程档案] 页签下新增一个巨集函式。
步骤 2. 在新增的巨集函式内,输入运算的巨集。
其中 input是LW-0 输入的值,output是回传的值,original则为LW-10的值 ,
暂时存放前一次output的回传值。speed为指针转动速度,决定巨集累加数值的速度。
  1. sub float meter(float input)
  2. // input is the value of LW-0
  3. float original, difference, result, source, speed, output
  4. speed = 0.25   
  5. // control pointer's speed
  6. Result = 0
  7. GetData(original, "Local HMI", LW, 10, 1)   
  8. // get the last output's value
  9. difference=input-original   
  10. // the difference between the input value and last output's value  
复制代码
  1. if difference > 0 then
  2.   output = original + difference*speed   
  3.   // when the input value is larger than the previous output value
  4. else if difference < 0 then
  5.   output = original + difference*speed
  6.   // when the input value is smaller than the previous output value
  7. else
  8.   output = original
  9. end if

  10. SetData(output, "Local HMI", LW, 10, 1)
  11. // set the latest output value into LW-10

  12. return output

  13. end sub
复制代码
步骤 3. 在 [位址标签库] 新增一个标签,设定位址为 LW-0。
设定正确的 [原始格式] 与 [资料格式],在 [读取转换] 选取步骤2的巨集函式。
使用这个标签的物件,会不停的呼叫选取的巨集函式,达到如同迴圈的效果。
因此不需要在巨集函式内再加入迴圈。

维纶通触摸屏动态仪表使用实例

维纶通触摸屏动态仪表使用实例

步骤 4. 建立两个 [錶针] 物件,一个錶针的位址选取LW-0,一个錶针的位址。
选取步骤3 建立的位址标签。

步骤 5. 建立两个 [数值] 物件,位址分别是 LW-0与Tag_0。
LW-0 用来输入数值,Tag_0 用来观察巨集函式的数值运算过程。

3. 位址設定
此範例所使用之物件位址皆列於下表,請依實際需要調整。

维纶通触摸屏动态仪表使用实例

维纶通触摸屏动态仪表使用实例


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索