☰
伺服压机控制实时性:采样周期、力闭环与工艺场景如何匹配
2026/10/4 1:28:10 网站建设 项目流程

前几年我经常被客户问到一个看起来很直接的问题:你们伺服压机控制系统的实时性要求是什么?采样周期多少毫秒算够?刚开始我还会脱口而出“1毫秒”,后来发现这个回答坑了不少人。同样是伺服压机,有的产线用5毫秒采样也压得很稳,有的项目采样周期提到0.5毫秒还是做不出合格的力-位移曲线。问题不在系统快不快,而在于你对“实时性”三个字的理解是哪种实时。剥开看,伺服压机里的采样周期至少牵涉三层:压力信号从传感器出来的ADC采样周期、控制器运动控制环路的刷新周期、以及上位机状态机拿数据的通讯周期,这三层经常被混成一句话,谁最慢谁才是真正的瓶颈。这篇文章把这些掰开揉碎,按工艺场景给出建议值和实测方法,希望你看完能直接套到自家设备上。

1. 讨论实时性之前,先看伺服压机到底在干什么

1.1 压装工艺的“力-位移窗口”是实时性的最终裁判

伺服压机,也叫伺服压力机、伺服压装机,核心动作就是伺服电机驱动丝杠或曲柄,把压头按设定轨迹往下压。光看动作本身,它和伺服电缸没什么区别,真正的技术含量在压装过程中对力与位置关系的感知和处理。

绝大多数伺服压机的质量判定不是看“压到某个位置”,而是看“在什么位置产生了多大的力”。典型工艺是力-位移窗口判断:压头走到某个位移点时,压力必须落在规定的上下限区间;曲线斜率、峰值力、终止位置也都可能是合格项。比如过盈联接的轴承压装,压入力会在某个位移点突然上升,这个“突跳”出现的位移位置和斜率大小直接决定装配是否合格。

说了这么多,是想引出第一层结论:实时性的最终裁判是力-位移窗口的时间尺度,而不是拍脑袋定的一个毫秒数。窗口越窄,运行速度越快,留给系统的采样机会就越少。举个例子,压头速度100毫米每秒意味着每毫秒移动0.1毫米,如果某一关键特征只存在于0.5毫米的位移区间里,那么它能持续的时间只有5毫秒。采样周期10毫秒很可能一个有效点都采不到,特征直接丢失。反过来,慢速压装5毫米每秒时,同样0.5毫米的窗口能持续100毫秒,哪怕采样周期拉到20毫秒,也能在窗口内采到好几个点。

所以回答“多少毫秒算够”之前,必须先算清楚自己工艺的特征时间尺度,这个比任何规格书都权威。

1.2 三种典型任务对时间的敏感度完全不同

伺服压机的活大致能分成三类,每一类对采样周期的敏感度差一个数量级。

第一类是恒力保压,压到位置或者压到力之后保持一段时间。这个场景对采样周期的要求很低,因为系统处于稳态,关注的是力的波动幅度。采样周期5到10毫秒完全够用,真正影响波动的是压机的机械刚性和伺服驱动器的力闭环带宽,不是采样够不够快的问题。

第二类是装配型的位移驱动压装,包括轴承压装、销钉压装、壳体压装等。压头按速度或位置模式运动,压装过程中只测力、判断曲线是否合格。这一类敏感度取决于压装速度:慢速产线20毫秒采样也可能很稳,高速产线或者节拍快的转盘线,2毫秒都不一定够。

第三类是力闭环精密压装和动态成形,比如精密齿轮压装、弹性体压缩、金属薄板成形等。系统需要在压装过程中实时根据力反馈调整位置或速度,实现恒定力控制或复杂轨迹跟踪。这一类的采样周期实质上就是力闭环的控制周期,1毫秒往往只是及格线,很多设备已经做到250到500微秒。

很多项目报需求时只写一句“实时性要高”,完全不区分这三类,最后要么选型过度多花钱,要么选轻了达不到节拍。我建议你按工艺类型反过来推需求,先确定自己的压装任务属于哪一类,再往下看采样周期和总线选型。

