我来回答这个问题,作为“四大家族”之一的ABB工业机器人在我国企业中应用还是比较广泛的。下面我根据自己的操作ABB工业机器人的情况来回答一下这个问题。我在操作机器人时免不了要对工业机器人进行编写程序,我对ABB工业机器人进行程序编写主要用以下两种方法。
我先说说最常用的一种方法就是用示教器进行在线编程,示教器作为第二代工业机器人的标配,它在工业机器人的调试、操作与编程中很重要。比如通过示教器可以对机器人进行手动操作、重定位操作,工件坐标与工具坐标的建立、速度的调整、在线编程等都要用到示教器。我习惯用示教器在线编写工业机器人程序这主要是由于我从事实训教学的需要。示教器编程十分方便,只要点击触摸屏左上角的菜单按钮,在弹出的菜单选择“程序编辑器”就可以对程序进行编写、修改、添加指令、调试了,其操作界面如下图所表示的。
另一种方法就是用ABB公司自己的仿真软件RobotStudio进行离线编写程序,这个也很方便,不需要进行现场编写程序。我们通过这个软件编写好程序后,可以在电脑上进行仿真调试,成功后直接把程序导入工业机器人本体中就可以运行工业机器人了,对于工程中提高效率很有帮助,如果没有实体工业机器人,我们完全可以用这款软件学会ABB工业机器人的编程。只要学会了一种工业机器人的编程方法,学习其它的工业机器人的程序也就很容易上手了。
当然,现在还有其它仿真软件也都支持ABB工业机器人的程序编写和仿真,比如在各种机器人大赛中用到的RobotArt、RobotDK等软件都可以对ABB工业机器人程序编写和仿真。
以上就是我对这个问题的回答,欢迎大家参与讨论,并关注电子及工控技术。
为什么计算机能够识别计算编程语言,底层物理原理及逻辑是什么?
他们回答的太复杂了感觉,我用简单的例子来说说,计算机为什么能够识别现代的编程语言编写的程序吧!
比如:小明说的是他们本地的方言(计算机本身)而且他又不会也听不懂普通话,你直接用你自己家里方言或者普通话跟他说话交流他可能会听不懂啊!这个时候怎么办,你只能找个懂他们家里方言的人把你的话翻译给他听,这个时候给你翻译的人就相当于是一个中间的翻译器(计算机编程语言自带的编译器层面),你说的话就相当于是现代编程语言,需要有一个或者多个人翻译后,小明才能明白你说的话是什么意思。这期间你找的翻译人越多效率就越差(程序执行效率越差),你找的翻译人越少效率就越好(程序执行效率越好)。
计算机底层只能识别0和1二进制,现在编程语言最终都会被翻译成0和1去让计算机去执行。
不同编程语言最终生成的机器码是否一样?
这个问题问的很好。同样的程序段在操作系统、CPU位数、编绎设置等一致的情况下,结果是一样的。否则,最终的机器码是不相同的。
VS系列,PYTHON,一般的C语言,再编绎时,都最终生成ASM汇编语言,进而以机器码的形式,让计算机识别并最终执行(以下在32位系统下编绎)。
此处,我们把a,b两个整数相加,送给整数c,在VS运行环境下,我们看一下c=a+b的机器码、汇编、VS编码的结果,如下图:
从上面可以看出,不论a,b赋值如何,a+
b一>c的代码只有三行,而且是一致的,每一个变量占据4个字节。mov eax,dword ptr [edp-4],mov eax,dword ptr [edp-8]等,标准的X86系列宏汇编语言。可以用下表查到相应的机器码。
这就说明,在同样的运行环境下a+b一>c的汇编码、机器码是一致的。
同样是32位的a+b一>c,在8位、16位等单片机机上,结果是不一样的。因为指令系统不一样。
也就是说,在硬件不一致时,机器码是截然不同的。如下图为单片机的编码形式,可以看出MOV A,Rn为11 E8,而MOV A,data 则为21 E5,差异非常大。
总结:在写软件的,首先要考虑运行环境,PC机X86系列还是单片机系列,是在16位、32位还是在64位的操作系统下运行,支持动态还是静态库,支持高速运行还是优化运行等等,在编绎时都要选择好。
只有以上的选项一致了,那么同样的代码,其机器码是绝对一致的。