tql 发表于 2016-8-25 16:27:26

请解释下条码机读取示例的宏指令

本帖最后由 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]
查看完整版本: 请解释下条码机读取示例的宏指令