当前位置: 首页 > news >正文

电子凸轮 - 区间运动Ver2.2.0(位置跟随,去程 + 返程)实现记录

电子凸轮-区间运动Ver2.2.0(位置跟随,去程+返程) 0.一个主轴伺服(相对运动)+一个从轴伺服。 1.主轴伺服(Y轴)启动后进行相对运动,从轴伺服(X轴)跟随主轴伺服运动。 2.在西门子200smart/CPU224XP中运行。 3.维伦通触摸屏。 4.pls指令编写。 5.凸轮带加减速。 6.Y轴从0走到21000脉冲;X跟随Y轴,根据凸轮去程的设定向正方向走9000脉冲;然后X轴跟随Y轴,按照返程凸轮的设定向反方向走9000。 当Y轴走完21000脉冲时,X轴刚好回到起点,起点位置为0。

最近在做一个项目,用到了电子凸轮的区间运动控制,觉得挺有意思,就来和大家分享分享。这次的系统主要涉及一个主轴伺服(相对运动)和一个从轴伺服。

硬件环境

  1. 控制器:采用西门子200smart/CPU224XP,这是一款在小型自动化项目中很常用的PLC,性价比不错。
  2. 人机交互:维伦通触摸屏,方便设置参数和监控运行状态。

控制逻辑

主轴伺服(Y轴)启动后进行相对运动,从轴伺服(X轴)要跟随主轴伺服运动。具体来说,Y轴从0走到21000脉冲,在这个过程中,X轴要根据凸轮的设定进行运动。X轴先是根据凸轮去程的设定向正方向走9000脉冲,然后按照返程凸轮的设定向反方向走9000脉冲,这样当Y轴走完21000脉冲时,X轴刚好回到起点位置0。

代码实现(基于PLS指令)

在西门子200smart的编程环境中,我们使用PLS指令来实现脉冲输出控制伺服电机。下面简单给大家展示下关键代码片段(简化示意,实际应用需完善逻辑和参数设置):

// 定义一些变量 VAR // 脉冲个数相关 Y_Pulse_Count: DWORD := 0; // Y轴脉冲计数 X_Forward_Pulse: DWORD := 9000; // X轴去程脉冲数 X_Backward_Pulse: DWORD := 9000; // X轴返程脉冲数 // 速度相关 Y_Speed: WORD := 1000; // Y轴速度 X_Speed: WORD := 1000; // X轴速度 END_VAR // Y轴启动相对运动 NETWORK 1 LD M0.0 // 启动信号 MOV_DW 21000, Y_Pulse_Count // 设置Y轴目标脉冲数 PLS 0, Y_Speed, Y_Pulse_Count // 启动Y轴的PLS脉冲输出,这里0代表通道0,实际按硬件配置 // X轴跟随Y轴,去程部分 NETWORK 2 LD SM0.5 // 这里用SM0.5模拟检测Y轴运动状态,实际应用可能需更精准检测 LDW>= Y_Pulse_Count, 0 LDW< Y_Pulse_Count, 10500 // 假设Y轴走到一半位置左右开始X轴去程 MOV_DW X_Forward_Pulse, VD10 // 准备X轴去程脉冲数 PLS 1, X_Speed, VD10 // 启动X轴正向运动,1代表通道1,实际按硬件配置 // X轴跟随Y轴,返程部分 NETWORK 3 LD SM0.5 LDW>= Y_Pulse_Count, 10500 MOV_DW X_Backward_Pulse, VD20 // 准备X轴返程脉冲数,取负值表示反向运动 PLS 1, X_Speed, VD20 // 启动X轴反向运动,让X轴回到原点

代码分析

  1. 变量定义部分:我们定义了Y轴的脉冲计数变量YPulseCount,以及X轴去程和返程的脉冲数XForwardPulseXBackwardPulse,还有两个轴的运动速度变量YSpeedXSpeed。这些变量是整个运动控制的基础参数。
  2. Y轴运动控制:当启动信号M0.0置位,将Y轴的目标脉冲数21000赋值给YPulseCount,然后通过PLS指令,在通道0以设定速度Y_Speed输出脉冲,驱动Y轴开始相对运动。
  3. X轴去程控制:利用SM0.5这个1秒周期的时钟脉冲来模拟检测Y轴的运动状态(实际应该根据编码器反馈等更精确的方式)。当Y轴脉冲数在0到10500(假设Y轴走到一半左右位置)这个区间时,将X轴去程脉冲数赋值给VD10,并通过PLS指令在通道1以设定速度X_Speed输出脉冲,让X轴正向运动。
  4. X轴返程控制:当Y轴脉冲数大于等于10500时,将X轴返程脉冲数(这里假设取负值代表反向运动)赋值给VD20,再次通过PLS指令在通道1以设定速度X_Speed输出脉冲,使X轴反向运动回到原点。

