lzmtxp99
级别: 家园常客
精华主题: 0
发帖数量: 491 个
工控威望: 707 点
下载积分: 1866 分
在线时间: 508(小时)
注册时间: 2010-12-16
最后登录: 2024-07-25
查看lzmtxp99的 主题 / 回贴
楼主  发表于: 2014-04-03 13:19
这个程序该怎么理解,这个是先运行if语句再运行for循环语句吗?

GetData(name[0], "Local HMI", LW, 10, 7)        // get name strings
for i=0 to 500 step 1      
   GetData(temp[0], "Local HMI", RW, var+13, 7)
   if name[0]==temp[0] and name[1]==temp[1] and name[2]==temp[2] and name[3]==temp[3] and name[4]==temp[4] and name[5]==temp[5] and name[6]==temp[6] then
   SetData(var, "Local HMI", LW, 9200, 1)
   i=501  
   else
   var=var+20
   end if          
next i
SetData(OFF, "Local HMI", LB, 7, 1)
zhangzhiming
级别: 略有小成
精华主题: 0
发帖数量: 24 个
工控威望: 208 点
下载积分: 1170 分
在线时间: 11(小时)
注册时间: 2013-05-15
最后登录: 2024-11-08
查看zhangzhiming的 主题 / 回贴
1楼  发表于: 2014-04-04 08:07
macro_command main()
GetData(name[0], "Local HMI", LW, 10, 7)        //读取LW里面的数据存到变量name里
//以下程序主要是用来查询配方里的参数或者型号的
for i=0 to 500 step 1      
   GetData(temp[0], "Local HMI", RW, var+13, 7)    //读取RW里面的数据存到变量temp里(起始位置是变量var+13)
   if name[0]==temp[0] and name[1]==temp[1] and name[2]==temp[2] and name[3]==temp[3] and name[4]==temp[4] and name[5]==temp[5] and name[6]==temp[6] then
     SetData(var, "Local HMI", LW, 9200, 1)    //当name里的数据和temp里面的数据相等时变量var里的数据写入到索引寄存器LW9200里实行翻页
     i=501  
   else
     var=var+20    //当name里的数据和temp里面的数据不相等时for语句执行0-500循环,var以步进为20自加
   end if          
next i
SetData(OFF, "Local HMI", LB, 7, 1)
end macro_command
[ 此帖被zhangzhiming在2014-04-04 08:23重新编辑 ]
zhangzhiming
级别: 略有小成
精华主题: 0
发帖数量: 24 个
工控威望: 208 点
下载积分: 1170 分
在线时间: 11(小时)
注册时间: 2013-05-15
最后登录: 2024-11-08
查看zhangzhiming的 主题 / 回贴
2楼  发表于: 2014-04-04 08:26
所以得出来的结果就是,你这是威纶触摸屏中的配方宏中的查询部分。