news 2026/10/26 14:36:39

三菱Q系列串行通讯模块RS232配对:C24N与R2的硬件接线及参数设置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三菱Q系列串行通讯模块RS232配对:C24N与R2的硬件接线及参数设置

简介:面向工业自动化现场工程师与三菱Q系列PLC使用者,这份资料专门解析QJ71C24N与QJ71C24N-R2两个串行通讯模块之间通过RS232实现数据交换的完整方法。内容先从模块硬件差异讲起:QJ71C24N提供一个RS-232通道和一个RS-422/485通道,QJ71C24N-R2则提供两个独立的RS-232通道,结合实际通讯线缆连接方式,帮助读者理解不同接口场景下的选型与接线。随后围绕无顺序协议展开,详细说明在GX Works2中通过添加智能功能模块、双击开关设置通道1,配置波特率、奇偶校验、数据位、停止位等关键参数的操作流程,并延伸至通讯程序设计,包括接收缓冲区定义、接收条件(如等待特定起始字节)设定、数据帧打包与发送指令调用,以及CRC校验、超时机制、参数一致性等工程注意事项。完整内容整理为1份docx文档,约197KB,共1个文件,学习人数已达3901人,是一份可直接用于现场调试与程序编写的实用参考。

1. 三菱PLC串行通讯模块RS232配对:装之前先分清QJ71C24N与QJ71C24N-R2

做三菱Q系列PLC项目的人,迟早会碰到QJ71C24N和QJ71C24N-R2这对串行通讯模块。厂里两台设备要交换数据,最常见的方案就是一边装一块,走RS232直连。可这套环境的真正门槛不在模块安装,而在通道认识:QJ71C24N两个通道,一个RS232一个RS422/485;QJ71C24N-R2两个通道全是RS232。很多人把这两块当成同一模块的不同批次,结果线接错、通道配错,程序写进去怎么都不通。下面把从硬件线缆、Works2开关设置到无顺序协议的发送接收程序一条龙整理出来,照着配就能让两块模块稳定对话。

2. 硬件连接与线缆:通道分配决定RS232直连线怎么做

2.1 通道分配对比:C24N的CH2是RS422/485,R2的两个通道都是RS232

QJ71C24N正面的两个通讯口,通道1是RS232的DB9座,通道2是RS422/485口,部分批次做成端子排,用来走两线或四线总线。QJ71C24N-R2正面同样两个口,但两个都是RS232的DB9座。单看外观差异不大,拔线时最容易想当然:把C24N的CH2也当成RS232口插,插上去之后什么反应都没有,还以为是线的问题。

模块型号通道1通道2典型用途
QJ71C24NRS-232RS-422/485一路232接电脑或仪表,一路485接变频器
QJ71C24N-R2RS-232RS-232两路都要232的场景,如PLC对PLC

本次对接方案里,C24N只走CH1,CH1接R2的CH1,两边都是RS232电平,一根交叉线就能通。C24N的CH2这次留着不用,等以后对端距离变长,可以把它作为升级通道走RS422/485。选型时反而要记住:你要连的是两个RS232设备,R2才是对的选择;只买一块C24N想硬接两路RS232,第二路就得外接232转485或转422的转换器,成本不低,链路还多一个故障点。

还有一点值得提前说:R2的双RS232不只在生产接线里有用,调试阶段它是天然的监听口。一侧通道接对端,另一个通道接PC串口,就能在不拆生产线的状态下看到线路上真实跑的字节流。第6章的验证方法就用在这个特性上。

2.2 RS232双机直连:DB9的2-3交叉线序

两块模块都属于DTE侧设备,DB9接口是公头(带针)。两个公头要对接,线缆两端必须是母头(带孔),同时芯线不能一一直通。RS232全双工直连的核心是收发交叉:一端第2针是RD,第3针是SD,所以对端必须把2连到3、3连到2,第5针地线两端直通。

C24N CH1(DB9公头)线缆C24N-R2 CH1(DB9公头)
2(RD)交叉3(SD)
3(SD)交叉2(RD)
5(SG)直通5(SG)

没有现成线就自己压:四芯屏蔽线,2和3两端交叉,5接5,屏蔽层在任一端单点接地。距离尽量控制在10米内,超过15米RS232就开始进入玄学区,掉帧、乱码、偶发失联都正常。真要长距离就把链路改到C24N的CH2走RS422/485,电平标准不同,传输距离能到百米以上,但线缆和参数就变成另一套了。

