FX3U与得利捷扫码枪RS232无协议通信实战:从接线到解析

发布时间:2026/10/18 23:20:16
FX3U与得利捷扫码枪RS232无协议通信实战:从接线到解析 搞工业自动化的兄弟都懂扫码枪和PLC联机这套活说简单是真简单——串口线一接、参数一对数据就进来了说麻烦也是真麻烦现场变频器一开、地线没接好、参数差一位一个下午就交代进去了。上个月我在一条包装线刚收拾完一套FX3U配得利捷扫码枪的方案从选型、接线、配参数到写程序基本把常见的坑都踩了一遍。今天就把这套实战经历完整掏出来从硬件怎么接、得利捷扫码枪怎么配到FX3U的RS指令怎么用、数据怎么解析一条一条说清楚。不管你是做扫码追溯、工位防错还是包装分拣这套思路基本都能直接套用。1. 整体方案怎么选FX3U配得利捷这套组合到底好在哪1.1 为什么多数现场选RS232无协议方案先聊选型。扫码枪和PLC之间通信常见无非三种路子RS232串口、RS485总线、以太网。三种方式我在不同项目里都试过但FX3U这种级别的小型PLC现场十套里有七八套走的还是RS232无协议。原因很简单便宜、直接、误码率稳定可控。扫码枪本质是个单向设备它自己扫到条码之后往外吐一串ASCII字符PLC这边只需要老老实实收下来。这种“设备主动上传、PLC被动接收”的场景恰好是无协议通信的舒适区。RS485要多站组网、设站号、写指令帧轮询程序复杂度翻倍。以太网方案虽然速度快、数据量也大但FX3U本体没有网口要加扩展模块或者走协议转换网关预算和调试时间都会上来。一条包装线的扫码追溯工位产品节拍通常也就几秒一件RS232的115200波特率完全够用没必要在通信方式上给自己找事。还有一个实际原因现场电气柜里老一代工程师对串口维护最熟出了问题拿个万用表就能量不用抱着笔记本抓包。这也是方案能不能在车间活下来的重要因素。1.2 整体架构梳理扫码触发和数据流向这套方案里FX3U负责逻辑控制和数据暂存得利捷扫码枪负责读码。两者之间通过一块FX3U-232-BD通信扩展板对接。为什么特意加扩展板而不是用PLC本体自带的编程口因为那个编程口是调试用的既不稳定也不安全用它做生产通信相当于把工具当武器使早晚出问题。数据流向大概是这样的产品到位光电传感器把信号送给扫码枪的触发输入扫码枪完成拍照和解码把ASCII码通过RS232发给FX3U。FX3U收到数据后做简单解析一方面把条码存进数据寄存器另一方面和当前工单比对不一致就亮红灯停机。如果需要上传MESPLC再把数据转给触摸屏或上位机。这里有一个值得注意的点扫码枪触发方式尽量用外部传感器触发别用连续自动读取模式。连续模式在流水线上容易重复读、误触发、读到上一件产品后患无穷。用外部触发每件产品到位读一次帧边界也干净PLC处理起来舒服很多。2. 接线和扫码枪参数配置动手前先把这几个坑填了2.1 串口接线TX/RX交叉、屏蔽和共地一个都不能少硬件接线这一步很多兄弟觉得简单恰恰是翻车率最高的环节。FX3U-232-BD扩展板上是一个DB9公头得利捷扫码枪的串口线一般是母头标准RS232引脚定义里公头的2脚是RXD接收、3脚是TXD发送、5脚是GND。设备之间对接要交叉连接PLC的2脚RXD接扫码枪的3脚TXDPLC的3脚TXD接扫码枪的2脚RXD5脚接5脚。听起来很顺但现场最容易犯的错是直接用一根两头都是母头的串口线怼上去或者拿公对公线硬接结果TX对TX、RX对RX数据当然一个字节都进不来。我上个月调试时碰到一次“完全收不到数据”的情况查了半天发现是前一个项目留下的交叉线被换成了直通线方向彻底反了。所以接线前先用万用表把线序量出来是直通还是交叉要心里有数。比线序更隐蔽的是接地问题。扫码枪和PLC通常在同一个柜子里但供电可能来自两个不同的开关电源。两个电源的0V不共地时串口两端的地电位会有压差轻则数据偶尔乱码、丢帧重则通信板莫名其妙发烫甚至烧毁。我在项目中要求扫码枪电源的0V和PLC电源的0V必须单点接到一起而且串口线屏蔽层只在PLC这一端接地另一端不接防止形成地环路。另外RS232线长不要超过15米这是物理特性决定的。扫码枪如果装在离PLC柜很远的工位上老老实实改RS485转换器或者以太网方案硬拉15米以上的RS232线大概率会和干扰斗智斗勇。2.2 得利捷扫码枪配置用电脑先调出一个干净输出得利捷扫码枪上电之前我强烈建议先别碰PLC把扫码枪单独接到电脑上调通。得利捷有官方配置软件用USB线或者USB转串口线连上电脑就能读到设备。第一次连接时可能要找一下虚拟COM口号在设备管理器里确认好端口编号就行。打开配置软件后重点看几个地方。通信参数必须和PLC约定好波特率9600、8位数据位、1位停止位、无校验。这一套组合在工程里叫“9600 8N1”是出镜率最高的一档配置。数据位、停止位、校验位有一项对不上PLC收到的就是一堆乱码。然后是输出格式。扫码枪默认输出往往带着前导符、后缀符、回车换行一整套。我处理的原则是能清就清在配置里把前缀、后缀都置空只保留“条码内容回车换行”。这样PLC拿到的数据干净解析逻辑简单很多。如果客户对防错要求高可以开启BCC校验输出扫码枪会在条码后面附加一段异或校验结果。这个功能我可以接受但PLC程序里要写对应的校验计算代码工作量会增加一般客户没要求时我会默认关掉。触发方式也在软件里设置。选外部传感器触发并把触发极性调对。什么是极性就是传感器来信号时触发电平是高有效还是低有效。不同传感器输出电平不一样配错了扫码枪要么一直处在读码状态要么怎么触发都没反应。这个极性在现场调试时一定要实测不能只看图纸。码制也要在这里设置。现场要扫Code128还是EAN-13是DataMatrix还是QR都要把对应码制勾上。很多师傅环境配置漏了码制扫半天扫不出还以为扫码枪坏了。顺便把条码长度上下限也设一下比如最短4位、最长64位可以挡掉不少意外的误读。配置完毕后记得保存到设备并退出配置模式。有些型号配置完拔掉USB线就会自动回到运行模式但稳妥起见在软件里明确执行一下保存和退出否则扫码枪可能还挂在配置状态不响应现场触发。3. PLC程序设计与条码解析RS指令和D8120怎么落3.1 D8120和RS指令无协议通信的核心设置硬件和扫码枪都备好了接下来是PLC程序。FX3U做无协议串口通信绕不开两个东西特殊数据寄存器D8120和RS指令。D8120是通信格式的总开关。PLC用哪个串口参数工作都由这个寄存器决定。工程里最常用的一组配置是H0081对应无协议通信、9600波特率、8位数据、无校验、1位停止位。把这串十六进制数写进D8120就相当于告诉PLC“我按9600 8N1接收外部数据”。程序里一般用首次扫描脉冲把它写进去LD M8002 MOV H0081 D8120这里有个小经验D8120在PLC运行期间修改后不一定立刻生效有些情况下要重新上电才保险。所以改完参数别急着测断电重启一下能省很多莫名其妙的排查时间。RS指令负责真正的数据收发。格式是这样的RS D200 K0 D300 K128D200是发送缓冲区首地址K0表示发送长度为零——我们这套方案里PLC不下发任何数据给扫码枪因为扫码枪是外部触发触发后自己往PLC发条码。D300是接收缓冲区首地址K128是接收长度单位是“字”也就是最多能接收128个字的数据。RS指令在程序中要用常开条件一直驱动让它保持待命。其中有两个特殊继电器要牢记M8122是发送请求我们不用M8123是接收完成标志当一帧数据完整接收后自动置ON。PLC程序要做的就是等M8123亮起来然后去缓冲区把数据搬走。3.2 接收缓冲区的“挤字”问题数据为什么要拆字节这里有个特别坑的细节很多新手第一次必然栽跟头RS指令接收到的原始数据在D寄存器里的排列不是“一个D寄存器存一个字符”而是“两个ASCII字符挤在一个16位寄存器里”。举个例子。扫码枪发出一串“ABC123”假设ASCII码依次是41 42 43 31 32 33那么在接收缓冲区里看到的样子是这样的D300的低字节是0x41A高字节是0x42BD301的低字节是0x43C高字节是0x311D302低字节是0x322高字节是0x333。也就是说每个D寄存器像一辆坐了两人的摩托车前后座各坐一个字符。如果程序直接把D300的值拿去用看到的是一堆压缩过的数据根本没法当条码来比对。所以解析条码的第一步是把这些高低字节拆开还原成一串连续的ASCII字符。我在项目里一般把接收缓冲区看成“字节流”逐个取出低字节和高字节再存到另一个专门的字符数组里做后续处理。这个知识点看起来小但直接影响整个解析逻辑的设计。曾经有个项目里程序按“一个字符一个D寄存器”去处理结果对比总是只能对上奇数位字符偶数位全部丢失查了半天才发现是高低字节没拆开。3.3 条码解析逻辑扫描回车符截取有效内容拆完字节之后下一个核心问题是怎么确定“一条完整的条码到哪里结束”。因为条码长度不定有的8位有的20位接收缓冲区的长度是固定的128字不能直接用固定长度去截。我的做法是找结束标志。扫码枪默认输出条码后会自动带一个回车换行也就是0D 0A。所以解析逻辑变得清晰从缓冲区开头逐字扫描找到0D 0A前面的所有字符就是本次读取的完整条码。这个扫描过程有个隐藏陷阱前面说了数据是高低字节挤在一起的所以0D和0A这两个字节可能出现在同一个D寄存器里低字节是0D、高字节是0A也可能一个跨在上一字的高字节、一个落在下一字的低字节。程序在查找结束符时这两种情况都要覆盖否则偶发丢帧、截断条码的问题就出来了。解析完成之后把有效条码存进另一片寄存器作为最终结果。我习惯在D500保存条码长度D501开始连续存放条码的ASCII码。这样上位机、触摸屏来读取时一看D500知道有多长再从D501往后取对应数量的字符就行非常直观。伪代码大致是接收完成(M8123ON)后 1. 从D300起逐字扫描最多128字 2. 检查是否出现0D 0A记录当前字符位置N 3. 从0到N之间的所有ASCII字符提取出来 4. 长度N写入D500字符依次写入D501起始区域 5. 处理完毕复位M8123等待下一帧还有几个程序层面的细节值得提。第一M8123亮起来后不要立刻复位先把数据搬完再复位否则缓冲区被下一帧数据覆盖这帧就白收了。第二条码比对逻辑里建议加一个“长度先比对”长度不一样的条码直接判不合格速度快又准。第三收到数据但解析不出有效条码时要给一个超时或者出错标志别让设备停在一个不明确的状态现场操作员会懵。4. 现场调试顺序与问题排查从串口助手到在线监控4.1 推荐调试顺序先电脑后PLC别上来就写程序我把这套方案调试过三遍之后总结出一条铁律先让扫码枪对着电脑“说话”再让PLC和扫码枪联机。具体步骤是这样的。第一步用USB转串口线把扫码枪接到电脑打开串口调试助手波特率设成9600、8N1手动触发一次扫码看串口助手能不能收到一条干净的ASCII数据。这一步能验证扫码枪本身有没有问题、码制配置对不对、输出格式是不是预期的。收到的数据里如果杂七杂八带了一堆前缀后缀先回扫码枪配置里清掉再继续。第二步挂一个光电传感器上去用外部信号触发扫码枪确认触发极性正确、每触发一次只出一帧数据。这一步验证的是现场触发链路。第三步把串口线从电脑换到FX3U的232扩展板上。打开编程软件在线监控M8123和接收缓冲区D300。手动触发扫码看M8123会不会亮起来看D300里有没有数据进来。如果这一步通过说明物理链路和串口参数没问题剩下的就是程序解析逻辑的事情。第四步把解析逻辑打开看D500里的条码内容和扫码枪实际扫到的内容一不一致。一致了再做和工单比对、报警输出、MES上传这些外围逻辑。这套顺序走下来每步都有明确的验证点出了问题能快速锁定在硬件层、参数层还是程序层。4.2 高频问题排查速查表下面这张表是这类项目里出镜率最高的几个问题基本涵盖了现场调试的百分之八十的坑。现象可能原因解决办法完全收不到数据TX/RX接反、线序不对用万用表量线序交换TXD/RXD收到一堆乱码波特率、数据位、校验位不匹配两边统一为9600 8N1检查D8120偶发丢帧、乱码电源不共地、屏蔽层双端接地单点共地屏蔽层单端接地扫码枪不出数据触发极性配置错误在配置软件里切换触发电平极性实测条码内容带前缀后缀扫码枪输出格式含多余字符清空前缀后缀只留CR LF条码截断、内容不全回车符跨字未识别、缓冲区过小解析兼容跨字0D0A加大接收长度扫一次触发多条数据连续读取模式改为外部传感器单次触发数据量多、缓冲区溢出条码长度超过预留缓冲区按最长条码重算接收长度每一条都值得在现场亲手验证一遍。比如“偶发丢帧”这种问题最难查因为不是每次都出现。这种时候我会把扫码枪和PLC的电源共地先处理掉再把串口线换成屏蔽双绞线并把线缆挪到远离变频器主回路的线槽里八成问题能解决。4.3 容易忽略的现场细节触发极性、码制、曝光最后聊几个软件里很不起眼、但实际影响特别大的现场参数。触发极性这个我前面提过但它值得单独再说一次。得利捷扫码枪的触发输入一般可以配置为高电平触发或者低电平触发。比如某品牌的接近开关是PNP输出给高电平另一块传感器是NPN输出给低电平。如果配置时没有按照实际传感器选对极性扫码枪要么永远在扫、要么永远不扫。我建议在配置软件里把触发模式改成“外部触发”后先用最笨的方法——手碰一下极性设置观察扫码枪的指示灯有没有反应把正确极性确定下来再做后面的事情。码制启用也是一个容易被忽略的坑。很多扫码枪出厂默认只开了一部分通用码制如果现场用的是某一种特定的二维码比如DataMatrix结果没在配置里打开扫码枪就只会“看”到却解不出表现为指示灯闪一下但数据始终不出来。还有一个现场环境问题反光和曝光。包装膜、亚克力板、金属表面的强反光都会影响读码成功率。得利捷扫码枪的配置软件里通常有曝光时间和增益调节我试过在一条塑料膜包装生产线上默认参数下读码成功率只有八成把曝光时间适当调低、开启偏振相关的读码模式后基本稳定在99%以上。这些参数没有绝对标准得看现场物料但一定要知道可以调。另外条码打印质量差、内容格式对不上的问题也常见。有人会觉得扫码枪“应该什么码都能读”实际上磨损、褶皱、打印浓度不足的条码工业扫码枪照样容易翻车。这时候先去查条码本身的质量别急着折腾通信配置。现场发现扫不上拿同一张条码先用扫码枪自带的LED指示或者配置软件里的图像预览看一下成像效果能省很多无用功。这套FX3U配得利捷的方案我在车间里已经复用了几回最大的体会是串口联机真正难的不是“接通”而是把现场各种干扰和参数意外提前想清楚。别急着上电写程序先把线接对、把扫码枪用电脑单独调通再进PLC调程序这个顺序能帮你省掉一大半的加班时间。最后再提醒一句如果扫码枪工位离PLC柜超过15米别硬上RS232踏踏实实换RS485或者网口版本后面你一定会感谢这个决定。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询