ImageVerifierCode 换一换
格式:DOC , 页数:71 ,大小:857.50KB ,
资源ID:3007163      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3007163.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MCS达动控制函式库范例手册(V.5.0).doc)为本站会员(dzzj200808)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

MCS达动控制函式库范例手册(V.5.0).doc

1、MCS 运 动 控制函 式库范 例手册MCS运 动 控制 函 式 库 范 例 手册(适 用 于运 动 控制 函 式库 V.5.0 版 或 以上 版 本 )版本 :V. 5.0日期 : 2010.5WWW.SZMCS.COMMCS 运 动 控制函 式库范 例手册目 录1. 运动控函式库范例内容说明. . 12. Group 参数与机构、编码器参数设定. . 23. 插值时间调整. 34. 启动与结束运功控制函式. . 45. 系统状态设定. 76. 读取运动速度、坐标与运动命令资讯. 107. 运动状态检视. 128. 加、减速段使用时间设定. . 149. 进给速度设定. 1510. 直线、圆

2、弧、圆、螺线运动(一般运动). 1611. 点对点运动. 1912. JOG 运动 2113. 定位控制. 2214. 原点复归运动. 2415. 运动暂停、持续、弃值. . 2616. 强迫延迟执行运功命令. . 2717. 速度强制控制. 2818. 软件过行程检查与硬件极限开关检查. 2919. 连续运动功能设定. 3220.读取与清除错误状态. .3321. 齿轮齿隙与间隙补偿. .3422. 如何完成 6 轴连续运动. . 3523. 编码器 (Encoder)计数值触发中断服务函式功能. 39iMCS 运 动 控制函 式库范 例手册24. 门锁( Latch)编码器计数值与 IND

3、EX 讯号触发中断服务函式功能 4125. 近端节点( Local I/O)讯号控制与触发中断服务函式功能. . 4326. 计时器计时终了触发中断服务函式功能. 4827. Watch Dog 功能. 5028. 设定与读取 Remote I/O 输出、入接点讯号. . 5229. 读取 Remote I/O 讯号传输状态 5330. Remote I/O 输入接点讯号 触发中断服务函式. . 5531. Remote I/O 资料传输错误 触发中断服务函式. . 5732. 规划 DAC 类比电压输出. 5933. ADC 电压输入单次转换. .6034. ADC 电压输入 连续转换. .

4、6235. ADC 比较器中断功能控制. . 6436. ADC 标签 Channel 触发中断服务函式功能. 67iiMCS 运 动 控制函 式库范 例手册1. 运 动控 制函 式库 范例 内容 说明安装光盘中所提供的范例皆为 console mode 类型, 使用者可将这些范例整合到自 己的应用程序中。 MCCL 最多能支持 12 张 MTC 运动控制卡与 72 个 groups,但为了 增 加 这些 范 例的 可 读性 , 大部 分 的范 例 只使 用 1 张 运 动控 制 卡( 运 动 控制 卡 编号 使用CARD_INDEX 来表示 )与 1 个 group(group 编号使用 g

5、_nGroupIndex 来表示 )。1MCS 运 动 控制函 式库范 例手册2. Group 参 数与 机构 、编 码器 参数 设定相关函式MCC_SetSysMaxSpeed() MCC_GetSysMaxSpeed() MCC_SetMacParam() MCC_GetMacParam() MCC_SetEncoderConfig() MCC_CloseAllGroups() MCC_CreateGroup() MCC_UpdateParam()范例程序InitSys.cpp内容说明本范例说明 group、 机构与编码器参数的设定过程。 先使用 MCC_SetSysMaxSpeed()

6、设定进给速度的上限 , 接着使用 MCC_SetMacParam()与 MCC_SetEncoderConfig()设定 各轴的机构与编码器参数,最后再使用 MCC_CreateGroup()建立一新的 group。有关 group 使用方式与机构参数更详细的说明请参考 ”MCS 运动控制函式库使用手册” 。2MCS 运 动 控制函 式库范 例手册3. 插 值时 间调 整相关函式MCC_InitSystem() MCC_GetCurPulseStockCount()范例程序CheckHWStock.cpp内容说明较小的插值时间拥有较佳的运动控制性能,插值时间可设定的最小值为 1ms, 但 并非

