威纶触摸屏宏指令使用说明
威纶通 宏指令 赋值-概述说明以及解释
威纶通宏指令赋值-概述说明以及解释1.引言1.1 概述威纶通(Verilog-A)是一种硬件描述语言,常用于模拟和设计集成电路。
它是IEEE标准1364-2005中定义的一种增强型Verilog语言,主要用于模拟连续行为的电子电路。
威纶通具有强大的建模能力,可以对各种电路和系统进行描述和分析,例如模拟信号处理、电源管理、射频模拟和传感器接口等。
使用威纶通语言,我们可以通过编写数学表达式来描述电路中的信号传输和行为。
宏指令(Macro Instructions)是一种在程序设计中广泛应用的概念,它允许我们定义一系列操作的命令,以便在需要时可以进行重复使用。
在威纶通中,宏指令允许我们创建一些复杂的原子操作,并将其作为单个指令来使用,简化了代码的编写和维护过程。
赋值操作是一种常见的程序设计中的基本操作,用于将值分配给变量或寄存器。
在威纶通中,赋值操作的重要性不言而喻,它可以用于在电路模拟过程中改变信号的值,实现不同的功能和行为。
本文将对威纶通、宏指令和赋值这三个关键概念进行详细介绍,并探讨它们在电路设计和模拟中的重要性。
同时,我们还将讨论它们在未来发展中的潜力和前景。
通过深入研究这些概念,我们可以更好地理解威纶通语言的特点和优势,为电路设计和模拟提供更高效和可靠的方法。
1.2文章结构1.2 文章结构在本篇长文中,我们将以"威纶通宏指令赋值"为主题,探讨威纶通、宏指令以及赋值的概念、功能特点、使用方法、意义与应用,以及实现方式与技巧。
在第一章的引言部分,我们将对整篇文章进行概述,介绍威纶通、宏指令和赋值的基本概念,并给出文章的目的。
接着,在第二章的正文部分,我们将详细介绍威纶通的背景和特点,包括其简介和功能特点。
然后,我们将深入讨论宏指令的定义与作用,以及它的使用方法。
最后,我们将探究赋值的意义与应用,以及实现方式与技巧。
在第三章的结论部分,我们将总结威纶通、宏指令和赋值在编程中的重要性,并展望它们在未来的发展前景。
宏指令使用说明
威纶通触摸屏宏指令使用说明一、 宏指令的结构一般为以下格式全局变量声明 ………………………………………………可选Sub Function Block Declarations(子函数声明)…………可选局部变数声明End Sub(结束子函数)macro_command main() [主函数]…………………………必须局部变数声明[各式语句]end macro_command [结束主函数] ……………………必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
格式为:macro_command函数名称()end macro_command双斜线"//" 代表程序批注,在它后面的文字不会被执行。
二、宏指令的语法常数:常数是一个可以被各式语句直接使用的固定的资料。
有如下格式:下面即为一个简单的常数使用的范例。
macro_command main()short A, B // 声明A 和B 为短整型变数A = 1234B = 0x12 // 1234 和0x12 即为常数end macro_command变数:变量是一个代表着各种资料的名称。
在宏指令中,这些资料可以随着宏指令语句执行的结果改变而改变。
必须以英文字母开头。
变量名称长度不超过32 个字符。
系统保留寄存器名称不能作为变量名称。
下面为8 种不同的变量类型,前5种为有号数值类型,后3种为无号数值类型:变数声明:变量必须在使用前声明。
所以,在宏指令,所有的变量都必须在语句使用前都被声明完成。
声明变量时,先定义变量的类型,后面再跟着变量名称。
如下范例:int ashortb, switchfloatpressureunsigned short c数组声明:宏指令支持一维数组(下标从0 开始)。
声明数组变量时,先定义数组变量的类型,变量名称,接着就是该数组变量的个数,变量个数必须放置在“““”符号中。
数组变量的长度为1 ~ 4096。
威纶HMI宏指令使用说明及应用
第三十章 宏指令说明 (2)30.1宏指令的结构 (2)30.2宏指令的语法 (4)30.2.1 常量和变量 (4)30.2.2运算符 (7)30.3语句 (10)30.3.1定义语句 (10)30.3.2赋值语句 (11)30.3.3逻辑运算语句 (11)30.3.4 循环语句 (13)30.3.4其他控制命令 (15)30.4 子函数 (16)30.5内置函数功能 (17)30.5.1 数学运算函数 (18)30.5.2 数据转换函数 (24)30.5.3 数据操作函数 (29)30.5.4 位状态转换 (34)30.5.5 通讯有关的函数 (37)30.6 怎样建立和执行宏指令 (52)30.6.1 怎样建立一个宏指令 (52)30.6.2 执行宏指令 (57)30.7 使用宏指令时的注意事项 (58)30.8 使用自由协议去控制一个设备 (59)30.9 编译错误提示信息 (67)30.10 宏指令范例程序 (78)第三十章宏指令说明宏指令提供了应用程序之外附加的你所需要的功能。
在MT8000人机界面运行时,宏指令可以自动的执行这些命令。
它可以担负执行譬如复杂的运算、字符串处理,和使用者与工程之间的交流等功能。
本章主要介绍宏指令的语法、如何使用和编程方法等功能。
希望通过本章的说明,能够使各位能够快速的掌握EB8000软件提供的强大的宏指令功能。
30.1宏指令的结构宏指令是由各种语句组成的。
这些语句包含常数、变量和各种运算符。
这些语句放置在特定的顺序位置以执行后达到一个希望的执行结果。
宏指令的结构一般为以下格式:全局变量声明-----------------------------------可选Sub Function Block Declarations(子函数声明) -----------------------------------可选局部变量声明End Sub(结束子函数)macro_command main() [主函数] ------------------------------------必须局部变量声明[各式语句]end macro_command [结束主函数] ------------------------------------必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
威纶通宏指令详细讲解
威纶通宏指令详细讲解本文主要介绍了威纶通宏指令的基本概念、应用场景以及使用方法,通过实例进行了详细的讲解。
下面是本店铺为大家精心编写的3篇《威纶通宏指令详细讲解》,供大家借鉴与参考,希望对大家有所帮助。
《威纶通宏指令详细讲解》篇1一、威纶通宏指令概述威纶通宏指令是威纶通触摸屏编程软件的一种功能,它可以通过一系列简单的操作实现复杂的控制逻辑。
宏指令可以用于控制 PLC、驱动器等各种设备,使得触摸屏的控制更加高效、灵活。
二、威纶通宏指令应用场景威纶通宏指令适用于以下几种应用场景:1. 控制 PLC:通过宏指令,触摸屏可以实现对 PLC 的控制,例如启动、停止、复位等操作。
2. 控制驱动器:通过宏指令,触摸屏可以实现对驱动器的控制,例如速度、温度、湿度等参数的设置。
3. 数据采集:通过宏指令,触摸屏可以实现对传感器、仪表等设备的数据采集,例如温度、湿度、压力等参数的采集。
三、威纶通宏指令使用方法威纶通宏指令的使用方法可以分为以下几个步骤:1. 创建宏指令:在威纶通触摸屏编程软件中,创建一个新的宏指令,并为其命名。
2. 编写宏指令代码:在宏指令的代码编辑器中,编写宏指令的代码,包括操作类型、操作参数等。
3. 调用宏指令:在触摸屏的程序中,调用宏指令,实现对设备的控制或数据采集。
4. 设置宏指令触发条件:在触摸屏的程序中,设置宏指令的触发条件,例如时间、事件等。
四、威纶通宏指令实例以下以一个简单的实例来说明威纶通宏指令的使用方法。
假设有一个 PLC 需要控制启停,可以通过以下步骤实现:1. 创建宏指令:在威纶通触摸屏编程软件中,创建一个名为“启停 PLC”的宏指令。
2. 编写宏指令代码:在宏指令的代码编辑器中,编写以下代码: ```macrocommand main()short index, array10/bool OFF, ON/GetData(index, touchscreen, LW, 9000, 1)/array01 index/array1 array01 array2 array11 array3 array21 array4 array31 array5 array41 array6 array51 array7 array61 array8 array71 array9 array81/SetData(array0, touchscreen, RW, 7800, 10)/SetData(OFF, touchscreen, LB, 4, 1)/endmacrocommand```这段代码中,使用了 GetData 函数提取触摸屏的行号,并将其存储在 array10 数组中。
宏指令使用手册
EasyBuilder 500 Macro使用说明一:文档说明作者 : 程志刚时间 : 2003年1月版权所有 : 台湾威纶科技有限公司概要 : 此文档为宏指令功能模块的使用文档,说明宏语言的语法,宏语言的使用,宏指令源程序编写的操作方法与操作顺序,使用文档包含以下几个部分:宏语言文本说明:宏语言使用说明宏指令程序与PLC的通信(包括本地地址LocalBit,LocalWord):宏指令操作说明有关宏指令使用的若干说明编译错误提示程序示例源程序二:宏语言文本说明:1: 常数与变量a:常量(1)十进制常量(2)十六进常数(3)单引号内的ASCII常量(字符常量)(4) 逻辑常量:True (非零),False(零)b:变量(a)变量命名必须以字每开头,其它字符可以是字每或数字,不得超过32个字符的长度(b) 数据类型(char) 字符类型(int) 整数类型 32-bit(short) 短整数类型 16-bit(float) 浮点数类型(bool ) 逻辑类型2: 运算符(1)赋值运算赋值运算: =(2)算术运算:加:+减:-乘:*除:/余:mod ,(3)关系运算:小于:<小于等于:<=大于:>大于等于: >=等于: ==不等于: <>(4)逻辑运算:逻辑于:And逻辑或:Or逻辑Xor逻辑非:Not(5)位运算:(a)移位运算左移: <<右移: >>(b)逻辑位运算位与运算: &位或运算: |位异或运算: ^位取反运算: ~3: 运算符的优先级:表达式中执行多个操作时,每一部分都按规定的顺序计算,这种运算符间的计算次序,叫运算符的优先级(1)同一种类运算符的优先顺序(按左到右,依次从高到低)算术运算符 : ^ Æ( * , / ) Æ ( mod ) Æ ( + , - )移位运算: 其出现的优先顺序,按在表达式中出现的次序从左到右进行处理关系运算符 : 其出现的优先顺序,按在表达式中出现的次序从左到右进行处理逻辑运算符 : Not Æ And Æ Or Æ Xor,(2)算术运算优先于位运算位运算优先于关系运算逻辑运算优先于赋值运算4: 数组(1)数组 :只支持静态一维数组,形式为:一维数组 : 数组名[数组的大小]数组的下标为整数其可取值区间为0 --- 4294967295下标最小值:零下标最小值:数组的大小 – 1如 : Array[MAX] MAX =100下标最小值 :0下标最小值:99 ( 100 – 1)5: 表达式(a) 运算对象(1)常量(2)变量(3)数组元素(4)函数调用(b) 表达式组成表达式由运算对象和运算符按一定规则组合而成6: 语句(1):说明语句(a) type name说明name的类型(b) type name[constant] 说明name类型的一维数组(2): 赋值语句形式为:变量 =表达式(3) 逻辑判断与分支(a) 单行形式If Condition Then [ Statements ] [ Else elseStatements ]End If(b) 块形式If Condition Then[ Statements ][ Else [If Condition – n Then[elseifstatements ] ….[ Else[ elsestatements ] ]] ]End If语法说明 :Condition 必要,为一条件表达式,条件表达式值为零,则视为假 FALSE,条件表达式值为非零,则视为真TRUEStatements 在块形式中是选参数,在单行形式中,且没有Else子句时,为必要参数,该语句在Condition为真是时执行Condition-n 可选,解释同Conditionelseifstatements 可选,一条或多条语句,在相对应的Condition – n为TRUE时执行Elsestatements 可选,在上述Condition和Condition—n都不为TRUE时执行(C) 多重分支选择 Select Case 语句Select Case TestExpression[Case expression –n[starements-n] ]……[Case Else[elsestatements ] ]End Select语法说明:TestExpression 必要,任何数值或字符串表达式Expression—n 如果有Case出现则为必要参数,为字符串或整形数值常量Statements—n 可选,为一条或多条语句,当TestExpression和对应的expression—n相等时,则执行Elsestatements 可选 , 为一条或多条语句,当TestExpression不和任一expression—n相等时,则执行(4)循环控制a)For –Next语句:常用于次数已确定的情况,当为To时,此时按步长递增,当为Down时,此时按步长递减For counter = start To(Down) end [Step step ][Statements ]Next [counter ]语法说明:Counter 必要,循环计数器的数值变量,该变量只能是整形或字符形变量Start 必要,Counter的初值End 必要,Counter的终值Step 可选 ,Counter的步长,如果没有指定,则缺省为1,只能是数值Statements 可选 ,For和Next之间的语句块,该语句块将执行指定的次数b)While – Wend语句由条件控制的循环,条件放置于循环顶部逻辑表达式值为TRUE或FALSE,当指定的条件为TRUE时,执行循环体中的语句块While condition[statements]Wend语法说明Condition 必要,逻辑表达式,其计算结果为TRUE或FALSE,condition为TRUE时执行循环体Statements 可选,为一语句块,当condition的值为TRUE时(5)break ;用于循环和条件选择语句中,执行到此语句时,退出循环或条件语句(6)continue用于循环,执行到此语句时,中断这一次循环的执行,到下一次循环执行(7)return函数返回语句7: 关键字集:宏语言规定的,用作特定的用途,不能作为函数名,数组名,变量名等的记号+ , - ,* , / ,^, mod, >= ,>, < ,<=, <> ,== ,And,Or,Xor,Not,<<,>>,= ,& ,|,^,~If ,Then,Else,EndIf,Select ,Case ,For, To, Down Step, Next, while, wend break ,continue,return三:宏语言使用说明1: 局部变量及全局变量(1:)局部变量: 在一个函数范围内有效,(2:)全局变量: 从定义或声明的地方开始到宏指令程序结束有效在一个函数内当有相同名称的全局变量与局部变量时,是局部变量有效2: 变量赋初值及常量(1:)变量赋初值(a)在声明语句中直接进行赋值值e.g: int h = 9(b) 在声明或定义后,用赋值语句进行变量的赋初值(2:)数组变量的赋初值形式如: int g[10] = { 1,2,3, , 3 }初值用花括号括起来, 各数组分量用分号隔开,从左到右赋按数组下标从零开始的顺序赋给各数组分量,(3:)常量 :宏语言支持:十进制整形常量十六进制整形常量以0x开头字符形常量,逻辑常量 : True 代表真, False代表假 ,3: 逻辑变量及表达式(1:)逻辑变量:它有真(True),假(False)两种取值的情况,所有非零的值认为是真(True),零值认为是假(False)(2:)表达式:条件表达式的值为零值即为假,代表条件不成立,条件表达式的值为非零值即为真,代表条件成立4: 声明语句(1:)声明语句在函数外声明或定义全局变量,(2:)声明语句在函数内声明或定义局部变量,同时局部变量声明语句在函数内的最前面,其间不能有其它的语句,否则会给出编译错的提示For example :Macro_Command main( )char i ,i = 9//在声明语句间的非声明语句,将给出编译错的提示int g[10]For g[2] = 0To2g[3] = 4Next g[2]End Macro_Command5: 函数调用及参数传递方式(1:)函数调用:被调用的函数须在调用函数的前面定义,否则将给出函数没有定义的编译错提示For example :Macro_Command main( )int i ,i = Func( i ) //将给出函数Func没有定义的编译错误提示End Macro_CommandSub int Func( int i )int h = 9i = 9 * hReturn iEnd Sub(2:)参数传递方式:(a)通过局部变量传值的方式传递参数(b)通过函数间共享全局变量的方式传递参数6: 主函数宏指令源程序有且只能有一个主函数, 它是宏指令程序开始执行的入口,其形式为: Macro_Command 函数名( )End Macro_Command四: 宏指令程序与PLC的通信(包括本地地址LocalBit,LocalWord):功能: 使用库函数实现与Plc的沟通在宏指令程序的计算与控制中当Plc地址类型的变量参与时,就通过库函数GetData( … )从EasyView連接的Plc中取数据,通过库函数SetData( … )把结果数据送到EasyView連接的Plc 中,这样就把处理plc信息的繁杂工作交给了GetData( … )与SetData( … )等库函数1: GetData(各种支持的数据类型 DestData, CString strAddr_Type, int iAddr_Off, int iDataCount )说明:实现从Plc中取数据,通过对话框填表的形式输入参数说明:DestData 得数据的首址CString strAddr_Type Plc地址类型和编码方式int iAddr_Off Plc地址偏移int iDataCount 数据项数返回值: 没有2: SetData(各种支持的数据类型DestData ,CString strAddr_Type , int iAddr_Off , int iDataCount )参数说明:DestData 送出去数据的首址CString strAddr_Type Plc地址类型和编码方式int iAddr_Off Plc地址偏移int iDataCount 数据项数返回值: 没有五:宏指令操作说明1: 宏指令程序的编写分三步进行,第一步:在EB500主界面中启动宏指令功能模块的第一个对话框(MacroControlDlg)第二步:在MacroControlDlg对话框中进行宏指令间的拷贝,删除,编辑,调用MacroWorkSpaceDlg对话框进行宏指令源程序的编辑,第三步:宏指令源程序的编辑,确定一条宏指令的名称,编号,编译,及排除编译错误2: 宏指令源程序通信函数的编辑方法(1:)输入:(第一步:) 在宏指令源程序要输入库函数的地方,输入关键字:”Insert”{ 或者把光标置于要输入库函数的地方,后呼叫PlcCom按钮,}(第二步:) 在库函数编辑对话框,进行库函数的选择和库函数参数的设置,按Ok按钮完成此次库函数的输入,按Cancel按钮取消此次输入操作(2:)修改:将光标置于要修改的库函数上对其进行修改,按(1:)的第一步,第二步操作即可(3:)删除:把要删除的库函数选定,在键盘上按Delete键即可将其删除3:宏指令触发条件的确定.见图”Trigger(Macro).bmp” (第一步:) 在PlcControl物件属性对话框中选择控制类型为Execute MacroProgram,(第二步:) 在PlcControl物件属性对话框中选择一个MacroID并确定一个触发位六:有关宏指令使用的若干说明(1:)宏指令程序存储空间的限制一个eob档中所有宏指令存储空间受公共窗口0空间大小的限制,同时一个宏指令程序中的局部变量存储空间最大为4k,(2:)最多可能执行的宏指令条数的限制一个eob档中最多可以使用256条宏指令程序.(3:)宏指令可能出现的死机情况宏指令程序中有死循环,且死循环中没有通信时.宏指令程序中数组数据使用,存储空间越界时.(4:)宏指令程序通信时的速度.宏指令程序在有通信时,它的执行可能会有点慢.这是由于通信占用太多的时间所造成的.七:编译错误提示1:错误提示形式:宏指令名称(: 编译错误编号 ) 错误提示当编译没有通过时,可以通过编译错误编号,查找对错误的说明2:错误描述:(1: ) "语法错:" “'identifier'很多种情况会给出这条编译错误的提示,For example :Macro_Command main( )char i ,程 //这是一个不支持的记号 ,”错误提示为: “语法错: 程”int g[i] //定义错For g[2] = 0To2g[3] = 4Next g[2]End Macro_Command出现这条错误提示时,一般都是多了,或少了一个符号,很容易改正错误(2:) 'identifier' :" 数组没有被指定大小" ;只支持静态数组,定义数组变量时,必须指定数组的大小For example :Macro_Command main( )char iint g[i]//定义错For g[2] = 0To2g[3] = 4Next g[2]End Macro_Command(3:) strError = "重定义错: " 'identifier'函数,变量名字在其作用域内必须是唯一的,For example :Macro_Command main( )int g[10] , gFor g[2] = 0To2g[3] = 4Next g[2]End Macro_Command(4:) "函数名错:" 'identifier'关键字,常量等不能用作函数名For example :Macro_Command If( )int g[10] , gFor g[2] = 0To2g[3] = 4Next g[2]End Macro_Command(5:) "括号不配对" ;左括号,右括号不成对出现For example :Macro_Command main ) //少左括号int g[10] , gFor g[2] = 0To2g[3] = 4Next g[2]End Macro_Command(6:) "If后没有表达式" ;(7:) "If语句没有Then" ;(8:) "没有EndIf语句" ;(9:) End If前面没有出现配对的If" ;(10:) "非法的Else语句" ;If语法结构为:If 条件表达式Then[ Else [If 条件表达式Then ] ]EndIf不服合这种表达形式的If选择语句都是不合法的,将给出对应的编译错(11:) "Case后面应为常量" ;(12:)"Select后少Case关键字" ;(13:)"Select Case 后少表达式" ;(14:)"没有End Select语句(15:) 非法的Case语句" ;(16:)"End Select前面没有出现配对的Select" ;Select Case语法结构为:Select Case 表达式Case 数值常量Case 数值常量Case 数值常量Case ElseEnd Select不服合这种表达形式的Select Case选择语句都是不合法的,将给出对应的编译错(17:)"For循环不配对,Next前应有For关键字" ;(18:)"此处应为整型或字符型变量" ;(19:) "此处应为赋值号" ;(20:)"此处应为关键字To" ;(21:)"没有 Next 语句" ;For循环语法结构为:For 变量 =初值 To 终值 [Step 步长]Next [变量]不服合这种表达形式的For循环语句都是不合法的,将给出对应的编译错(22:)"While循环不配对,Wend前应有While关键字" ;(23:) 没有 Wend 语句" ;While循环语法结构为:While 条件表达式Wend不服合这种表达形式的While循环语句都是不合法的,将给出对应的编译错(24:) "break语句非法" ;Break语句只能在For循环,While循环 ,Select Case选择结构中使用且Break单独成一语句行(25:)"Continue语句非法" ;Continue语句只能在For循环, While循环中使用且Continue单独成一语句行(26:)"表达式不正确" ;(27:) 运算对象非法" ;在表达式中出现与运算符不匹配的运算对象时,将给出此编译错For example :Macro_Command main( )int g[10] , gFor g[2] = 0To2g[3] = 4 + 程Next g[2]End Macro_Command(28:)"此处应为Sub" ;(29:) "此处应为Macro_Command " ;函数的定义形式为:Sub(Macro_Command) 数据类型函数名( … )End Sub(Macro_Command)不服合这种形式的函数定义,将给出对应的编译错误(30:)"参数个数不对" ;(31:)"实参数据类型不匹配" ;(32:)"实参不对";函数调用时,实参与形参必须在数据类型,参数个数上一一对应才能编译通过否则将给出对应的编译错(33:) "没有定义的函数:" ;(34:)数组分量表达形式非法(35:)数组定义非法";(36)数组下标非法的表示,将给出对应的编译错(37:) "没有定义,或声名的变量" ;只能使用已经定义了的或声名了的变量和函数,否则将给出对应的编译错(38:) "不支持的plc地址类型" ;库函数GetData( … ) , SetData( … )的参数中有plc地址类型信息,当plc地址类型不是此种plc支持的地址类型时,将给出对应的编译错(39:) 应为整型,字符形变量或常量" ;数组的表达形式为:定义时: 数组名[常量] (常量描述数组的大小)使用时: 数组名[整形,字符形变量或常量]不服合这种表达形式(40:) "变量定义或声名语句的前面不能有执行语句"For example :int g[10For g[2g[3] = 4int h , kNext g[2]End(41:) "移位运算中,操作数不能为浮点数"(42:) "函数应返回一个值" ;(43) "函数不应返回一个值"(44:) "运算中不能有Float型数据" ;(45:) "plc地址错" ;(46:) "堆栈不能超过4k" ;(47:)"宏指令程序入口只能有一个" ;(48) "宏指令入口函数不唯一: " 'identifier'宏指令的入口函数只能有一个,形式为:Macro_Command 函数名( )End Macro_Command八:程序示例源程序1: For循环,各种表达式(算术,移位,逻辑,关系表达式) Macro_Command main( )int a[10]int b[10]int ib[0]= (400 + 400 << 2) / 401b[1]= 22 *2 - 30 % 7b[2]= 111 >> 2b[3]= 403 > 9 + 3 >= 9 + 3 < 4 + 3 <= 8 + 8 == 8 b[4]= Not8 + 1And2 + 1Or0 + 1Xor2b[5]= 405And3And Not0b[6]= 8 & 4 + 4 & 4 + 8 | 4 + 8 ^ 4b[7]= 6 - ~ 4b[8]= 0x11b[9]= 409For i = 0To4Step 1If( a[0] == 400 ) ThenGetData(a[0] ,3x_Bin ,0,9)SetData(b[0] ,3x_Bin ,11,10)End IfNextEnd Macro_Command2: while ,if , break , continueMacro_Command main( )int a[10]int b[10]int ib[0]= (400 + 400 << 2) - 401 + 99 b[1]= 100b[2]= 111b[3]= 403b[4]= 404b[5]= 405b[6]= 406b[7]= 407b[8]= 400 % 20 + 21b[9]= 409i = 5While i == 5 - 20 % 3SetData(b[1] ,3x_Bin ,11,1) If b[1] == 100ThenBreakSetData(b[0] ,3x_Bin ,12,1)i = 4ContinueSetData(b[0] ,3x_Bin ,13,1) End IfWendEnd Macro_Command3: 全局变量,函数调用char gSub int sin(int j ,int k)int ySetData(j ,3x_Bin ,14,1)GetData(y ,3x_Bin ,15,1)g = yReturn yEnd SubMacro_Command main( )int a[10]int b[10]int ib[0]= (400 + 400 << 2) - 401 + 99 b[1]= 100b[2]= 111b[3]= 403b[4]= 404b[5]= 405b[6]= 406b[7]= 407b[8]= 400 % 20 + 21b[9]= 409i = 5While i == 5 - 20 % 3SetData(b[1] ,3x_Bin ,11,1)If b[1] == 100ThenSetData(b[0] ,3x_Bin ,12,1)i = sin(b[2],b[3] )SetData(g ,3x_Bin ,17,1) SetData(i ,3x_Bin ,16,1)End IfWendEnd Macro_Command4: 控制自已char iint jSub ClientProgram(int flag)End SubMacro_Command main( )int i[10]int j[2]int wchar xFor w = 0To9i[w] = 0NextGetData(i[0] ,3x_Bin ,1,4)w = i[0] + i[1] + i[2] + i[3]If w > 150ThenFor w = 0To3i[w] = 0NextSetData(i[0] ,3x_Bin ,1,4)x = 0SetData(x ,1x_Bin ,3,1)GetData(i[0] ,3x_Bin ,212,2)x = 0SetData(x ,0x_Bin ,4,1)ElseFor w = 0To3i[w] = i[w] + 2*wNextSetData(i[0] ,3x_Bin ,1,4)End IfEnd Macro_Command5: If结构Macro_Command main( )int K[10]int jFor j = 0To10k[j] = jNextEB500 Macro 使用说明If k[0] == 0ThenSetData(k[4],3x_Bin ,0,1)End IfIf k[0] == 0ThenSetData(k[4],3x_Bin ,0,1)ElseSetData(k[5],3x_Bin ,0,1)End IfIf k[1] == 0ThenSetData(k[3],3x_Bin ,1,1)Else If k[1] == 1ThenSetData(k[1],3x_Bin ,2,1)End IfIf k[1] == 0ThenSetData(20,3x_Bin ,3,1)Else If k[1] == 2ThenSetData(k[1],3x_Bin ,4,1)ElseSetData(k[2],3x_Bin ,5,1)End IfEnd Macro_Command6: Select结构Macro_Command main( )int K[10]int jFor j = 0To10k[j] = jNextSelect Case k[1]Case1j = 1BreakCase2j = 2BreakEnd SelectSetData(j,3x_Bin ,0,1)End Macro_CommandMacro_Command main( )int K[10]int jj = 90 * 1k[4] = 8Select Case k[4]Case1j = 1BreakCase3j = 2EB500 Macro 使用说明End SelectSetData(j,3x_Bin ,0,1)End Macro_Command7: while结构Macro_Command main( )char Toggleflagint a[13]int b[14]int c = 4848char i = 0b[0] = 13While b[0]a[i] = 20 + i * 10If a[i] == 120Thenc =200BreakEnd Ifi = i + 1WendSetData(c ,3x_Bin ,2,1)End Macro_CommandMacro_Command main( )int a[250]int b[250]int i = 1a[0] = 1b[0] = 2While a[0]While b[0]b[i ] = 10 + i * 10If b[i] == 210ThenSetData(i ,3x_Bin ,0,2)b[i] = 200BreakEnd Ifi = i + 1WendIf b[i] == 200ThenSetData(b[0] ,3x_Bin ,0,4)BreakEnd IfSetData(b[0] ,3x_Bin ,0,3)WendEnd Macro_CommandMacro_Command main( )int K[10]int j ,ij = 0EB500 Macro 使用说明i = 0While k[i]k[j] = j + 1j = j + 1If j == 5ThenBreakEnd IfSetData(k[0],3x_Bin ,0,5)End Macro_Command8: Break ,Continue结构(1)Macro_Command main( )int K[10]int jFor j = 0To10If j % 2 == 0Thenk[j] = 5ElseBreakEnd IfNextSetData(k[0],3x_Bin ,0,10)End Macro_Command(2)Macro_Command main( )char Toggleflagint a[13]int b[14]int c = 4848char i = 0b[0] = 13While b[0]a[i] = 20 + i * 10If a[i] == 120Thenc =200i = i + 1ContinueEnd Ifi = i + 1If c == 200ThenSetData(c ,3x_Bin ,2,1)BreakEnd IfWendEnd Macro_Command9: 数组结构Macro_Command main( )int a[25]int b[25]int ib[0] = 13For i = 0To b[0] Step1a[i] = 20 + i * 10NextSetData(a[0] ,3x_Bin ,0,13)End Macro_Command10: 其它int x = 0int yfloat fSub char func1()char Toggleflagint a[14]int b[14]int c = 4848char ib[0] = 13Toggleflag = ( b[0] Xor0x89 + (100 /2) << 2 - 123 >> 2 ) If (b[0] Xor0x89 + (100 /2) << 2 - 123 >> 2) == 0Then SetData(Toggleflag ,3x_Bin ,0,1)End IfToggleflag = 1b[0] = 13For i = 0To b[0] Step1a[i] = 20 + i * 10NextIf i < b[0] - 1ThenGetData(a[0] ,0x_Bin ,0,1)If a[0] <> 1ThenEnd IfElseSetData(c ,3x_Bin ,2,1)End IfWhile1If Toggleflag == 1ThenBreakEnd IfWendReturn ToggleflagEnd SubMacro_Command main( )int a[250]int b[250]int iGetData(a[0] ,3x_Bin ,2,2)a[0] = a[0] + 5a[1] = a[1] + 5If a[0] >= 150Thena[0] = 5End IfIf b[0] >= 100Thenb[0] = 5End Iffunc1() == 1End Macro_Command11: 死循环(1)Macro_Command main( )int a[250]int b[250]int i = 1a[0] = 1b[0] = 2While a[0]While b[0]b[i ] = 10 + i * 10If b[i] == 210ThenSetData(i ,3x_Bin ,0,2)b[i] = 10BreakEnd Ifi = i + 1WendIf b[i] == 200ThenSetData(b[0] ,3x_Bin ,0,4) BreakEnd IfSetData(b[0] ,3x_Bin ,0,3)WendEnd Macro_Command(2)Macro_Command main( )char Toggleflagint a[13]int b[14]int c = 4848char i = 0b[0] = 13While b[0]a[i] = 20 + i * 10If a[i] == 120Thenc =200ContinueEnd Ifi = i + 1If c == 200ThenSetData(c ,3x_Bin ,2,1)BreakEnd IfWendEnd Macro_Command12: 死机int x = 0int yfloat fSub func0()If y == 1Theny = 2Else If y == 3ThenReturnEnd IfEnd SubSub char func1()char Toggleflagint a[10]int b[10]int c = 4848char ib[0] = 13For i = 0To b[0] Step1a[i] = 20 + i * 10NextIf i < b[0] - 1ThenGetData(a[0] ,0x_Bin ,0,1)If a[0] <> 1ThenEnd IfElseSetData(c ,3x_Bin ,2,1)End IfToggleflag = 0If (b[0] Xor0x89 + (100 /2) << 2 - 123 >> 2) > 0Then GetData(Toggleflag ,0x_Bin ,0,1)End IfWhile1If Toggleflag == 1ThenBreakEnd IfWendReturn ToggleflagEnd SubMacro_Command main( )int a[250]int b[250]int iEB500 Macro 使用说明 GetData(a[0] ,3x_Bin ,2,2)a[0] = a[0] + 5a[1] = a[1] + 5If a[0] >= 150Thena[0] = 5End IfIf b[0] >= 100Thenb[0] = 5End IfIf func1() == 1ThenSetData(a[0] ,3x_Bin ,2,2)End IfEnd Macro_Command。
威纶通宏指令时间间隔-解释说明
威纶通宏指令时间间隔-概述说明以及解释1.引言1.1 概述在威纶通(Vivante)的图形处理器中,宏指令是一种非常重要的机制,它可以对图形渲染过程进行优化。
与传统的图形处理方式相比,使用宏指令可以极大地提高图形渲染的效率和质量。
而在宏指令使用过程中,时间间隔的设置对其性能和效果也有着至关重要的影响。
本文将针对威纶通宏指令的时间间隔进行探讨和研究。
首先,我们将从概述宏指令的定义和作用开始,介绍宏指令在图形渲染中的重要性。
随后,重点讨论宏指令的使用方法,包括指令的编写和调用方式。
在此基础上,我们将重点探讨宏指令的时间间隔设置,分析其在图形渲染过程中的影响因素和优化方法。
宏指令的时间间隔是指在执行多个宏指令之间所需等待的时间。
这个时间间隔的设置会直接影响到图形渲染的效果和性能。
在本文的结论部分,我们将通过实验和案例分析,总结出威纶通宏指令时间间隔的最佳实践和应用场景。
只有在正确理解和合理设置宏指令的时间间隔后,才能发挥图形处理器的最大性能和效果。
通过本文的研究和分析,读者将能够深入了解威纶通宏指令时间间隔的原理和影响,并且学会如何优化和适配不同应用场景下的宏指令时间间隔设置。
最终,我们希望本文能为读者提供一种指导和参考,帮助他们在图形渲染领域取得更好的成果和性能。
1.2文章结构文章结构部分的内容如下所示:2. 正文本节将详细讨论威纶通宏指令时间间隔的相关内容。
首先,我们将介绍威纶通宏指令的定义,深入了解其基本概念和特点。
随后,我们将探讨威纶通宏指令的作用,明确其在计算机系统中的重要性和价值。
接着,我们将介绍威纶通宏指令的使用方法,给出一些常见的示例和操作步骤,以便读者能够更好地理解和应用这一技术。
最后,在本节的最后一部分,我们将重点讨论威纶通宏指令的时间间隔设置,深入探究其对计算机系统性能的影响以及如何进行优化和调整。
3. 结论在结论部分,我们将对本文所讨论的内容进行总结和归纳。
首先,我们将讨论威纶通宏指令时间间隔的影响因素,包括硬件特性、软件要求等。
Weinview 宏指令使用说明
则预设为 1。 Statements 可 选 ,For 和 Next 之 间 的 语 句 区 块 ,该 语 句 区 块 将 执 行
指定的次数。
(2) While – Wend 语 句 包 含 条 件 控 制 的 循 环 ,条 件 放 置 于 循 环 顶 部 ,当 条 件 的 逻 辑 表 达 式 值 为 TRUE 时,执行循环体中的语句区块。
[Starements – n]] …. Break [Case Else [Else_Statements]] Break End Select
例如
Select Case a Case 1
b=1 Break Case 2
b=2 Break Case Else
b=3 End Select
语法说明 Test_Expression 必 要 , 任 何 数 值 或 字 符 串 表 达 式 。
b. 常数 宏语言支持 (1) 十 进 制 整 数 形 态 常 数 (2)十六进制整数形态常数,以 0x 开头 (3) 字 符 形 态 常 数 (4) 逻 辑 常 数 , True 代 表 真 , False 代 表 假
3. 逻辑变量及表达式 a. 逻辑变量 它 有 真 (True),假 (False)两 种 取 值 的 情 况 ,所 有 非 零 的 值 认 为 是 真 (True),
威纶触摸屏宏指令使用说明
第三十章 宏指令说明 (2)30.1宏指令的结构 (2)30.2宏指令的语法 (4)30.2.1 常量和变量 (4)30.2.2运算符 (7)30.3语句 (10)30.3.1定义语句 (10)30.3.2赋值语句 (11)30.3.3逻辑运算语句 (11)30.3.4 循环语句 (13)30.3.4其他控制命令 (15)30.4 子函数 (16)30.5内置函数功能 (17)30.5.1 数学运算函数 (18)30.5.2 数据转换函数 (24)30.5.3 数据操作函数 (29)30.5.4 位状态转换 (34)30.5.5 通讯有关的函数 (37)30.6 怎样建立和执行宏指令 (52)30.6.1 怎样建立一个宏指令 (52)30.6.2 执行宏指令 (57)30.7 使用宏指令时的注意事项 (58)30.8 使用自由协议去控制一个设备 (59)30.9 编译错误提示信息 (67)30.10 宏指令范例程序 (78)第三十章宏指令说明宏指令提供了应用程序之外附加的你所需要的功能。
在MT8000人机界面运行时,宏指令可以自动的执行这些命令。
它可以担负执行譬如复杂的运算、字符串处理,和使用者与工程之间的交流等功能。
本章主要介绍宏指令的语法、如何使用和编程方法等功能。
希望通过本章的说明,能够使各位能够快速的掌握EB8000软件提供的强大的宏指令功能。
30.1宏指令的结构宏指令是由各种语句组成的。
这些语句包含常数、变量和各种运算符。
这些语句放置在特定的顺序位置以执行后达到一个希望的执行结果。
宏指令的结构一般为以下格式:全局变量声明-----------------------------------可选Sub Function Block Declarations(子函数声明) -----------------------------------可选局部变量声明End Sub(结束子函数)macro_command main() [主函数] ------------------------------------必须局部变量声明[各式语句]end macro_command [结束主函数] ------------------------------------必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
威纶触摸屏宏指令使用说明及应用
第三十章 宏指令说明 (2)30.1宏指令的结构 (2)30.2宏指令的语法 (4)30.2.1 常量和变量 (4)30.2.2运算符 (7)30.3语句 (10)30.3.1定义语句 (10)30.3.2赋值语句 (11)30.3.3逻辑运算语句 (11)30.3.4 循环语句 (13)30.3.4其他控制命令 (15)30.4 子函数 (16)30.5内置函数功能 (17)30.5.1 数学运算函数 (18)30.5.2 数据转换函数 (24)30.5.3 数据操作函数 (29)30.5.4 位状态转换 (34)30.5.5 通讯有关的函数 (37)30.6 怎样建立和执行宏指令 (52)30.6.1 怎样建立一个宏指令 (52)30.6.2 执行宏指令 (57)30.7 使用宏指令时的注意事项 (58)30.8 使用自由协议去控制一个设备 (59)30.9 编译错误提示信息 (67)30.10 宏指令范例程序 (78)第三十章宏指令说明宏指令提供了应用程序之外附加的你所需要的功能。
在MT8000人机界面运行时,宏指令可以自动的执行这些命令。
它可以担负执行譬如复杂的运算、字符串处理,和使用者与工程之间的交流等功能。
本章主要介绍宏指令的语法、如何使用和编程方法等功能。
希望通过本章的说明,能够使各位能够快速的掌握EB8000软件提供的强大的宏指令功能。
30.1宏指令的结构宏指令是由各种语句组成的。
这些语句包含常数、变量和各种运算符。
这些语句放置在特定的顺序位置以执行后达到一个希望的执行结果。
宏指令的结构一般为以下格式:全局变量声明-----------------------------------可选Sub Function Block Declarations(子函数声明) -----------------------------------可选局部变量声明End Sub(结束子函数)macro_command main() [主函数] ------------------------------------必须局部变量声明[各式语句]end macro_command [结束主函数] ------------------------------------必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
威纶通宏指令使用说明(简体)xin
第十八章 宏指令(macro)使用说明宏指令提供了应用程式之外所需的附加功能。
在MT8000触摸屏运行时,宏指令可以自动的执行这些命令。
它可以担负执行例如复杂的运算、字符串处理和用户与工程之间的交流等功能。
本章主要介绍宏指令的语法、如何使用和编辑方法等。
希望通过本章的说明,能够使各位快速的掌握EB8000软件提供的强大的宏指令功能。
18.1 宏指令的结构宏指令是由各种语句组成的。
这些语句包含常量、变量和各种运算符号。
这些语句放置在特定的顺序位置以便执行后达到一个希望的执行结果。
宏指令的结构一般为以下格式:一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
格式为:macro_command 函数名称()end macro_command变量声明必须放在宏指令语句的前面,否则如果语句放置在变量声明的前面,将会造成宏指令无法编译通过。
局部变量一般用在宏指令主函数或者自定义的子函数中。
他的合法性只在指定的函数中有效。
总体变量一般是定义在所有宏指令函数的前面,且它在整个宏指令中均具有效性。
在同一个函数中,当局部变量和总体变量被定义为相同的名称时,只有局部变量有效。
下面就是一个简单的宏指令,其中就包含了变量声明和函数调用。
macro_command main()short pressure = 10 // 局部变量声明SetData(pressure, “Allen-Bradley DF1”, N7, 0, 1) // 函数调用end macro_command此章节将说明宏指令的语法与编写的方式,包含以下几个部分:18.2 宏指令的语法1. 常量与变量a. 常量常量是一个可以被各式语句直接使用的固定资料。
有如下格式:下面即为一个简单的常量使用的范例:macro_command main()short A, B // 声明A和B为短整型变量A = 1234B = 0x12 // 1234 和 0x12 即为常量end macro_commandb. 变量变量是程序执行时保存数据的量,在宏指令中,这些数据可以随着宏指令语句执行的结果而改变。
威纶通人机界面宏指令执行机制说明
威纶通人机界面宏指令执行机制说明2013.06Q:一般会有多个宏指令同时被触发,那么多个宏指令并发执行的机制是什么,是顺序执行还是如何?如何避免多个宏指令同时执行时发生碰撞冲突?如何排序各个宏指令的周期式执行?A:●【HMI分时系统】HMI是一个time-slicing分时系统;PLC控制,事件登录各部分独立运作,没有优先权。
HMI会平均把命令丢给COM口的序列,COM依次执行;●【顺序执行机制】宏指令执行时,依照宏指令编号顺序, 依序检视宏指令是否被触发执行。
●【不存在碰撞的问题】因PLC的COM port就是一个,不可能同时执行两个MACRO的读写;●【一执行,余闲置】当某一条宏指令在执行时, 其余的宏指令将处在idle闲置状态;●【等待时交出执行权】执行中的宏指令,如读写到PLC地址或DELAY动作时, 会将命令发送到command queue中, 并等待命令执行完成的讯息。
而在将命令发出的同时,会将执行权交给下一条等待执行的宏指令;⏹如:同一个LB0上升沿触发多个宏指令(macro 0、macro1、macro2......macro7),那么将先执行macro 0,然后执行macro2,继而是macro3......⏹在执行macro 0时,如果读写到PLC地址或DELAY(dleay_tme)动作,那么会等待回复,并把执行权交出,先执行macro1;⏹Macro1同样如此,如果读写到PLC地址或DELAY(dleay_tme)动作,那么会等待回复,并把执行权交出,先执行macro3......⏹一直到macro7,然后再从macro0继续,如此反复循环;●【等待被检视机制】接收到命令完成讯息的宏指令, 也不是立即恢复执行状态, 而是等到下一次被检视时, 才会恢复执行状态;●【周期执行方式】如需周期式执行宏指令, 可以利用物件设定触发周期, 或是直接设定宏指令的执行周期(EB8000 V4.65.06)●【多个位信号触发同一个宏指令的顺序】宏指令被触发执行后,假使仍处于执行状态,则不再接受其它触发讯号,因此宏指令在执行状态时,并不会因被触发多次而多次执行。
威纶HMI宏指令使用说明
范围 0, 1 ±127 ±32767 ±2147418112
变量声明
变量必须在使用前声明。所以,在宏指令,所有的变量都必须在语句使用前都被声明完成。 声明变量时,先定义变量的类型,后面再跟着变量名称。
如下范例:
int
a
short b, switch
float pressure
5
数组声明
宏指令支持一维数组(下标从 0 开始)。声明数组变量时,先定义数组变量的类型,变量名称, 接着就是该数组变量的个数,变量个数必须放置在“[]”符号中。数组变量的长度为 1~4096。 一个宏指令中只支持 4096 个变量。
变量的命名规则
1. 必须以英文字母开头 2. 变量名成长度不超过 32 个字符 3. 系统保留寄存器名称不能作为变量名称。
下面为 5 种不同的变量类型:
变量类型 Bool 布尔型 Char 字符型 Short 短整型 Int 双整型 Float 浮点型
描述 1 bit (一个位) 8 bits (一个字节) 16 bits (一个字) 32 bits (双字) 32 bits (双字)
3
30.2 宏指令的语法
30.2.1 常量和变量
30.2.1.1 常量
常量是一个可以被各式语句直接使用的固定的数据。有如下格式:
常量类型
使用说明
举例
十进制整型数 十六进制数 字符型 布尔型
必须以 0x 开头 字符必须使用单引号
345, -234, 0, 23456 0x3b, 0xffff, 0x237 ‘a’, ‘data’, ‘函数名称’ true, false
End Sub(结束子函数)
macro_command main() [主函数] 局部----------------------必须
威纶通触摸屏宏指令getdata和setdata函数的使用方法
威纶通触摸屏宏指令getdata和setdata函数的使用方法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, suchas educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!威纶通触摸屏是一款广泛应用于各类电子设备中的触摸屏产品,其功能强大且灵活,为开发者提供了丰富的接口和指令,以满足不同场景下的需求。
威纶通宏指令循环指令
威纶通宏指令循环指令威纶通宏指令和循环指令是计算机中的两种重要命令。
威纶通宏指令通常用于编写复杂的程序或自定义函数,而循环指令则可以帮助程序员在程序中重复执行某个操作。
下面我们将介绍威纶通宏指令和循环指令的详细特点和使用方法。
威纶通宏指令是一种高级编程语言的一个组成部分。
威纶通宏指令可以在一个程序的任何位置使用,它可以定义全局变量和函数,也可以使用已经定义好的函数。
威纶通宏指令的作用在于,可以使程序代码更加简洁,方便程序员进行复杂的逻辑处理。
威纶通宏指令的语法格式一般如下:#define [宏名称] [替换文本]其中,[宏名称]是威纶通宏指令的名称,[替换文本]是需要替换的宏代码。
威纶通宏指令可以定义一个参数或多个参数,通过使用逗号分隔参数的方式。
威纶通宏指令还支持 #if, #else, #endif 等条件语句,使程序的逻辑更加丰富多彩。
循环指令是在程序中重复执行某个操作的命令。
循环指令可以帮助程序员节省大量的时间和代码量。
常见的循环指令有 for, while 和 do-while 等。
下面我们来介绍一下 for 循环指令的使用方法。
for 循环指令的语法格式如下:for ([初始化代码]; [循环条件]; [每轮循环结束后执行的代码]) {[需要重复执行的代码]}其中,[初始化代码] 用于初始化循环计数器,[循环条件] 是一个布尔表达式,只要满足条件就会继续循环,[每轮循环结束后执行的代码] 是在每轮循环结束后执行的代码。
需要重复执行的代码写在大括号内部。
总之,威纶通宏指令和循环指令都是非常重要的命令,在编写复杂的程序代码时,这两种命令都是必不可少的。
使用威纶通宏指令可以简化代码,提高程序的可读性和维护性。
使用循环指令可以节省大量的时间和代码量,让程序变得更加高效。
无论是在哪个行业,学会威纶通宏指令和循环指令的使用方法都是非常重要的。
威纶通触屏宏指令判断范例
威纶通触屏宏指令判断范例大家好,今天咱们来聊聊一个非常实用又有点“硬核”的话题——威纶通触屏宏指令判断。
说实话,这个话题一开始听起来有点晦涩,对不对?就像你听到“微积分”三个字时,脑袋瞬间冒出一堆问号,心里暗叫:“这是什么鬼?”其实呢,它并没有想象中的那么复杂,只要稍微捋清楚几个关键点,别说是触屏宏指令判断,整个控制系统你都能摸得滚瓜烂熟,指哪儿打哪儿!不过说实话,刚开始学的时候我也有点“晕乎乎”的,脑袋一片空白,觉得这简直是对智商的挑战。
但慢慢来,关键就在于了解原理,接着操作,肯定没问题。
好啦,咱们先说说什么是威纶通触屏宏指令吧。
简单来说,它就是一种可以在威纶通触摸屏上进行操作的指令,让你控制机器的行为,比如显示某个界面、触发某个动作,或者切换状态。
那它和普通的控制指令有啥不同呢?嗯,普通的控制指令一般就一个简单的命令,执行完就好了;但触屏宏指令则更智能一些,能根据不同的输入判断不同的输出。
你可以理解为它就像是一个“聪明的开关”,不再死板地执行某个动作,而是能根据具体情况做出判断,保证系统按照预期的方式运行。
举个例子,你要设计一个操作界面,里面有个按钮,按下去之后,触屏需要做出反应。
那如果按下去的时候,它就直接跳转到另一个界面,这是普通的指令对吧?但如果你用了宏指令,那就不只是跳转那简单了,它可以根据不同的条件判断决定跳转哪个界面。
比如,按下按钮后,如果机器状态是“停止”,它跳到一个“启动”界面;如果是“运行”,它就跳到“暂停”界面。
这样一来,界面不仅仅是死板地切换,它能根据实际的情况灵活变化,操作起来更加贴心、智能。
宏指令的判断条件是怎么写的呢?其实也并不复杂,你只需要设置好相应的判断条件,然后就可以使用宏指令来执行相应的操作。
这就像是一个人遇到路口,需要做决策,路口上有两个方向,他根据天气、时间、心情等因素,选择自己认为最合适的路走。
简单来说,就是一个“判断题”加“选择题”,然后触屏系统会根据设定的条件,给你一个准确的答复。
威纶触摸屏宏指令使用说明
变量的命名规则
1. 必须以英文字母开头 2. 变量名成长度不超过 32 个字符 3. 系统保留寄存器名称不能作为变量名称。
下面为 5 种不同的变量类型:
变量类型 Bool 布尔型 Char 字符型 Short 短整型 Int 双整型 Float 浮点型
ห้องสมุดไป่ตู้
描述 1 bit (一个位) 8 bits (一个字节) 16 bits (一个字) 32 bits (双字) 32 bits (双字)
下面即为一个简单的常量使用的范例。
macro_command main() short A, B // 声明A和B为短整型变量
A = 1234 B = 0x12
// 1234 和 0x12 即为常量
end macro_command
30.2.1.2 变量
4
变量是一个代表着各种资料的名称。在宏指令中,这些资料可以随着宏指令语句执行的结果 改变而改变。
一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。格式为:
macro_command 函数名称()
end macro_command
变量声明必须放在宏指令语句的前面,否则如果语句放置在变量声明的前面,将会造成宏指 令无法编译通过。
局部变量一般用在宏指令主函数或者自定义的子函数中。它的合法性只在指定的函数中有 效。 全局变量一般是定义在所有宏指令函数的前面,且它在整个宏指令中均具有有效性。当局部 变量和全局变量被定义为相同的名称时,只有局部变量有效。
3
30.2 宏指令的语法
30.2.1 常量和变量
30.2.1.1 常量
常量是一个可以被各式语句直接使用的固定的数据。有如下格式:
常量类型