威纶触摸屏宏指令使用说明.pdf
《威纶触摸屏宏指令使用说明.pdf》由会员分享,可在线阅读,更多相关《威纶触摸屏宏指令使用说明.pdf(84页珍藏版)》请在咨信网上搜索。
1、第三十章宏指令说明.230.1 宏指令的结构.230.2 宏指令的语法.430.2.1 常量和变量.430.2.2 运算符.730.3 语句.10303.1定 义语句.1030.3.2 赋值语句.1130.3.3 逻辑运算语句.1130.3.4 循环语句.13303.4其 他控制命令.1530.4 子函数.1630.5 内置函数功能.1730.5.1 数学运算函数.1830.5.2 数据转换函数.2430.5.3 数据操作函数.2930.5.4 位状态转换.3430.5.5 通讯有关的函数.3730.6 怎样建立和执行宏指令.5230.6.1 怎样建立一个宏指令.5230.6.2 执行宏指令.
2、5730.7 使用宏指令时的注意事项.5830.8 使用自由协议去控制一个设备.5930.9 编译错误提示信息.6730.10 宏指令范例程序.781第三十章宏指令说明宏指令提供了应用程序之外附加的你所需要的功能。在MT8000人机界面运行时,宏指令可 以自动的执行这些命令。它可以担负执行譬如复杂的运算、字符串处理,和使用者与工程之 间的交流等功能。本章主要介绍宏指令的语法、如何使用和编程方法等功能。希望通过本章 的说明,能够使各位能够快速的掌握EB8000软件提供的强大的宏指令功能。30.1宏指令的结构宏指令是由各种语句组成的。这些语句包含常数、变量和各种运算符。这些语句放置在特定 的顺序位
3、置以执行后达到一个希望的执行结果。宏指令的结构一般为以下格式:全局变量声明-可选Sub Function Block Declarations(子函数声明)-可选局部变量声明End Sub(结束子函数)macro_command main()主函数-必须局部变量声明各式语句2pnd mjirrn rcmm分nd结束主函数 _必绅一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。格式为:macro_command 函数名称()end macro_command变量声明必须放在宏指令语句的前面,否则如果语句放置在变量声明的前面,将会造成宏指 令无法编译通过。局部变量一般用在宏指令主函数或
4、者自定义的子函数中。它的合法性只在指定的函数中有 效。全局变量一般是定义在所有宏指令函数的前面,且它在整个宏指令中均具有有效性。当局部 变量和全局变量被定义为相同的名称时,只有局部变量有效。下面就是一个简单的宏指令,其中就包含了变量声明和功能执行。macro_command main()short pressure=10SetData(pressure,Allen-Bradley DF1,N7,0,1)end macro_command/局部变量声明/功能执行330.2宏指令的语法30.2.1常量和变量30.2.1.1 常量常量是一个可以被各式语句直接使用的固定的数据。有如下格式:常量类型使用
5、说明举例十进制整型数345,-234,0,23456十六进制数必须以Ox开头0 x3b,Oxffff,0 x237字符型字符必须使用单引号a,data,函数名称布尔型true,false下面即为一个简单的常量使用的范例。macro_command main()short A,B/声明A和B为短整型变量A=1234B=0 xl2/1234 和 0 x12 即为常量end macro_command30.2,1,2 变量 4变量是一个代表着各种资料的名称。在宏指令中,这些资料可以随着宏指令语句执行的结果 改变而改变。变量的命名规则1.必须以英文字母开头2.变量名成长度不超过32个字符3.系统保留寄
6、存器名称不能作为变量名称。下面为5种不同的变量类型:变量类型描述范围Bool布尔型1 bit(一个位)0,1Char字符型8 bits(一个字节)+127Short短整型16 bits(一个字)+32767Int 双整型32 bits(双字)2147418112Float浮点型32 bits(双字)变量声明变量必须在使用前声明。所以,在宏指令,所有的变量都必须在语句使用前都被声明完成。声明变量时,先定义变量的类型,后面再跟着变量名称。如下范例:int ashort b,switchfloatpressure5数组声明宏指令支持一维数组(下标从。开始)。声明数组变量时,先定义数组变量的类型,变量
7、名称,接着就是该数组变量的个数,变量个数必须放置在“”符号中。数组变量的长度为1-4096。一个宏指令中只支持4096个变量。如下范例:int a 10short b 20,switch 30float pressure 15数组的下标最小为0,最大下标为(数组的长度-1)如下范例:char data 100/数组变量的长度是100所以:最小的数组为“data 0”,最大的数组为“data 99”,即100-1=99o变量和数组初始化有两种方法可以让变量初始化:1.使用语句中的赋值语句(二)如下范例:int afloat b 36a=10b 0=12.声明变量时直接赋值char a=5,b=9
8、数组变量的声明是一个特殊的情况。一个完整的数组被初始化时,可以在数组变量声明时,将数据放置在波形括号“”里面,各数据使用逗号分开。如下所示:float data 4=11,22,33,44 这样 data 0=11,data l=22.30.2.2运算符运算符通常被用来指定数据是如何被操作的。在任何一个语句中,运算符左边的变量结果均 依据运算符右边的条件而获得。运算符描述举例二赋值运算符pressure=10数学运算符描述举例+加A=B+C-减A=B-C*乘A=B*C7/除A=B/C%求余(返回剩余数)A=B%5比较运算符描述举例小于if A 10 then B=5=10 then B=5大于
9、if A=大于或者等于if A=10 then B=5=等于if A=10 then B=5不等于if A 10 then B=5逻辑运算符描述举例And与if A 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 88位
10、运算符描述举例&位与运算A=B&Oxf1位或运算A=B ICA位异或运算A=B AC位取反运算A二B所有运算符的优先权上述所有运算符的优先权从高到低详细如下所述:位于圆括号里面的运算符最优先 数学运算符 移位和位运算符 比较运算符 逻辑运算符 赋值运算符关键词下面的关键词为宏指令保留使用。这些均不能用来作为变量名称、数组名称或者函数名称等。+,*,/,%,=,=,=,and,or,xor,not,=,&,I,A,exit,macro_command,for,to,down,step,next,return,bool,short,int,char,float,void,if,then,else,
11、break,continue,set,sub,end,while,wend,true,false9SQRT,CUBERT,LOG,LOG 10,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,IN
12、PORT,OUTPORT,POW,GetError,GetData,GetDataEx,SetData,SetDataEx30.3语句30.3.1 定义语句这个定义语句包含了变量和数组的声明。正式的格式如下:类型 名称 当定义一个名称的类型时举例:int A 定义了变量A为双整型格式类型数组名称数组长度当定义数组名称的类型时举例:intB 10 定义了一维数组变量B的长度为10,类型为双整型1030.3.2 赋值语句赋值语句使用赋值运算符将赋值运算符右边表达式运算的结果放置到运算符左边的变量中。一个运算表达式是由变量、常量和各种运算符组成,执行后产生一个新的数据。变量=表达式举例A=2 这样变
13、量A就被赋值为230.3.3 逻辑运算语句逻辑运算语句是根据逻辑(布尔)表达式的结果来执行相应的动作。它的语句如下所示:单行格式if then Statementselse Statementsend if举例:if a=2 thenb=1else11b=2end if区块格式If then Statementselse if then Statementselse Statementsend if举例:if a=2 thenb=1else if a=3b=2elseb=3end if语法描述:if必须用在该语句的开始部分12必要条件。这是一个控制语句。当Condition为。时,即为FALE
14、S”,(条件为假);当Condition为非0时,即为“True(条件为真)。then当Condition执行为“TRUE(真)时,必须放置在需要执行的语句之前。Statements在区块形式中是可选择的参数,在单行形式中,且没有else子句时,为必 要参数,该语句在Condition,为真时执行。else if可选,一条或多条语句,在相对应的Condition-n为true时执行。可选,解释同Conditionelse可选,在上述Condition和Condition-n都不为true时执行。end if必须。在一个if-then语句中使用这个来结束if-then语句。30.3.4循环语句循
15、环语句依据循环条件来反复的执行一个任务。循环语句有两种表达方式。30.3.4.1 for-next 语句For-next语句通常用来执行次数固定的循环任务。一个变量用作为任务执行次数的计数器和 结束循环任务执行的条件。这个变量为固定执行的次数。语法结构如下:for Counter=to step Statementsnext Counter或者13for Counter=down step Statementsnext Counter举例:for a=0 to 10 step 2b=anext a语法描述:for必须用在该语句的开始部分。Counter必要,循环计数器的数值变量,该变量的结果用
16、来计数循环的次数。必要,Counter的初值。to/down必要。用来决定步长是递增还是递减。This determines if the increments or decrements the.“to”递增Counterby.“down”递减Counterby.必要,Counter的终值。测试点。当vConnter大于该值时,宏指令将结束这 个循环任务。step可选,指定StepValue的步长,指定为1以外的数值。StepValue可选,Counter的步长,只能是数值,如果没有指定,则预设为1。Statements可选,for和next之间的语句区块,该语句区块将执行所指定的次数。ne
17、xt必须的。Counter可选。1430.3.4.2 while-wend 语句While-wend语句是用来执行不确定次数的循环任务。设置一个变量用来判断结束循环的条 件。当条件为“True”时,该语句将一直循环执行直到条件变为“False”。语法结构如下:while Statementswend举例:while a 0 thenread_data O=response 4+(response 3 8)/data in 4x_lread_data 1 =response 6+(response 5 8)/data in 4x_2SetData(read_data O,Local HMI,LW
18、,100,2)end ifend macro_command函数名称GetData语法GetData(read_data start,device.函数名称,device_type,address_offset,data_count)or43GetData(read_data,device.函数名称,device_type,address_offset,1)描述获取 PLC 的数据。数据是存储在 read_data startread_data start+data_count-1 这些一维数组变量中。data_count是设定的读取数据的个数。一般来说,read_data是一个一维数组,但是
19、如果data_count是1,read_data可以是一个一维数组,也可以是一个普通 的变量。下面是两种从PLC中读取一个字的方法。ns)CC eiacro_command main()lort read_data_l 2,read_data_2retData(read_data_l O,4FATEK FB Series,RT,5,1).etData(read_data_2,“FATEK FB Series,RT,5,1)nd macro_command此处的device.函数名称,即为在“系统参数”中建立“PLC类蛋的“PLC名称。在此,PLC名称被设定为“FATEKFB Series,:!
20、”时,设定如下图所示。DeviceModel G eneralSecurity FontDevice list:Name L ocationDevice TypeStat.l/FPortIlL uCdl HMI IL ocalMT8xxxN/AN/AN/ARemote HMI ARemote(IP:192,168.0,205,Port.MT8xxxN/AN/AN/ARemote HMI BRemote(IP:210.68.117.224,Po.MTSxxxN/AN/AN/ARemote HMI CRemote aP:210.68.117.224,Po.MTSxxxN/AN/AN/AMITSUB
21、ISHI FXOn(L ocal)L ocalMITSUBISHI FX.0RS.COMFATEK(L ocal)L ocalFATEK FB Series1RS.COMdMITSUBISHI FX3uRemote 0P:210.68.117,224,Po.MITSUBISHI FX.0RS.COMFATEK FB Series生 mote(IP:210.68.117.224,Po.FATEK FB Series1RS.COMevice_type是设备类型和PL C中数据的编码方式。例如:如果device_type是44LW_BIN,那么读取的设备类型为LW,数据编码方式为BINo如果使用BI
22、N 编码方式,可以忽略。如果devicejype是LW_BCD,表示设备类型LW,数据的编码方式为BCD格 式。address.offset是PLC中的地址偏移量。例如,GetData(read_data_l O,t4FATEK FB Series,RT,5,1)代表读取的设备 地址偏移量为5o如果address_offset使用格式为N#AAAAA”,N表示PLC的站号,AAAAA 表示地址偏移量。此情况一般使用在同一个串口上连接有多台PLC或者控制 器的情况下。例如:GetData(read_data_l O,4tFATEK FB Series,RT,2#5,1)表 示读取站号为2的PLC
23、的数据。如果GetData()使用“系统参数/设备列表”中 设定的默认的站号,在此可以不填这个站号。从PLC中读取的数据个数,根据read_data变量的类型和data_count的值来决 定的。如下表所示:read_data的类型data_count 的值读取16位数据的个数char(8-bit)1145char(8-bit)21bool(8-bit)11bool(8-bit)21short(16-bit)11short(16-bit)22int(32-bit)12int(32-bit)24float(32-bit)12float(32-bit)24当Getdata()函数读取32位的数据类
24、型(int或者float型)时,此函数会自动的转换这个数据。例如:macro_command main()float fGetData(f,MODBUS,6x,2,1)/f中将会是浮点型的数据end macro_command举例macro_command main()bool abool b 30short cshort d 50int eint f 10double g 1046/读取LB2的状态到变量a中GetData(a,Local HMI,LB,2,1)/读取LBOLB29共30个状态,至I变量b 0b 29中GetData(b O,Local HMI“,LB,0,30)/读取LW2
25、的数据到变量c中GetData(c,Local HMI,LW,2,1)/读取LWOLW49共50个字到变量d到d 49中GetData(d O,Local HMI,LW,0,50)/读取两个字LW6LW7到变量e中/注意此时变量e的类型为intGetData(e,Local HMF LW,6,1)/读取LWOLW19共20个字到变量ff 9中,数组f 10的变量类型定义为 intoGetData(f O,Local HMF,LW,0,10)/读取LW2LW3共2个字到变量f中GetData(f,Local HMI”,LW,2,1)end macro_command47函数名称SetData语法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触摸屏 指令 使用说明
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。