2. 采样周期从哪里来:控制环路、总线周期与ADC采样别混为一谈

2.1 控制器的内环外环:位置环、速度环、力环各有各的脾气

很多人以为采样周期就是控制器读数据的快慢,其实伺服压机系统里有好几条并行运行的闭环环路,周期各不相同。

位置环和速度环通常在伺服驱动器内部完成,刷新率动辄几千赫兹。市面主流伺服驱动器速度环刷新率在1到8千赫兹,也就是0.125到1毫秒一个周期。这部分基本不用你操心,选型时关注驱动器的速度环带宽是否满足压机动态响应即可。

力环就复杂了。压力传感器输出信号经过ADC采样进入控制器,控制器在每个采样周期计算一次力误差并输出目标扭矩或速度给驱动器。如果这个力闭环放在外部运动控制器里,那么采样周期就是力环的控制周期;如果放在驱动器内部,采样周期则由驱动器的压力反馈接口决定。这里最常见的问题是,项目指标里写“采样周期1毫秒”,实际压力传感器信号走的是普通PLC的模拟量输入模块,模块刷新周期5到10毫秒,加上信号滤波和PLC程序扫描时间,真实力环可能要到20到30毫秒才更新一次。这不是采样周期的问题,是整个力闭环架构的问题。

2.2 EtherCAT、脉冲、模拟量三种信号通路决定数据能不能按时到达

控制系统读到的任何数据都要经过一条物理通道,这个通道的延迟和刷新率直接决定“周期”能不能成立。

EtherCAT是目前伺服压机领域最主流的方案,支持分布式时钟同步,各从站节点间的同步误差能控制在微秒级。常见周期有125微秒、250微秒、500微秒、1毫秒和2毫秒,主站任务周期设多少,压力采集模块和伺服驱动器就按这个周期同步刷新。如果你用这种方式,采样周期写1毫秒是实打实的。

脉冲方向控制是很多老压机的方案,驱动器靠脉冲流接收位置指令,压力反馈走模拟量输入。脉冲方式没有全局时钟同步,压力采集和位置指令天然存在不确定性,做慢速恒力保压可以,做高速力-位移曲线判断就非常吃力。

模拟量直接进PLC或采集卡是最常见的低成本方案,同时也是最容易被低估的方案。PLC模拟量模块的刷新周期通常在毫秒到十几毫秒之间,再叠加内置数字滤波,实际延迟比采样周期还要大。这种架构下,你别看系统变量里确实每隔固定时间更新一次力值,但这已经是“滤波后的结果”,而不是原始事件。

还有一条路是走上位机TCP或串口,这根本不适合作为闭环通道。串口一帧数据动辄几十毫秒,TCP又受系统调度影响,只适合做监控和参数下发。我见过有项目试图把力值通过网口每秒传200个点再算压装曲线,结果曲线尾巴拖得又长又平,判定结果忽好忽坏,这就是通路没选对。

2.3 ADC采样周期背后的玄机:分辨率、滤波与有效带宽

既然提到模拟量,就必须单独讲一下ADC采样周期。这也是很多工程师容易卡住的地方。

2.3.1 ADC采样周期不等于控制周期

应变式压力传感器的输出是毫伏级差分电压,需要仪表放大器和高分辨率ADC转换成数字量。工业上常见的24位Sigma-Delta型ADC,比如ADS1256、CS5532之类,原始过采样率非常高,但内部数字滤波器会把数据率压下来,以获得更高的有效分辨率和更低的噪声。

很多人看到芯片手册写着“采样率30kSPS”,就认为系统采样周期是30微秒。实际上Sigma-Delta ADC内部有SINC数字滤波器,输出数据的建立时间是多少?ADS1256在低数据率下有效分辨率极高,但它的SINC滤波器阶数和抽取率是绑定在一起的,要等到滤波器完全建立后才能拿到准确读数。如果你设置的数据率很高,分辨率会下降;数据率很低,建立时间可能长达几毫秒甚至几十毫秒。这时候真正的有效采样周期不是“多少微秒一次转换”,而是“滤波器对阶跃输入建立到位需要多少时间”。