7、所有 PC 皆适用 1ms 的插值时间,这与 PC 的性能有关。为了获得最适当的插值 时间,可以使用 MCC_GetCurPulseStockCount()读取 MTC 运动控制卡上的 pulse 库存 笔数。 在持续运动过程中 pulse 库存笔数必须大于或等于 60,才能保证稳定的运动性 能。 若库存笔数出现等于 0 的现象, 则必须延长插值时间( 插值时间为 MCC_InitSystem() 所需的参数之一) 。 另外, 若人机操作画面的显示出现迟滞的现 象 , 也必须延长插值时间。3MCS 运 动 控制函 式库范 例手册4. 启 动与 结束 运动 控制 函式 库相关函式MCC_Init

8、System() MCC_CloseSystem() MCC_GetMotionStatus()范例程序InitSys.cpp内容说明本范例说明在完成 group 参数与机构参数的设定后,使用 MCC_InitSystem()启动 运动控制函式库,所需的参数请参考” MCS 运动控制函式库使用手册 ”。下面说明范 例的内容。Step 1:给定控制卡硬件参数SYS_CARD_CONFIG stCardConfigMAX_CARD_NUM;stCardConfigCARD_INDEX.wCardAddress = BASE_ADDRESS stCardConfigCARD_INDEX.wCardT

9、ype = wCardType; stCardConfigCARD_INDEX.wIRQ_No = IRQ_NO;Step 2:启动运动控制函式库nRet = MCC_InitSystem( INTERPOLATION_TIME, / 插值补间时间设为 10 ms stCardConfig, / 硬件参数1); / 只使用 1 张 M TC 卡4MCS 运 动 控制函 式库范 例手册if (nRet = NO_ERR)/ 启动运动控制函式库成功/*使用者可于此执行其它初始化的动作, 例如设定位移单位、 进给速度。*/Step 3:MCC_CloseSystem()被使用来关闭 MCCL 与驱动

10、程序函式库, 两种方式可用来关 闭系统:i. 全部运动命令执行完成才关闭系统 需 检 查 系 统 是 否 处 于 停 止 状 态 , MCC_GetMotionStatus() 的 函 式 传 回 值 若 为 GMS_STOP,则系统处于停止状态。while (nRret = MCC_GetMotionStatus(g_nGroupIndex) != GMS_STOP)MCC_TimeDelay(1); / Sleep 1 ms/ 因使用” while命令,为避免系统死锁,影响系统的操作/ 需呼叫 MCC_TimeDelay ()释放 CPU 的使用权。MCC_CloseSystem(); /

11、 结束 MCCL 与驱动程序函式库5MCS 运 动 控制函 式库范 例手册ii. 直接结束运动控制库只需呼叫 MCC_CloseSystem()即可,系统将立刻停止运作。6MCS 运 动 控制函 式库范 例手册5. 系 统状 态设 定相关函式MCC_SetUnit() MCC_GetUnit() MCC_SetAbsolute() MCC_SetIncrease() MCC_Get_CoordType() MCC_SetAccType() MCC_GetAccType() MCC_SetDecType() MCC_GetDecType() MCC_SetPtPAccType() MCC_Get

12、PtPAccType() MCC_SetPtPDecType() MCC_GetPtPDecType() MCC_SetServoOn() MCC_SetServoOff() MCC_EnablePosReady() MCC_DisablePosReady()范例程序SetStatus.cpp内容说明 此范例说明如何改变系统状态。 未特别设定系统状态, 系统将使用预设状态运作 ,7MCS 运 动 控制函 式库范 例手册系统的预设状态可参阅” MCS 运动控制函式库参考手 册 ”。下面说明函式的内容。MCC_SetUnit(UNIT_MM, g_nGroupIndex); / 使用 mm 为位移

