ABB机器人平台具有的特色语言RAPID,具有很强的组合性。程序的编写风格和VB很像和C语言也有很多类似但和Python和C#等面向对象的语言还是有很多的差别。
RAPID和高级语言的相似处
一、都有各自的数据格式
就拿C语言举例子这个大家*熟悉,C语言有Int,Strig等数据格式,RAPID同样也有类似的数据格式 Num,DNum字符串等常用的数据格式。
RAPID同样也有常量(CONST)和变量(PERS,VAR)的区别,也有全局变量和局部变量的定义,同时也有预定的说法。
二、都有完整的数学表达式
RAPID和其他编程语言都有完整的数学表达:加,减,乘,除是必不可少的。额外还有取余,取整。项目中比较重要的几个表达式我感觉常用的是 矢量的加减(Pos-Pos),矢量的乘法(Pos*Pos Or Pos*N),旋转的链接(Orient*Orient)这三个我感觉是比较重要的三个合理使用在项目中可以起到事半功倍的效果。
三、指令集
RAPID和一般编程语言尤其是VB很相似,都有判断(IF,TEST),循环(FOR AND WHILE),返回(RETURN),跳转(GOTO),停止(STOP)等等。
个人推荐TEST 和C#的Switch是一个用法 可以采用Case使你的程序更加清晰和直白。当然也有类似Sleep()的等待函数WaitTime,WaitUnti(有条件的等待),WaitDI,WaitDO(等待数字信号)等等这几个都比较实用。
比较重要的是有数据转换的指令StrTOByte ByteToStr ValToStr 和StrToVal 我感觉较实用的几个函数。
三、数学公式
RAPID的数学公式也比较丰富但是相比较其他语言可能会逊色一下,不过面对日常的项目完全足够了。
大概说几个:赋值,**值(ABS),四舍五入(ROUND),平方(Sqrt),正弦余弦等等。*重要的几个 欧拉角和四元素的转换函数(EulerZYX and OrientZYX),姿态矩阵的运算(PoseMult,PosVect)
四、程序函数
RAPID和其他编程语言相似有函数的说法,可以分为有返回的函数和没有返回的函数,返回的数值类型可以用户自己定义但是只能返回一种数据类型,数量也只能是一个,但是这并不影响我们编程,我们可以采用全局变量或者采用字符串或者采用有多个变量的数值类型作为返回。比如你要返回三个整数数据你可以返回一个Pos类型,因为他包含XYZ三个数据,当然然也可以自己定义数据类型。
五、系统和时间
RAPID也有简单的读取系统时间和日期的函数,可以用于简单的计时,和记录日志的时候写下日期方便以后查阅。甚至获得系统程序内存容量。
六、文件操作
RAPID也有简单的文件操作,这个可以说是一个大型项目合理管理的神器,用好了可以惊天地泣鬼神,让自己的代码自我修改,自我升级,我也推荐好几个大的客户使用,尤其面对大量数据和分类处理的时候。
包含的指令有创建文件夹(MakeDir),删除文件夹(RemeDIr),打开关闭(OpenDir and CloseDir),复制,检索等等。
七、多任务
这个多任务并不是高级语言的BackGround和Thread而是一个伪的并行执行的程序执行的数独取决于不同的的控制柜和不同型号的机器人。