威纶通配方——宏指令.doc_第1页
威纶通配方——宏指令.doc_第2页
威纶通配方——宏指令.doc_第3页
威纶通配方——宏指令.doc_第4页
威纶通配方——宏指令.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_/*行号刷新number*/macro_command main()short index,array10/数组array10是存放行号的数组bool OFF=false,ON=trueGetData(index, 本机触摸屏, LW, 9000, 1)/a用于提取索引寄存器的当前值array0=1+index/70/索引寄存器的值以700的倍数递增,即以当前页面中占用地址总数为基数array1=array0+1array2=array1+1array3=array2+1array4=array3+1array5=array4+1array6=array5+1array7=array6+1array8=array7+1array9=array8+1SetData(array0, 本机触摸屏, RW, 7800, 10) /RW7800RW7809中存放行号SetData(OFF, 本机触摸屏, LB, 4, 1) /清零宏指令触发位 end macro_command/*新增add*/macro_command main()short name5,temp5,data65short i,var=0,CurtLine=0,index=0,NextLine=0bool OFF=false,flag=falseGetData(CurtLine, 本机触摸屏, RW, 8000, 1)/获取RW8000的值,即保存的行数 GetData(name0, 本机触摸屏, LW, 0, 5)/获取LW0的值,即输入的配方名 GetData(data0, Panasonic FP, DT, 32700, 65)/获取当前HMI的数据输入值/判断数据表是否填满,若未填满,则判断是否有重名if CurtLine=100 thenflag=trueSetData(flag, 本机触摸屏, LB, 22, 1)else/判断是否有重名for i=0 to 99 step 1GetData(temp0, 本机触摸屏, RW, var, 5)/遍历每一行的配方名if name0=temp0 and name1=temp1 and name2=temp2 and name3=temp3 and name4=temp4thenflag=trueSetData(flag, 本机触摸屏, LB, 21, 1)/若有重名则跳出“警告”框,提示该配方已存在 elsevar=var+70/否则开始查询下一行 end ifnext i/遍历所有行未找到匹配值,就将配方名和数据保存在数据表中if flag=false thenvar=0var=70*CurtLine/当前行的索引量SetData(name0, 本机触摸屏, RW, var, 5)/将LW0中的配方名保存至新地址RW(0+var)中SetData(data0, 本机触摸屏, RW, 5+var, 65)/将DT32700中连续的65个数据保存在RW(5+var)65个连续的地址中 /下面程序是实现数据表行数增加if CurtLine100 thenNextLine=CurtLine+1index=(NextLine/10)*700SetData(NextLine, 本机触摸屏, RW, 8000, 1)SetData(index, 本机触摸屏, LW, 9000, 1)flag=trueSetData(flag, 本机触摸屏, LB, 4, 1)end ifend ifend ifFILL(name0, 0, 5)SetData(name0, 本机触摸屏, LW, 0, 5)/清空LW0的值,即清空输入的配方名 SetData(OFF, 本机触摸屏, LB, 0, 1)/清零宏指令触发位 end macro_command/*调用aquire*/macro_command main() short name5,temp5/定义两个数组,name5用于获取输入配方名,temp5用于获取某一行的配方名short i,index,var=0,Data65/数组b80用于获取某一行的存储数据bool ON=true,OFF,flag=falseGetData(name0, 本机触摸屏, LW, 0, 5)/获取输入的配方名/下面程序用于查找与输入的配方名匹配的数据,并将数据下载至PLC中for i=0 to 99 step 1GetData(temp0, 本机触摸屏, RW, var, 5)/查询存储的配方名if name0=temp0 and name1=temp1 and name2=temp2 and name3=temp3 and name4=temp4thenflag=trueGetData(Data0, 本机触摸屏, RW, 5+var, 65)/获取匹配行的存储数据 SetData(Data0, Panasonic FP, DT, 32700, 65)/将查找到的数据传给下位机else var=var+70 /下一个配方名地址 end ifnext iif flag=false thenSetData(ON, 本机触摸屏, LB, 20, 1) end ifFILL(name0, 0, 5)SetData(name0, 本机触摸屏, LW, 0, 5)/清空LW0的值,即清空输入的配方名SetData(OFF, 本机触摸屏, LB, 1, 1)/清零宏指令触发位end macro_command/*删除del*/macro_command main() short i=0,j=0,var=0short MaxLine=0,CurtLine=0,MoveTime=0,index=0,CurtAddress=0,NextAddress=0short c70,name5,clear70,check5bool zero=0,ON=true,OFF,flag=false/获取相应操作数FILL(clear0,0,70)GetData(MaxLine, 本机触摸屏, RW, 8000, 1)/获取数据表大小GetData(name0, 本机触摸屏, LW, 0, 5)/获取LW0的值,即要删除的配方名/查找要删除的记录,并将其删除for i=0 to MaxLine step 1GetData(check0, 本机触摸屏, RW, var, 5)/查找匹配的配方名if name0=check0 and name1=check1 and name2=check2 and name3=check3 and name4=check4thenflag=true/找到后置位标志位CurtLine=i/记录匹配配方名所在行CurtAddress=var/记录匹配配方名的地址MoveTime=MaxLine-CurtLine-1/要移动的次数/下面程序执行数据覆盖操作for j=1 to MoveTime step 1NextAddress=CurtAddress+70/记录下一条数据位置GetData(c0, 本机触摸屏, RW, NextAddress, 70)/下一条数据记录覆盖当前记录SetData(c0, 本机触摸屏, RW, CurtAddress, 70)CurtAddress=NextAddress/移动一次后下一地址变为当前地址next j/进行下一次数据覆盖/最后一行清零SetData(clear0, 本机触摸屏, RW, CurtAddress, 70)/所有数据覆盖后,当前地址已经是最后一行起始地址 /下面程序实现数据表行数减少 MaxLine=MaxLine-1index=(CurtAddress/700)*700SetData(MaxLine, 本机触摸屏, RW, 8000, 1)SetData(index, 本机触摸屏, LW, 9000, 1) SetData(ON, 本机触摸屏, LB, 4, 1) elsevar=var+70end ifnext i/若找不到匹配的配方记录,则报警提示 if flag=false thenSetData(ON, 本机触摸屏, LB, 20, 1)end ifFILL(name0, 0, 5)SetData(name0, 本机触摸屏, LW, 0, 5)/清空LW0的值,即清空输入的配方名 SetData(zero, 本机触摸屏, LB, 3, 1)end macro_command/*首页MinPage*/macro_command main()short indexbool ON=trueGetData(index, 本机触摸屏, LW, 9000, 1)/a用于提取索引寄存器的当前值if index=0 thenSetData(ON, 本机触摸屏, LB, 23, 1)end ifSetData(ON, 本机触摸屏, LB, 4, 1)end macro_command/*尾页MaxPage*/macro_command main()short indexbool ON=trueGetData(index, 本机触摸屏, LW, 9000, 1)if index=6300 thenSetData(ON, 本机触摸屏, LB, 24, 1)end ifSetData(ON, 本机触摸屏, LB, 4, 1)end macro_command/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论