首页 威纶通配方——宏指令

威纶通配方——宏指令

举报
开通vip

威纶通配方——宏指令威纶通配方——宏指令/**********************************************************行号刷新——number**********************************************************/macro_commandmain()shortindex,array[10]//数组array[10]是存放行号的数组boolOFF=false,ON=trueGetData(index,"本机触摸屏",LW,90...

威纶通配方——宏指令
威纶通配方——宏指令/**********************************************************行号刷新——number**********************************************************/macro_commandmain()shortindex,array[10]//数组array[10]是存放行号的数组boolOFF=false,ON=trueGetData(index,"本机触摸屏",LW,9000,1)//a用于提取索引寄存器的当前值array[0]=1+index/70//索引寄存器的值以700的倍数递增,即以当前页面中占用地址总数为基数array[1]=array[0]+1array[2]=array[1]+1array[3]=array[2]+1array[4]=array[3]+1array[5]=array[4]+1array[6]=array[5]+1array[7]=array[6]+1array[8]=array[7]+1array[9]=array[8]+1SetData(array[0],"本机触摸屏",RW,7800,10)//RW7800~RW7809中存放行号SetData(OFF,"本机触摸屏",LB,4,1)//清零宏指令触发位endmacro_command/**********************************************************add**********************************************************/macro_commandmain()shortname[5],temp[5],data[65]shorti,var=0,CurtLine=0,index=0,NextLine=0boolOFF=false,flag=false新增——GetData(CurtLine,"本机触摸屏",RW,8000,1)//获取RW8000的值,即保存的行数GetData(name[0],"本机触摸屏",LW,0,5)//获取LW0的值,即输入的配方名GetData(data[0],"PanasonicFP",DT,32700,65)//获取当前HMI的数据输入值判断数据表是否填满,若未填满,则判断是否有重名ifCurtLine==100thenflag=trueSetData(flag,"本机触摸屏",LB,22,1)else判断是否有重名fori=0to99step1GetData(temp[0],"本机触摸屏",RW,var,5)//遍历每一行的配方名ifname[0]==temp[0]andname[1]==temp[1]andname[2]==temp[2]andname[3]==temp[3]andname[4]==temp[4]thenflag=trueSetData(flag,"本机触摸屏",LB,21,1)//若有重名则跳出“警告”框,提示该配方已存在elsevar=var+70//否则开始查询下一行endifnexti遍历所有行未找到匹配值,就将配方名和数据保存在数据表中ifflag==falsethenvar=0var=70*CurtLine//当前行的索引量SetData(name[0],"本机触摸屏",RW,var,5)//将LW0中的配方名保存至新地址RW(0+var)中SetData(data[0],"本机触摸屏",RW,5+var,65)//将DT32700中连续的65个数据保存在RW(5+var)65个连续的地址中下面程序是实现数据表行数增加ifCurtLine<100thenNextLine=CurtLine+1index=(NextLine/10)*700SetData(NextLine,"本机触摸屏",RW,8000,1)SetData(index,"本机触摸屏",LW,9000,1)flag=trueSetData(flag,"本机触摸屏",LB,4,1)endifendifendifFILL(name[0],0,5)SetData(name[0],"本机触摸屏",LW,0,5)//清空LW0的值,即清空输入的配方名SetData(OFF,"本机触摸屏",LB,0,1)//清零宏指令触发位endmacro_command/**********************************************************调用——aquire**********************************************************/macro_commandmain()shortname[5],temp[5]//定义两个数组,name[5]用于获取输入配方名,temp[5]用于获取某一行的配方名shorti,index,var=0,Data[65]//数组b[80]用于获取某一行的存储数据boolON=true,OFF,flag=falseGetData(name[0],"本机触摸屏",LW,0,5)//获取输入的配方名//下面程序用于查找与输入的配方名匹配的数据,并将数据下载至PLC中fori=0to99step1GetData(temp[0],"本机触摸屏",RW,var,5)//查询存储的配方名ifname[0]==temp[0]andname[1]==temp[1]andname[2]==temp[2]andname[3]==temp[3]andname[4]==temp[4]thenflag=trueGetData(Data[0],"本机触摸屏",RW,5+var,65)//获取匹配行的存储数据SetData(Data[0],"PanasonicFP",DT,32700,65)//将查找到的数据传给下位机elsevar=var+70//下一个配方名地址endifnextiifflag==falsethenSetData(ON,"本机触摸屏",LB,20,1)endifFILL(name[0],0,5)SetData(name[0],"本机触摸屏",LW,0,5)//清空LW0的值,即清空输入的配方名SetData(OFF,"本机触摸屏",LB,1,1)//清零宏指令触发位endmacro_command/**********************************************************del**********************************************************/删除——macro_commandmain()shorti=0,j=0,var=0shortMaxLine=0,CurtLine=0,MoveTime=0,index=0,CurtAddress=0,NextAddress=0shortc[70],name[5],clear[70],check[5]boolzero=0,ON=true,OFF,flag=false//获取相应操作数FILL(clear[0],0,70)GetData(MaxLine,"本机触摸屏",RW,8000,1)//获取数据表大小GetData(name[0],"本机触摸屏",LW,0,5)//获取LW0的值,即要删除的配方名查找要删除的 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,并将其删除fori=0toMaxLinestep1GetData(check[0],"本机触摸屏",RW,var,5)//查找匹配的配方名ifname[0]==check[0]andname[1]==check[1]andandname[3]==check[3]andname[4]==check[4]thenname[2]==check[2]flag=true//找到后置位标志位CurtLine=i//记录匹配配方名所在行CurtAddress=var//记录匹配配方名的地址MoveTime=MaxLine-CurtLine-1//要移动的次数下面程序执行数据覆盖操作forj=1toMoveTimestep1NextAddress=CurtAddress+70记录下一条数据位置GetData(c[0],"本机触摸屏",RW,NextAddress,70)//下一条数据记录覆盖当前记录SetData(c[0],"本机触摸屏",RW,CurtAddress,70)CurtAddress=NextAddress移动一次后下一地址变为当前地址nextj//进行下一次数据覆盖最后一行清零SetData(clear[0],"本机触摸屏",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+70endifnexti若找不到匹配的配方记录,则报警提示ifflag==falsethenSetData(ON,"本机触摸屏",LB,20,1)endifFILL(name[0],0,5)SetData(name[0],"本机触摸屏",LW,0,5)//清空LW0的值,即清空输入的配方名SetData(zero,"本机触摸屏",LB,3,1)endmacro_command/**********************************************************MinPage**********************************************************/macro_commandmain()shortindexboolON=true首页——GetData(index,"本机触摸屏",LW,9000,1)//a用于提取索引寄存器的当前值ifindex==0thenSetData(ON,"本机触摸屏",LB,23,1)endifSetData(ON,"本机触摸屏",LB,4,1)endmacro_command/**********************************************************尾页——MaxPage**********************************************************/macro_commandmain()shortindexboolON=trueGetData(index,"本机触摸屏",LW,9000,1)ifindex==6300thenSetData(ON,"本机触摸屏",LB,24,1)endifSetData(ON,"本机触摸屏",LB,4,1)endmacro_command/**********************************************************行号初始化——Initial**********************************************************/macro_commandmain()shortarray[10]={1,2,3,4,5,6,7,8,9,10}boolOFF=falseSetData(array[0],"本机触摸屏",RW,7800,10)SetData(OFF,"本机触摸屏",LB,9000,1)endmacro_command
本文档为【威纶通配方——宏指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥13.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_090281
常年从事设计、施工及相关教育工作,一线工作经验丰富。
格式:doc
大小:109KB
软件:Word
页数:20
分类:
上传时间:2021-11-09
浏览量:141