机器人编程2(总结)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器人编程2
一、专家界面介绍
1、用户组类别:操作人员及应用人员、专家、管理员、安全维护人员(激活安全配置)、安全投入运行人员;
2、在一定的持续时间内未对操作界面进行任何操作时(300秒),自动退出专家界面;
3、fold的句法为:(1);FOLD名称(2)指令(3);ENDFOLD <名称>;
二、变量和协定
1、标准数据类型:整型(INT)、实型(REAL)、布尔型(BOOL)、字符型(CHAR);
2、数组(Array):借助下标保存相同数据类型的多个变量;例:Voltage[10] = 12.75;
3、枚举(ENUM):所有值在创建时会用名称(明文)进行定义;例:color = #red;
4、结构(STRUC):由不同数据类型的数据项组成的复合数据类型;例:Date = {day 14, month 12, year 1996};
5、运行时间变量:存在于SCR文件中,仅在声明的程序段中有效,在到达程序的最后一行(END行)时重新释放存储位置;
6、系统数据类型:枚举,例:运行方式(mode_op);结构,例:日期/时间(date);
7、声明的关键词为DECL,对于四种简单数据类型关键词DECL可省略;
8、常量用关键词CONST建立,且只允许在数据列表中建立;
9、变量生存期:SRC文件,程序运行结束时,运行时间变量“死亡”;DAT文件,程序运行结束后变量还保持着;
10、字符串或文本只能作为CHAR数组来实现;
11、关键词PUBLIC扩展程序头中的数据列表,创建全局变量;例: DEFDAT MY_PROG PUBLIC;
12、常量必须在声明时立即初始化;
13、运算类型:基本运算、比较运算、逻辑运算、位运算(B_NOT、B_AND、B_OR、B_EXOR);
14、纯整数运算的中间结果去掉所有小数位;例:int F=10,F=F/4(F=2),省去小数点后面的尾数;int F=10,REAL W=10.0,F=W/4(F=3),四舍五入为整数;
15、KRL仅支持1维、2维、3维数组;
16、定义结构后还必须对其声明工作变量;
17、结构通过括号初始化时,只允许使用常量,赋值顺序任意;初始化结构时,不必指出全部结构元素;
18、结构初始化可以通过点号进行,例:my_car.price = 9999.0;通过点号进行初始化时也可以使用变量,例:my_car.price = value_car;
19、自定义的结构类型以TYPE结尾;
20、枚举数据类型由常量组成,一个常量的赋值始终以符号“#”进行;
21、自定义的枚举类型以TYPE结尾;
三、子程序和函数
1、最多可相互嵌入20个子程序;
2、用RETURN可结束子程序,并由此跳回到调用该子程序的程序模块中;
3、局部子程序写入END,用回车键确认后,会在主程序和子程序之间插入一个横条;
4、作为IN参数的参数传递:变量值在主程序中保持不变;子程序只读取变量值,不能写入;
5、作为OUT参数的参数传递:变量值在主程序中同时更改;子程序读取并更改该值,然后返回新值;
6、数组只允许以参数OUT的方式进行传递,且只能被整个传递到一个新的数组中;
7、传递整个数组:FELD_1D[ ](1 维),FELD_2D[ ,](2 维),FELD_3D[ ,,](三维);
8、可以传递单个数组元素,但只允许变量作为目标;
9、最先发送的参数被写到子程序中的第一个参数上,以此类推;
10、函数是一种向主程序返回某一值的子程序,数值通过指令RETURN(return_value ) 传递;
11、指令RETURN( return_value) 必须在指令ENDFCT之前;
12、KUKA标准函数:数学函数、字符串变量函数、信息输出函数;
13、数学函数:绝对值【ABS(x)】、平方根【SQRT(x)】、正弦【SIN(x)】、余弦【COS(x)】、正切【TAN(x)】、反余弦【ACOS(x)】、反正切;
14、字符串函数:声明时确定字符串长度【StrDeclLen(x)】、初始化后的字符串变量长度【StrLen(x)】、删除字符串变量的内容【StrClear(x)】、扩展字符串变量【StrAdd(x,y)】、比较字符串变量的内容【StrComp( x,y,z)】、复制字符串变量【StrCopy(x,y)】;
15、信息函数:设置信息【Set_KrlMsg(a,b,c,d)】、设置对话【Set_KrlDLg(a,b,c,d)】、检查信息【Exists_KrlMsg(a)】、检查对话【Exists_KrlDlg(a,b)】、删除信息【Clear_KrlMsg(a)】、读取信息缓存器【Get_MsgBuffer(a)】;
16、数学函数返回REAL值,字符串函数和信息函数返回BOOL或INT值;
四、用系统变量工作
1、计时器启动:$TIMER_STOP[Nr] = FALSE;
2、计时器停止:$TIMER_STOP[Nr] = TRUE;
3、计时器复位:$TIMER[Nr] = 0;
4、计时器启动和停止时,必须先触发预进停止;
五、使用程序流程控制
1、if分支
2、switch…case分支:可使用的数据类型为INT、CHAR、ENUM;
3、LOOP循环:可通过EXIT指令立即退出;
4、FOR循环:FOR counter= start TO last STEP increment,……,ENDFOR;可通过EXIT指令立即退出;
5、当型(while型)循环:也称为前测试循环,可通过EXIT指令立即退出;
6、直到型(REPEAT型)循环:也称为后测试循环;REPEAT,……,UNTIL condition;可通过EXIT指令立即退出;
7、时间等待函数:最长时间为2147484秒,相当于24.8天;最短的有意义的时间单元是0.012秒;如果给出的时间为负值,则不等待;
8、信号等待函数:用指令CONTINUE可阻止预进停止;
六、KRL的切换函数
1、输出端的切换将生成预进停止,用指令CONTINUE可阻止预进停止,CONTINUE仅涉及下一行(包括空行);
2、如果编程设定了轨迹逼近,则将在向目标点进行轨迹逼近运动的中点切换;例:$OUT_C[30]=TRUE;
3、PULSE(脉冲)指令触发预进停止;
4、句法:PULSE(信号,电平,脉冲宽度);信号只允许使用OUT[Nr]和信号变量;TRUE表示高电平,FALSE表示低电平;