- 普通商家
- 深圳欧艾迪科技有限公司
- 主要经营:绝对值编码器、增量编码器、拉绳位移传感器、拉线编码器、直流无刷电机驱动器
- 经营模式:产研销综合服务商 配套件供应商 辅助及安全产品供应商 自动化系统解决方案集成商
- 所在地区:中国 广东省 深圳市
前两天有个客户打电话过来,语气挺急。说编码器装上去,PLC 读不到数,问是不是坏了,最后发现是485 的 A、B 两根线接反了,编码器没问题,PLC 也没问题,就是那两根线的事。
而这两根线背后,是一整套很多人干了几年都没掰扯清楚的东西:RS232、RS422、RS485 到底什么关系,跟 Modbus 又是什么关系,为什么现场的编码器十台有八台是 RS485 口,以及这个口子一旦选错,后面会在哪些地方反复付学费。
这篇从最基础的地方讲起,一路讲到怎么选、怎么接、怎么调、怎么少熬夜。
一、串口不是协议
RS232、RS422、RS485不是通信协议,这个得先说清楚。它们是电气接口标准,管的事很具体:电平多高,几根线,能传多远,能挂几个设备。至于传的是位置值还是温度值、数据怎么组织、出错了怎么办,一概不管。
那归谁管?Modbus。
打个比方的话,RS485 就是那条公路,管的是路面多宽、限速多少、能并排跑几辆车,Modbus 则是路上的交通规则,管谁先走、怎么让行、怎么确认对方真的收到了,而数据包就是路上跑的车,装的是角度值、圈数、转速。
所以"Modbus就是RS485"这句话从根上就不成立,Modbus 跑在 485 上叫 Modbus RTU,跑在以太网上叫 Modbus TCP,那时候它压根不走485,跟这两根差分线一点关系都没有。
反过来也一样,485 上面不只有 Modbus。Profibus、CANopen、各家自定义的协议,都能跑。路是路,规则是规则。别混着叫。
二、RS232、RS422、RS485差异到底在哪
三者底层用同一套异步起停时序。起始位、数据位、校验位、停止位,都一样。区别全在电气上。
1.接线:几根线干活
RS232:最少三根,TXD、RXD、GND,一发一收一地。
RS422:五根,收发各占一对差分线,再加根地。
RS485:两根就够,A 和 B。顶多再拉根地线做参考,这是它在工程上最大的便宜。
2.双工:能不能一边说一边听
RS232:全双工。收发线路独立,两边可以同时说话。
RS422:也是全双工,两组差分线分开走。
RS485:半双工。一对线,像一条对讲机频道,同一时间只准一个人说。板上那个 DE/RE 引脚,就是管"说"和"听"切换的。切换时机没掐准,要么撞车,要么丢字节。
3.电平:怎么表示 0 和 1
RS232 是单端信号,以地为参考,还是负逻辑。逻辑 1 是 -3V 到 -15V,逻辑 0 是 +3V 到 +15V。
这儿有个坑,我见过不止一次。有人图省事,把单片机的 TTL 口直接焊到 DB9 上,±12V 灌进 3.3V 的 IO,芯片当场洗白,TTL 和 RS232 之间必须加 MAX232 这类转换芯片,这一步省不得。
RS422 和 RS485 是差分,不看对地电压,看两根线的压差。A 比 B 高 200mV 以上是一个态,B 比 A 高 200mV 以上是另一个态。
差分凭什么抗干扰?因为干扰会同时耦合到紧挨着的两根线上。两根线一起抖,差值不变。
| 干扰(共模):A 线 +1V,B 线 +1V → A-B = 0,没影响 |
| 信号(差模):A 线 +2V,B 线 +0V → A-B = +2V,认得出来 |
这就是 485 能在变频器、伺服驱动器满地的车间里跑上千米的底气。
4.RS232、RS422、RS485核心对比
| 对比项 | RS232 | RS422 | RS485 |
| 信号方式 | 单端(对地) | 差分 | 差分 |
| 双工 | 全双工 | 全双工 | 半双工 |
| 最少线数 | 3 根 | 5 根 | 2 根 |
| 最大节点 | 1 对 1 | 1 发 10 收 | 32(可扩到 256) |
| 传输距离 | 约 15m | 约 1200m | 约 1200m |
| 最高速率 | 约 20kbps | 10Mbps | 10Mbps |
| 抗干扰 | 一般 | 强 | 强 |
| 主战场 | 机房调测、点对点 | 长距全双工 | 工业总线组网 |
选的时候,一句就够:机房调测上 232,长距离还要全双工才考虑 422,多节点组网基本都是 485。
三、编码器为什么偏偏选中了 RS485
一台绝对值编码器挂在设备上,它要扛的事,其实挺苛刻。
1.数据在强干扰环境里不能错:
编码器往往就装在电机轴端、伺服旁边、变频器柜里。增量脉冲在这种环境下最怕什么?干扰毛刺被当成计数脉冲。多计一个,位置就永久偏了,而且没人知道它偏了,系统还照常跑。
485 的差分加上 Modbus RTU 的 CRC16 校验,等于物理层和协议层各兜一次底。干扰被共模抑制掉,万一还有错,CRC 直接判废重来。它不会给你一个"看着正常、其实是错的"数。
2.断电不能丢位置:
增量编码器掉电再上电,得回原点重新找零。绝对值编码器不用。
欧艾迪用的是精密机械齿轮多圈结构,没有内置电池,掉电以后位置靠机械记住,重新上电读到的就是真实绝对位置。不用回零。不用换电池。也不存在"电池没电、位置丢了"这种事。
3.一条总线要挂很多台:
一条产线上十几二十个轴。要是每台都单独拉线回 PLC,成本和故障点都得翻倍。485 是真多节点总线,一个站号对应一台。
欧艾迪的 RS485 编码器站号 ID 从 1 到 255 可设,出厂默认 1。十几台编码器挂一条总线,两根线。
4.距离要够长:
立体仓库的堆垛机、跨厂房的输送线、港口设备,编码器到控制柜动辄几十上百米。485 在 9600bps 下能到 1200 米。增量脉冲的长线驱动呢?一般 50 米以内就开始明显衰减。这个距离,想都不敢想。
5.PLC 要能直接读:
Modbus RTU 协议开放,没有授权费。西门子、三菱、台达、欧姆龙、汇川、信捷,这些主流 PLC 基本都原生支持。
欧艾迪的编码器兼容标准 Modbus RTU。替换同类型号的时候,只要 PLC 支持同样的协议就能直接用,程序架构不用动。我们这边也备了几种常见 PLC 的参考例程。
6.参数要能现场改:
波特率、站号、零点、中点、返回时间、旋转方向、数据传输模式,都能通过通信指令或者上位机软件直接设。不用拆机,不用返厂。
四、查询模式和自动返回模式,别选错
欧艾迪的编码器支持以下两种工作方式:
1.查询模式:主机问一句编码器答一句。多节点组网必须用它。严格主从,谁也不会抢线。
2.自动返回模式:编码器按设定周期自己往上报位置和速度,主机只管收,轮询的活全省了。
但有个前提,点对点场景,一台编码器对一台主机,自动返回非常省事。可要是多节点 485 总线,你得先把所有从站都设成查询模式。否则几个从站同时往半双工总线上怼,那叫一个乱。
五、接线和调试,这些坑提前踩一遍
前面都是铺垫。值钱的在这儿。
1.先认线
欧艾迪 RS485 编码器的线色是这样定的:
| 线色 |
| 功能 | 说明 | |
| 红 | 电源正极 | DC 5-24V |
| 黑 | 0V(GND) | 电源地 |
| 绿 | RS485 B | 差分负端 |
| 白 | RS485 A | 差分正端 |
| 黄 | 置零(ZR) | 多功能线,见下 |
黄线有三个用法:
碰一下黑线,也就是接地,编码器当前位置就设成零点了。也可以通过指令置零,不用动线。
要恢复出厂:断电,黄线接到黑线上,上电保持 2 分钟,掉电,黄线拆掉悬空,再上电。
不用的时候悬空,别接地,也别接电源,标配电缆都带金属屏蔽层。这是抗干扰的第一道防线。
2.A 和 B,千万别反
现场第一大坑,反了会怎样?不短路,不报警,万用表量着也有电压,就是数据全是乱码,新手能为一根线排查一整天,更麻烦的是,不同厂家对 A/B 的叫法可能相反。有的标 D+/D-,有的标 485+/485-,有的就叫 A/B。欧艾迪这边是白线 A、绿线 B。跟第三方设备对接,最好先用串口助手试一次。不通,调换一下再试。
3.终端电阻,只在两端各加一个 120Ω
匹配双绞线特性阻抗,吸收末端反射,中间节点一律不加。加了负载过重,信号反而衰减。忘了加会怎样?高速通信时信号边沿振铃,误码率蹭蹭往上涨。
4.手拉手,别星型
节点要沿主干线一串一串接下去,施工队图省事,从端子排星型甩出去。信号在分支点反射,波形全烂。
5.屏蔽层单端接地
两端都接地,会形成地环路。50Hz 工频干扰反而更严重。这点反直觉,但就是这么回事。
6.四个参数必须对齐
波特率、数据位、校验位、停止位。两边一模一样,差一个就是乱码。
欧艾迪出厂默认 9600-8-N-1,站号 1。顺便说一句,文档有时候是骗人的。甲方资料上写着"9600, 8N1",你照着配,死活不通。拿示波器一量,实际是 115200。那份文档是别的项目复制粘贴来的。对接前拿串口助手扫一遍波特率,比信任何文档都靠谱。
7.台达 PLC 的实接例子
用 OID-R3806D 配台达 DVP32ES200TC,COM2 口就是 RS485。
接线:D+ 接 485A,也就是白线。D- 接 485B,也就是绿线。24V 接红线,GND 接黑线。注意,只有在 PLC 主机提供 24V 输出的时候才能这么接。主机不供电,编码器电源得另接。
通信参数:Modbus RTU,9600,8 位数据位,1 位停止位,无校验,从站地址 1,读取周期 1 秒。
梯形图核心就这么几行:
| // 通讯格式设置 COM2(RS485) |
| MOV H89 D1120 |
| MOV K100 D1129 |
| SET M1120 |
| SET M1143 // RTU 模式 |
| // 发送请求 |
| SET M1122 |
| // Modbus 读取:站号1,起始寄存器 H0,读 2 个字 |
| MODRD K1 H0 K2 |
| RST M1127 |
| // 1 秒周期轮询 |
| TMR K10 |
读上来的数据落在 D1073 到 D1076。
提醒一句,程序里的从站地址 K1 和寄存器起始地址 H0,得跟编码器实际配置对上。完整的寄存器映射、功能码定义、改参数的指令,看《欧艾迪编码器(RS485)使用说明书》。
8.故障了先查什么
收不到数据。先看 A/B 有没有反,再看供电是不是 5 到 24V,然后查站号有没有冲突,最后核对波特率。
数据是乱码,多半是通信格式不对,或者 A/B 反了,再就是没加终端电阻,时好时坏,偶发丢包。查终端电阻,查屏蔽层是不是两端都接地了,查线是不是超长,查有没有星型分支。
多台编码器只能读到一台,站号重复了,得逐台改成不同地址。
数值无规律跳变,八成是没用屏蔽双绞线,或者跟动力线平行走了一路。再不就是旁边变频器在闹。
位置越走越偏,先确认用的是不是绝对值编码器,增量式的话,查丢脉冲。
上电位置不对,看有没有置零,看机械安装有没有打滑,看多圈量程是不是溢出了。
还有个习惯,养成了能省不少事:串口不通的时候,先别动代码。拿万用表量量电平,485 的 A/B 之间静态压差应该接近零。参数对不对,拿串口助手扫一圈。这么走一遍,八成的问题根本不用改一行程序。
六、什么时候不该选 RS485
485但不是什么场合都合适。我们把接口做全,就是为了让每种场景都有对得上号的那个。需要同步时钟的伺服和高端运动控制器?上 SSI。
要求高速双向、还要读写编码器内部寄存器的,比如高动态伺服和机器人关节?BiSS 更合适,开源还免授权。
系统本来就是 CAN 总线的,工程机械、车辆、风电这些,直接 CANopen。多主,优先级仲裁,错了自动重发。
只是想连电脑调调参数?RS232 最省事,全双工点对点。
要不间断双向高速传输的,RS422,差分加全双工。
老系统改造、PLC 没通信口、只要个大概位置的,模拟量 0-5V、0-10V、4-20mA 接线最简单。
成本压到最低、响应速度要求最快的,TTL 或者 A/B/Z 脉冲。增量式应用和替代欧姆龙 E6B2 这类老型号,都走这条路。
一句话收:能上 485 就上 485。伺服要同步时钟上 SSI 或 BiSS。系统本来就是 CAN,就别折腾,直接 CANopen。
七、下单前把这几件事问清楚
转动范围超不超过 360°?要不要记圈?记多少圈?
分辨率要几位,10 位是 1024,12 位 4096,一路到 17 位 131072。精度要求多少度?
接口定什么,RS485、SSI、BiSS-C、CANopen、模拟量,还是脉冲?
机械怎么装,实心轴还是盲孔?轴径 4、6、8 毫米?空间卡不卡,25、27、38 毫米哪个塞得进去?
环境有多恶劣,温度范围,要不要 IP68,要不要防爆,震动冲击到什么量级?
PLC 什么牌子,波特率站号要匹配,例程要不要我们出?
线走多少米,超了就得考虑中继和终端电阻方案。
RS232 的标准 1969 年发布,到今天快六十年,还在用,没被淘汰的原因挺朴素。就是简单、可靠、便宜。
485 加 Modbus RTU 也是这个路子。一对双绞线,两个 120Ω 电阻,一问一答。用最不花哨的办法,把工业现场"距离远、设备多、干扰强、不能错"这几件事给办了。
编码器这边要做的,是把"转了多少度、走了多少圈"这个最基础的物理事实,原原本本交给控制系统。这事儿需要物理层扛住干扰,需要协议层校验出错误,需要机械结构记住位置。也需要把屏蔽层、终端电阻、手拉手拓扑、A/B 线序这些琐碎细节,一件件做对。那两根线接对了,设备就不会骗你。
欧艾迪应用工程师有丰富的现场指导经验,如果您有选型需求,欢迎联系我们左工15814017675,我们将为您提供一对一的选型指导和技术支持!








粤公网安备 44010602004352号