请解释下条码机读取示例的宏指令
本帖最后由 tql 于 2016-8-25 16:31 编辑才学宏指令,论坛的条码机读取示例的宏指令,很多都看不懂,不知解释的对不对,一些没有解释的是看不懂的,请老师解释一下,谢谢
macro_command main()
short index,temp,string ,name,var=0,i //定义短整型
bool OFF=false,flag=false //=0
GetData(index, "Local HMI", LW, 9200, 1) //地址索引寄存器
//GetData(string, "Barcode (COM port)", BARCODE, 1, 8)
GetData(string, "Local HMI", LW, 0, 8) //读取LW0-LW7共8个字就是16位的2微码到 string-string中
for i=0 to 19 step 1 //循环语句 重复检测20组,只保存20组的,超过20组删除,
GetData(name, "Local HMI", RW, var, 8)
if name==string and name==string and name==string and name==string and name==string and name==string and name==string and name==string then
//输入的2微码的8个字和以前的比较
flag=true //=1
SetData(flag, "Local HMI", LB, 20, 1) //相同的2微码时 LB20=ON弹出报警
else
var=var+8 //每次加8在比较每个2微码的8个字 如RW0 RW8 RW16 RW152=20次
end if
next i
//组别选择
if flag==false then //flag==false=0
SetData(string, "Local HMI", RW, 0+index, 8) //传送2微码到RW0里
index=index+8 //每次加8=每组8个字
SetData(index, "Local HMI", LW, 9200, 1)
temp=index/8
temp=temp+1
SetData(temp, "Local HMI", RW, 10000, 1) //显示第几组 RW10000=1-20 20个组
if index>152 then
index=152
temp=20
SetData(index, "Local HMI", LW, 9200, 1)
SetData(temp, "Local HMI", RW, 10000, 1)
end if
SetData(string, "Local HMI", LW, 100, 2) //二维码分类显示
SetData(string, "Local HMI", LW, 103, 2)
SetData(string, "Local HMI", LW, 105, 3)
end if
SetData(OFF, "Local HMI", LB, 0, 1)
end macro_command
页:
[1]