技术资讯

产品技术

线接了、灯亮了、就是读不到数。通讯配不通几乎都能归到五个参数上,按顺序过一遍比反复换线快。…

仪表接 485 通讯不上?先查这五个参数

· 产品技术

485 通讯接不通,是现场调试里最容易耗时间的环节 —— 因为现象只有一种:读不到数。而这一个现象背后有五个参数、两处地址、一个延迟在等着对。按顺序查,比反复换线、换模块快得多。

一、五个参数必须两边一致

  • 仪表地址:可设 1 到 255,出厂默认是 1。一条总线上的表地址不能重号。
  • 波特率:可选 2400 到 115200 共七档,出厂默认 9600。两边不一致,收到的全是乱码。
  • 通讯协议:可选 TC ASCII 或 Modbus-RTU。这一项选错,报文格式完全对不上,看起来像「完全没反应」。
  • 校验方式:无校验、奇校验、偶校验,只有选 Modbus 协议时才出现。
  • 停止位:1 位或 2 位,同样只在 Modbus 协议下才出现。

注意后两项的显示逻辑:选了 ASCII 协议,这两个参数根本不显示。所以「找不到校验和停止位在哪设」的时候,先去确认协议选的是不是 Modbus。

二、寄存器地址不是固定的

这一点最容易出问题:同一台表的同一个功能,通讯地址可能不一样,因为地址取决于这个功能接在哪个端子位置上。

比如变送输出,占用前一组端子时是一段地址,占用后一组端子时是另一段地址。通讯接口本身也是同理。所以写程序之前,先看端子上实际接在哪,再去查对应的地址段。照抄别人的程序、只改站号不改地址,是这个环节最常见的错误。

三、主机是单片机的话,可能还要调延迟

这类仪表的应答速度比较快。主机如果是 PC 或 PLC,快到快慢都无所谓;但主机是单片机、尤其是低速单片机时,仪表回得太快,主机反而来不及接收,表现为「偶尔能通、多数不通」或者「读到的数据错位」。

参数里有一项应答延迟,就是给这种情况准备的。把它设成特殊值后,仪表会完全按 Modbus 国标处理响应速度;也可以按微秒填一个具体延迟。主动发送模式下这一项不显示,因为主动发送不需要应答。

四、通了之后输出反而不对了?查控制权

通讯接通之后,有两种「副作用」会让现场以为通讯把表弄坏了:

  • 变送输出卡住不动:变送控制权被切到计算机侧后,4-20mA 由命令决定,与测量值无关。
  • 报警该动作不动作:报警控制权同样可以切到计算机侧,此时报警状态由命令决定。

这两个控制权参数出厂是关闭的,正常情况下不会自己变。但如果是别人调过的表、或者上位机程序主动切换过,就会出现「数字在变、输出不动」。排查顺序上,先看这两个参数,再怀疑硬件。

五、还有一个通用项:主动传输

仪表可以选择主动传输:不等主机问,自己按固定周期把测量值、峰值、谷值或显示值发出去。一条总线上只用一台上位机、且需要连续数据流时,这个模式省掉了轮询。

反过来,如果总线上有多台设备共用,却有一台开着主动发送,总线上就会出现不受控的报文,其他设备的通讯会时断时续。遇到「接了三台表之后都不稳定」,检查是不是有一台在主动发。

六、结语

通讯问题看着玄,其实只有三层:物理层(线接对没有)、参数层(五个参数一致没有)、地址层(寄存器和站号对不对)。三层过完还不通,才轮到怀疑模块。绝大多数「通讯不上」,卡在第二层。

需要选型或询价?

我们提供专业选型建议与技术支持,欢迎来电咨询。