news 2026/1/11 6:55:50

MoveVelocity 定速指令-电子凸轮Ver1.3(包含西门子200smart、威纶通触...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MoveVelocity 定速指令-电子凸轮Ver1.3(包含西门子200smart、威纶通触...

MoveVelocity(定速指令-电子凸轮)Ver1.3 1.西门子200smart 2.威纶通触摸屏 3.pls指令编写(源代码),非调用库,类似西门子指令。 4.梯形加减速。 5.启动带加速、停止带减速。 可正向运动和反向运动。 6.版本Ver1.3支持运动中变速(在计算出的时间内,加速到设定的频率或减速到设定的频率)。

最近在折腾西门子200smart PLC和威纶通触摸屏联动做定速控制,手搓了个支持运动中变速的电子凸轮程序。这玩意儿用原生PLS指令搞脉冲输出,没走库函数捷径,实测梯形加减速比某些现成方案更丝滑。

先说控制逻辑的核心部分。速度转换用时间片分割,每个扫描周期计算脉冲增量。比如加速阶段,每次扫描时把当前速度累加上加速度系数,直到达到目标速度:

// 加速处理段 LD SM0.0 // 常通 MOVW VW100, AC0 // 当前速度 +I VW102, AC0 // 加速度系数 MOVW AC0, VW100 // 更新当前速度 CMPW AC0 >= VW104 // 对比目标速度 JMP NC // 未达目标继续加速 MOVW VW104, VW100 // 达到后锁定

这段代码的精髓在于用整数运算替代浮点计算,避免200smart的运算瓶颈。VW102这个加速度系数得根据机械参数换算,比如500ms加速到10kHz的话,系数就是20(10000/500*扫描周期)。

脉冲生成用了定时中断+PLS指令组合拳。在OB35中断组织块里塞进这段:

// 中断服务程序 LD SM0.0 PLS 0, Q0.0 // 通道0脉冲输出 MOVW VW100, SMD72 // 动态写入脉冲频率

注意S7-200smart的PLS指令有个坑——修改频率时必须先停发脉冲。Ver1.3版用了个骚操作:在中断触发前微调脉冲个数,让频率变更瞬间无缝衔接。实测切换速度时机械振动降低约40%。

触摸屏交互部分,威纶通的宏指令和PLC寄存器得做二级滤波。比如速度设定值从HMI过来时,先用这个斜坡函数处理:

// 速度设定值滤波 LD M0.0 // 变速使能 EU // 上升沿触发 MOVW VW200, VW202 // 新目标速度 -I VW100, VW202 // 计算速度差 MOVW VW202, VW204 // 存入变速缓冲区

反向运动实现比想象的简单,把脉冲频率设为负数再触发方向信号就行。但要注意加减速曲线要取绝对值计算,否则减速阶段会出现倒车现象。调试时因为这个坑导致电机来回抽搐了好几次。

运动中变速的核心算法其实是动态调整加速度系数。当接收到新速度指令时,重新计算剩余脉冲需要的加减速时间:

// 变速处理 LD M0.1 // 运动中变速标志 AW> VW100, 0 // 当前速度>0 JMP Pos_Spd // 正向变速分支 // 反向变速处理类似 Pos_Spd: SUBW VW104, VW100 // 新老速度差 MOVW AC0, VW106 // 存入速度差寄存器 DIVW VW108, VW106 // 根据剩余时间计算新加速度系数

最后说说硬件配合,Q0.0发脉冲接伺服驱动器,Q0.1控制方向信号。关键参数如加速度时间、急停减速度都做了HMI界面可调,遇到不同负载特性时不用改程序直接调参就行。实测在雕刻机应用场景下,速度切换时雕刻深度偏差控制在±0.02mm内。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/30 0:00:56

供应链计划系统架构实战(七):轻量级分布式计算框架设计与实现

1、框架设计逻辑 核心组件 1、服务注册与发现(Redis) 使用Redis作为服务注册中心 以服务名称ApplicationName为key存储节点集群 基于时间戳的心跳机制(10秒间隔) 2、任务调度系统 数据库作为任务持久化存储 守护线程轮询获取新任务 基于负载的调度算法(选择负载最小节点…

作者头像 李华
网站建设 2026/1/1 4:30:28

cuda安装完成后测试样例:PyTorch-CUDA-v2.8自带验证脚本

PyTorch-CUDA-v2.8 镜像环境下的 GPU 验证实践 在深度学习项目启动的最初几分钟里,最令人沮丧的莫过于——明明装好了 CUDA 和 PyTorch,运行代码时却提示“CUDA not available”。这种看似配置完成、实则无法调用 GPU 的情况,在科研和工程实…

作者头像 李华
网站建设 2025/12/29 23:56:42

数字孪生是指什么?

数字孪生是指什么?数字孪生(Digital Twin)是指在虚拟空间中构建与物理实体或系统完全对应的动态数字镜像,通过实时数据采集、仿真分析和智能决策技术,打造虚实联动的监控、预测与优化闭环,其核心在于实时映…

作者头像 李华
网站建设 2025/12/29 23:53:48

diskinfo下载官网太慢?PyTorch-CUDA镜像已集成硬件监控工具

PyTorch-CUDA镜像已集成硬件监控工具:告别diskinfo下载慢的困扰 在深度学习项目开发中,最让人抓狂的往往不是模型调参,而是环境搭建阶段的各种“卡顿”——pip install torch 卡在 10%,CUDA 安装报错 libcudart.so 找不到&#xf…

作者头像 李华
网站建设 2025/12/29 23:51:38

华为云国际站代理商EDCM主要有什么作用呢?

华为云国际站代理商视角下,EDCM(Edge Data Center Management,边缘数据中心管理)是面向中小 / 边缘数据中心的云端统一监控运维系统,核心作用是集中远程管边缘、降本提效、合规留痕、赋能客户与伙伴增收,适…

作者头像 李华
网站建设 2025/12/29 23:50:04

PyTorch知识蒸馏实战:在CUDA-v2.8中训练小型化模型

PyTorch知识蒸馏实战:在CUDA-v2.8中训练小型化模型引言 技术背景 随着人工智能技术的快速发展,深度学习模型在计算机视觉、自然语言处理等领域的应用日益广泛。然而,大型神经网络虽然具备强大的表达能力,但也带来了高计算成本、高…

作者头像 李华