13、量单位MCC_SetAbsolute(g_nGroupIndex); / 使用绝对坐标型态表示各轴位置/ 使用 T型曲线为直线、圆弧、圆运动的加速型式MCC_SetAccType(T, g_nGroupIndex);/ 使用 S型曲线为直线、圆弧、圆运动的减速型式MCC_SetDecType(S , g_nGroupIndex);/ 使用 T型曲线为点对点运动的加速型式MCC_SetPtPAccType(T, T, T, T, T, T, g_nGroupIndex);/ 使用 S型曲线为点对点运动的减速型式MCC_SetPtPDecType(S, S, S, S, S, S, g_nGrou

14、pIndex);MCC_SetServoOn(0, CARD_INDEX); / 启动第 0 轴伺服系统/ 开启 Position Ready 输出接点功能MCC_EnablePosReady(CARD_INDEX);启 动 伺 服 系 统 需 呼 叫 MCC_SetServoOn() , 系 统 才 能 正 常 运 作 ; 是 否 需 呼 叫8MCS 运 动 控制函 式库范 例手册MCC_EnablePosReady()视实际情况而定。9MCS 运 动 控制函 式库范 例手册6. 读 取运 动速 度、 坐标 与运 动命 令信 息相关函式MCC_GetCurFeedSpeed() MCC_Ge

15、tFeedSpeed() MCC_GetCurPos() MCC_GetPulsePos() MCC_GetCurCommand() MCC_GetCommandCount()范例程序GetStatus.cpp内容说明MCC_GetCurFeedSpeed()用来读取目前的进给速度 , MCC_GetSpeed()则可以用来 读取目前各轴的进给速度。 MCC_GetCurPos()用来读取各轴目前位置之直角坐标值, MCC_GetPulsePos()则用来读取各轴目前位置之马达坐标值 (或称为 pulse 坐标值 )。直 角坐 标值与 马达坐 标值可 以利用 机构参 数换算 而得, 也就是 马

16、达坐 标值 直 角坐标 值 (dfGearRatio / dfPitch) dwPPR。 使 用 MCC_GetCurPos()与 MCC_GetPulsePos() 所读取之各轴坐标值,只有在该轴有实际对应至硬件输出 Channel 时才有意义。下面为使用范例:Step 1:宣告变量double dfCurPosX, dfCurPosY, dfCurPosZ, dfCurPosU, dfCurPosV, dfCurPosW, dfCurSpeed;double dfCurSpeedX, dfCurSpeedY, dfCurSpeedZ, dfCurSpeedU, dfCurSpeedV,df

