您好,欢迎访问三七文档
1 / 9 威纶通触摸屏宏指令使用说明一、宏指令的结构一般为以下格式全局变量声明………………………………………………可选SubFunctionBlockDeclarations(子函数声明)…………可选局部变数声明EndSub(结束子函数)macro_commandmain()[主函数]…………………………必须局部变数声明[各式语句]endmacro_command[结束主函数]……………………必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。格式为:macro_command函数名称()endmacro_command双斜线//代表程序批注,在它后面的文字不会被执行。二、宏指令的语法常数:常数是一个可以被各式语句直接使用的固定的资料。有如下格式:下面即为一个简单的常数使用的范例。macro_commandmain()shortA,B//声明A和B为短整型变数A=1234B=0x12//1234和0x12即为常数endmacro_command变数:变量是一个代表着各种资料的名称。在宏指令中,这些资料可以随着宏指令语句执行的结果改变而改变。必须以英文字母开头。变量名称长度不超过32个字符。系统保留寄存器名称不能作为变量名称。下面为8种不同的变量类型,前5种为有号数值类型,后3种为无号数值类型:变数声明:变量必须在使用前声明。所以,在宏指令,所有的变量都必须在语句使用前都被 2 / 9 声明完成。声明变量时,先定义变量的类型,后面再跟着变量名称。如下范例:intashortb,switchfloatpressureunsignedshortc数组声明:宏指令支持一维数组(下标从0开始)。声明数组变量时,先定义数组变量的类型,变量名称,接着就是该数组变量的个数,变量个数必须放置在“““”符号中。数组变量的长度为1~4096。一个宏指令中最多只支持4096个变量。如下范例:inta[10]shortb[20],switch[30]floatpressure[15]数组的下标最小为0,最大下标为(数组的长度-1)如下范例:chardata[100]//数组变量的长度是100所以:最小的数组为“data”0””,最大的数组为“data”99””,即100–1=99。变量和数组初始化有两种方法可以让变量初始化:使用语句中的赋值语句(=)如下范例:intafloatb[3]a=10b[0]=1声明变量时直接赋值chara=‘5’,b=9数组变量的声明是一个特殊的情况。一个完整的数组被初始化时,可以在数组变量声明时,将数据放置在波形括号“{}”里面,各数据使用逗号分开。如下所示:floatdata[4]={11,22,33,44}//这样data[0]=11,data[1]=22…. 3 / 9 三、运算符号上述所有运算符号的优先权从高到低详细如下所述: 4 / 9 1.位于圆括号里面的运算符号最优先2.数学运算符号3.移位和位运算符号4.比较运算符号5.逻辑运算符号6.赋值运算符号四、语句定义语句:这个定义语句包含了变量和数组的声明。正式的格式如下:定义一个变量的名称为名称且类型为类型。举例:intA//定义了变量A为双整型格式定义一个数组变量为名称,大小为数组长度且类型为类型时。举例:intB[10]//定义了一维数组变量B的长度为10,类型为双整型赋值语句:赋值语句使用赋值运算符号将赋值运算符号右边表达式运算的结果放置到运算符号左边的变量中。一个表达式是由变量、常数和各种运算符号组成,执行后产生一个新的数据。举例:A=2//这样变量A就被赋值为2逻辑运算语句:逻辑运算语句是根据逻辑(布尔)表达式的结果来执行相应的动作。它的语句如下所示:单行格式IfConditionthen[Statements]else[Statements]endif举例:ifa==2thenb=1elseb=2endif区块格式IfConditionthen[Statements]elseifCondition-nthen[Statements]else[Statements]endif举例:ifa==2thenb=1elseifa==3thenb=2elseb=3endif语法描述 5 / 9 if必须用在该语句的开始部分。Condition必要条件。这是一个控制语句。当Condition为0时,即为“FALES”,(条件为假);当Condition为非0时,即为“True”(条件为真)。then当Condition执行为“TRUE”(真)时,必须放置在需要执行的语句之前。[Statements]在区块形式中是可选择的参数,在单行形式中,且没有else子句时,为必要参数,该语句在Condition为真时执行。elseif可选,一条或多条语句,在相对应的Condition–n为true时执行。Condition-n可选,解释同Conditionelse可选,在上述Condition和Condition–n都不为true时执行。endif必须。在一个if-then语句中使用这个来结束if-then语句。多重判断语句Select-case可用来处理多重判断的叙述,其功能类似if-else语句。根据所指定变量的值,分别对应到符合该值的case,并执行case下面的叙述,直到遇到break叙述时,才跳到结束符号endselect处。语法结构如下:没有预设case的形式:SelectCase[variable]Case[value][Statements]breakendSelect举例:SelectCaseACase1b=1breakendSelect有预设case的形式:SelectCase[variable]Case[value][Statements]breakCaseelse[Statements]breakendSelect举例:SelectCaseA 6 / 9 Case1b=1breakCaseelseb=0breakendSelect多个不同case对应到相同区块:SelectCase[variable]Case[value1][Statements]Case[value2][Statements]breakendSelect举例:SelectCaseACase1Case2b=2Case3b=3breakendSelect语法描述SelectCase必须用在该语句的开始部分。“variable”必要条件。此变量将会与每一个case做比较。Caseelse可选。代表预设case。当“variable”的值不符合任何一个case时,将会执行此叙述下面的区块。在没有预设case的情况,当“variable”的值不符合任何一个case时,将不会做任何动作而直接跳出select控制结构。break可选。跳到某一个case下面执行时,将一句一句执行case语句下面的叙述直到遇到break命令才结束,并跳到endselect叙述。当case叙述下面没有任何break命令时,流程将不断往下执行,直到遇到endselect叙述,才结束并跳出select控制结构。endSelectselect-case语句的结束标志。循环语句循环语句依据循环条件来反复的执行一个任务。循环语句有两种表达方式。fornext语句For-next语句通常用来执行次数固定的循环任务。一个变量用作为任务执行次数的计数器 7 / 9 和结束循环任务执行的条件。这个变量为固定执行的次数。语法结构如下:for[Conunter]=StartValuetoEndValue[stepStepValue][Statements]next[Counter]或者for[Conunter]=StartValuedownEndValue[stepStepValue][Statements]next[Counter]举例:fora=0to10step2b=anexta语法描述for必须用在该语句的开始部分。[Counter]必要,循环计数器的数值变量,该变量的结果用来计数循环的次数。StartValue必要,Counter的初值。to/down必要。用来决定步长是递增还是递减。“to”以StepValue为步长递增Counter“down”以StepValue为步长递减CounterEndValue必要,Counter的终值、测试点。当Connter大于该值时,宏指令将结束这个循环任务。step可选,指定StepValue的步长,指定为1以外的数值。[StepValue]可选,Counter的步长,只能是数值,如果没有指定,则预设为1。[Statements]可选,for和next之间的语句区块,该语句区块将执行所指定的次数。next必须的。[Counter]可选 While-wend语句While-wend语句是用来执行不确定次数的循环任务。设置一个变量用来判断结束循环的条件。当条件为“True”时,该语句将一直循环执行直到条件变为“False”。语法结构如下:whileCondition[Statements]Wend举例whilea10a=a+10wend语法描述while必须用在该语句的开始部分。continue必要条件。这是一个控制语句。当为“True”时,开始执行循环命令,当为“False”时,结束执行循环命令。 8 / 9 return[value]当判断为“TRUE”时,继续执行循环命令wendWhile-wend语句的结束标志。其他控制命令break用在for-next和while-wend语句中。当遇到此语句时,立即跳到语句的结束部分。continue用在for-next和while-wend语句中。当遇到此语句时,立即结束当前循环命令而开始执行下一个循环命令。return可用在自订function的回传值叙述。写在主函数里面时,用来强制跳出主函数。子函数使用子函数可以有效的减少循环命令的代码,子函数必须在使用前被定义,且可以使用任何变量和语句类型。在主函数中,将子函数的参数放置在子函数名称后面的圆括号中,即可调用子函数。子函数被执行后,将执行后的结果返回到主函数需要的赋值语句或者条件中。定义子函数时,不一定要有返回值,且参数部分可以为空。在主函数中调用子函数时,调用方式应符合其定义。语法结构如下:有返回值的子函数语法subtype函數名稱[(parameters)]Localvariabledeclarations[Statements][return[value]]endsub举例:subintAdd(intx,inty)intresultresult=x+yreturnresultendsubmacro_commandmain()inta=10,b=20,sumsum=Add(a,b)endmacro_command或:subintAdd()intresult,x=10,y=20result=x+yreturnresultendsubmacro_commandmain()intsumsum=Add()endmacro_command 9 / 9 没有返回值的子函数语法sub函数名称[(parameters)]Localvariabledeclarations[Statements]endsub举例:subAdd(intx,inty)intresultresult=x+yendsubmacro_commandmain()inta=10,b=20Add(a,b)endmacro_command或:subAdd()intresult,x=10,y=20result=x+yendsubmacro_commandmain()Add()endmacro_command语法描述sub必须用在该子函数的开始部分。type可选。用来定义子函数执行后返回的数
本文标题:宏指令使用说明
链接地址:https://www.777doc.com/doc-6478922 .html