2.3.2 SINC滤波器与平均滤波会吃掉力信号的尖峰

Sigma-Delta ADC的SINC滤波器本质上是低通特性,数据率越低,对高于奈奎斯特频率的力信号衰减越厉害。这对恒力保压没影响,但对高速压装的力突变点影响非常大。压力信号从0跳到满量程,如果ADC数据率和滤波器配置不当,读出值可能被削成一个缓慢爬升的斜坡,峰值和斜率全部失真。

软件端同样会踩这个坑。工程师喜欢在采样值上再做移动平均,比如取50个点平均。假设ADC原始采样率20千赫,取50点平均后等效噪声滤掉了,但平均窗口长度2.5毫秒,信号延迟2.5毫秒。压力特征点原本在5毫秒内完成,平均滤波后等于把特征点拖到7.5毫秒,判定窗口稍微一窄就会超差。

ADC采样周期这个热词背后,真正要理解的是有效带宽和信号延迟。配置ADC时,优先看“输出数据率+滤波建立时间”这个组合,而不是单纯追求最高采样率。除非你后续对信号做动态补偿,否则高采样率配合低数据率输出,反而会让系统看起来“很慢”。

3. 多少毫秒算够:按工艺场景分级,再也别信“越短越好”这种话

3.1 常规压装:5毫秒完全够用,瓶颈根本不在采样周期

先说最大众化的场景:电机端盖压装、轴承压装、衬套压装、销钉压装。压装速度通常在5到20毫米每秒,压入力从几百公斤到几吨,质量判定窗口怎么也有1到2毫米,换算成时间就是50毫秒以上。

这个场景下,2到5毫秒的采样周期已经非常充裕。真正决定压装质量的反而是机械结构,比如压头导轨间隙、传感器安装刚性、设备基础振动。我调过一台压机,采样周期从5毫秒改到0.5毫秒,力波形毛刺反而变多,报警率不降反升。后来发现是压机自身振动通过传感器安装座串进来了,把采样周期调慢一点加个滤波反而更干净。

所以常规压装里,如果你正在纠结“要不要把采样周期从5毫秒改成2毫秒”,我建议先确认信号链路里有没有低通滤波,有没有做屏蔽接地,再去折腾采样周期。

3.2 精密力控压装:1毫秒是及格线,趋势判断比单点精度更要紧

到了精密电子、医疗器械、精密齿轮这类领域,压入力窗口可能只有几公斤力,压入位移窗口可能只有几十微米,而且还要判断曲线斜率、有没有卡滞、有没有压裂。

这类设备往往需要力闭环控制,采样周期建议做到1毫秒以内。注意这里比“采样周期”更关键的是“力控刷新周期”,因为控制律的积分项、微分项都依赖固定周期的力值更新,周期抖动会直接体现在压力波动上。

此外,精密压装非常依赖趋势信息。只用单点力值判断合格,样品稍有污染或润滑差异就会误判。更好的做法是每1毫秒采样一点,同时对数据做轻量的滑动窗口斜率计算,识别力-位移曲线在局部窗口内的变化方向。这个趋势判断至少需要窗口内有5到10个点,因此有效采样周期反而从“1毫秒能采到数据”退化成“需要连续多个周期数据都稳定”。如果系统采样周期有严重抖动,斜率计算结果就会跳动,报警逻辑就没法做。

3.3 高速冲压、动态成形这些极端场景:125到500微秒才是能用的

如果压装速度超过100毫米每秒,或者工艺是冲压成形、动态顶出,那么力特征点可能只有1到2毫秒的生命周期。这时候采样周期必须压到500微秒以内,部分高速冲压机甚至用125到250微秒。

这种场景对系统架构的要求是整体性的:EtherCAT同步周期得短,压力采集模块要支持高速数据流输出,控制器的力控任务要跑在最高优先级,上位机绝不能插手闭环。市面上能做到250微秒力闭环的伺服压机控制器,通常是把力控直接做在运动控制器里,压力信号通过EtherCAT端子或内部高速背板同步进入,不走普通模拟量输入。