线序做错的典型现象:参数全对、程序全对,接收侧缓冲区永远是空的,发送侧的指示灯却正常闪。遇到这种“发送有动作、接收没结果”,先别急着改程序,用万用表量两端DB9的2、3针,确认是否一端2对另一端3;没有万用表就换一根已知没问题的交叉线试。这个坑我帮别人排过好几次,每次都是换线就好,程序根本没动过。识别端别也简单:模块侧公头带针,线缆侧母头带孔,拿一根两头都是公头的线是插不进去的,不用怀疑是型号买错。

判断线缆该交叉还是直通的根本,是分清DTE和DCE。电脑串口、PLC串口模块都属于DTE,调制解调器、部分协议转换器属于DCE。DTE对DTE必须交叉,DTE对DCE才用直通。所以别问“RS232线是不是都交叉”这种问题,先看两头设备是哪类。很多老仪表会默认自己是DCE,这时线序又要反过来。

2.3 上电前检查:槽位、指示灯、线缆拧紧

上电之前,我固定检查三件事。第一件,模块插的槽位要和Works2添加模块时分配的起始I/O号对应。三菱Q系列智能功能模块按槽位分配I/O地址,槽位识别错了,后面所有功能指令都找不到模块;报错还算是好的,最怕程序里单元号指错,通讯一直超时还不自知。第二件,通电后看模块的RUN指示灯和ERR指示灯,ERR常亮说明模块自检没过,先查模块本身再谈通讯。第三件,DB9固定螺丝一定拧紧,现场机柜有振动,松半圈就会出现“偶尔通、偶尔不通”的软故障,这种最难查。线缆走线顺手用扎带固定一下,别让它悬空晃荡。

模块安装本身不复杂:把QJ71C24N插到Q系列基板的槽位,卡扣压紧,确认模块顶部没有翘起。Q系列基板槽位有编号,从CPU旁边开始是0槽、1槽,Works2里添加智能功能模块时选的起始I/O号要对应这个槽位。我见过有人把模块插在5槽,工程里却按默认2槽配置,结果OUTPUT指令一直报单元号不存在。所以上电前一定养成“硬件槽位和软件单元号对照一遍”的习惯。

另外要提醒的是模块背面的跳线:QJ71C24N背面有维护用跳线开关,出厂状态一般不用动,但如果你是从别的项目拆下来的二手模块,要检查跳线是否被人改过。我遇到过一块二手C24N,前一手把通道1的跳线改成RS422模式,导致我这边怎么配RS232都无效。模块来源不明时,先把跳线恢复出厂再上电。

3. 参数设置:Works2里添加模块并配置两个通道的开关项

3.1 Works2添加智能功能模块的完整路径

打开GX Works2工程,左侧工程导航里找到“智能功能模块”,右键点击“添加新模块”。对话框里模块类型选“串行通信”,模块型号选QJ71C24N。型号列表挺长,同系列还有QJ71C24、QJ71C24N-R2、QJ71C24N-R4,别在型号这一步点错。选完型号,下方会让你填起始I/O号,Works2默认按基板槽位自动分配,我一般直接保留默认值,手改反而容易和硬件槽位对不上。确定后工程树里就会出现QJ71C24N,展开能看到“开关设置”项。

QJ71C24N-R2的添加路径完全一样,型号一栏改选QJ71C24N-R2。需要注意的是:这两块模块分属两台PLC,而GX Works2一个工程只能对应一台CPU,所以正确做法是建两个工程,一个工程加QJ71C24N、写发送程序,另一个工程加QJ71C24N-R2、写接收程序,分别下装到各自的CPU。别指望在一个工程里同时配置两块模块的开关设置,现场经常有人卡在这一步,以为一块模块配完就能看到另一块。

3.2 QJ71C24N通道1开关设置:协议、波特率、校验

展开智能功能模块下的QJ71C24N,双击“开关设置”,界面左侧选择“通道1”,右侧出现该通道的通信协议、波特率、数据位、停止位、奇偶校验等选项。本次按无顺序协议配置,参数我这样设:

开关项本次取值说明
通信协议无顺序协议数据透明传输,不做帧解析
波特率9600两边必须一致,9600兼容性最好
数据位8八位数据,HEX和ASCII都能传
停止位1标准配置
奇偶校验无如果选偶校验,帧长会多一位

参数说明要展开说:波特率决定每秒传多少位,是两边协调的第一步,一个9600一个19200,数据根本对不上。数据位老式仪表有7位的,相应接收侧也要改7位。奇偶校验一旦选了奇或偶,每帧都会多出校验位,接收侧必须选同样的校验方式,否则模块硬件层就把帧丢弃了。我的习惯是两边参数做成一张表,改任何一项就同步改另一侧,不做“只改一边试试”的调试方式。

