最近需要去搞机器人开发,就需要了解开发文档。
安川机器人,四大之一。机器人型号是MPL800,控制柜型号是DX100,DX100的CPU板是YCP01(这个是做机器人开发需要区分的,不同的控制柜开发IDE不一样),介绍一下MotoPlus,全称是Motoman Professional Programming Language,可以兼容C语言在PC上进行开发机器人控制程序,即客户自己定制用户程序。

MotoPlus支持的特性:

  • 以C语言为开发语言,有丰富的标准库;
  • MotoPlus IDE可以支持离线编辑,开发;
  • 开发的程序在主CPU上直接运行,效率高
  • 内置丰富的API,支持数据转换、以太网、RS232C串口通信,可以轻松将机器人连接到外部PC或者传感器进行控制

总结一下,就是MotoPlus用C语言开发,自己也有Motoman 库,可以实现外部PC或者传感器通过程序控制机器人,客户自己定制程序。


MotoPlus 为用户提供如下多种服务:

  1. 应用任务控制:应用任务启动/停止,应用程序间通过邮箱和信号量传输数据,独占控制和执行同步
  2. 机器人控制:从应用程序控制机器人
  3. 作业控制:应用对JOB的启停控制,Job之间通过变量(字节、整数、双精度、浮点、字符串、位置变量)进行数据传输,执行同步
  4. CIO控制:应用程序与 CIO 之间的 I/O,以及寄存器的读/写
  5. 以太网通讯控制:来自应用程序的以太网 (TCP/IP) 通信,尤其是使用作为 API 包含的套接字函数库
  6. 编程挂件通讯:应用程序与编程器应用程序之间的数据传输
  7. 事件:在系统的每个 I/O 控制周期和插补控制周期向应用程序发送事件通知
  8. RS232C串行通讯控制:来自应用程序的 RS232C 串行通信
  9. 传感器控制:将数据传入和传出作业并更改操作条件(如路径校正和速度更改)的 API,以及在作业和 MotoPlus 应用程序之间传输数据的指令
  10. 内存管理:受保护的内存管理 特定指令 malloc 和 mfree 支持系统为 MotoPlus 管理的数据区域。
  11. 伺服控制:来自应用程序的伺服控制
  12. 用户看门狗:看门狗监控应用程序是否正常运行
  13. 开发环境
    (1) 源文件项目管理、程序编辑器、编译器和链接器的集成开发环境(MotoPlus IDE),类似于MS Visual Studio
    (2) 从编程器的 CF/USB 存储器安装 MotoPlus 应用程序
    (3) 通过 Telnet 使用 printf() 进行调试

应用程序开发环境
MotoPlus 应用程序在 PC 上用 C 语言编写,并在 DX100 控制器上进行调试。 使用 MotoPlus IDE 的文本编辑器编写应用程序,然后编译并链接它以创建执行对象。 这是在 DX100 上安装并执行以进行调试。

开发就不用多说了,环境和一般的IDE差不多,开发好之后,编译生成对应的静态库和.out文件,通过IDE的telnet功能将程序传输到控制柜中,示教器去加载控制柜中的程序,进行调试。

不知道怎么开发的,需要集齐如下

应用程序运行环境

一般情况下,开发完之后的程序会储存在机器人控制柜CPU(YCP01)的CF(闪存)中,不需要其他的硬件软件,但是要求系统软件版本DS1.2F-03以上。

控制器电源启动的时候,存储在主CPU上的CF的应用程序MotoPlusApi会首先加载到内存中,然后这个程序在操作系统VxWorks上做为一个任务启动,与系统程序同步执行。应用程序可以启动多个任务,可以通过mailbox或者信号量进行JOB或者IO通信、同步或者异步控制、数据转换等。

开发流程如下

维护模式下安装程序
1、加载应用程序并按照以下说明进行安装(不同版本有些许差异,版本节点 DS3.20-14):
(1) 将安全模式设置为管理模式。 选择主菜单 {MotoPlus APL.}。 然后{加载(用户应用程序)},{加载(系统库)},{文件列表(DX)},{DELETE (DX)}、{DEVICE}、{FOLDER} 和 {MotoPlus FUNC.SETTING} 显示为子菜单。 如果系统软件版本为 DS3.20-14 或更高版本,{LOAD (SYSTEMLIBRARY)} 不出现。
(2) 指定文件位置。使用子菜单 {DEVICE(选择 CF/USB)} 和 {FOLDER(选择包含应用程序的文件夹)} 选择适当的文件位置。
(3) 选择并加载文件。选择子菜单{加载(用户应用程序)}。 然后指定文件夹中的“*.out”文件如下所示。