顺带提醒一句,采样周期做到125微秒不代表压装判定就用这些原始点,而是给控制算法留出充分的判断空间。真正对外输出的曲线特征点常常还会经过重采样,比如每5个原始点取一个代表点,既能保留特征又不让历史数据文件爆炸。

3.4 一张参考表:场景、采样周期与典型配置

下面这张表是我实际项目里反复验证的参考值,可以当作方案初期的起点。

工艺场景典型压装速度力特征时间尺度推荐采样周期推荐信号架构
低速装配、恒力保压5-20毫米/秒50-200毫秒5-10毫秒PLC模拟量模块+驱动器
常规装配压装、窗口判定20-60毫米/秒10-50毫秒1-2毫秒EtherCAT端子+运动控制器
精密力控压装10-50毫米/秒10-50毫秒0.5-1毫秒EtherCAT同步+力控任务
高速压装、动态成形100-200毫米/秒1-5毫秒0.125-0.5毫秒高速EtherCAT+外部高速采集

表格只是个起点,真正选多少还得结合你的曲线判定算法。如果算法需要做曲线二次微分,采样周期还要再收紧一点,否则求导噪声大得没法用。

4. 实测方法:怎么判断当前系统的采样周期是否吃得住产线

4.1 用高速录波抓一条力-位置曲线的真实时间戳

想知道系统实际采样周期是多少,别只看控制器里配置的那个数,要用录波工具抓带时间戳的真实数据。很多EtherCAT运动控制器自带Scope或录波功能,打开后把压力信号、压头位置、控制指令三个变量同时记录下来,每组数据都带毫秒或微秒级时间戳。

抓完数据后,第一件事不是看曲线,而是统计相邻两个时间戳的差值。如果差值基本稳定在你设定的周期附近,说明系统调度正常;如果差值忽大忽小,出现两倍甚至三倍周期的大间隔,说明有更高优先级的任务抢占了CPU,或者总线上有站掉线重连。

我之前用一段简单的Python脚本处理录波日志,效果很好:

import numpy as np import pandas as pd df = pd.read_csv("force_curve_log.csv") ts = df["timestamp_ms"].to_numpy(dtype=np.float64) dt = np.diff(ts) * 1000 # 转成微秒 print("平均周期: %.2f us" % np.mean(dt)) print("最大周期: %.2f us" % np.max(dt)) print("最小周期: %.2f us" % np.min(dt)) print("周期3σ抖动: %.2f us" % (np.std(dt) * 3)) # 找出所有超过设定周期1.5倍的间隔并打印位置 bad = np.where(dt > np.median(dt) * 1.5)[0] print("异常间隔数量: %d" % len(bad))

跑一遍基本就知道系统有没有丢周期。只统计平均值没有意义,平均值好看但偶尔丢一两个周期,对压装判定来说一样是致命的。

4.2 检查控制器和固件的任务调度,别被上位机HMI骗了

如果录波数据里时间戳乱跳,下一步就要区分是上位机问题还是控制器问题。

上位机层面的坑最多。很多压机软件把曲线显示和工艺逻辑放在同一台Windows工控机上,人机界面定时器一刷新,CPU占用上去,采样循环就被卡住。工控机跑Windows,Timer分辨率默认只有15.6毫秒,别拿它做实时统计。如果工艺逻辑必须跑在上位机,请改用工控机上安装的实时扩展或者把关键路径挪到独立运动控制器里。

控制器层面的排查则要看任务配置。运动控制器里通常有多个周期任务,比如IO刷新任务、运动任务、插补任务、通讯任务。确保负责力控和曲线采样的任务被分配了最高优先级,并且该任务的CPU执行时间余量足够。用控制器软件查看各任务的循环时间和最长执行时间,如果最坏执行时间接近任务周期,说明CPU已经太满,采样周期再短也撑不住。

4.3 加示波器抓物理信号,验证最坏情况下的抖动

软件层面的时间戳可能受到日志缓存影响,最可靠的办法是硬件实测。方法是把控制器里某个空闲的DO输出口,在采样任务的开始和结束各翻转一次,用示波器或逻辑分析仪同时捕捉这个DO信号和压力传感器的原始电压信号。

