QQ登录

只需一步,快速开始

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

[ 复制链接 ]
我们知道威纶提供有资料取样和事件记录功能,
一般我们多是在界面上使用元件来使用这两个功能,
但威纶也提供四个函数对资料与事件文件信息进行获取。
所以这四个函数不是常用。我们这小节也简单介绍资料分类下的这几个函数。

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

威纶通触摸屏宏指令,资料取样分类函数,详解与实操


资料取样分类下的函数有4个,
分别为FindDataSamplingDate,FindDataSamplingIndex,FindEventLogDate,FindEventLogIndex。
我们在实践使用这些函数前,可以事先在界面上添加控件,将函数的执行结果显示出来。
如图,我们添加了四个数值显示元件,
分别用于显示时间与日志文件索引。
控制地址分别为LW100, LW101, LW102
LW103.
同时也添加了2个趋势图,将资料显示出来,
添加了1个事件显示元件,将事件显示出来。

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

威纶通触摸屏宏指令,资料取样分类函数,详解与实操


四个函数使用的前提是要有资料文件,
事件文件,所以我们还得添加资料数据,
事件数据,生成对应文件才能测试函数。

如图,我们添加两个资料,资料索引为1和2,数据来源地址对应LW1,LW2,
索引通道数为一个的16位整数。

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

也添加了3个事件,读取地址为LW0,触发条件为LW0等于1,2和3.

威纶通触摸屏宏指令,资料取样分类函数,详解与实操

威纶通触摸屏宏指令,资料取样分类函数,详解与实操


事件和资料需要硬件产生,这里我们通过宏来实现事件和资料取样的触发。
宏指令如下。

macro_command main()
short value,n
RAND(value)
n = value%3
SetData(n, "Local HMI", LW, 0, 1)
RAND(value)
n = value%250
SetData(n, "Local HMI", LW, 1, 1)
RAND(value)
n = value%250
SetData(n, "Local HMI", LW, 2, 1)
end macro_command

1.FindDataSamplingDate
函数用于获取资料取样文件的日期。
根据文件的索引和资料的编号来查找日期,成功返回true,失败返回false。
这里要理解的是文件索引和资料编号的含义。
触摸屏会将每天产生的资料以文件的形式保存在目录,这些文件按日期从新到旧排序,最新日期的文件索引为0,以此类推,这是资料文件索引的含义,同样事件文件索引也是这个意思。
然后是资料编号,就是取样资料的ID,建立一个取样资料ID为1,再建立一个ID为2,以此类推。
例如
short findex=0,dindex=2
short y,m,d
bool rst
rst = FindDataSamplingDate(dindex, findex, y, m, d)
表示获取资料文件0的资料编号为2的年,月日,保存在变量y,m,d中。
查找成功rst为true,失败则rst为false


2. FindDataSamplingIndex
此函数根据提供的资料编号,年,月,日,查找文件索引。
例如
short findex=0,dindex=2
short y,m,d
bool rst
rst = FindDataSamplingDate(dindex, findex, y, m, d)
rst = FindDataSamplingIndex(dindex, y, m, d, findex)
函数通过事件获取的年,月,日和资料编号,来获取文件的索引,
成功rst为true,反之为false.

3. FindEventLogDate。
函数用于查看事件文件的年,月日信息,
通过传递日志文件的索引来获取信息,这里的文件索引与资料文件索引相同,触摸屏每天都会产生日志文件,
这些文件按时间循序从新到旧排序,最新文件索引为0,以此类推。
例如
short findex=0,dindex=2
short y,m,d
bool rst
rst =FindEventLogDate(findex, y, m, d)
表示获取日志文件0的年月日信息。保存到变量y,m,d。成功rst为true,失败则为false。

4. FindEventLogIndex.
函数用于根据年,月,日获取日志文件索引。
例如

short findex=0,dindex=2
short y,m,d
bool rst
rst =FindEventLogDate(findex, y, m, d)
rst =FindEventLogIndex(y, m, d, findex)
通过事先获取的年,月,日信息,获取文件的索引。
我们可以在宏指令界面运行下面代码查看执行结果。


macro_command main()
short findex=0,dindex=2
short y,m,d
bool rst
//rst = FindDataSamplingDate(dindex, findex, y, m, d)
//rst = FindDataSamplingIndex(dindex, y, m, d, findex)
rst =FindEventLogDate(findex, y, m, d)
rst =FindEventLogIndex(y, m, d, findex)
if rst == true then
SetData(y, "Local HMI", LW, 100, 1)
SetData(m, "Local HMI", LW, 101, 1)
SetData(d, "Local HMI", LW, 102, 1)
SetData(findex, "Local HMI", LW, 103, 1)
end if
end macro_command


回复

使用道具 举报

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