通过DX100 Installer安装应用程序

  1. 将创建的应用程序“MotoPlusApl.out”复制到PC的系统软件升级文件夹“C:\MotoPlusData\DX100 system software\DS1.2F(JP_US)-03\APPLICATION\”。
  2. 修改升级文件:修改“C:\DS1.2F(JP_US)-03”下的以下文件。
    (1) “mk_vx.ini”文件
    添加“\APPLICATION\XXXXX.out(创建的输出文件的名称)
    在“\APPLICATION\dummy.txt”下。
    (2) “RC_setup.ini”文件
    添加“\APPLICATION\XXXXX.out(创建的输出文件的名称)
    在“\APPLICATION\dummy.txt”下。
  3. 创建升级CF卡。
    (1) 将 CF 卡读卡器连接到 PC,然后插入 CF 卡(256
    MB 或更多)进行升级。 (也可以使用 USB 存储器。)
    (2) 启动如下所示的“mk_vx_cf.exe”。
    (3) 出现以下窗口。 启用CF卡驱动(E盘在以下窗口中),并将其他设置为“不使用”。
    (4) 勾选“VersionUp CF/USB”,然后按“开始”。
  4. 成功之后将步骤 3 中创建的 CF 卡插入编程器。然后,按 [INTERLOCK]+[8]+[SELECT] 打开 DX100。
  5. 在弹出的框中选择"Software Update"。
  6. 升级成功,重启DX100

启动程序
最多加载一个.out程序,否则报错:1020: “MOTOPLUS APPLICATION LOAD ERROR [1]”
可用内存不足2M,则报错:1020: “MOTOPLUS APPLICATION LOAD ERROR [2]”
CF中找不到APPLICATION文件夹,则报错:1020: “MOTOPLUS APPLICATION LOAD ERROR [3]”
程序最大2M,否则报错:1020: “MOTOPLUS APPLICATION
LOAD ERROR [4]”

启动程序异常处理
由于应用程序的问题,机器人运行过程中系统可能会挂起,DX100可能无法正常启动。为了恢复,必须在阻止应用程序运行的同时正常启动 DX100。在这种情况下,必须在维护模式下启动 DX100,进行设置以使应用程序不运行,正常启动DX100,然后运行机器人。遵循以下两个过程之一:

  1. 在维护模式下启动 DX100,将安全模式设置为管理模式。选择“MotoPlus APL.”,然后选择“DELETE
    (DX)”删除应用程序。

  2. 在维护模式下启动 DX100,将安全模式设置为管理模式。选择“MotoPlus APL.”,然后选择“MotoPlus FUNC.
    SETTING”以显示设置窗口。然后将“APPLI.AUTOSTART AT POWER ON”设置为“DISABLE”。

如果在机器人运行过程中出现上述问题,请选择程序2。机器人操作过程中的上述问题可能是由特定条件引起的。如果使用步骤1删除了MotoPlus应用程序,则在特定条件清除后,必须在CF中重新加载MotoPlus应用程序才能恢复。在这种情况下,如果要加载的应用程序不存在,应用程序将无法运行,系统也无法恢复。

调试
对于调试环境,通过 Telnet 将用于开发的 PC 与控制器操作系统 (VxWorks) 的 RUN-TIME 调试器连接起来。然后可以在应用程序源代码中插入 printf() 或 puts() ,以在调试时显示有关变量和程序执行状态的消息。

Note:调试完成后删除源代码中描述的所有调试代码。否则,printf() 和 puts() 的处理时间可能会影响系统,并可能导致机器人运行过程中处理时间不足等问题

Note:使用 Telnet 功能,只能调试具有正常优先级的任务。调试高优先级任务(任务优先级启动的任务:MP_PRI_IO_CLK_TAKE、MP_PRI_IP_CLK_TAKE 或 MP_TIME_CRITICAL,或任务“mpUsrRoot”),建议使用 DX100 的变量。这是因为,如果 printf() 或 puts() 以高优先级任务执行,则会消耗机器人操作控制的处理时间,并且可能会因处理时间不足而发生系统报警。

Note:用C语言编程时,可以使用存储内存地址的指针变量。 如果指针变量设置错误,可能会重写系统内存区域。如果重写系统内存区域,会出现严重问题,例如软件挂起(通过 CPU 异常或看门狗检查检测到挂起状态) 功能,然后伺服电源关闭,系统关闭),机器人因报警停止运行,或编程器无法运行。 如果系统内存操作不正确,应用程序本身可能无法按设计运行。 因此,通过充分测试,可以找到错误位置。 充分检查应用软件的功能,确保所有功能都按设计运行。

Note:使用通过 Telnet 与 DX100 连接的 VxWorks 的 SHELL 调试功能时,由于机器人操作的处理时间不足,可能会出现系统报警。 不要使用 SHELL 调试功能。