这里要注意的是,实际应用中需要根据硬件连接情况准确设置PLS指令的通道号,并且对运动状态的检测应该采用更可靠的方式,比如编码器反馈等。同时,为了确保运动的平稳性,凸轮的加减速部分在代码里没有详细体现,实际也需要通过修改脉冲输出频率等方式来实现平滑的加减速控制。希望这次分享对大家在类似项目的开发中有所帮助!

电子凸轮-区间运动Ver2.2.0(位置跟随,去程+返程) 0.一个主轴伺服(相对运动)+一个从轴伺服。 1.主轴伺服(Y轴)启动后进行相对运动,从轴伺服(X轴)跟随主轴伺服运动。 2.在西门子200smart/CPU224XP中运行。 3.维伦通触摸屏。 4.pls指令编写。 5.凸轮带加减速。 6.Y轴从0走到21000脉冲;X跟随Y轴,根据凸轮去程的设定向正方向走9000脉冲;然后X轴跟随Y轴,按照返程凸轮的设定向反方向走9000。 当Y轴走完21000脉冲时,X轴刚好回到起点,起点位置为0。

http://www.jsqmd.com/news/463180/

相关文章:

  • 有哪些适合科研小白上手的AI论文写作软件?需要注意什么?
  • 很多设计师和开发者之间,总隔着一道隐形的墙:能玩转这个闭环的人,不再是单纯的设计师或开发者,而是真正能从0到1造出好产品的人。
  • PNAS:新发现!神经特征模式有望用于预测创伤性脑损伤患者的恢复
  • 科目四必过手册
  • java基础入门
  • Go interface
  • OMAP L138 McASP实战指南:从入门到FPGA通讯精通(非音频场景)
  • 全网都在刷Open Claw?别傻了!这才是让GPT-5.4和Sora2真正听话的技术底层!
  • 电力系统Simulink仿真探索:从MMC到MPPT的多元控制实现
  • 常用API整理(按功能)
  • 探秘全自动锂电池 Degas 机的程序世界
  • MultiThread
  • 探索 3.6kw 光伏储能逆变器:基于 STM32F103 的奇妙之旅
  • 使用Papanastasiou正交模型求解宾汉姆浆液单一裂隙注浆扩散范围
  • 用易语言纯系统API实现全局鼠标键盘钩子监听
  • 留学机构优选:本科TOP10 平台口碑与实力并存 - 博客湾
  • IEEE13节点系统Simulink仿真:从基础到拓展
  • Ubuntu怎么弄得像windows:Dash to Panel
  • 2026聚焦可行性研究报告咨询,口碑好的公司评测推荐,bp商业计划书/市场调研分析报告,可行性研究报告编写机构排行 - 品牌推荐师
  • 基于模型预测算法的含储能微网双层能量管理模型:MATLAB实现与探索
  • 2026年珍珠棉袋子厂家排行榜:陕西五大优质珠光膜信封袋/气泡膜/气泡袋厂商推荐 - 深度智识库
  • MATLAB代码实现的电动汽车有序充电策略
  • 测试外包坟场:东欧AI标注厂暴雷——软件测试行业的警示与突围
  • 2026年3月最新武汉税务合规优质服务机构推荐榜 - 资讯焦点
  • carsim,simulink联合仿真,自动驾驶基于mpc自定义期望速度跟踪控制
  • 【论文阅读】Line-Mod算法
  • 2026年 关风机厂家推荐排行榜:尼龙关风机/不锈钢关风机,匠心工艺与高效密封性能深度解析 - 品牌企业推荐师(官方)
  • 科技服务机构如何优化服务流程?
  • 十进制取反
  • CIA-net:用于多模态MRI卵巢肿瘤分割的跨模态交互与聚合网络/文献速递-大模型与图像分割在医疗影像中应用