无顺序协议下这些开关设置还有一个区别需要习惯:模块不对内容做任何识别,所以“和校验”这类功能不是模块内置的,得靠你的PLC程序在数据帧里自己算。开关设置里能做的主要是端口电气参数,帧的完整性属于程序范围,第4章会专门说。

3.3 QJ71C24N-R2通道1开关设置:与C24N保持参数一致

QJ71C24N-R2的开关设置界面结构和C24N几乎一样,双击“开关设置”后,左侧同样有通道1、通道2两个页签,右边是同一排参数项。因为R2的两个通道都是RS232,通道1和通道2的参数项完全一样,不像C24N那样通道2变成RS422/485的界面。这里容易忽略的是:R2的通道页签很容易选错,选了通道2配参数,结果线实际插的是通道1,两边参数就不一致了。

所以我的习惯是:配参之前先在模块壳上贴好通道号标签,再把开关设置里的通道页签和物理口对上。R2通道1的参数必须和C24N通道1完全一致:协议都是无顺序协议,波特率都是9600,数据位8位,停止位1位,奇偶校验无。任何一项不一致,结果就是前面提到的乱码或完全无声。

这个一致性要求是这套环境的核心,也是我踩过的大坑。有一回两边波特率一个9600一个19200,现象是接收缓冲区偶尔冒几个乱码字节,其余时间全无响应。当时怀疑程序、怀疑线缆,查了半天才想到开关设置没同步。从那以后,我配完一个模块,要先截图发给对端,参数逐项对完再下电接线。

4. 通讯程序:无顺序协议下用OUTPUT和INPUT收发一帧

4.1 协议选择:为什么这次用无顺序协议而不是MC协议

QJ71C24N支持MC协议、无顺序协议、双向协议。MC协议是三菱自己的协议,帧结构固定,适合和上位组态软件、HMI通信,数据解析规则由协议本身保证;双向协议适合一问一答的主从模式,主站发命令、从站回响应。而本次两块PLC之间的数据交换,实质是“把一个CPU里的数据搬到另一个CPU”,不需要复杂命令应答,所以用无顺序协议最省事:模块不解析帧内容,用户给什么就发什么,接收侧原样收进来,剩下的事都由PLC程序处理。

同样,接收侧R2也配成无顺序协议,两边才在同一套协议口径下工作。如果一边选无顺序、另一边选MC协议,两边根本不在一个语言环境里,链路都建不起来。无顺序协议的代价是帧格式、校验、超时全部自己写,但它让你对链路有完全控制,调试时看得到每一字节,适合PLC对PLC这种纯粹的串口透传。

4.2 发送侧程序:QJ71C24N的数据拼包与OUTPUT指令

发送侧逻辑分三步:拼包、触发、发送。无顺序协议没有现成帧格式,我常用固定结构:帧头、站号、命令字、数据区、校验、帧尾。

D100 = H5A // 帧头 D101 = H01 // 站号 D102 = H10 // 命令字 D103 ~ D108 // 数据区,6个字节 D109 = 校验 // SUM低8位 D110 = HA5 // 帧尾

拼包前,先把D100到D110清零,避免上一次发送的残留数据混进来。然后X0上升沿触发一次发送:

LD X0 OUTPUT U0 K1 D100 K11

指令参数含义:

  • U0:智能功能模块单元号,从0开始,对应你添加模块分配的起始I/O
  • K1:通道1,C24N的RS232在通道1
  • D100:发送数据起始软元件
  • K11:发送11个字,正好覆盖D100到D110

这里有个常见误用:有人直接把数据用MOV写进D区就调OUTPUT,忘了X0触发只应持续一个扫描周期。如果X0常ON,OUTPUT会在每个扫描周期都发一次,接收侧被多帧数据灌满,帧校验永远不过。所以触发条件一定用上升沿,或者用PLS指令产生一个扫描周期的脉冲。

提示:OUTPUT和INPUT指令的操作数排列在不同版本的GX Works2里可能有差异,以指令向导弹出的输入框为准,别死记助记符顺序。

4.3 接收侧程序:QJ71C24N-R2的INPUT指令与超时处理

接收侧用INPUT指令把模块接收缓冲区的数据读进CPU:

LD X10 INPUT U0 K1 D200 K11

参数含义和OUTPUT一致:U0是R2模块的单元号,K1是通道1,D200是接收数据存放起始软元件,K11是一次最多接收11个字。INPUT执行后,程序对D200开始的11个字做三件事:查帧头是不是5A,查帧尾是不是A5,再对中间字节做和校验并与D109比对。三项都通过,才置位M50数据有效标志,后续逻辑只认M50;任何一项不对,整帧丢弃,接收计数器清零等下一帧。

