威纶触摸屏宏指令使用说明
- 格式:pdf
- 大小:469.53 KB
- 文档页数:84
威纶通宏指令for威纶通宏指令for是一种用于控制微控制器和单片机的高级语言。
它是一种结构化的编程语言,可以帮助开发者快速、高效地编写程序。
宏指令for是一种循环结构,用于重复执行一段代码。
它的语法形式为:for (初始化; 条件; 更新) { 循环体 }。
其中,初始化表达式用于初始化循环变量;条件表达式用于判断是否继续执行循环;更新表达式用于更新循环变量的值。
使用威纶通宏指令for,可以实现各种循环操作。
例如,可以使用for循环来遍历数组或列表中的元素,对每个元素执行相同的操作。
下面是一个简单的例子:for (int i = 0; i < 10; i++) {// 执行循环体操作printf("当前循环次数:%d\n", i);}上述代码中,初始化表达式将循环变量i初始化为0;条件表达式判断i是否小于10;更新表达式将i的值增加1。
循环体中的代码将打印出当前循环次数。
当i的值等于10时,条件表达式为假,循环结束。
除了遍历数组或列表,宏指令for还可以用于执行固定次数的循环操作。
例如,可以使用for循环来实现倒计时功能:for (int i = 10; i > 0; i--) {// 执行循环体操作printf("倒计时:%d\n", i);}上述代码中,初始化表达式将循环变量i初始化为10;条件表达式判断i是否大于0;更新表达式将i的值减少1。
循环体中的代码将打印出当前倒计时的值。
当i的值等于0时,条件表达式为假,循环结束。
除了基本的循环功能,宏指令for还支持嵌套循环。
嵌套循环是指在一个循环内部再嵌套另一个循环。
这种结构可以用于处理复杂的问题,例如生成九九乘法表:for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {// 执行循环体操作printf("%d × %d = %d\t", j, i, j * i);}printf("\n");}上述代码中,外层循环控制行数,内层循环控制列数。
威纶通宏指令赋值-概述说明以及解释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。
第三十章 宏指令说明 (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 数组中。
维纶触摸屏通过宏指令实现自动登陆一个默认用户
使用维纶触摸屏时,想要实现开机启动后自动登陆一个默认的用户账号,可使用宏指令实现自动登陆用户的目的。
编程软件:EasyBuilderpro
方法:点击“宏指令”,新增一个宏macro_0,注意:设置当HMI启动时执行一次,具体代码如下:
代码中的函数不再做详细讲解,这里主要针对几个要操作的触摸屏内的用户自定义标签说明一下,如下表:
代码编写思路如下:
首要确认要默认登陆的用户索引,这里我们登录默认用户 Default,因此索引为1,其他根据实际进行相应改变,如下图:
密码为1,但赋值给LW8962时应赋予1对应的ASCLL码,为49.
最后再对命令变量赋值,登录命令数值为 2
最后编译保存,运行触摸屏仿真或下载到触摸屏启动后,即可实现自动登陆用户Default,如图:
通过以上简单的宏指令代码即可实现自动登陆一个默认账户的目的。
威纶通宏指令时间间隔-概述说明以及解释1.引言1.1 概述在威纶通(Vivante)的图形处理器中,宏指令是一种非常重要的机制,它可以对图形渲染过程进行优化。
与传统的图形处理方式相比,使用宏指令可以极大地提高图形渲染的效率和质量。
而在宏指令使用过程中,时间间隔的设置对其性能和效果也有着至关重要的影响。
本文将针对威纶通宏指令的时间间隔进行探讨和研究。
首先,我们将从概述宏指令的定义和作用开始,介绍宏指令在图形渲染中的重要性。
随后,重点讨论宏指令的使用方法,包括指令的编写和调用方式。
在此基础上,我们将重点探讨宏指令的时间间隔设置,分析其在图形渲染过程中的影响因素和优化方法。
宏指令的时间间隔是指在执行多个宏指令之间所需等待的时间。
这个时间间隔的设置会直接影响到图形渲染的效果和性能。
在本文的结论部分,我们将通过实验和案例分析,总结出威纶通宏指令时间间隔的最佳实践和应用场景。
只有在正确理解和合理设置宏指令的时间间隔后,才能发挥图形处理器的最大性能和效果。
通过本文的研究和分析,读者将能够深入了解威纶通宏指令时间间隔的原理和影响,并且学会如何优化和适配不同应用场景下的宏指令时间间隔设置。
最终,我们希望本文能为读者提供一种指导和参考,帮助他们在图形渲染领域取得更好的成果和性能。
1.2文章结构文章结构部分的内容如下所示:2. 正文本节将详细讨论威纶通宏指令时间间隔的相关内容。
首先,我们将介绍威纶通宏指令的定义,深入了解其基本概念和特点。
随后,我们将探讨威纶通宏指令的作用,明确其在计算机系统中的重要性和价值。
接着,我们将介绍威纶通宏指令的使用方法,给出一些常见的示例和操作步骤,以便读者能够更好地理解和应用这一技术。
最后,在本节的最后一部分,我们将重点讨论威纶通宏指令的时间间隔设置,深入探究其对计算机系统性能的影响以及如何进行优化和调整。
3. 结论在结论部分,我们将对本文所讨论的内容进行总结和归纳。
首先,我们将讨论威纶通宏指令时间间隔的影响因素,包括硬件特性、软件要求等。
第三十章 宏指令说明 (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 [结束主函数] ------------------------------------必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
威纶通宏指令显示字符
威纶通HMI的宏指令可以使用各种函数,包括字符串处理函数。
在处理字符串时,可以使用一些函数来显示或转换字符。
例如,可以使用StringSet函数来设置显示字符串。
这个函数可以接受源字符串和目标字符串作为参数,然后将源字符串的内容设置为目标字符串。
此外,还有一些其他的字符串处理函数,如String2Unicode、Utf82Unicode和Unicode2Utf8等,这些函数可以在ASCII码和Unicode码之间进行转换。
这些函数可以用于处理包含非英文字符的字符串,例如中文。
以上是一些常用的威纶通HMI宏指令和字符串处理函数,可以根据具体的需求选择适合的函数来处理和显示字符。
关于威纶通宏指令的2份实用案例威纶通宏指令控制PLC点位断电保持的案例触摸屏是TK6070iP ,PLC是欧姆龙CP系列需要达到的目的:触摸屏上的按钮按下时,同时控制PLC上的点动作EB8000提供了可以掉电保存的寄存器RW和RW_A两种寄存器来实现配方的保存和传送。
在此选择了保持寄存器的位地址为RW_Bit 2(具体地址可以自主选择,只要选择的寄存器可以断电保持的就可以);威纶通的触摸屏无法直接通过屏幕上的按钮控制PLC的实际输入点,需要通过中间变量点(非PLC的实际输入点)来实现控制,在此选择中间变量点CIO_Bit 19.10在屏幕新建一个“位状态切换开关”元件,各设置如下二、为了在测试时便于观察,可以在屏幕上新建两个位状态指示灯三、因为断电保持的是RW_Bit 2的数据,而CIO_Bit 19.10不能保持,所以需要另外一个宏指令上电时读取RW_Bit 2的数据,并且写入CIO_Bit 19.10。
新建一个“位状态设置”元件。
(要把此元件放在触摸屏上电开机之后的第一页面中)这里的位地址不一定要用RW_Bit只要不和其他数据地址冲突就可以使用。
四、宏指令[ID:000] Macro_0macro_command main()bool dGetData(d, "Local HMI", RW_Bit, 2, 1)if d==1 thenSetData(d, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)else if d==0 thenSetData(d, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)end ifend macro_command[ID:002] Macro_2macro_command main()bool e,f,hh=1GetData(e, "Local HMI", RW_Bit, 2, 1)if e==1 thenf=0SetData(f, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1) else if e==0 thenf=1SetData(f, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1) end ifSetData(h, "Local HMI", LB, 9029, 1)end macro_command在宏指令macro_2中使用的SetData(h, "Local HMI", LB, 9029, 1),是为了让数据能够实时的保存,而不用等待1分钟(MT8000会每隔1分钟将配方数据RW 或RW_A存放至机器的内部存储器)威纶通触摸屏宏指令举例:加法运算在10号窗口,放三个数值原件地址分别为LW0,LW1,LW2,格式选择为16位无符号二、在宏指令窗口建立加法的算法,其中//为其加的注释运行效果如图说明:触发宏指令的条件有多种,本文试举三种:功能键触发、位状态原件触发、PLC触发。
第十八章 宏指令(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. 变量变量是程序执行时保存数据的量,在宏指令中,这些数据可以随着宏指令语句执行的结果而改变。
威纶通触摸屏宏指令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!威纶通触摸屏是一款广泛应用于各类电子设备中的触摸屏产品,其功能强大且灵活,为开发者提供了丰富的接口和指令,以满足不同场景下的需求。
威纶通485宏指令-概述说明以及解释1.引言1.1 概述威纶通485宏指令是一种基于威纶通485通信协议的特殊指令集,用于控制和管理与威纶通485设备的通信和数据传输。
宏指令可以通过编程的方式在主机控制设备中运行,以有效地完成各种任务和操作。
威纶通485宏指令被广泛应用于物联网、工业自动化、楼宇自控、环境监测等领域。
通过使用宏指令,用户可以轻松地实现对威纶通485设备的监控、控制和数据采集。
无论是单个设备还是大规模设备网络,威纶通485宏指令都提供了可靠和高效的解决方案。
此外,威纶通485宏指令还具备灵活性和扩展性,用户可以根据实际需求自定义宏指令,实现更加复杂和精细的控制和操作。
这使得宏指令成为了威纶通485设备与其他设备、系统和平台实现无缝集成和互通的桥梁。
本文将介绍威纶通485宏指令的定义、作用、使用方法以及其在不同应用场景中的优势。
通过深入理解和掌握威纶通485宏指令,读者将能够更好地应用宏指令来提高设备控制和管理的效率以及拓展设备应用的领域。
同时,本文还将展望威纶通485宏指令未来的发展趋势,以期为读者提供有价值的信息和参考。
1.2 文章结构本文主要围绕威纶通485宏指令展开讨论,通过以下几个部分进行阐述和分析。
1. 引言:- 在引言部分,我们将对威纶通485宏指令的概述进行介绍,包括其定义、作用和重要性。
- 然后,我们将简要说明本文的结构和目的,以便读者能够更好地理解和阅读后续内容。
2. 正文:- 正文部分将分为三个小节,详细探讨威纶通485宏指令的定义、使用方法、优势和应用场景。
- 在2.1节中,我们将解释威纶通485宏指令的定义和作用,帮助读者全面了解其基本概念和功能。
- 在2.2节中,我们将详细介绍威纶通485宏指令的使用方法,包括指令的结构和参数的设置方式。
- 在2.3节中,我们将深入探讨威纶通485宏指令的优势和应用场景,从不同的角度分析其价值和适用性。
3. 结论:- 结论部分将对威纶通485宏指令的重要性进行总结,强调其在现代通信领域的实际应用和作用。
第三十章 宏指令说明 (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 [结束主函数] ------------------------------------必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
格式为:macro_command函数名称()end macro_command变量声明必须放在宏指令语句的前面,否则如果语句放置在变量声明的前面,将会造成宏指令无法编译通过。
局部变量一般用在宏指令主函数或者自定义的子函数中。
它的合法性只在指定的函数中有效。
全局变量一般是定义在所有宏指令函数的前面,且它在整个宏指令中均具有有效性。
当局部变量和全局变量被定义为相同的名称时,只有局部变量有效。
下面就是一个简单的宏指令,其中就包含了变量声明和功能执行。
macro_command main()short pressure = 10 // 局部变量声明SetData(pressure, "Allen-Bradley DF1", N7, 0, 1) // 功能执行macro_commandend30.2宏指令的语法30.2.1 常量和变量30.2.1.1常量常量是一个可以被各式语句直接使用的固定的数据。
有如下格式:常量类型使用说明举例十进制整型数345, -234, 0, 23456十六进制数必须以 0x开头0x3b, 0xffff, 0x237字符型字符必须使用单引号‘a’, ‘data’, ‘函数名称’false 布尔型true,下面即为一个简单的常量使用的范例。
macro_command main()short A, B // 声明A和B为短整型变量A = 1234B = 0x12 // 1234 和 0x12 即为常量end macro_command30.2.1.2 变量变量是一个代表着各种资料的名称。
在宏指令中,这些资料可以随着宏指令语句执行的结果改变而改变。
变量的命名规则1. 必须以英文字母开头2. 变量名成长度不超过32个字符3. 系统保留寄存器名称不能作为变量名称。
下面为5种不同的变量类型:变量类型描述范围1Bool 布尔型 1 bit (一个位) 0,Char 字符型8 bits (一个字节) ±127Short 短整型16 bits (一个字) ±32767Int 双整型32 bits (双字) ±2147418112Float 浮点型32 bits (双字)变量声明变量必须在使用前声明。
所以,在宏指令,所有的变量都必须在语句使用前都被声明完成。
声明变量时,先定义变量的类型,后面再跟着变量名称。
如下范例:int aswitchshort b,float pressure数组声明宏指令支持一维数组(下标从0开始)。
声明数组变量时,先定义数组变量的类型,变量名称,接着就是该数组变量的个数,变量个数必须放置在“[]”符号中。
数组变量的长度为1~4096。
一个宏指令中只支持4096个变量。
如下范例:int a[10]switch[30]short b[20],float pressure[15]数组的下标最小为0,最大下标为(数组的长度-1)如下范例:char data 100] // 数组变量的长度是100所以: 最小的数组为“data[0]”,最大的数组为“data[99]”,即100-1=99。
变量和数组初始化有两种方法可以让变量初始化:1. 使用语句中的赋值语句(=)如下范例:aintb[3]floata = 10b[0] = 12. 声明变量时直接赋值char a = ‘5’, b = 9数组变量的声明是一个特殊的情况。
一个完整的数组被初始化时,可以在数组变量声明时,将数据放置在波形括号“{}”里面,各数据使用逗号分开。
如下所示:float data[4] = {11, 22, 33, 44} //这样data[0] = 11, data[1] = 22….30.2.2运算符运算符通常被用来指定数据是如何被操作的。
在任何一个语句中,运算符左边的变量结果均依据运算符右边的条件而获得。
运算符描述举例= 赋值运算符pressure = 10数学运算符描述举例+ 加 A = B + C- 减 A = B – C* 乘 A = B * C/ 除 A = B / C% 求余(返回剩余数) A = B % 5比较运算符描述举例< 小于if A < 10 then B = 5<= 小于或者等于if A >= 10 then B = 5> 大于if A < 10 then B = 5>= 大于或者等于if A <= 10 then B = 5== 等于if A == 10 then B = 5<> 不等于if A <> 10 then B = 5逻辑运算符描述举例And 与if A < 10 and B > 5 then C = 10Or 或if A >= 10 or B > 5 then C = 10Xor 异或if A xor 256 then B = 5Not 非if not A then B = 5移位和位运算符通常被用来操作字符型变量、短整型变量和双整型变量的位。
在一个语句中,这些运算符的优先权是在从该语句的左边到右边依此执行的。
即在语句中左边位置的优先执行,依次从左到右执行。
移位运算符描述举例<< 往左移动指定的位数 A = B << 8>> 往右移动指定的位数 A = B >> 8位运算符描述举例& 位与运算 A = B & 0xf| 位或运算 A = B | C^ 位异或运算 A = B ^ C~ 位取反运算 A = ~B所有运算符的优先权上述所有运算符的优先权从高到低详细如下所述:位于圆括号里面的运算符最优先数学运算符移位和位运算符比较运算符逻辑运算符赋值运算符关键词下面的关键词为宏指令保留使用。
这些均不能用来作为变量名称、数组名称或者函数名称等。
+, -, *, /, %, >=, >, <=, <, <>, ==, and, or, xor, not, <<, >>,=, &, |, ^, ~exit, macro_command, for, to, down, step, next, return, bool, short, int, char, float, void, if, then, else, break, continue, set, sub, end, while, wend, true, falseSQRT, CUBERT, LOG, LOG10, SIN, COS, TAN, COT, SEC, CSC, ASIN, ACOS, ATAN,BIN2BCD, BCD2BIN, DEC2ASCII, FLOAT2ASCII, HEX2ASCII, ASCII2DEC, ASCII2FLOAT, ASCII2HEX, FILL, RAND, DELAY, SWAPB, SWAPW, LOBYTE, HIBYTE, LOWORD, HIWORD, GETBIT, SETBITON, SETBITOFF, INVBIT, ADDSUM, XORSUM, CRC, INPORT, OUTPORT, POW, GetError, GetData, GetDataEx, SetData, SetDataEx30.3语句30.3.1定义语句这个定义语句包含了变量和数组的声明。
正式的格式如下:类型名称当定义一个名称的类型时举例:int A //定义了变量A为双整型格式类型数组名称[数组长度] 当定义数组名称的类型时举例:B[10] 定义了一维数组变量B的长度为10,类型为双整型int30.3.2赋值语句赋值语句使用赋值运算符将赋值运算符右边表达式运算的结果放置到运算符左边的变量中。
一个运算表达式是由变量、常量和各种运算符组成,执行后产生一个新的数据。
变量 = 表达式举例A = 2 这样变量A就被赋值为230.3.3逻辑运算语句逻辑运算语句是根据逻辑(布尔)表达式的结果来执行相应的动作。
它的语句如下所示:单行格式if < Condition > then[Statements]else[Statements]end if举例:if a = = 2 then1=belseb2=end if区块格式If <Condition > then[Statements]else if < Condition- n> then[Statements]else[Statements]end if举例:if a = = 2 thenb1=else if a = = 3=2belse3=bend if语法描述:if 必须用在该语句的开始部分<Condition> 必要条件。