传感器装好了,读数也准了,但如果没接对 PLC,一切都白搭。现场最常出的问题,就是传感器输出和 PLC 模块对不上号,导致 PLC 里读出来的是一堆乱码、或者单位完全不对。这篇把位移传感器和 PLC 联调这件事讲透,从模块匹配到工程单位换算。
一、第一步:搞清楚你输出的是什么信号
联调的第一步,是明确传感器输出的是什么类型的信号。这决定了该接 PLC 的哪个模块。
- 模拟量电压(0-10V)→ 接模拟量电压输入模块。
- 模拟量电流(4-20mA)→ 接模拟量电流输入模块。
- 数字量/总线(RS485、Profibus、EtherCAT)→ 接对应总线接口模块。
- SSI → 接 SSI 接口模块或编码器接口卡。
信号类型选错了,接错模块,后面全错。所以先明确信号,再谈接线。
二、模块匹配:量程和分辨率要能对上
确定了模块类型,还要看模块的量程和分辨率能不能匹配传感器的输出。比如你的传感器输出 4-20mA,对应 0-500mm;那 PLC 的模拟量输入模块要能识别 4-20mA 这个范围,且分辨率够高,才能把位置分得足够细。
以某 PLC 的模拟量输入为例,它可能把 0-20mA 映射成 0-27648(12 位分辨率)。那你要在程序里把 4-20mA 映射成 0-500mm:位置值 = (读数 - 4mA对应值) / (20mA对应值 - 4mA对应值) * 500。这个换算关系,就是量程映射。
三、量程映射:把 PLC 原始数变成工程量
PLC 读到的通常是一串原始数字(所谓原始值、AD 值),不是直接的长度毫米数。要把它变成你想要的“毫米”,就需要量程映射。
举例:传感器量程 0-500mm,输出 4-20mA,PLC 模块把 0-20mA 映射成 0-27648。
- 4mA 对应 PLC 值 = 4/20 * 27648 = 5529.6
- 20mA 对应 PLC 值 = 27648
- 那 0mm 对应 PLC 值 5529.6,500mm 对应 PLC 值 27648
实际位置(mm) = (PLC值 - 5529.6) / (27648 - 5529.6) * 500。把这个公式写进 PLC 程序,读到的就是真实毫米数。
四、数据转换与缩放:别让它变成乱码
联调时最恼火的就是数据转换不对,读出来的是乱码或者一个没有意义的数。常见坑:
- 数据类型不匹配:传感器出的是有符号数,PLC 当成无符号,或反过来。
- 字节序反了:网络通信时高低字节顺序搞错,数字就变成很大或很奇怪的值。
- 比例因子/缩放忘掉:没做量程映射,直接把 AD 值当长度用。
这些都是联调时要特别小心的点。每读一个数,先看看它数量级对不对,再判断是不是转换错误。
五、工程单位换算:回到真实的物理世界
最终的目标是让 PLC 里显示、控制的是真实的物理长度(毫米、厘米)或角度。所以做完量程映射后,还要统一到工程单位。这一步的关键是:全项目统一单位,别一会儿毫米一会儿厘米,程序里混用就乱套。
建议做法:在整个系统里统一用毫米,所有换算都在统一的地方做,方便维护和排查。
六、联调的实操步骤
把传感器和 PLC 联调,按这个流程走:
- 确认信号类型,接正确的模块。
- 检查接线:信号线、电源线、屏蔽地都接对。
- 读取原始值:先把传感器移动到几个已知位置,读取 PLC 的原始 AD 值,看它是不是线性变化。
- 做量程映射:根据 0 位和满位对应的原始值,写出换算公式。
- 验证工程单位:移动到几个已知位置,确认 PLC 显示的毫米数正确、线性。
- 留出裕度校验:在量程边缘和中间点都验证一下。
七、常见联调问题速查
- PLC 读数固定不变 → 没接线、信号未进模块、量程未映射。
- PLC 读数一直满值或 0 → 量程映射系数错、或接线反。
- PLC 读数乱跳 → 干扰、屏蔽、接地问题。
- PLC 读数单位不对 → 没做工程单位换算。
- PLC 读数非线性 → 传感器本身非线性、或量程映射用了错误的两个基准点。
八、结语:联调是把传感器“用”起来的临门一脚
位移传感器和 PLC 联调,关键在三点:模块匹配、量程映射、工程单位换算。三步做对,传感器读到的就是在 PLC 里能用的真实位置;任何一步出错,无论传感器多好,控制器里读到的都是错的。把选型、安装、接线、映射、验证都做扎实,位移传感器才能真正为你所用。