1. 项目概述:200Smart PLC直连手轮控制方案
去年在自动化展会上看到一台数控铣床的手轮控制异常灵敏,回来就琢磨着用200Smart PLC复刻这套系统。经过三个月的反复调试,终于搞定了这个手轮直连伺服的硬核方案。不同于传统的中间转换模块,这套系统让手轮信号直接进入PLC处理,响应速度直接拉满,实测跟随延迟小于2ms。
核心思路其实很简单:把手轮的A/B相信号接入PLC高速计数器,通过差值算法实时计算手轮转动量,再用PLS指令输出脉冲控制伺服电机。但魔鬼藏在细节里——信号防抖处理、双缓存结构设计、脉冲当量匹配这些关键点,任何一个环节出问题都会导致伺服电机抽搐或者跟随不准。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件配置与信号处理
2.1 硬件选型要点
我的实验平台配置如下:
- PLC:西门子200Smart SR30(ST30也行,但SR30的输入点更充裕)
- 触摸屏:威纶通MT8071iP(建议用7000系列以上,脚本处理更流畅)
- 伺服系统:台达ASD-A2系列(三菱MR-JE系列也兼容)
- 手轮:HEIDENHAIN ERN 420编码器(100P/R,拆自二手加工中心)
关键提示:手轮建议选100-500线/圈的工业级编码器,淘宝上几十块的增量编码器抗干扰能力太差,高速旋转时容易丢步。
2.2 高速计数器配置
手轮的A/B相信号必须接入PLC的200kHz高速输入点(I0.0-I0.3),普通输入点响应速度跟不上。配置HSC1工作在模式9(A/B相4倍频计数),这样100线的编码器实际分辨率变成400脉冲/转:
st复制// 200Smart高速计数器初始化
HSC_INIT(
HSC := 1, // 必须用HSC1-HSC4
MODE := 9, // 模式9=AB相4倍频
CV := &VB100, // 当前值存储地址(必须4字节对齐)
PV := 16#FFFFFFFF, // 预设值设为最大
CONTROL:= 16#C0 // 启用计数+外部复位功能
);
实测发现两个坑:
- CV地址必须4字