超时机制必须自己加。无顺序协议下如果链路断了,模块不会主动报错,接收侧会一直等下一帧,程序容易卡死。我习惯的做法:发送侧发出帧后启动一个2秒定时器,接收侧2秒内没有把M50置位,就复位数据有效标志并置M60超时标志,程序走告警分支,同时重新初始化接收区。这条不是手册里的套话,而是现场最容易吃亏的地方——通讯断了不报警,设备会带着过期数据继续跑。

4.4 帧格式与校验:无顺序协议没有CRC,自己加和校验

无顺序协议本质是透传,报文正确性全靠程序兜底。CRC16在PLC里要用循环移位指令逐字节算,程序量不小;现场最常见的是和校验SUM:把帧头、站号、命令字和数据区所有字节累加,取低8位作为校验字节放在帧尾前。接收侧用相同算法算一遍,两值相等就认为本帧有效。

偏移内容说明
05A帧头
101站号
210命令字
3 ~ 8数据区6个字节
9SUM前面9字节累加取低8位
10A5帧尾

固定11字的帧长有个好处:接收侧不用做“等到哪个字节才判定帧结束”的复杂逻辑,INPUT读到11个字就整体校验,不过就丢。如果数据区长度可变,接收侧就得额外判断结束触发条件,调试成本明显上升。所以我的习惯是宁可浪费几个字节,也把帧长固定住。要求更高的场景再上CRC16,数据量不大时SUM完全够用。

5. 通讯故障排查:直连不上时最容易翻车的三个坑

5.1 现象:Works2里能组态,但OUTPUT指令一执行就报错

原因:添加智能功能模块时起始I/O号和基板槽位不符,指令里的U0单元号指向了不存在或类型不对的模块。解决:在工程里打开“智能功能模块”的模块属性,核对起始I/O号;Works2添加模块时会自动按槽位分配,不要手改。单元号从0开始,和起始I/O号一一对应,两边不一致时把硬件槽位信息打出来对照一遍,再执行指令。调试时我会先用CPU直接读模块缓冲存储区的方式确认模块在线,排除指令层面的问题,再回头查程序。

5.2 现象:发送侧执行了OUTPUT,接收侧一帧都收不到

原因:RS232线做成了直通,两端2对2、3对3;或者通道选错,C24N的CH2是RS422/485,插RS232线当然没反应。解决:先用万用表量DB9座,发送侧第3针发送时应有电平跳变,接收侧第2针应能测到同样的跳变;没有万用表就直接换一根2-3交叉的线。同时确认C24N只用CH1接R2的CH1或CH2,别选到C24N的CH2。如果手边实在没有万用表,用模块的自诊断功能读缓冲区状态也能判断,但最快的方法永远是换线。

5.3 现象:能收到数据但全是乱码,或和校验老是不对

原因:两边波特率、数据位、停止位、奇偶校验不一致。无顺序协议下模块不纠错,参数不匹配的结果就是字节错位,“有数据但是垃圾”;和校验不对通常是ASCII码和HEX混算,或者收发两侧帧偏移指错。解决:把两个模块的开关设置打开逐项对照;和校验先用固定帧5A 01 10 00 00 00 00 00 00 00 A5发一次,打印出来手算一遍,确认算法和帧偏移没错,再上真实数据。乱码和参数错误的关系是线性的:波特率错是整帧错位,数据位错是字节内容错,校验错是帧尾对不上。

5.4 现象:偶尔通,振动一下或几分钟后就掉线

原因:DB9固定螺丝没拧紧、线缆压接虚焊、屏蔽层悬空导致共地干扰。解决:重新压接或换成品线,螺丝拧紧后用扎带固定线缆;机柜内走线和动力电缆分开,避免干扰。这种“软故障”最难查,所以我把机械项检查列进上电前的必做清单。现场如果一下换不掉线,最实用的临时做法是把波特率降到9600,低波特率对电容和干扰的容忍度高不少,先保证通讯不断,回头再彻底换线。

真要说玄学,串口通讯里八成的问题都出在物理层:线、头、螺丝、地。程序反而因为编译检查在那里,错得明明白白。所以排查顺序我一直固定成“先物理层,再参数层,最后程序层”,不跳过任何一层,这样最省时间。

6. 验证跑通:用R2的双RS232通道外接PC监听收发帧

6.1 用软元件监视窗口观察接收缓冲区