这样一来,示波器上能看到两条信号:一条是方波表示“控制器任务运行间隔”,另一条是模拟波形表示压力变化。测量方波的周期,得到的就是控制器执行采样任务的真实周期;对比方波高电平与模拟量骤变点之间的相对时间,得到的就是信号从传感器进入控制器的总延迟。

EtherCAT系统还可以直接读主站诊断里的周期偏差寄存器,查看每个周期实际运行时间与理论周期的差值。抖动如果超过设定周期的10%,就要认真处理了。把周期从1毫秒降到0.5毫秒时,抖动上限会从100微秒压缩到50微秒,这往往比采样本身更考验控制器的实时性能。

5. 采样周期设错工期多惨:三个真实案例复盘

5.1 案例一:压装曲线关键拐点采不到,过盈判定反复误报

某汽车零部件产线做衬套过盈压装,压装速度不低,节拍要求12秒一件,其中有效压装时间只有2秒。客户最初把采样周期配置成10毫秒,现场反馈压力曲线经常少一段,过盈判定的峰值力时有时无。

排查链路是这样的:先怀疑压力传感器,换了一个全新的,故障依旧。又怀疑机械卡顿,清了导轨重新打表,还是没解决。最后我拿示波器直接抓传感器电压,发现真实压力有一个明显拐点,持续约30毫秒,按10毫秒采样最多只能采到3个点,而且这3个点落在拐点前后不同高度上,峰值力自然忽高忽低。

把采样周期调整到2毫秒,同时给压力模块开了数字滤波但保留原始数据用于曲线判定,问题才彻底消失。这个案例给我的教训是:判断采样周期够不够,一定先用示波器看真实信号持续时间,再决定周期。

5.2 案例二:ADC SINC滤波把力信号“洗”平了,超调报警乱响

一套精密压装机用力闭环压装薄壁零件,控制器配置了高精度采集模块,为了获得更高分辨率把数据率调得很低,同时启用了采集模块内部的SINC滤波。稳态时力很平稳,但每次压入瞬间控制器都会报“压力超调”,连续几次还可能触发急停。

排查时先是怀疑控制参数超调,把PID增益一路往低调,超调不降反增,曲线变得更肉。后来用独立采集卡同步对比,发现控制器读到的力值总比外部采集卡慢半拍,且峰顶被削平。问题正是出在采集模块的低数据率SINC滤波器上:它对快速阶跃力进行了大量平滑,控制器看到的“超调”其实是滤波后曲线变钝,闭环为了追目标值持续加大输出,等滤波器反映过来目标力早就冲过头。

解决方法是把采集模块的数据率提高到几百千赫级别,减少SINC抽取比,关闭额外的移动平均,改用在控制器任务里做轻量中值滤波。调整后真实超调幅度回归正常,报警消失。这个案例说明,采样周期的“快”必须配合信号通路的“真”,滤波拉的延迟比采样率低还可怕。

5.3 案例三:EtherCAT周期1毫秒看着很美,上位机攒了5毫秒才发指令

某个多工位压装工作站用了EtherCAT方案,控制周期1毫秒,压力采样走独立高速端子,理论上非常完美。实际运行中设备每隔几件就出现一次压装位置偏差,但记录到的曲线又看不出压力异常。

排查过程比较曲折。先看驱动器报警和事件日志,没有异常;再看EtherCAT从站诊断,周期偏差也很小。最后我们给运动任务加了DO翻转信号,示波器抓出来发现:EtherCAT网络上的数据虽然是1毫秒刷新一次,但运动指令的更新任务实际每4到5毫秒才执行一次。原因是上位机软件把多工位状态机、配方管理、数据上传全部塞进了控制器主循环,主循环执行时间被拖到5毫秒,运动任务只能排队等。

解决办法是把状态机切成独立的低优先级任务,让1毫秒周期任务只做运动和力控,状态机在5到10毫秒任务里跑,数据上传再降到几十毫秒。压装位置偏差随即消失。这个案例的关键在于:系统实时性是一条链,网络周期短不等于控制任务周期短,中间任何一级排队都会让最终的实际周期变长,排查时一定要把控制器任务配置表打开逐项看。

