1. 简介与操作
简介
以下范例介绍如何在 XE、iE、eMT系列使用 [使用者定义标签] 结合 [巨集指令副函数],
让 [錶针] 物件具有平滑移动的效果。
[使用者定义标签] 会不停地执行 [巨集指令副函数],
借由写入连续的值,[錶针] 的指针看起来就像在平滑移动一样。
操作
1. 执行离线模拟。
2. 在Input Value 输入数值,观看两个不同 [錶针] 物件的变化,
可以看到指针会如车内表盘一样动态的移动在数值指定位置
Original 的指针会直接移到输入数值对应的位置,
Conversion Tag 则会显示 [使用者定义标签] 结合 [巨集指令副函数] 后,指针的平滑效果。
维纶通触摸屏动态仪表使用实例
2. 设定程序
步骤 1. 在 [巨集函数库] » [工程档案] 页签下新增一个巨集函式。
步骤 2. 在新增的巨集函式内,输入运算的巨集。
其中 input是LW-0 输入的值,output是回传的值,original则为LW-10的值 ,
暂时存放前一次output的回传值。speed为指针转动速度,决定巨集累加数值的速度。
- sub float meter(float input)
- // input is the value of LW-0
- float original, difference, result, source, speed, output
- speed = 0.25
- // control pointer's speed
- Result = 0
- GetData(original, "Local HMI", LW, 10, 1)
- // get the last output's value
- difference=input-original
- // the difference between the input value and last output's value
复制代码- if difference > 0 then
- output = original + difference*speed
- // when the input value is larger than the previous output value
- else if difference < 0 then
- output = original + difference*speed
- // when the input value is smaller than the previous output value
- else
- output = original
- end if
-
- SetData(output, "Local HMI", LW, 10, 1)
- // set the latest output value into LW-10
-
- return output
-
- end sub
复制代码 步骤 3. 在 [位址标签库] 新增一个标签,设定位址为 LW-0。
设定正确的 [原始格式] 与 [资料格式],在 [读取转换] 选取步骤2的巨集函式。
使用这个标签的物件,会不停的呼叫选取的巨集函式,达到如同迴圈的效果。
因此不需要在巨集函式内再加入迴圈。
维纶通触摸屏动态仪表使用实例
步骤 4. 建立两个 [錶针] 物件,一个錶针的位址选取LW-0,一个錶针的位址。
选取步骤3 建立的位址标签。
步骤 5. 建立两个 [数值] 物件,位址分别是 LW-0与Tag_0。
LW-0 用来输入数值,Tag_0 用来观察巨集函式的数值运算过程。
3. 位址設定
此範例所使用之物件位址皆列於下表,請依實際需要調整。
维纶通触摸屏动态仪表使用实例
|