安川机器人二次开发:MotoPlus(使用篇)

概要

API分类

  • 应用程序任务控制:应用程序启动/停止,应用程序之间的数据传输,单独控制,同步执行;
  • 机器人控制:通过应用程序控制机器人运动;
  • JOB控制:启停JOB(INFORM程序),JOB之间的变量传输,同步执行;
  • CIO控制:控制I/O口输入输出,读写寄存器;
  • 以太网通信控制:支持以太网通信,主要是Winsock函数库;
  • 编程示教器通信:进行应用程序和编程示教器程序之间的通信;
  • 事件:每个I/O控制周期和插补周期触发事件;
  • RS232C串口通信控制;
  • 传感器控制:与JOB进行通信并调整操作状态;
  • 内存管理;
  • 通用文件控制;
  • 现存文件控制;

MotoPlus规定

编号项目规定
1启动的应用程序数目1个
2最大可用内存2Mbyte
3任务优先级及可用个数共分四级
1:每个I/O控制周期(1个);
2:每个插补周期(1个);
3:高优先级(1个);
4:一般优先级(3个);
4堆栈大小40Kbyte
MotoPlus规定

支持的数据类型

数据类型

任务

任务是MotoPlus应用程序的可执行单元,可支持多任务同时运行。任务之间的时序同步可提供任务控制API实现。

任务状态

共有五种状态,相互之间的转换关系如同。

任务状态简图

示例程序

1、显示Hello World

//mpMain.c
#include "motoPlus.h"

int  SetApplicationInfo();
void mpTask();

//GLOBAL DATA DEFINITIONS
int nTaskID;

void mpUsrRoot(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10)
{
	int rc;

	//TODO: Add additional intialization routines.

	//Creates and starts a new task in a seperate thread of execution.
	//All arguments will be passed to the new task if the function
	//prototype will accept them.
	nTaskID = mpCreateTask(MP_PRI_TIME_NORMAL, MP_STACK_SIZE, (FUNCPTR)mpTask,
						arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);

	//Set application information.
	rc = SetApplicationInfo();

	//Ends the initialization task.
	mpExitUsrRoot;
}

//Set application information.
int SetApplicationInfo(void)
{
	MP_APPINFO_SEND_DATA    sData;
	MP_STD_RSP_DATA         rData;
	int                     rc;

	memset(&sData, 0x00, sizeof(sData));
	memset(&rData, 0x00, sizeof(rData));

	strncpy(sData.AppName,  "Hello World Application",  MP_MAX_APP_NAME);
	strncpy(sData.Version,  "0.00",                 MP_MAX_APP_VERSION);
	strncpy(sData.Comment,  "Display Hello World", MP_MAX_APP_COMMENT);

	rc = mpApplicationInfoNotify(&sData, &rData);
	return rc;
}

void mpTask(void)
{
	//Display "Hello World every 2.5 seconds via telnet"
	while(1)
	{
		puts("Hello World!");
		mpTaskDelay(2500);
	}
}

2.Task控制

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据