PC电脑连接DX100
用 DX100 连接 PC 进行开发。 然后PC可以作为终端通过Telnet调试程序。 如下图所示,将以太网电缆连接到安装在 DX100 控制器 CPU 机架中 YCP01 板正面的 LAN 连接器 CN104 (RJ-45)。

如果要使用MotoPlus 提供的以太网服务,需要使用集线器并如下所示设置连接。如下

通过 Telnet 通信调试
DX100系统软件的RUN-TIME调试器,可通过Telnet连接调试PC,为用户提供各类调试功能。 因此,可以在应用程序源代码中插入 printf() 和 puts() 函数,并且可以在 Telnet 终端上显示所需的内存内容或消息。 使用此过程,仅调试具有正常优先级的任务。 调试高优先级任务(任务优先级启动的任务:MP_PRI_IO_CLK_TAKE、MP_PRI_IP_CLK_TAKE 或 MP_TIME_CRITICAL,或任务“mpUsrRoot”)。

Note:如果启用 Telnet 功能,则在启动 DX100 时可能会出现“0500:SEGMENT PROC NOT READY”等报警。 这是因为 DX100 端的 Telnet 任务以高优先级执行,所以其他系统的处理任务无法正常执行。 如果发生此类警报,请重新启动 DX100。 另外,调试完成后,请务必将 Telnet 功能设置为 INVALID (S2C1119 = 0)。

  1. 设置IP地址等:必须在维护模式下进行与您的环境相对应的以太网通讯设置(如DX100端的IP地址设置)。程序如下:
    (1) 关闭 DX100,然后在按下 [MAIN MENU] 的同时重新打开以启动维护模式。
    (2) 选择主菜单下的{SYSTEM},然后选择{SECURITY}。然后,将安全模式更改为MANAGEMENT MODE。
    (3) 选择主菜单下的{SYSTEM},然后选择{SETUP}。在设置窗口中,选择 {OPTION} 以打开 {NETWORK}。在NETWORK 窗口中,为“HOST SETUP”选择“DETAIL”。
    (4) 在 HOST SETUP 窗口中设置 IP 地址。
    确保 PC IP 地址与 DX100 位于同一子网中。
  2. IP地址设置限制:DX100的以太网功能不支持“10.0.0.xx”
    本地 IP 地址(xx:0-255,十进制数)。因此,请勿使用“10.0.0.xx”作为 IP 地址。
  3. 通讯端口限制:对于DX100的以太网功能,系统占用UDP和TCP的指定端口。因此,小于 10040 的端口号不能用于 MotoPlus应用程序。此外,系统使用的端口可能会根据DX100 软件版本进行添加或更改。如果您的机器人正在使用与 DX100
    以太网功能相关的任何可选功能,请确保不要使用说明手册中描述的每个可选功能的端口号。
  4. 将固定IP地址(192.168.255.9)设置为PC端的网络设置。(“192.168.255.”与DX100设置相同。)
    (1) 选择控制面板,然后双击“网络连接”。
    (2) 双击“本地连接”。
    (3) 打开“常规”窗口,选择 Internet 协议 (TCP/IP),然后单击“属性”。
    (4) 勾选“使用以下IP地址”。
    (5) 输入“192.168.255.9”作为 IP 地址。
    (6) 输入“255.255.255.0”作为子网掩码。
  5. 设置以下参数以启用 Telnet 功能。在 MAINTENANCE 模式下,该参数不能更改。因此,关闭 DX100,然后以正常模式重新启动。启动后,将安全模式更改为MANAGEMENT MODE,并设置以下参数。
    S2C1119 = 2

Note:调试完成后,将 Telnet 功能设置为无效 (S2C1119 = 0)。 这是因为 Telnet 功能消耗系统处理时间,并报警由于机器人操作的处理时间不足,可能会发生。

  1. 打开 DX100。
  2. 在 PC 上,选择“附件”,然后选择“命令提示符”以打开 DOS 窗口。
  3. 在命令行输入如下命令:c:> TELNET 192.168.255.1 VxWorks login: Net_Maint_Mng Password: 99999999(MANAGEMENT MODE密码)然后出现“->”提示符和控制器操作系统的RUN-TIME调试器 开始。

Note:以上密码为管理模式密码。

DX100用户变量调试
使用 printf() 或 puts() 对高优先级任务(以任务优先级启动的任务:MP_PRI_IO_CLK_TAKE、MP_PRI_IP_CLK_TAKE 或 MP_TIME_CRITICAL,或任务“mpUsrRoot”)进行调试可能会导致机器人操作控制任务的处理时间不足。 因此,使用 DX100 的用户变量(B 变量、I 变量、D 变量和 R 变量)进行调试。 在这种情况下,在 MotoPlus 应用程序中使用用于写入变量“mpPutVarData()”和“mpPutUserVars()”的 API 来描述调试信息,然后在查看编程器上 VARIABLE 窗口中的数据的同时进行调试。