接收侧工程的GX Works2里打开软元件监视,起始软元件设为D200,监视方式选“字”。发送侧强制X0置ON一次,观察D200开始的11个字。如果值变成5A 01 10……,说明INPUT已经收到完整帧;如果全是0,先查发送侧OUTPUT有没有真正执行,再看接收侧INPUT有没有被调用。

6.2 外接串口调试助手的监听方法

QJ71C24N-R2有两个RS232通道,调试时特别好用:CH1保持和QJ71C24N对接,CH2临时接PC串口或USB转串口。在开关设置里把CH2也配成同样的无顺序协议参数,PC上用串口调试助手打开对应串口,波特率9600、数据位8、停止位1、无校验、HEX显示。发送侧触发后,串口助手应该立刻出现5A 01 10……的完整帧。

这里有个前提:PC串口和模块都是DTE,中间同样要2-3交叉线,别把接PC的监听线做成直通,否则串口助手一片空白。如果串口助手有数据而R2接收缓冲区没有,问题在R2侧的INPUT程序或通道1的开关设置;如果串口助手也是空的,回头查发送侧和线缆。这个方法能把链路问题快速分成“模块之前”和“模块之后”两段。

6.3 一次完整的验证流程

我把这套环境的验证固定成四步。第一步,两边参数对照表逐项确认,包括协议、波特率、数据位、停止位、校验、帧长。第二步,发送侧强制X0,看接收侧D200区是否出现正确帧。第三步,外接串口助手对监听通道做旁路验证,确认物理链路确实有字节流。第四步,连续跑10分钟,观察有无偶发漏帧。第四步最关键,偶发问题大多出在线缆和干扰上,短时间验证很难暴露。

从那以后,我做Q系列串口模块对接,都强制自己先过这四步再交付:参数对照、强制发送、旁路监听、连续运行。这套流程帮我挡住了好几次现场返工,尤其是带R2双RS232模块的项目,通道一多,监听通道比什么都可靠。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/26 14:35:54

WorkBuddy:面向生产级工作流的AI Agent编排引擎

1. WorkBuddy不是“AI助手”,而是你数字工作流的神经中枢最近在技术圈和产品团队内部,我频繁听到一个词:WorkBuddy。它不像ChatGPT那样被拿来写周报、改简历,也不像Copilot那样嵌在编辑器里帮你补代码——它出现的场景往往是&…

作者头像 李华
网站建设 2026/10/26 14:34:17

云原生混部场景下Koordinator CPU Throttle机制解析与实践

1. 项目概述 在云原生混部场景下,如何高效管理CPU资源一直是业界难题。Koordinator作为阿里巴巴开源的混部调度器,其CPU Throttle机制通过精细化的资源管控,实现了不同优先级业务在同一节点上的和谐共处。这套机制不仅能保障高优先级业务的SL…

作者头像 李华
网站建设 2026/10/26 14:32:46

Context Mode 重构 AI 编码代理:MCP 与 SQLite 实现上下文精准管理

1. 为什么"上下文"成了 AI 编码代理最贵的资源先抛一个我自己的实测数据。前阵子我在一个中型 TypeScript 项目里跑一个编码代理,让它连续完成"读需求 → 定位文件 → 改代码 → 跑测试 → 修报错"这一整条链路。单次任务平均要消耗 6 到 9 万 …

作者头像 李华
网站建设 2026/10/26 14:32:45

T40 EVB 原理图深度拆解:AIoT SoC 电源树与接口设计实战

简介:这份资源是北京君正T40EVB开发板的完整原理图PDF,面向从事AIoT硬件设计、嵌入式开发及机器视觉方案选型的工程师与学习者。T40作为通用型SoC,采用XBurst2双核架构并内置RISC-V协处理器,集成8TOPS算力AI引擎,ISP支…

作者头像 李华
网站建设 2026/10/26 14:32:41

IDE连接远程Docker认证失败:SSH密钥排查指南

上周有位同行把他的截图甩过来,IDE 里 Docker 面板的连接测试点了七八次,每次都弹同一句 Authentication failed,用户名密码反复核对,swap 了一遍又一遍还是不行。这类问题从 2023 年上半年开始集中冒头,尤其集中在202…

作者头像 李华
网站建设 2026/10/26 14:32:41

汽车焊装工艺数据智能转型:架构与实践

1. 焊装工艺管理的现状与挑战在汽车制造领域,焊装工艺管理一直是生产环节中的核心痛点。传统模式下,工艺参数的设定、质量问题的排查、生产节拍的调整,几乎完全依赖老师傅的经验判断。我曾亲眼见过一个典型场景:当焊接出现虚焊问题…

作者头像 李华