lzmtxp99
级别: 家园常客
精华主题: 0
发帖数量: 490 个
工控威望: 705 点
下载积分: 1861 分
在线时间: 508(小时)
注册时间: 2010-12-16
最后登录: 2024-01-26
查看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)
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6747 个
工控威望: 37102 点
下载积分: 10110 分
在线时间: 9415(小时)
注册时间: 2006-09-13
最后登录: 2024-06-15
查看cvlsam的 主题 / 回贴
1楼  发表于: 2014-04-03 14:04
1、您这个不是VC啊。
2、因为您的IF保护在FOR循环内,因此每一次循环都将执行IF语句。

Good Luck~
xiejun8103
三人行,必有我师
级别: 工控侠客
精华主题: 0
发帖数量: 327 个
工控威望: 2118 点
下载积分: 3244 分
在线时间: 299(小时)
注册时间: 2009-10-26
最后登录: 2019-07-02
查看xiejun8103的 主题 / 回贴
2楼  发表于: 2014-04-03 14:38
这个怎看都像VB的,楼上正解,每次FOR都进行一次IF判断。
yamqq
雅马哈,爱普生,电装机器人。
级别: 网络英雄

精华主题: 0
发帖数量: 1717 个
工控威望: 5539 点
下载积分: 24578 分
在线时间: 299(小时)
注册时间: 2008-05-05
最后登录: 2024-06-15
查看yamqq的 主题 / 回贴
3楼  发表于: 2014-04-03 14:57
这个不是威伦屏的宏程序吗
这个人很懒,什么也没有留下!
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2799 个
工控威望: 3571 点
下载积分: 3421 分
在线时间: 3727(小时)
注册时间: 2007-11-04
最后登录: 2024-06-15
查看tingfenghu的 主题 / 回贴
4楼  发表于: 2014-04-03 21:21
好像是VBA的程序,
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/
chqing1361
三人行必有我师
级别: 略有小成
精华主题: 0
发帖数量: 268 个
工控威望: 484 点
下载积分: 440 分
在线时间: 585(小时)
注册时间: 2006-08-17
最后登录: 2024-05-09
查看chqing1361的 主题 / 回贴
5楼  发表于: 2014-04-03 21:27
宏程序,c语言写的
zhangzhiming
级别: 略有小成
精华主题: 0
发帖数量: 24 个
工控威望: 208 点
下载积分: 1170 分
在线时间: 11(小时)
注册时间: 2013-05-15
最后登录: 2024-02-29
查看zhangzhiming的 主题 / 回贴
6楼  发表于: 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-02-29
查看zhangzhiming的 主题 / 回贴
7楼  发表于: 2014-04-04 08:26
所以得出来的结果就是,你这是威纶触摸屏中的配方宏中的查询部分。
lzmtxp99
级别: 家园常客
精华主题: 0
发帖数量: 490 个
工控威望: 705 点
下载积分: 1861 分
在线时间: 508(小时)
注册时间: 2010-12-16
最后登录: 2024-01-26
查看lzmtxp99的 主题 / 回贴
8楼  发表于: 2014-04-04 11:22
谢谢各位,这是宏指令程序!