YASKAWA 机器人开发

最近需要去搞机器人开发,就需要了解开发文档。
安川机器人,四大之一。机器人型号是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可以用的资源
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)。
PC连接到DX100
如果要使用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 窗口中的数据的同时进行调试。

错误信息
错误描述

猜你喜欢

转载自blog.csdn.net/qq_38750519/article/details/126318567