PLC 位置数值换算毫米:位数、量程与零点三处对齐

线接好了、通讯通了、数也在变,可从磁致伸缩位移传感器读回来的是一串整数:0 到 8388607,或者 4.03mA。这两样都不是毫米。换算这一步做错,后面所有精度讨论都没有意义——误差预算、重复性、线性度,全都建立在"数已经对了"这个前提上。

一、先分清你手上是哪种"数"

四种输出给出的原始量,性质完全不同,混着套公式是常见错误。

  • 脉冲时间型(Start-Stop)。给出的是两路脉冲之间的时间差,位置 = 时间差 × 波速 ÷ 2。这个除法由电子头做,出厂就做完了,用户拿不到时间差。
  • 模拟量型。给出的是 4–20mA 或 0–10V,电流电压与位置成线性关系。它已经是工程量的一种变形,只是单位不是毫米。
  • 串行数字型(SSI)。给出的是满量程被等分后的整数,位数决定等分成多少份。
  • 现场总线型。给出的是过程数据里的整数字,字节序和拼字方式由协议决定。

前两种在现代系统里都还要再换算一次,后两种的换算发生在程序里。输出类型对照那篇列过各系列的接口,选型时先确定是哪一种。

二、换算只有三个参数

满量程计数

SSI 位数决定它。位数为 N,满量程被分成 2 的 N 次方份,每份对应的长度 = 有效量程 ÷ 2 的 N 次方。出厂时这一层已经固定,程序里要用的就是这个总数。

零点偏移

计数为 0 的点,未必是机械零位。反装、倒装、磁环装在活塞哪一侧,都会让"计数零点"和"机械零点"错开一段固定距离。这段距离要么写进尺的参数,要么在程序里加。

方向

活塞伸出时计数该增还是该减。方向反了的表现很有辨识度:手动点动时读数朝反方向走,操作工一看就知道;自动循环里则表现为越走越偏,反而不好查。

三个参数里,只有第一个是固定的,后两个随安装方式变。换一支同型号的尺,第一个不用动,后两个可能要重来。

三、四种输出的换算入口各不相同

模拟量:从电流电压进

4–20mA 的算法是:位置 = (实测电流 − 4) ÷ 16 × 有效量程。0–10V 同理,把 4 和 16 换成 0 和 10。两个细节容易出错:一是量程用的是有效量程,不是测杆总长,两端盲区不能算进去;二是 PLC 模拟量模块读到的原始值往往还要再换一次成电流,两层换算叠着写容易错位。

SSI:位数决定分辨率

SSI 是主站发时钟、从站逐位返回。格雷码和二进制两种编码,时序与编码那篇讲过区别:二进制直接可用,格雷码要先转成二进制再算,否则相邻两个位置之间会出现大幅跳变。转换没做,读数看着正常、只在特定位置跳——这是最容易被误判成干扰的一种表现形式。

总线:先解决拼字,再谈换算

CANopen 的位置在过程数据里,8 字节帧里怎么排布由设备描述决定;Modbus 的 32 位位置要拼两个寄存器,字序错了会得到一个看似合理的大数。这一层的错误有个共同特征:数值量级明显不对,或者随位置变化的方向错乱。

Start-Stop:一般不用你算

时间差到位置的换算在电子头内部完成。用户能调的只有量程端点。这一路真正需要注意的是时钟源的稳定性,而不是换算公式。

工业控制柜内部的接线端子、PLC 机架与手持编程器
换算参数常要在这三处之间来回对:尺、程序、机械基准

四、整数运算别把精度提前丢掉

控制器里做整数除法会截断。先除后乘,截断发生在小数量级上,误差被放大;先乘后除,截断发生在结果的最后一位,误差被压到最小。

举个例子:满量程计数 8388608,量程 1000mm。要算毫米,正确做法是先乘 1000 再除 8388608,结果保留小数;错误做法是先算"每毫米多少计数"(约 8388.6),再拿计数去除——这个 8388.6 在很多 PLC 里会被存成 8388,一路累积下去,走到满行程时差出一截。

缩放系数本身也要留够位数。系数取成整数、或者只留两位小数,误差在下游没有补救机会。

五、零点偏移写在尺里还是写在程序里

两边都能写,但不要两边都写。判断依据是换件的频率:

  • 写在尺里适合机械基准稳定、换尺频繁的场合。新尺装上去照原参数写一遍,程序不动。
  • 写在程序里适合一个程序带多台同型设备、每台机械零位略有差异的场合。改一处、不动尺。

两边都写的后果是排查时没人分得清:读数偏了,是尺里的偏移被改了,还是程序里的系数被人调过。改之前先把当前值抄下来存档,这个动作比什么都省事。

六、换算对了还是不准,三处常见错位

  • 磁环位置不等于机械零位。程序算出来的"零"是磁环所在的零,不是活塞端面所在的零。两者之间那段结构尺寸要量一次、写进参数,不能默认相等。
  • 量程订大了一档。为了留余量往上订一档是常规做法,但换算系数如果按名义行程算,整条曲线就少了一截分辨率,末段尤其明显。
  • 两端盲区被当成有效行程。有效量程的起止点不是测杆的物理两端。按物理长度换算,两端会呈现"走不动"的效果,看起来像限位,其实是换算边界画错了。

七、一句话

换算不是调参,是把三个量的关系写对。三个量对齐了,剩下的误差才轮到这支尺自己负责。

常见问题

Q:SSI 的位数怎么换算成毫米?

先算每份的长度:有效量程 ÷ 2 的位数次方。再把收到的整数乘以这个值,减去零点偏移,方向反了再取补。注意用有效量程而不是测杆总长,两端盲区不计入。

Q:4-20mA 怎么换算成位置?

位置 =(实测电流 − 4)÷ 16 × 有效量程。0-10V 时把 4 和 16 换成 0 和 10。PLC 模拟量模块的原始值通常还要再换一层成电流,两层叠写容易错位,建议在程序里分成两个清晰的变量。

Q:零点偏移应该写在传感器里还是写在 PLC 里?

换尺频繁、机械基准稳定的场合写在传感器里;一个程序带多台同型设备、各台零位略有差异的场合写在程序里。两种都写会导致排查时分不清是谁改的,改前必须抄下当前值。

Q:读数换算是先乘后除还是先除后乘?

先乘后除。整数除法会截断,先除会在小数量级上截断,误差被后续运算放大;先乘后除把截断推到结果末位。缩放系数本身也要留足小数位,取整会一路累积成系统性偏差。

这篇讲的问题,说到底都绕不开磁致伸缩位移传感器本身。磁致伸缩位移传感器产品中心按行程、安装方式与输出接口把全部系列排开,选型从这里进最省事。

← 返回行业动态