错误信息

YASKAWA 机器人开发相关推荐

  1. 400 多行代码!超详细 Rasa 中文聊天机器人开发指南 | 原力计划

    作者 | 无名之辈FTER 责编 | 夕颜 出品 | 程序人生(ID:coder_life) 本文翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展, ...

  2. 微信机器人开发SDK使用教程--养号任务停止

    微信机器人开发SDK使用教程--养号任务停止 case "PostStopWeChatMaintenanceTask": {// 养号任务停止 log.debug("we ...

  3. 如何给定两个gps坐标 算出航向角_机器人开发如何配置ROS中的TF变换关系?

    当我们进行机器人开发时,常常需要面对TF坐标转换,本文以 Autolabor Pro1 与思岚激光雷达为例,介绍ROS TF的使用. Autolabor Pro1是什么? Autolabor Pro1 ...

  4. 微信机器人开发SDK使用教程--删除朋友圈

    微信机器人开发SDK使用教程--删除朋友圈 case "DeleteSNSNewsTask": {// 删除朋友圈 log.debug("websocket:msgtyp ...

  5. 宁德时代机器人编程开发_高通发布5G机器人开发平台,内置强大AI算力。各大厂商竞相发布机器人处理平台,万物互联的时代即将到来...

    高通发布了强大机器人平台Robotics RB5 Platform,内置工业级QRB5165机器人处理器,拥有15TOPS AI 算力,强大的AI算力可应用于机器学习,增强计算机视觉,多摄像头并发处理 ...

  6. 微信机器人开发SDK使用教程--群发消息任务

    微信机器人开发SDK使用教程--群发消息任务 case "WeChatGroupSendTask": {// 群发消息任务 log.debug("websocket:ms ...

  7. 《智能对话机器人开发实战20讲》--学习笔记--AIML基础功能拓展-与互联网的集成

    一.学习笔记 环境要求: aiml bs4 语料库: tuling.aiml search_web.aiml <that>WHICH SEARCH ENGINE WOULD YOU LIK ...

  8. 智能对话机器人开发实战案例剖析(2)

    一.前言 本文是<智能对话机器人开发实战案例剖析>系列的第2篇:智能对话机器人分类标准,旨在对智能对话系统的进行一个系统性的介绍.相关内容已同步录制成视频课程,发布在网易云课堂. 二.正文 ...

  9. telegram机器人开发3-最简单的代码

    telegram机器人开发3-最简单的代码

  10. 微信返利机器人开发制作

    微信返利机器人开发,业务需求根据用户发送商品,微信自动查询返利,并且发送给用户,随着微信的普及与用户日常使用增多,开发微信返利机器人,方便用户查找优惠商品省钱,实现一对一服务. 对此开发微信返利机器人 ...

最新文章

  1. Android 自定义View Canvas —— Bitmap
  2. MySql按周,按月,按日分组统计数据
  3. [007]C++---写一个函数,返回它自己
  4. Java判断文件类型
  5. ECMAScript6 新特性——“字符串的扩展”
  6. Python函数积累
  7. (46)FPGA面试题FPGA内部结构及资源
  8. Linux下coredump调试3:补录
  9. 2008年9月三级网络技术考试试卷 参考答案1
  10. 论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案
  11. 分段锁——ConcurrentHashMap
  12. 手机工商银行显示服务器安装不了,工行网银助手无法安装怎么办?
  13. AOSP ~ 默认开启开发者模式
  14. 微信小程序 展示地图指定位置导航
  15. 电商平台商品订单拆分模式分析
  16. HDU-1205-吃糖果(c++的__int64!)
  17. 机器学习吴恩达课程总结(一)
  18. 小黑静待身边朋友的考研佳音,明天准备面试,在白塔咖啡帐篷里的一下午的leetcode之旅:70. 爬楼梯
  19. html5 3d引擎 星空,使用3D引擎threeJS实现星空粒子移动效果
  20. icc 颜色 c语言,浅析颜色在icc中四种不同的转换方式

热门文章

  1. ActiveX如何调用引用该ActiveX的网页中的JavaScript函数
  2. WEEX|简单界面的实现与页面跳转
  3. node npm 更新到最新(Ubuntu系统)
  4. windows端口被占用及广告弹窗处理
  5. 通过哈希MD5实现加密(python3.X)
  6. windows远程连接centos桌面
  7. c语言 json解析器,撸一个JSON解析器
  8. 圈圈教你学USB学习资料大全(包含完整光盘和教程)
  9. CSS - Iconfont
  10. 【MySQL】二,常用的SQL标准有哪些