您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 进阶培训资料final
一变量与数值运算在机械手运行过程中,往往会需要涉及到大量数据的处理与运算。简单的,如工件的数量,工件的种类编号,复杂的,如工件的位置补正数据,产品的良品率计算等等。为了能够有效的在程序中获取,保存和使用这些数值,需要通过变量来储存这些数据。变量的作用,相当于在系统的内存中,开辟一个有特定名称的区域,来保存特定的数据。规划好这个区域后,对该数据的读写只需要通过变量名称前访问即可。1.变量的类型与范围变量的数据类型:根据储存的数据格式的不同,我们可以给变量设定能够不同的数据类型。当赋值给变量的数值超过了其范围,会出现错误报警(错误:2243,变量溢出。指定变量超过最大允许值。)数据类型长度范围Boolean1字节TRUE或者FALSEByte1字节-128~+127Double8字节-1.79E+308~1.79E+308Integer2字节-32768~+32767Long4字节-2147483648~+2147483647Real4字节-3.40E+38~3.40E+38String255字节全部是ASCII字符定义变量使用变量之前必须先要定义变量的名称.定义格式为:变量类型+变量名称。如:Integeri,j,k'定义全局整型变量变量的作用范围SPEL+语言有三种作用范围的变量:•Local:局部变量•Module:模块变量•Global:全局变量一般函数内部使用局部变量,需要函数之间共享的数据使用全局变量。在函数内部直接用变量类型+变量名称定义的变量为局部变量。只能在函数内部使用,当函数结束时变量的生存期也就结束了。在函数外部,使用Global关键字+变量类型+变量名称定义的为全局变量。全局变量的生存周期为程序开始运行到程序结束。在程序中任意位置任意时刻均可以使用。全局保存变量:一般变量在程序运行时会初始化,不能保存上一次运行时的数据。如果需要保存之前运行的数据,以便在重新运行程序,甚至机械手控制器断电重启之后,能够读回原有数据的话,可以使用Preserve关键字,将变量定义为全局保存变量。GlobalPreserveIntegerGi2.变量的操作数值表示与转换:一般数值型的数据(Boolean,Int,Real等等)可以直接进行数学运算。但字符串型的数据不能进行数学运行,必须将字符串转换为数值。Val函数Val函数用于将字符串转换为数值.同样适用于浮点数.Realaa=val(“1.234”)则a=1.234如果字符串不是有效的数字格式,返回0。如a=val(“A1.234”)则a=0Int函数:将其他数值类型的数据转换为整型。如Int(1.2)则返回1进制转换一般常用人便于认知的10进制数表示。但在位运算中,用2进制或者16进制会更加方便。16进制的表示方式:&H数值。如10进制的255转换为16进制为FF,在SPEL+语言中写为:&HFF。2进制写为&B11111111。如A=&HFF,则A=255使用hex$()函数可以将数值转换为16进制编码(返回结果是字符串)。如printhex$(255)FF如将16进制表示的字符串转换为数值,可以用Val函数。16进制转换为数值:i=val(&HFF);则i=255。printval(&HFF)255print&HFF+1256数值运算:变量的赋值:直接使用=符号可以给变量赋值。如A=0也可以通过Input函数,从运行窗口中用键盘输入数值。如:IntegeraInputa;print“你输入的数值是:”,a运算操作:定义后的变量可以在其有效范围内操作。常用的运算操作及运算符有以下符号.运算符格式例说明+A+B加法-A-B减法*A*B乘法/A/B除法**A**B乘方ABA大于BABA小于BABA不等于BAndAAndB逻辑与ModAModB整数的余数NotANotB非OrAOrB逻辑或XorAXorB异或逻辑其中And、Or、Not、Xor用于对二进制数据的位操作。注意:以上运算只适用于变量,不完全适用于点数据。在点数据后面加/n(n=0~15)表示将点数据转换为对应Local坐标的数值(参考八章4节坐标转换内容).而非除法的除以n。监控变量在运行程序时,点击菜单-运行-显示变量(或直接按F4)可以显示变量窗口.可以查看运行中用到的变量的数值.点击后弹出变量显示窗口.勾选编辑框,即可以对数值进行修改和写入命令行中显示变量命令行窗口可以用于执行单句的命令.方便调试程序.按Ctrl+M或者按菜单栏按钮弹出命令行窗口.输入PrintGi或者?Gi后回车即可显示Gi的数值(Gi为变量名称.可以显示其他的变量)示例程序:GlobalIntegerGi,Gj,Gk'定义全局整型变量GlobalPreserveIntegerGPi,GPj,GPk'定义保持性全局整型变量Functiontask00_variable_AXqttask00_variable_BIntegeri,j,ki=10;j=10.33;k=90'可以直接用=对变量赋值Printthenumberi=,i,j=,j,k=,kGi=Gi+11Gj=11.33+GiGk=91'可以直接用变量对变量本身或者其他变量进行操作'用Print语句在运行窗口上显示变量的数值PrintthenumberGi=,Gi,Gj=,Gj,Gk=,GkFendFunctiontask00_variable_B'全局变量可以在不同任务/函数之间共享数值DoWait1Printtask00_variable_B:thenumberGi=,Gi,Gj=,Gj,Gk=,GkLoopFend操作与练习:(1)定义变量,保存某个产品的种类编号,总加工件数,待加工件数,良品件数,并进行模拟运算良率(2)定义变量Integeri.如果i=1/2;printi后会输出多少?为什么?(3)编写一个函数,将上位机发送过来的字符串strA$转换为小数点后两位(如”13.48753”转换成13.48,”11”转换为11.00)显示在运行窗口上(4)编写程序将以下数据分别转换为16进制表示和二进制表示,显示在运行串口上。“255”,16,1.234,&B00001111,&B1010And&HFF二IO操作1IO标签在Robot项目中,可以使用控制器自带的24个输入和16个输出(物理IO),可以使用点数据P0-P999总共1000个点.为了方便记忆IO点各自的功能或者点数据代表的位置,可以对IO点或者点数据设定其特有的名称,称之为标签.设定好标签之后,即可以在程序中直接使用标签,而无需记住各个编号所代表的含义.点标签的设置和使用在对某个编号的点进行第一次示教的时候可以设定其标签.也可以在点文件中修改.设定好的点标签可以直接代替如P0,P(0)等编号.如:GoPlace等效于GoP0IO标签点击项目浏览器中的IO标签,可以编辑物理/内存IO的标签名称.注意要点定义标签的目的在于方便编程人员的使用和操作.因此定义标签时应遵循以下规则:(1)名称清晰有意义:所有的标签名称必须清晰容易识别.可以用大小写间隔.如:IntegeriCountA’定义Integer类型的变量,保存A的个数.(2)名称唯一:所有的标签名称不能与系统关键字重复,不能与其他标签或者其他变量名称重复.(3)定义标签时建议写明注释或描述方便其他人员查阅程序的时候参考2物理IO操作IO接线方法:IO的接线方式有NPN接法(SINK型、漏型)和PNP接法(Sourse型、源型)。区别在于公共端接高电平或低电平,或者说电流的方向。一般使用哪一种接法需要跟控制器的输出点类型,以及外部设备相匹配,才能正常工作。如果机械手控制器和与其相连的外部设备,如PLC等不是同一类型的IO接口,则需通过继电器或者专用的转换板转换。国内常用NPN接法。输入的NPN接法:输出的NPN接法:注意:1国内PLC,传感器等部件多常用NPN接法。2所有型号的控制器的输入端,以及RC180和RC620的输出点均可以兼容NPN和PNP接法。3RC90和RC700的输出端,只支持NPN接法或者PNP接法。采购与使用时均需要注意需要的是哪一种。输出点的操作:ON:打开指定的输出位,经过指定时间后关闭。On{输出位编号|输出标签},[时间],[,非同步指定]OFF:关闭指定的输出位,经过指定时间后打开。OFF{输出位编号|输出标签},[时间],[,非同步指定]示例程序:Functioniotask'打开DoOn1On2Wait1Off1Off2Wait1On1,1,1On2,1,1LoopFend输入点的判断处理:使用SW命令读取输入端口的状态Sw(位编号|端口标签)可以与wait指令配合使用,可以直接读取SW()的数值进行处理.如:Booleana;a=sw(0)‘将SW(0)的数值赋值变量aIfsw(0)=onthengop0‘当输入点0接收到信号时运动到P0点Waitsw(0)=off‘等待直到输入点0接收到信号Waitsw(0)=off,3‘等待输入点0接收到信号,或等待时间超过3S示例程序:Functiontask20_waitTMout'输入信号的检测和等待时间判断Print等待Sw(0)输入WaitSw(0)=OnPrint检测到Sw(0)已输入Print等待Sw(2)输入.如果等待时间超过5S则不等待WaitSw(2)=On,5Print检测到Sw(2)已输入或Sw(2)等待超时TMOut3WaitSw(1)=OnIfSw(0)=OffThenPrintSw(0)等待超时WaitSw(1)=OnFend3内存IO操作内存IO的作用相当于PLC的中间继电器,用于程序过程状态的记录,并可以与程序中的其他任务进行交互.内存IO的操作指令与物理IO类似,只需在ON/OFF等指令前面加一个mem即可.示例:MemON0MemOff0WaitmemSw(0)=ON内存IO常用于不同任务之间状态的传递.4IO字元处理IO的字元操作In函数功能:返回指定的输入位端口格式:In(端口编号)端口编号:构成可以使用输入位的组说明:可同时确认8个输入位的值。可以使其待机直到2个以上的I/O位的状态在特定的条件下一致。返回值为0~255范围的整数值。示例:PrintIn(0)´打印输入位0-7的状态WaitIn(0)&(&B00001111)=14´待机到0~3位全部关闭WaitIn(0)=255´待机到0~7位全部开启Out功能:同时设定输出8个输出位格式:Out端口编号,输出数据端口编号:构成可使用输出位的组;输出数据:用端口编号指定的组的输出模式说明:端口编号与输出数据的组合后同时设定8个输出位。输出位8位1组。首先在用端口编号指定的组中指定输出数据参数中特定的输出模式。输出数据参数用10进制数(0~255)或16进制数(&H0~&HFF)指定。端口编号如下与位编号对应。端口编号位编号00-718-15216-23......63504-511示例:Out0,0´将0~7位全部关闭Out1,255´将8~15位全部打开Out0,100´将2,5,6位全部关闭Out0,&H64´将2,5,6位全部关闭5IO监控与操作IO监视器点击工具栏按钮可以打开IO监视器,进行IO监视与操作。在仿真状态下,可以操作输入输出点;在实际连接控制器操作时,只能够操作输出点。虚拟IO功能为了调试方便,也可以在实际连接控制器时,将IO设置为虚拟IO。此时所有IO点不会接收物理IO的输出,因此也可以通过IO监视器修改输入点的状态。6IO注意要点(1)默认设置下,当急停按下时,所有的输出点会关闭。可以通过控制器-参数中,不勾选(当紧急停止时输出信号关闭)的选项(2)无法操作已经设置为远程IO的输出点。当输出点设置为远程IO时变成了系统IO只受控制器本身系统状态控制。(3)出于安全的考虑,在程序停止运行时,IO并不会自动关闭。避免零件跌落。重新运行程序时,需要注意此时工件可能依然在治具上,需要根据实际需要进行判断和处理。(4)内存IO在程序启
本文标题:进阶培训资料final
链接地址:https://www.777doc.com/doc-988609 .html