简介:这份文档聚焦MT6070I(WeinView MT8000系列)触摸屏与三菱FX系列PLC之间的通讯接线,面向工控自动化调试人员、电气工程师及PLC初学者,用于解决现场实际串口选型、引脚对应和通讯协议确认等问题。内容围绕触摸屏COM1口的RS485/RS422两种接线方式展开,给出9针D形端口与8针Din圆形端口之间的RX-、RX+、TX-、TX+及GND对应关系,并延伸说明Modbus RTU与ASCII协议的基本适用场景,便于读者在设备联调前核对线路、定位常见通讯异常。资源包内含1份doc格式技术文档,大小约24KB,篇幅精简,适合作为现场接线参考或培训辅助材料。目前已有4902人学习下载,说明其在触摸屏与PLC通讯入门和排错场景中具有一定参考价值。读者可从中快速获取端口定义、线序对照和协议选择思路,减少因接线错误导致的调试返工。
1. 一根线接错,调试两天:MT6070I 与 FX 系列 PLC 的通讯线到底怎么接
MT6070I 触摸屏与三菱 PLC 通讯线接线图,很多人搜索这几个字的时候,手里正捏着一把 9 针 D 形头和 8 针圆头,设备停在线体上等开机。这份接线图解决的是最朴素的问题:MT8000 系列 HMI 的 COM1(9 针 D 形,RS485 4 线)怎么对到 FX 系列 PLC 的编程口(8 针 Mini-DIN,RS422),五根线一一对应,接完就能通。它适合刚接手产线改造的电气调试人员、做非标设备集成的工程师,也适合手上只有一台屏和一台 PLC、反复试却连不上的自学者。真正难的从来不是记不住这五根线,而是接完之后不通,不知道问题出在针脚、极性还是参数上。
2. 把电气层说透:RS485 4 线与 RS422 的引脚对应和命名陷阱
2.1 RS485 4 线为什么能直接怼到 RS422 口上
RS485 和 RS422 都属于差分传输,靠两根线之间的电压差表示逻辑 1 和 0,共模干扰会被接收端的差分放大器抵消掉,这也是工业现场宁愿拉两根双绞线、也不愿意拉 RS232 三根单端线的原因。区别在于:RS485 通常说两线半双工,收发共用一对线,靠方向控制切换;而 4 线 RS485 把接收和发送拆成两对独立的差分对,实现全双工。RS422 本身就是 4 线全双工的定义,电气参数和 4 线 RS485 高度重合,共模范围、驱动能力、接收灵敏度都在同一个量级,所以 MT6070I 的 COM1 配成 RS485 4W 模式后,直接对接 FX 的 RS422 编程口,电气层是成立的,不需要任何转换模块。
真正让人翻车的是命名。不同厂商对同一根线的叫法不一样,有人标 A/B,有人标 Y/Z,有人标 RX+/RX-、TX+/TX-。MT6070I 的 COM1 是按 HMI 自己的收发方向命名的,FX 编程口是按 PLC 自己的收发方向命名的。两块设备面对面,A 的嘴巴对 B 的耳朵,所以方向必须交叉;但差分对的极性不能交叉,+ 还是接 +,- 还是接 -。这一条如果理解反了,就会出现"线全通、参数全对、就是不通"的玄学现场。
2.2 两个端口的引脚定义与方向判断
把 MT6070I 的 COM1(9 针 D 形)和 FX 编程口(8 针 Mini-DIN)摆在一起,对应关系如下表。这张表就是整篇文章的核心,抄下来贴在电柜门内侧都行。
| MT6070I COM1 针号 | 信号名 | 相对 HMI 的方向 | FX 编程口针号 | 信号名 | 相对 PLC 的方向 |
|---|---|---|---|---|---|
| 1 | RX- | 输入 | 4 | TX- | 输出 |
| 2 | RX+ | 输入 | 7 | TX+ | 输出 |
| 3 | TX- | 输出 | 1 | RX- | 输入 |
| 4 | TX+ | 输出 | 2 | RX+ | 输入 |
| 5 | GND | 地 | 3 | GND | 地 |
| 6 / 9 | RS232 的 TXD / RXD | — | — | 不接 | — |
| 7 / 8 | RTS / CTS | — | — | 不接 | — |
读这张表的正确姿势是:先看方向列,再看信号名。HMI 的第 1 针是它自己的接收负端(RX-),要接到 PLC 的发送负端(TX-),也就是 PLC 的第 4 针;HMI 的第 3 针是它自己的发送负端(TX-),要接到 PLC 的接收负端(RX-),也就是第 1 针。两边的"负"始终跟着"负"走,只是 RX 和 TX 两个字换了个位置。同理,正端也是 + 对 +,只是方向词互换。
新手最容易在这一步做出两个错误动作。第一个是把 RX- 直接对到 RX-,觉得名字一样才配套,结果两边都在"收",谁也发不出去,通讯自然一声不响。第二个是看到 1 对 4、2 对 7 这种不连续的针号,怀疑自己看错了表,于是把四根线全部打乱重排,最后连 polarity 都保不住。实际上 FX 编程口的针号本来就不是顺序排列的信号,1、2、3、4、7 这几个针位是历史沿用的定义,跟 D 形头的 1 到 5 顺序排列没有可比性。
还有一点常被忽略:HMI 侧的第 6、7、8、9 针是 RS232 和硬件流控用的,走 485 四线时全部悬空。有人图省事,把 6 针和 9 针也顺手焊上,结果 RS232 的 TXD 单端信号并进了差分总线,轻则误码率上升,重则把 485 收发器拉偏。做线的时候把这四针直接剪掉、不引出,是最省心的做法。
2.3 双绞、屏蔽与终端电阻:决定你能跑多远的三个细节
线材选错是隐性成本最高的一类错误,因为它在短距离台架上完全看不出来。正确的做法是选两对独立双绞的屏蔽线,一对走 RX+/RX-,一对走 TX+/TX-。双绞的意义在于两根线绞在一起,外界干扰在同一时刻以共模形式叠加,接收端的差分放大器会把它们一起减掉。如果把四根线随手捆成一束、或者用网线里拆出来的四根散线,两根差分线之间的物理距离不固定,绞距也不受控,在变频器、伺服驱动器旁边跑十几米就可能出现偶发超时。
屏蔽层的处理有个固定套路:只在 HMI 一侧把屏蔽层压接到金属外壳或者柜体 PE 上,PLC 一侧剪断悬空。两端都接看起来更"接地良好",实际上是把两个不同电位的接地点连了起来,屏蔽层上会流过地环流,这条电流就贴在你的信号线旁边,反而变成干扰源。屏蔽层要留一段 15mm 左右的"猪尾巴",套热缩管,不要跟针脚焊在一起。
终端电阻只在长线或者高速率时才需要,但现场经常是"该接的没接、不该接的乱接"。RS422 全双工要求在两对差分线的接收端各跨接一只 110Ω 到 120Ω 的电阻,也就是 HMI 的 RX+/RX- 之间、PLC 的 RX+/RX- 之间。距离短于 10 米、波特率不高于 19200 时,通常可以不加;线长超过 50 米或者波特率上到 38400 以上,就必须加,否则信号在末端反射,示波器上看是一串振铃,实际表现就是通讯时好时坏。有些 MT8000 机型内部带终端电阻拨码,翻一下屏背面的 DIP 说明就能确认,没有就外挂电阻,焊在 D 形头的焊杯上,热缩管封好。
提示:终端电阻只跨在接收对上,不要四根线全加,也不要在发送端加,加错位置等效于给驱动器并了一只 110Ω 负载,驱动电流上升、发热、远距离反而更容易失败。
3. 从剥线到上电:一套能照着做的接线与参数配置流程
3.1 备料:线材、端子、工具的最小清单
现场做线最怕拆到一半发现少东西,尤其是 D 形头和圆头这种不是每个五金店都备的接插件。下面这张清单是按一台设备、一根通讯线准备的,多备一套接头和一段线,能省掉来回跑仓库的时间。
| 物料 | 规格 | 数量 | 备注 |
|---|---|---|---|
| 双绞屏蔽线 | 2 对,0.2~0.5mm²,24~20AWG | 按现场长度 +1m | 必须成对双绞 |
| 9 针 D-sub 公头 | 焊杯式,带金属外壳 | 1 | 对应 HMI COM1 |
| 8 针 Mini-DIN 公头 | 焊杯式 | 1 | 对应 FX 编程口 |
| 热缩管 | φ3 / φ6 | 各 0.5m | 单针和整束各一层 |
| 终端电阻 | 110Ω 1/4W | 2 | 长线备用 |
| 万用表 | 带通断档、电阻档 | 1 | 上电前必查 |
| 电烙铁 | 30W 尖头 | 1 | 焊杯式接头必须焊 |
线径不要贪粗,0.5mm² 已经足够覆盖 1200 米以内的 RS485 传输,再粗只会让焊杯塞不进去、D 形头后盖合不上。相反,0.12mm² 以下的细线在压接和拖拽中容易断芯,断在绝缘皮里面,万用表量通断还是通的,上机一晃就断,属于典型的疑难杂症来源。
3.2 逐针对接与上电前的三步复核
接线顺序建议从 HMI 侧的 D 形头开始,因为 9 针焊杯空间大、好下烙铁,焊完再处理 8 针圆头那种针距更密的活。整套动作按下面的步骤走,中间不要跳步。
- 断开设备总电,挂检修牌,确认 HMI 和 PLC 的电源指示灯全灭。
- 剥外皮 30mm,屏蔽层留 15mm 尾巴不剪断,先套一整段 φ6 热缩管到线身上备用。
- 把四芯分成两组,红/白为一对(走 RX),蓝/黄为一对(走 TX),每组自己再绞一下,保持双绞连续性。
- 每根芯线剥 3mm,上锡,套 φ3 热缩管。
- 按第 2 章的表焊 D 形头:1 针焊红(RX-)、2 针焊白(RX+)、3 针焊蓝(TX-)、4 针焊黄(TX+)、5 针焊屏蔽层的猪尾巴或者一根独立的黑线(GND)。
- 焊完逐针套热缩,合上金属外壳,用万用表通断档确认外壳与任意一针不导通。
- 圆头侧同样处理:4 针焊红、7 针焊白、1 针焊蓝、2 针焊黄、3 针焊黑。
- 两端都做好后,先不插设备,把线摊开,用万用表逐根量两端通断,五根全通;再量任意两根之间,电阻应为无穷大。
第 8 步是很多人省掉的步骤,但它能把 90% 的焊接问题挡在上电之前。焊杯式接头最常见的缺陷是锡渣搭桥,尤其是 1、2 针和 3、4 针这种相邻针位,肉眼看不出来,插上设备就是"通讯不上",然后开始怀疑参数、怀疑屏坏了、怀疑 PLC 口烧了,一圈查下来两天过去了。万用表量一遍,两分钟的事。
上电顺序也有讲究:先给 PLC 上电,确认 PLC 的通讯指示灯状态,再给 HMI 上电。MT6070I 启动时会主动向 PLC 发起握手,如果 PLC 还没起来,HMI 会直接报设备无响应,这时候不用慌,等 PLC 跑起来再让 HMI 重新连接一次即可。
3.3 HMI 系统参数与 PLC 侧格式字配置
线接对了,参数不对,一样不通。MT6070I 这边的配置入口在系统参数里的设备列表,新增一个设备,几个关键项必须和 PLC 侧严格对齐。
| 配置项 | 建议值 | 说明 |
|---|---|---|
| 设备类型 | MITSUBISHI FX2N / FX3U(按实际机型选) | 选错系列会导致地址映射错位 |
| 接口类型 | COM1 | 对应 9 针 D 形口 |
| 通讯模式 | RS485 4W | 必须选 4 线,选 2W 走不了全双工 |
| 波特率 | 9600 | 首次调试统一用这个 |
| 数据位 | 7 | 与 PLC 侧 D8120 一致 |
| 校验 | Even(偶) | 与 PLC 侧一致 |
| 停止位 | 1 | 与 PLC 侧一致 |
| PLC 站号 | 0 | 编程口固定 0 |
| 通讯超时 | 3.0 s | 长线可加到 5.0 s |
| 重试次数 | 2 | 不建议设 0 |
PLC 侧对应的是通讯格式字 D8120,在 GX Works 的 PLC 参数里找"内置 RS232 / 编程口设置",或者在程序里用 MOV 指令写 D8120。这个字的低 8 位定义比较统一:b0~b3 是波特率编码,b4 是数据位长度,b5~b6 是校验方式,b7 是停止位。b8 以上涉及通讯协议模式、传送控制顺序、和校验这些内容,各代 FX 机型有细微差别,不建议手算,直接在软件里勾选,让软件生成。
有一个现象值得单独说:HMI 能下载程序、能在线模拟,但一运行就报"设备无响应"。这种情况十有八九是设备类型选成了 Modbus RTU。FX 的 8 针编程口跑的是厂家专用协议,不是标准 Modbus RTU,物理层虽然都是 RS422/485,应用层协议对不上,帧格式完全无法解析。要用 Modbus RTU,得在 PLC 侧加 485BD 或者 485ADP 扩展板,从扩展板的端子走线,而不是插编程口。这两条路线的接线位置、站号规则、参数配置全都不一样,接线前先确认自己走的是哪一条。
4. 通讯参数怎么定:波特率、校验位、站号与超时的取值逻辑
4.1 波特率不是越高越好:线长与速率的换算
调试阶段最忌讳一上来就把波特率拉到 115200,觉得"越快越先进"。RS485 的传输距离和速率是反比关系,速率越高,单位时间内信号在电缆上的衰减和反射越明显,能稳定传输的距离越短。工厂环境里还有变频器、伺服、接触器线圈这些干扰源,实际可用距离要比理论值再打个折。
| 波特率 | 工厂环境下建议长度 | 典型场景 |
|---|---|---|
| 9600 | ≤ 500 m | 跨柜、跨线体,首选 |
| 19200 | ≤ 200 m | 单条产线内部 |
| 38400 | ≤ 100 m | 机台内部、屏与 PLC 同柜 |
| 57600 | ≤ 50 m | 需加终端电阻 |
| 115200 | ≤ 15 m | 仅限同柜短跳线 |
这张表是经验值,不是标准值。真要跑 300 米还上 38400,能不能通取决于线材质量、接地质量和周围有几台变频器,赌的成分太大。工程上的做法是:距离优先,先按 9600 调通,确认功能全部正常,再考虑往上提一档看稳定性,提上去之后连续跑 24 小时不掉线才算数。屏和 PLC 在同一个电柜里、线长不到 2 米的情况,38400 完全够用,没必要追高速率。
4.2 7E1 还是 8N1:数据格式必须两端一致
FX 编程口的出厂默认是 9600、7 位数据、偶校验、1 位停止位,也就是常说的 7E1。这个组合不是随便定的,早期 ASCII 传输只需要 7 位就能表示全部字符,第 8 位省下来做校验,效率更高。MT6070I 这边新建 FX 设备时,默认值一般也是 7E1,两边对上就能通。
问题出在有人为了接第三方仪表,把 PLC 侧改成了 8N1,改完忘了把 HMI 侧同步。8N1 和 7E1 的帧结构完全不同:前者一帧是 1 起始位 + 8 数据位 + 1 停止位,后者是 1 起始位 + 7 数据位 + 1 校验位 + 1 停止位。接收方按 7E1 去解析 8N1 的字节流,起始位能对上,数据位会整体错一位,校验位读到的是对方的停止位,结果就是"偶尔能读到一个值,但数值全是乱的",或者干脆校验错、丢帧。
判断方法很简单:HMI 上读一个已知的常量寄存器,比如 PLC 里 D0 固定写 100,屏上显示 100 就是通的,显示 50、200 或者 0 就是格式错位。Modbus RTU 是二进制协议,必须 8 位数据,所以走 Modbus 路线时两端都必须是 8N1 或者 8E1,不能出现 7 位。
4.3 站号、超时与重试次数的工程取值
站号在点对点连接里看起来无关紧要,但它是总线冲突的头号原因。FX 编程口的站号固定为 0,HMI 侧填 0 就行。如果走的是 485BD 的计算机链接模式,一条总线上挂多台 PLC,站号范围通常是 0 到 15,每台必须唯一。现场出现过两台 PLC 都被拨成站号 1,结果 HMI 读第一台的数据正常,读第二台时两台同时应答,总线上的差分信号互相叠加,表现为随机超时、随机错值,查了整整一天。
超时时间的取值要看最坏情况下的响应延迟。默认 3 秒对单台设备、短距离足够了;总线上挂 8 台以上、或者线长超过 100 米,建议加到 5 秒。超时设得太短,PLC 还在处理上一帧,HMI 已经判定失败并重发,总线上就会出现两帧叠在一起的情况,越重试越乱。
重试次数设 2 到 3 次是常规做法,设 0 意味着一次失败就直接报警,现场只要有一次电磁干扰就会弹窗,操作工得天天按复位。设得太高(比如 10 次)也有问题,真出了断线故障,HMI 要卡住十几秒才报警,期间画面完全无响应,看起来像死机。2 到 3 次是响应速度和抗干扰之间的平衡点。
如果不想手算 D8120,可以用下面这段脚本,把四个参数代进去直接出结果,省得对着位定义表数格子。
# 按 FX 系列 D8120 低 8 位定义,计算通讯格式字 # b0~b3 波特率 b4 数据位 b5~b6 校验 b7 停止位 BAUD = {300: 0b0000, 600: 0b0001, 1200: 0b0010, 2400: 0b0011, 4800: 0b0100, 9600: 0b0101, 19200: 0b0110, 38400: 0b0111} PARITY = {'N': 0b00, 'O': 0b01, 'E': 0b11} # 无 / 奇 / 偶 def calc_d8120(baud, data_bits, parity, stop_bits): v = BAUD[baud] # 波特率编码占低 4 位 v |= (1 if data_bits == 8 else 0) << 4 # 数据位:0=7 位,1=8 位 v |= PARITY[parity] << 5 # 校验位占 b5~b6 v |= (1 if stop_bits == 2 else 0) << 7 # 停止位:0=1 位,1=2 位 return v for args in [(9600, 7, 'E', 1), (19200, 7, 'E', 1), (38400, 8, 'N', 1)]: print(args, hex(calc_d8120(*args)))这段脚本只覆盖低 8 位,也就是波特率、数据位、校验、停止位这四项最常改的参数。b8 以上的协议模式位没有纳入,是因为各代 FX 在这几个位上定义不完全一致,硬编码反而容易出错。实际填的时候把脚本算出来的值写进 D8120 的低字节,高位保持默认,再翻一眼对应机型的手册确认一遍位定义,是最稳妥的路径。脚本跑出来的三个结果可以直接拿去做对照实验:先用 9600/7E1 调通,再试 19200/7E1,最后试 38400/8N1,看哪一档在当前线长下最稳。
5. 避坑与排查:五个把老师傅也绊住的现场问题
5.1 完全不通的三类现象
现象一:线全通、参数全对,HMI 一直报设备无响应。原因多半是差分极性反了,把 RX+ 和 RX- 对调,或者把 TX+ 和 TX- 对调。差分信号靠正负两端的电压差判逻辑,极性反了等于所有数据取反,接收端解出来的全是无效帧。 解决方式:断开一端,只把接收对的两根线互换,上电重试;不行再换发送对。别一次全换,否则即使通了也不知道是哪一对的问题。
现象二:换了三根线都不通,用一根 2 米的短线一接就通。原因是线太长、线径太细,或者四根芯没有按差分对双绞,共模干扰把信号淹了。长线上示波器看,波形上升沿明显变缓、末端有振铃。 解决方式:换双绞屏蔽线,按 2.3 节的方式单端接地,长线两端加 110Ω 终端电阻,波特率降到 9600 再试。三招里通常有一招就够。
现象三:设备类型选成 Modbus RTU,物理口却插在编程口上。现象是 HMI 发出去的帧在示波器上有波形,PLC 的通讯灯也闪,但就是不回帧。原因是 FX 编程口跑专用协议,不认 Modbus RTU 的功能码。 解决方式:把设备类型改回 FX 系列驱动;确实要用 Modbus,就加 485BD 扩展板,从扩展板端子接线,同时把 PLC 侧通讯格式里的协议模式改成 Modbus RTU 从站。
5.2 时通时断的两类现象
现象四:白天正常,一到夜班或者某台设备启动就掉线。这种现象背后的原因,通常是 GND 没接、屏蔽层两端都接了地。地环流在屏蔽层上流动,旁边就是信号线,干扰直接耦合进来。也可能根本没做屏蔽,线束和变频器输出线捆在同一个线槽里。 解决方式:把第 5 针 GND 接上,屏蔽层改成单端接地,通讯线和动力线分槽走,实在分不开就保持 20cm 以上间距,交叉时走 90 度。这套动作做完,掉线率通常能降一个数量级。
现象五:重启后能通几分钟,之后随机超时,越跑越频繁。原因可能是总线上的站号冲突,也可能是超时设得太短导致重发叠加。两台设备同站号时,同时应答会让差分总线上的信号互相抵消,表现为随机丢帧。 解决方式:逐台断开,用二分法定位冲突设备,把站号改成唯一值;超时从 3 秒加到 5 秒,重试次数从 0 改成 2,观察一小时看是否还有超时记录。
注意:排查时一次只改一个变量。同时换线、改波特率、改站号,即使通了也无法确定是哪一项起了作用,下次再出问题还是从零开始。
6. 进阶定位:用回环测试和串口抓包把故障锁到某一根针
线接完不通,最容易陷入的循环是"怀疑一切":怀疑屏坏了、怀疑 PLC 口烧了、怀疑参数被谁改过。有效的做法是把问题切成两段,先证明线本身没问题,再证明设备发出来的东西是什么样。
第一步是回环短接。把 D 形头从 HMI 上拔下来,在插头一侧把 1 针和 3 针短接、2 针和 4 针短接,也就是把自己的发送接到自己的接收上,然后给 HMI 上电,用系统参数里的通讯测试功能发一串数据。如果 HMI 能收到自己发出去的内容,说明 COM1 的收发器和参数配置是好的,问题在线材或者对端;如果回环都收不到,先别折腾线了,屏的端口或者参数有问题。
第二步是抓包。用一个 USB 转 RS485 模块并在总线上,或者直接并在 HMI 的 TX 对上,看 HMI 到底发出了什么。这里有个细节:FX 默认的 7E1 格式,很多 USB 转串口芯片并不支持 7 位数据,强行打开会报错或者丢位。常见做法是临时把 HMI 和 PLC 两端都改成 8N1,先用 8 位把字节流抓下来确认帧头和站号,确认完再改回 7E1。
import serial # 临时把两端都改成 8N1 抓原始字节流,确认 HMI 是否在发请求帧 # 抓完记得改回 7E1,否则正常通讯会校验失败 ser = serial.Serial( port='COM5', # USB 转 485 模块的串口号 baudrate=9600, # 与 HMI 侧一致 bytesize=8, # 抓包阶段临时用 8 位 parity='N', stopbits=1, timeout=1 ) while True: data = ser.read(64) # 一次最多读 64 字节 if data: # 十六进制打印,前两个字节通常是站号和功能码 print(' '.join(f'{b:02X}' for b in data))这段脚本的输出可以回答三个问题:HMI 有没有在发帧、发的站号是不是 0、功能码是不是 FX 专用协议对应的值。如果抓不到任何字节,问题在 HMI 侧或者线断了;如果抓到帧但 PLC 不回,问题在 PLC 侧的通讯格式或者端口;如果帧内容每隔几秒重复一次且完全一样,说明 HMI 在重试,PLC 从未应答。
我一般还会在抓包时顺手量一下 A/B 之间的静态差分电压,收发器空闲时应该在 200mV 以内,如果量出来是 3V 以上,说明总线上有设备在持续占用,或者终端电阻接错了位置。这个数值不写在任何一本手册的显眼位置,但它是判断总线是否"堵住"最快的手段。
从那以后我每次做这种跨品牌通讯线,都会在焊完之后先做一遍回环,再上设备,哪怕耽误十分钟。线序这种东西,眼睛看三遍不如万用表响一声,通电之后再去猜,成本就不是十分钟了。希望帮到你。
本文还有配套的精品资源,点击获取