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

下载本文档

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

文档简介

/**********************************************************行号刷新——number**********************************************************/macro_commandmain()shortindex,array[10]

//数组array[10]是存放行号的数组boolOFF=false,ON=true

GetData(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==100then

flag=true

SetData(flag,"本机触摸屏",LB,22,1)else

//判断是否有重名

fori=0to99step1

GetData(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]

then

/**********************************************************删除——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=0toMaxLinestep1

GetData(check[0],"本机触摸屏",RW,var,5)//查找匹配的配方名

ifname[0]==check[0]andname[1]==check[1]andname[2]==check[2]andname[3]==check[3]andname[4]==check[4]

then

flag=true

//找到后置位标志位

CurtLine=i

//记录匹配配方名所在行

CurtAddress=var

//记录匹配配方名的地址

MoveTime=MaxLine-CurtLine-1

//要移动的次数

//下面程序执行数据覆盖操作

forj=1toMoveTimestep1

NextAddress=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-1

index=(CurtAddress/700)*700

SetData(MaxLine,"本机触摸屏",RW,8000,1)

SetData(index,"本机触摸屏",LW,9000,1)

SetData(ON,"本机触摸屏",LB,4,1)

else

var=var+70

endifnexti

//若找不到匹配的配方记录,则报警提示

ifflag==falsethen

SetData(ON,"本机触摸屏",LB,20,1)endif

FILL(name[0],0,5)SetData(name[0],"本机触摸屏",LW,0,5)//清空LW0的值,即清空输入的配方名

SetData(zero,"本机触摸屏",LB,3,1)

endmacro_command

/**********************************************************首页——MinPage**********************************************************/macro_commandmain()shortindexboolON=trueGetData(index,"本机触摸屏",LW,9000,1)//a用于提取索引寄存器的当前值ifindex==0then

SetData(ON,"本机触摸屏",LB,23,1)endifSetData(ON,"本机触摸屏",LB,4,1)

endmacro_command

/**********************************************************尾页——MaxPage**********************************************************/macro_commandmain()shortindexboolON=trueGetData(index,"本机触摸屏",LW,9000,1)ifindex==6300then

SetData(ON,"本机触摸屏",LB,24,1)endifSetData(ON,"本机触摸屏",LB,4,1)

endmacro_command

/**********************************************************行号初始化——Initial*********

温馨提示

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

最新文档

评论

0/150

提交评论