6. 选型时怎么提实时性需求,避免二轮开发

6.1 需求书里别只写“实时性要高”,要写清楚具体参数

很多设备采购需求书里关于实时性的描述只有一句话:控制系统需满足高实时性要求,支持高速数据采集。这句话到选型阶段等于没说。

我建议需求书至少把这几个数字写清楚:压力信号ADC采样周期、力闭环刷新周期、位置/速度环刷新周期、EtherCAT同步周期、IO触发同步误差、事件记录时间戳分辨率。例如:

  • 压力采样周期:0.5毫秒,24位ADC,单通道有效分辨率不低于18位
  • 力闭环刷新周期:1毫秒,闭环内不经过上位机
  • 位置环/速度环由伺服驱动器内部实现,刷新率不低于4千赫
  • 总线周期:EtherCAT同步周期1毫秒,从站同步偏差小于1微秒
  • 力曲线事件记录时间戳分辨率:不高于0.1毫秒

这样供应商拿到需求后可以直接对应到硬件选型上,而不是再反问你“采样周期是什么意思”。

6.2 控制器平台怎么选:运动控制器、伺服驱动器内置力控还是PLC加驱动器

当前做伺服压机实时控制主要有三条技术路线。

第一条是独立运动控制器加EtherCAT伺服和压力模块,适合高速和精密压装。控制器负责力闭环和曲线判定,压力数据通过总线同步进入,周期可做到0.5毫秒甚至更低。这种架构灵活,算法可以自己写,调试门槛也最高。

第二条是利用伺服驱动器内置的压力闭环接口。很多高端伺服驱动器支持模拟量压力反馈或专用压力信号接口,力环在驱动器内部跑1毫秒以内,外部控制器只下发目标力或位置轨迹。架构稳定、响应快,但曲线判定逻辑得在上位机或控制器里做,压力原始数据的导出能力要看驱动器固件。

第三条是PLC加普通伺服驱动器。适合低速保压和简单窗口判定,压力进模拟量模块,PLC周期扫描。成本低、维护方便,但采样周期很难稳定低于5毫秒,精密高速压装不要选这条路。

选型时还有一个隐性成本要算清楚:第一和第二条路线的控制系统开发周期通常比第三条长,但调试和改工艺的时间短得多。高速产线一旦压装速度提到100毫米每秒以上,PLC加驱动器的架构很可能直接干不了,到时候要整体换控制器,成本反而最高。

6.3 我个人的几个习惯性设置和经验值

项目做多了之后,我形成了一套相对固定的初始配置,在这里直接分享出来当参考。

常规压装项目优先级最高的是稳定性和可维护性。配置1毫秒EtherCAT周期,压力采集模块每毫秒同步刷新一次,力控任务跑在控制器实时任务里,曲线判定基于1毫秒原始点,但对外输出重采样到5毫秒一个特征点。这样数据量小,历史曲线稳定,调试时也容易排查。

精密力控项目会把采样周期压到0.5毫秒。压力信号进入控制器前不加额外数字滤波,最多做3点中值滤波,因为这种滤波器不引入相移,适合特征点检测。控制输出的平滑放在PID被控量一侧,而不是放在反馈桥上。

高速压装项目有两个习惯:一是在压力模块上开快速的原始数据流通道,避免经过上位机缓存;二是在控制任务里加一个粗同步标志,当检测到力值快速上升时立刻打一个时间戳,这个时间戳和位移插补值绑定,用来反推精确的位置-力对应点,能弥补采样周期带来的定位误差。

最后分享一个每次验收必做的测试:压装过程中在外部触发一个阶跃信号,阶跃接在某一路空闲输入上,控制任务同时记录输入时间戳并翻转一个DO口输出,用示波器同时看这个输入、DO输出和压力波形,统计从外部事件到系统产生响应的完整链路时间。这个端到端测试比看任何规格书都实在。规格书写采样周期1毫秒,实际链路延迟可能只有0.3毫秒,也可能是1.8毫秒,只有测过你心里才有底。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询