首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

我们知道威纶提供有资料取样和事件记录功能,

一般我们多是在界面上使用元件来使用这两个功能,

但威纶也提供四个函数对资料与事件文件信息进行获取。

所以这四个函数不是常用。我们这小节也简单介绍资料分类下的这几个函数。

资料取样分类下的函数有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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190824A0NHUW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券