马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255); text-align: center;"><span style="box-sizing: border-box; font-size: 12px;">PLCopen运动控制功能块<br/></span></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: normal; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em;"><span style="box-sizing: border-box; font-size: 12px;">PLCopen组织努力实现这个标准化。PLCopen组织成立于1992年,在开发、安装、维护中按照IEC61131编程环境通过不同平台协调工业控制市场。现在的主题包括运动控制、安全功能、XML数据交换和评价标准。PLCopen也持续促进这种标准在世界上的使用和培训,因为世界范围内的接受对它的开放的、独立的目标非常重要。为了创建标准运动控制规范,一套可重复使用的独立于硬件的控制组件已基于IEC61131功能块定义。根据这个标准,能重复使用应用软件。甚至多平台也是可能的。同时,也降低了培训和支持成本。实施新的开发更容易,从而带来更短的上市时间。在定义他们的运动控制功能块时,PLCopen特定任务要实现下列目标:<br/>·容易编程、安装和维护的简单设计;<br/>·创建多个功能块的效率;<br/>·遵守著名的IEC 61131语言标准的一致协议;<br/>·允许硬件独立实施的广泛的适应性;<br/>·这些功能块和将来扩展的柔性;<br/>·大多数运动控制应用的足够覆盖率。用允许单轴运动和同步多轴运动的一套基本的功能块实现这些目标。状态机在机器的顺序中描述单轴的行为。</span></p><section><span style="box-sizing: border-box; color: rgb(255, 0, 0);"><span style="box-sizing: border-box; font-weight: bolder;">使用详解:</span></span><br/><br/></section><p><section><span style="box-sizing: border-box;">在运动控制系统中,将轴的运行状态分成若干个逻辑状态,而每个逻辑状态直接的转移,需要特定的条件、或指定的MC 运控指令。这样划分处理的好处是便于轴按运动模式分类控制,轴在一个时候只能处于一种逻辑状态,而逻辑状态的转移需要按规则进行,不会因不同MC 的误触发而带来运行的混乱。<br/></span><br/></section><section><span style="box-sizing: border-box;">轴数据结构变量(Axis.nAxisState)来指示轴的当前运行状态,该变量Axis.nAxisState 为枚举型变量,共有如下8种可能状态:</span><br/></section></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><span style="box-sizing: border-box;">0:Power_off(Disabled):轴未上电使能,或未使能,需执行MC_Power 指令<br/></span></p><p><section><span style="box-sizing: border-box;"> 1:Errorstop;——————- 先执行MC_Reset/MC_Power 指令<br/> 2:Stopping;——————– 等待停机操作完成<br/> 3:Standstill;——————- 轴已停止运行,脱离同步<br/> 4:Discrete_Motion;——— 轴处于离散运行状态<br/> 5:Continuous_Motion;—– 轴处于连续运行中<br/> 6:Synchronized_Motion;— 轴处于同步运行中<br/> 7:Homing;———————- 轴处于回零运行中,等待归零操作执行完成</span><br/></section><section><br/></section><section><span style="box-sizing: border-box;">轴状态转移图如下,从一个状态转移到另一个状态,需要运行对应的条件,如运行MC 指令,或外部出现了故障,用户无法对其状态进行强制,编程时一定要按照逻辑要求,运行相关的指令:</span><br/></section></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><a class="j-wpcom-lightbox" href="https://www.cn-im.cn/uploads/allimg/2021/1/JraUja.png" style="box-sizing: border-box; background-color: transparent; text-decoration-line: none;"><img width="607" height="589" class="j-lazy" alt="Codesys——PLCopen基本运动控制功能块的使用方法总结" src="/upload/image/20230529/1685339511176955.png" title="Codesys——PLCopen基本运动控制功能块的使用方法总结插图3" style="box-sizing: border-box; border: 0px; vertical-align: middle; height: auto; margin: 0px auto; padding: 0px; color: rgb(85, 85, 85); text-indent: 30px; font-size: 15px; font-variant-numeric: normal; font-variant-east-asian: normal; display: block;"/></a></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><span style="box-sizing: border-box;">图中的MC 功能块可以使轴状态转移到指定的状态,由图中可以看到:</span></p><ol class=" list-paddingleft-2" style="box-sizing: border-box; margin-bottom: 20px; padding-left: 2em; list-style-position: outside; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word;"><span style="box-sizing: border-box; font-size: 15px;">在轴停止状态(Standstill,即 Axis.nAxisState=3)可以转移到各种运行状态;<br/></span></p></li><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word;"><span style="box-sizing: border-box; font-size: 15px;">可以由多种状态转移到停止状态(Standstill,即 Axis.nAxisState=3),,</span></p></li><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word;"><span style="box-sizing: border-box; font-size: 15px;">若伺服轴出现告警(Errorstop,即Axis.nAxisState=1),就必需先运MC_Reset 指令、MC_Power 指令使轴进入Standstill 状态,才能让轴再次运行;</span></p></li><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word;"><span style="box-sizing: border-box; font-size: 15px;">若不按上述转移图方式使用MC指令命令轴运动,就不会使轴响应,反而得到 MC 功能块的错误告警信息;</span></p></li></ol><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><span style="box-sizing: border-box; font-size: 15px;">用户程序中,有时需要根据轴的状态,启动后续的控制逻辑,此时依据Axis.nAxisState 的判断,相比于对 MC 功能块的done 信号判断,更为准确可靠。</span></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; line-height: 1.8; overflow-wrap: break-word; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"><span style="box-sizing: border-box;">熟悉上述轴状态图的转移条件,并在编程时,注意MC 指令的使用逻辑和顺序,才能编写出稳定可靠的应用程序。</span></p><p><span style="box-sizing: border-box; color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_Halt<br/>在MC_MoveVelocity模式下,用MC_Halt停止其轴,当前轴的状态由<br/>ContinuousMotion(当前转速)—》DiscreteMotion(速度不为0)—》Standstill(速度为0)。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_Stop</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">在MC_MoveVelocity模式下,用MC_Stop停止其轴,当前轴的状态由</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">ContinuousMotion—》Stopping—》StandStill(速度为0)</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_Reset</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">当轴出错时,执行MC_Reset可清除轴错误,但不会掉使能。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">执行复位功能块,也有可能报错;</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">当轴报错且错误代码为34时,很有可能是MC_Stop的Execute一直为TRUE,此错误不需要用MC_Reset命令清除。当取消MC_Stop的输入端Execute为FALSE后,就可以执行其他功能块。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_Power</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">在bRegulatorOn为TRUE且bDriveStart为TRUE时,给Enable一个上升沿,MC_Power的输出Status就为TRUE。上使能成功之后,即使修改输入端Enable为FALSE,其输出端Status仍然为TRUE。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_MoveVelocity</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">每次要更新轴的设定速度时,需要给MC_MoveVelocity输入端的Execute一个上升沿,设定的速度值才会被更新到轴状态中。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_GearIn</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">同MC_MoveVelocity,每次更新电子齿轮比并发挥作用,需要给MC_GearIn输入端Execute一个上升沿,电子齿轮比才会起作用。</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);"> </span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">MC_GearOut</span><br/><span style="color: rgb(38, 38, 38); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif; background-color: rgb(255, 255, 255);">脱离齿合后,轴以脱离时的速度继续转动。</span></p> |