17、CurSpeedW;10MCS 运 动 控制函 式库范 例手册long lCurPulseX, lCurPulseY, lCurPulseZ, lCurPulseU, lCurPulseV, lCurPulseW;Step 2:读取目前的进给速度dfCurSpeed = MCC_GetCurFeedSpeed(g_nGroupIndex);Step 3:读取目前各轴的进给速度MCC_GetSpeed( Step 4:读取各轴目前位置之直角坐标值MCC_GetCurPos( Step 5:读取各轴目前位置之马达坐标值MCC_GetPulsePos(使用 MCC_GetCurCommand()可以

18、获得目前正在执行的运动命令相关的信息,包括运 动 命 令 类 型 、 运 动 命 令 编 码 、 进 给 速 度 、 目 的 点 位 置 坐 标 等 。 使 用 MCC_GetCommandCount()可 以 获 得 运 动 命 令 缓 冲 区 中 库 存 且 尚 未 执 行 的 运 动 命 令 之数目。11MCS 运 动 控制函 式库范 例手册7. 运 动状 态检 视相关函式MCC_GetMotionStatus()范例程序MotionFinished.cpp内容说明利 用 MCC_GetMotionStatus()的 函 式 传 回 值 可 检 视 机 器 目 前 的 运 动 状 态 。

19、 若 函 式 传回值为 GMS_RUNNING,表示机器处于运动状态;若函式传回值为 GMS_STOP, 表 示机 器处 于停 止状 态, 运动 命令 缓冲 区中 已无 命令 ;若 呼叫 MCC_HoldMotion()成 功, 此时 MCC_GetMotionStatus()的函式传回值为 GMS_HOLD, 表示机器处于暂停状 态 , 仍 有 运 动 命 令 尚 未 执 行 完 成 ; 若 MCC_GetMotionStatus() 的 函 式 传 回 值 为 GMS_DELAYING,表 示因呼 叫 MCC_DelayMotion(),系 统目前 处于运 动延迟 状态。 下面为使用范例:

20、Step 1:宣告读取运动状态参数int nStatus;Step 2:启动伺服MCC_SetServoOn(0, CARD_INDEX); MCC_SetServoOn(1, CARD_INDEX);Step 3:直线运动,后执行运动状态读取MCC_Line(20, 20, 0, 0, 0, 0, g_nGroupIndex);12MCS 运 动 控制函 式库范 例手册Step 4:等待 MCC_Line()执行完,产生后 GMS_STOP 后方跳出循环,再继续执行下面的命令while (MCC_GetMotionStatus(g_nGroupIndex) != GMS_STOP);.Ste

21、p 5:延迟运动命令,此时运动状态为 GMS_DELAYING MCC_DelayMotion(10000); / delay 10000 msStep 6:再次运动改变运动状态MCC_Line(50, 50, 0, 0, 0, 0, g_nGroupIndex);Step 7:当按下 H 键,运动暂停,状态呈现 GMS_HOLDnRet = MCC_HoldMotion(g_nGroupIndex);Step 8:当按下 C 键,将继续未完成之运动,状态呈现 GMS_RUNNINGnRet = MCC_ContiMotion(g_nGroupIndex);printf(“Motion sta

22、tus : %d r“, status);13MCS 运 动 控制函 式库范 例手册8. 加 、减 速段 使用 时间 设定相关函式MCC_SetAccTime() MCC_SetDecTime() MCC_GetAccTime() MCC_GetDecTime() MCC_SetPtPAccTime() MCC_SetPtPDecTime() MCC_GetPtPAccTime() MCC_GetPtPDecTime()范例程序AccStep.cpp内容说明 一 般运 动( 包 括直 线 、圆 弧 、圆 运 动) 与 点对 点 运动 的 加、 减 速时 间 默认 值 为 300毫 秒 , 但

23、可 使 用 MCC_SetAccTime()、 MCC_SetDecTime()、 MCC_SetPtPAccTime()、MCC_SetPtPDecTime()调整加 、 减速的时间, 使这些运动有较为平顺的加、 减速过程。 不同速度应采用不同的加、 减速时间。 使用 MCCL 时 , 使用者需自行设计各种速度下的加、 减速时间, 适当的加、 减速时间会因为使用不同的马达与机构而有所差异 。 加、减速时间可以利用下面的公式获得:运动时的加速时间 = 要求的速度 / 要求的加速度 运动时的减速时间 = 要求的速度 / 要求的减速度14MCS 运 动 控制函 式库范 例手册9. 进 给速 度设

24、定相关函式MCC_SetFeedSpeed() MCC_GetFeedSpeed() MCC_SetPtPSpeed() MCC_GetPtPSpeed()范例程序SetSpeed.cpp内容说明 在 进 行 直 线 、 圆 弧 、 圆 运 动 前 需 先 设 定 进 给 速 度 , 所 设 定 的 进 给 速 度 不 应 超 过MCC_SetSysMaxSpeed()的设定值。使用 MCC_SetFeedSpeed()设定直线、 圆弧、 圆 、 螺线运动的进给速度, 例如呼叫MCC_SetFeedSpeed (20, g_nGroupIndex) 时 , 表 示 进 给 速 度 为 20 m

25、m/sec 或 20 inch/sec,依所使用的单位而定。使用 MCC_SetPtPSpeed()来设定点对点运动的速度, 第一个参数为” 各轴最大速度 的百分比再乘以 100”, 范围从 0 100。 例如执行 MCC_SetPtPSpeed(50, g_nGroupIndex) 时, 表示要求各轴的点对点运动速度为 (RPM Pitch / GearRatio) 50%。 RPM、 Pitch、GearRatio 定义在机构参数中。15MCS 运 动 控制函 式库范 例手册10. 直 线、 圆弧 、圆 、螺 线运 动 (一 般运 动 )相关函式MCC_SetAbsolute() MCC_

26、SetFeedSpeed() MCC_Line() MCC_ArcXY() MCC_CircleXY()范例程序GeneralMotion.cpp内容说明在完 成 group、机 构与编 码器参 数设定 、启动 系统、 设定进 给速度 的上限 、开启 伺服回路( 使用步进马达时不需此动作 )与设定进给速度 后 , 即可进行直线 、 圆弧、 圆 、 螺线运动。在使用圆弧函式时需注意给定的参数是否合理 (起始点、参考点与目的点 等三点的位置不能在同一直在线) 。下面为函式使用范例。Step 1:使用绝对坐标型态表示各轴位置并设定进给速度MCC_SetAbsolute(g_nGroupIndex);

27、 MCC_SetFeedSpeed(10, g_nGroupIndex);Step 2:执行直线运动命令MCC_Line(10, 10, 0, 0, 0, 0, g_nGroupIndex);Step 3:执行圆弧命令,请注意需避免起始点、参考点与目的点在同一直在线nRet = MCC_ArcXY(10, 20, 20, 20, g_nGroupIndex);16MCS 运 动 控制函 式库范 例手册if (nRet != NO_ERR)/*利用传回值了解错误发生的原因, 如果参数错误则传回值为 PARAMETER_ERR。*/可以利用函式的传回值了解错误发生的原因, 传回值的意义请参考” M

28、CS 运动控 制函式库参考手册 ”。行进的轨迹如下图所示。y(10, 20)(20, 20)(10, 10)(0 , 0 ) xStep 3:执行圆命令MCC_CircleXY(25, 20, 0, g_nGroupIndex);运 动 命 令 的 执 行 过 程 是 运 动 函 式 先 将 运 动 命 令 (OP Code)置 于 各 group 专 属 的 运 动命令缓冲区中, MCCL 再同时从不同 group 的运动命令缓冲区中撷取运动命令依序 执行。这两个动作并不是同步动作,也就是并不需等到前一笔运动命令执行完成, 即可将新的运动命令送到运动命令缓冲区中。17MCS 运 动 控制函

29、式库范 例手册MCC_Line(10, 10, 0, 0, 0, 0, 0) MCC_ArcXY(10, 20, 20, 20, 0)MCC_CircleXY(25, 20, 0, 0)available. O P C ode 1O P C ode 2O P C ode 3E x e c u teP u t G e tAsynchronization若运动命令缓冲区已满,则函式的传回值为 COMMAND_BUFFER_FULL_ERR,此笔运动命令将不被接受。 预设每个运动命令缓冲区拥有 10000 个运动命令储存空间 。 上 图显 示 对 group 0 运 动命 令 缓冲 区 的操 作 过

30、程 , 可看 出 属于 同 一个 group 的 运动 命 令将被依序执行。因为各个 group 拥有专属的运动命令缓冲区,因此可同时执行属于不同 group 的运动命令,更详细的说明请参考” MCS 运动控制函式库使用手 册 ”。18MCS 运 动 控制函 式库范 例手册11. 点 对点 运动相关函式MCC_SetAbsolute() MCC_SetPtPSpeed() MCC_PtP()范例程序PtPMotion.cpp内容说明在完 成 group、机 构与编 码器参 数设定 、启动 系统、 设定进 给速度 的上限 、开启 伺服回路 (使用步进马达时不需此动 作 )与设定进给速度后,即可执

31、行点对点运动。下 面为函式使用范例。Step 1:使用绝对坐标与设定进给速度MCC_SetAbsolute(g_nGroupIndex); MCC_SetFeedSpeed(20, g_nGroupIndex);Step 2:设定各轴使用最大速度的 20%运动,也就是( RPM Pitch / GearRatio) 20% MCC_SetPtPSpeed(20, g_nGroupIndex);Step 3:各轴使用不同动的方式运动至( 10, 20) MCC_PtP(10, 20, 0, 0, 0, 0, g_nGroupIndex);点对点运动采用不同动的运动方式, 也就是各轴使用各自的速度

32、运动, 各轴在同19MCS 运 动 控制函 式库范 例手册时启动后并不一定会同时到达目的点, 这点与一般运动不同。 一般运动使用同动的运动方式, 各轴同时启动后会同时到达目的点。 下图为点对点运动的运动轨迹, 此时各 轴的速度相同。y (10, 20)(0 , 0 ) x20MCS 运 动 控制函 式库范 例手册12. JOG 运 动相关函式MCC_SetUnit() MCC_JogPulse() MCC_JogSpace() MCC_JogConti()范例程序JogMotion.cpp内容说明MCC_JogPulse()使用 pulse 为单位, 对特定轴进行微动动 作 , 但移动的 pu

33、lse 数不 能 超 过 2048。 MCC_JogSpace()使 用 单 位 与 一 般 运 动 相 同 , 对 特 定 轴 进 行 吋 动 动 作 。 MCC_JogConti() 则 可 运 动 至 机 构 参 数 所 设 定 的 工 作 区 间 边 界 。 MCC_JogSpace() 与 MCC_JogConti()所需的参数包括速度比例, 设定方式与点对点运动类似。 下面为使用 范例。Step 1:使用 mm 为位移量单位 MCC_SetUnit(UNIT_MM, g_nGroupIndex); Step 2:使 X 轴移动 100 pulses MCC_JogPulse(0,

34、100, g_nGroupIndex) ;Step 3:使用速度为( RPM Pitch / GearRatio) 10%,使 X 轴移动 - 1mm 距离MCC_JogSpace(-1, 40, 0, g_nGroupIndex);Step 4: 使 用 速 度 为( RPM Pitch / GearRatio) 10%, 使 X 轴 移 动 至 工 作 区 间 的 右 边 界MCC_JogConti(1, 10, 0, g_nGroupIndex);21MCS 运 动 控制函 式库范 例手册13. 定 位控 制相关函式MCC_SetInPosMaxCheckTime() MCC_Enabl

35、eInPos MCC_SetInPosToleranceEx MCC_GetInPosStatus范例程序InPosCheck.cpp内容说明 本范例程序利用编码器的计數值( 实际机台位置 )与目标位置之误差 , 检查每一个运动轴是否满足定位确认条件。 当运动命令执行完成将开始检视是否满足定位条件,若检视时间超过设定值, 如还存在某些运动轴的位置误差无法满足定位条件, 则纪錄此现象, 并停止执行其它运 动命令。使用者可以强制马达产生误差并观察运作情况。此项功能的使用步骤如下:Step 1:设定定位确认最长的检查时间,单位m sMCC_SetInPosMaxCheckTime(1000, g_n

36、GroupIndex);Step 2:设定定位控制模式MCC_SetInPosMode( IPM_ONETIME_BLOCK, g_nGroupIndex);Step 3:设定各轴误差值,单位为 mm 或 inchMCC_SetInPosToleranceEx(0.5, 0.5, 1000, 1000, 1000, 1000, g_nGroupIndex);22MCS 运 动 控制函 式库范 例手册Step 4:启动定位控制功能MCC_EnableInPos(g_nGroupIndex);Step 5:读取各轴定位控制状态,正确到位状态为 0xff(255) MCC_GetInPosStatu

37、s(Step 6:抓取错误代码nErrCode = MCC_GetErrorCode(g_nGroupIndex);23MCS 运 动 控制函 式库范 例手册14. 原 点复 归运 动相关函式MCC_SetHomeConfig() MCC_Home() MCC_GetGoHomeStatus() MCC_AbortGoHome()范例程序GoHome.cpp内容说明原点复归的程序将依照原点复归参数中 SYS_HOME_CONFIG 的设定内容, 可以 使 用 MCC_SetHomeConfig()设 定 原 点 复 归 参 数 (请 参 考 ”MCS 运 动 控 制 函 式 库 使 用 手 册

38、” )。利用 MCC_GetGoHomeStatus()可获得原点复归程序是否已经完成, 另外在原点复 归运动过程中可呼叫 MCC_AbortGoHome()强迫停止原点复归运动。目前 MCCL 所提供的原点复归功能, 一次只能针对一张运动控制卡, 如需操作多 张运动控制卡, 则需使用 MCC_GetGoHomeStatus()来确定目前进行的原点复归运动已 经完成, 才能对下一张运动控制卡呼叫 MCC_Home()进行原点复归的动作。 下面为使 用范例:Step 1:设定原点复归参数SYS_HOME_CONFIG stHomeConfig;stHomeConfig.wMode = 3; /

39、设定原点复归模式24stHomeConfig.wDirection = 1; / 设定NorstHomeConfig.wSensorMode = 0; /stHomeConfig.nIndexCount = 0;stHomeConfig.dfAccTime = 300; / msstHomeConfig.dfDecTime = 300; / msstHomeConfig.dfHighSpeed = 10; / mm/sstHomeConfig.dfLowSpeed = 2; / mm/sstHomeConfig.dfOffsetStep 2:设定原点复归参数= 0;MCS 运 动 控制函 式库

40、范 例手册往负方向做原点复归运动mal Openfor (WORD wChannel = 0;wChannel 6;wChannel+) MCC_SetHomeConfig(Step 3:原点复归,0x ff 表示该轴不需进行原点复归动作MCC_Home(0, 0xff, 0xff, 0xff, 0xff, 0xff, CARD_INDEX);Step 4:如果有需要可使用此函式,停止原点复归运动MCC_AbortGoHome();Step 5: 利用函式传回值判断原点复归运动是否已经完成, n Status 的值若为 1, 表示原 点复归运动已经完成nStatus = MCC_GetGoHo

41、meStatus();25MCS 运 动 控制函 式库范 例手册15. 运 动暂 停、 持续 、弃 置相关函式MCC_ HoldMotion() MCC_ContiMotion() MCC_AbortMotionEx()范例程序CtrlMotion.cpp内容说明MCC_HoldMotion()用来暂停目前正在执行的运动命令, MCC_ContiMotion()则用 来继续执行被暂停执行的运动命令, 因此 MCC_ContiMotion()需与 MCC_HoldMotion() 搭配使用,且需使用在相同的 group 中。M CC_AbortMotionEx()则用来设定减速停止 的时间并弃置

42、被暂停或执行中的运动命令。目 前 若 无 执 行 中 的 运 动 命 令 , 呼 叫 MCC_HoldMotion() 时 的 函 式 传 回 值 将 为 HOLD_ILLGEGAL_ERR ; 先 前 若 呼 叫 MCC_HoldMotion() 不 成 功 , 呼 叫 MCC_ContiMotion()时的 函式 传 回值将 为 CONTI_ILLGEGAL_ERR。无 论目前 运动状 态为何,呼叫 MCC_AbortMotionEx()皆会使运动 (减速 )停止并清除运动命令缓冲区中的库存命令。26MCS 运 动 控制函 式库范 例手册16. 强 迫延 迟执 行运 动命 令相关函式MCC

43、_InitSystem() MCC_DelayMotion()范例程序DelayMotion.cpp内容说明可以使用 MCC_DelayMotion()强迫延迟执行下一个运动命令,延迟的时间以 ms 为计时单位;下面的范例中,在执行完第一笔运动命令( Line)后,将延迟 3000 ms, 才 会再执行下一笔运动命令。Step 1:插值时间设为 INTERPOLATION_TIMEnRet = MCC_InitSystem(INTERPOLATION_TIME, stCardConfig, 1);Step 2:开始运动命令MCC_Line(10, 10, 0, 0, 0, 0, g_nGroupIndex);Step 3:延迟 3000 ms 才执行下一笔命令,请观察运动状态MCC_DelayMotion(3000);27

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报