ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

EL6751串口模块接入EtherCAT:从接线到DL/T645协议解析实战

EL6751串口模块接入EtherCAT:从接线到DL/T645协议解析实战 做工业现场设备对接这些年EL6751是我用得最频繁的串口方案之一。它解决的核心问题很直白把RS232/RS422/RS485串口设备拉进EtherCAT实时总线让PLC和上位机能通过总线直接收发串口数据。可别小看这一步现场部署时大量通信故障都出在这条串口链路上。写这篇文章我打算按自己实际干活的顺序来先讲EL6751的硬件角色和接线再聊串口协议怎么拆解接着走一遍TwinCAT里的CoE配置和过程数据读写最后用一个DL/T645电表对接的完整案例把协议解析和工业现场部署整个流程串起来。如果你是从别人手里接管项目这篇文章也能当排查手册用。1. 先把EL6751的角色和硬件接法搞清楚1.1 EL6751到底是干什么用的很多第一次用倍福I/O系统的人容易把EL6751理解成“一个串口转网口网关”这个认知偏差会害死人。EL6751严格来说是EtherCAT从站端子模块它的一端是EtherCAT总线另一端是串口内部做的事情是把串口收到的字节流原样打包进EtherCAT过程数据再把主站下发的数据原样从串口发出去。它不负责识别Modbus RTU也不懂DL/T645电表协议更不会主动跟扫码枪做应答。理解这一点特别重要后续所有调试思路都建立在“EL6751只是透明通道”这个前提上。你可以把它想象成一个高速物流仓库和一条乡间小路之间的接驳口EtherCAT这边按微秒级周期跑串口那边按毫秒级波特率慢慢挪EL6751负责搬运至于车上装的是电器零件还是食品饮料它不关心也不该它关心。正因为如此EL6751能对接的设备范围非常广。变频器、智能电表、扫码枪、老式PLC、称重仪表、温控器凡是带RS232/RS422/RS485接口的理论上都能拉进EtherCAT系统里统一管理。这也是我选择它的核心理由一条总线把五花八门的串口设备全部串联起来项目后期维护省心很多。1.2 接口类型与接线方式EL6751是单通道串口端子外形跟其他EL系列数字量模块差不多但正面带一个9针D-sub接口。它的电气标准支持RS232、RS422、RS485三种具体用哪种由接线方式配合CoE参数共同决定不是单纯靠软件切一下就完事。RS232接线最简单常用三根线TXD接设备RXDRXD接设备TXDGND接GND。虽然RS232也有流控线但绝大多数应用用不到直接忽略就是。RS422走全双工需要T、T-、R、R-四根线适合距离几十米且需要全双工通信的场景。RS485是半双工一般只需要A、B两根线设备多的时候还要考虑手拉手接线和终端电阻。我踩过最大的坑是RS485的A/B方向。有些设备标的是A、B-有些标的是D、D-还有的干脆标成485和485-不同厂家习惯不一样。接线后如果完全没反应不用急着怀疑EL6751坏了先把A/B对调试试。这个操作在调试现场非常常见跟网络线做交叉线是一个道理。地线不能省。RS485虽然用差分信号抗干扰但A、B线相对参考地仍然有共模电压问题。距离稍长尤其是跨设备间供电时共模电压超过芯片容忍范围就会导致收发出错甚至烧接口。我在项目里一般要求设备端跟EL6751共地实在不具备条件就选带隔离的串口模块EL6751本身也有隔离型号可选选型时要注意。1.3 动手前要准备哪些东西规划EL6751项目时除了模块本身我还会在开工前把这几样东西准备好第一对端设备的协议说明书。这是最重要的资料没有之一。有人接线之前不读协议到了现场拿串口助手盲试运气好碰出数据运气不好折腾一整天。波特率、数据位、校验位、停止位、报文帧格式、命令码、校验方式说明书里全都有先把这些抄到笔记本上再动手。第二一条靠谱的串口调试线。如果对端是RS232准备USB转RS232线如果是RS485设备准备USB转RS485线。品牌无所谓但要能稳定工作。很多免驱的十几块钱线办公用还行调试时容易丢字节排查问题会非常痛苦。第三串口调试助手。Windows下我用过很多款现在常用的是开源的能支持定时发送、进制切换、时间戳显示这些功能在分析协议时非常有用。最好能显示接收时间间隔方便判断帧与帧之间的停顿。第四TwinCAT开发环境。EL6751需要TwinCAT 2或TwinCAT 3来进行配置和调试我用的是TwinCAT 3后面的操作都以此为例。老项目如果还在用TwinCAT 2.11配置思路一样界面略有差异。2. 协议解析的核心把字节流切成“帧”2.1 为什么串口通信的难点是找帧边界串口通信本质上是一次传一个字节物理层不关心你传的是一句完整命令还是半条数据。对接收方来说看到的就是一根源源不断的字节流就像一条河里顺流而下的木头有长有短没有外包装怎么知道哪些木头是同一批货这就是“帧边界”问题。协议解析的第一步永远是从字节流中准确切出一个完整的数据帧。切错了后面所有解读都是白搭。常见的切帧手段有三种固定长度、特殊起始符加结束符、长度字段。实际协议往往组合使用比如固定起始符保证同步、长度字段告诉你数据区多长、结束符或校验和再兜个底。“Java 645协议解析”这类话题经常在技术社区被搜到本质就是在解决这个问题。DL/T645电表协议帧里有起始符0x68、有地址域、有数据长度、有校验和、还有结束符0x16边界规则非常清晰解析起来其实不难难的是你面对的是不断涌入的字节流需要设计一个状态机或者循环去识别每一帧。对比一下HTTP协议就更直观了。HTTP是文本协议头部以连续两个换行回车结束正文长度看Content-Length字段如果用了chunked传输还得按块长度逐个切。这种上下文相关的边界判定明显比串口二进制帧的“长度字段一刀切”要复杂。所以接触的协议多了以后你会形成一种直觉拿到一个协议先看它靠什么切帧再看靠什么校验这两点通了解析框架基本就搭好了。2.2 三种常见协议的帧结构对比我自己常碰到的串口协议大致分三类以Modbus RTU为代表的通用工业总线协议以DL/T645为代表的行业仪表协议以及各家设备厂商自定义的私有协议。三种协议切帧思路完全不同。Modbus RTU的帧格式是地址码1字节、功能码1字节、数据区N字节、CRC16校验2字节。它没有一个明确的结束符靠的是帧与帧之间的静默时间来判断边界。协议规定两个数据帧之间的间隔必须大于等于3.5个字符时间一个字符按11位计算9600波特率下3.5个字符差不多4毫秒。只要总线上静默超过这个时间新来的字节就是新一帧的开始。DL/T645则是典型的“长度字段起止符”结构。帧固定以0x68开头接着是6字节地址域再次出现0x68然后是控制码、数据域长度、数据域、校验和最后以0x16收尾。数据域长度字段在控制码后面一个字节直接告诉你后面跟了多少数据。这种结构的好处是边界很明确坏处是起始符和结束符本身在数据域里也可能出现所以解析时不能只找一个0x68就完事。至于Modbus TCP跟RTU的区别也值得记一下。Modbus TCP的帧头是7字节MBAP报文头里面包含事务处理标识符、协议标识符、后续字节长度、单元标识符。它不需要CRC16因为底层TCP/IP已经有可靠性保障。做协议解析时Modbus TCP主要靠MBAP里的长度字段切帧比RTU的静默时间判断要简单。很多人把Modbus RTU和Modbus TCP搞混其实就是没把这两种帧结构的差异理清。三类协议的我整理了一个对比表方便你直观感受协议类型典型帧结构切帧方式校验方式Modbus RTU地址功能码数据CRC16静默时间3.5字符CRC16Modbus TCPMBAP头功能码数据MBAP长度字段无TCP保证DL/T645起始符地址域控制码长度数据校验结束符起始符/长度/结束符8位累加和HTTP请求行头域空行正文空行Content-Length无强校验2.3 EL6751在协议解析里能帮你什么EL6751作为一个透明传输模块能做的一件事是“硬件级切帧”。它的CoE参数里接收帧的结束条件可以配置成三种固定长度、结束字符、超时时间。意思是说EL6751在串口侧收数据时可以根据你设定的规则判断一帧是否收完整然后以一帧为单位把数据放到EtherCAT过程数据里给主站。这个特性非常有用。比如DL/T645的帧结束符是0x16你可以在EL6751里设置“收到0x16就算一帧结束”这样主站读到的就是一个完整帧不用自己去字节流里找边界。又比如Modbus RTU靠静默时间切帧EL6751也可以配置接收超时比如超过20毫秒没有新字节就算一帧结束基本能模拟出Modbus RTU的帧间隔逻辑。但你得清醒一点EL6751告诉你的只是“这一包数据到这儿结束了”至于这包数据里的地址对不对、功能码是什么、校验是否通过还需要主站侧自己去解析。换句话说EL6751负责“断句”不负责“理解”。真正读懂协议的工作依然要在TwinCAT或者上位机程序里做。有时候我会把EL6751的接收超时设得比协议的帧间隔大很多比如协议要求3.5字符静默我直接设50毫秒。为什么因为现场设备响应速度没那么快主站轮询是一个问一个答帧与帧之间天然有间隙50毫秒不会串帧还能避免因为线路噪声导致的微小间隔被误判成新帧。这里有一个权衡超时设大了如果协议要求连续快速收发响应延迟会变大设小了长帧或者设备响应慢时又会被拆成多包。具体值要结合设备的波特率和响应时间实测调整。3. TwinCAT里配置EL6751并跑通收发3.1 添加设备与扫描EL6751要接入EtherCAT系统前提是总线耦合器比如EK1100正常连接EL6751作为一个从站挂在后面。在TwinCAT 3的项目里扫描I/O设备是最快的接入方式。把EK1100的EtherCAT网口跟电脑网口连好激活Free Run模式然后在I/O设备树里右键扫描系统会把EL6751自动识别出来。扫描之后你会看到EL6751出现在设备树里带一个默认的模块配图。如果扫描不到先检查EtherCAT网线是否插对接口、耦合器有没有上电、从站端子是不是没有插到位。EtherCAT支持菊花链拓扑前面的端子没压紧后面的设备全部会丢失。这个低级错误我犯过不止一次所以扫描不到时先从头到尾检查一遍物理连接。还有一个细节EL6751的固件版本会影响可用参数和PDO映射。老版本固件在某些功能上会有限制比如可设置的最大数据长度不同。扫描到设备后顺手在从站信息里看一眼固件版本如果项目要求某功能但发现参数缺失优先怀疑固件太老联系原厂评估升级。3.2 CoE参数里最关键的几个设置EL6751的参数通过CoECANopen over EtherCAT对象来访问在TwinCAT里打开从站设备的CoE Online标签页就能看到。参数很多但项目里实际要动的就那几个我按优先级列一下。第一是接口模式也就是选RS232还是RS485。有些版本通过参数切换有些需要在端子的D-sub接口上按特定方式接线配合。不管哪种这一步不设对后面全白干。PSRS232和RS485的转换不仅靠参数接线也要对应光改参数不换线一样不通。第二是波特率。EL6751支持范围很宽从低速50波特到高速115200波特都有实际常用的就几个2400、4800、9600、19200、38400、115200。波特率必须跟对端设备完全一致差一点都不行。串口通信不像是网口有自动协商机制这个参数错一个数字出来的就是乱码。第三是数据格式包括数据位、停止位、校验位。最常见的组合是8N18数据位、无校验、1停止位和8E18数据位、偶校验、1停止位。DL/T645电表一般默认2400波特率、8E1格式很多Modbus设备默认9600 8N1具体以说明书为准。校验位搞错了表现跟波特率错误一样全是乱码。第四是接收帧结束条件和接收超时。按对端协议来接比如DL/T645就设结束字符0x16Modbus RTU就设超时20到50毫秒。结束字符和超时也可以同时启用双保险。CoE参数修改之后有些立即生效有些要重启通道。我习惯的做法是先把所有参数改好然后对从站做一次重启或者重新激活配置再测试收发避免参数只写进RAM没保存到EEPROM一断电就丢配置。3.3 过程数据Process Data长什么样EL6751接入EtherCAT后TwinCAT会自动为它分配过程数据区。我从实际项目里看到的布局大致是输出方向有控制字Ctrl、发送数据长度、发送数据缓冲区输入方向有状态字Status、接收数据长度、接收数据缓冲区。主站要发送串口数据时先把数据写进发送缓冲区填好发送长度然后把控制字的发送触发位置位EL6751就会把缓冲区里的字节从串口逐个发出。接收数据的过程反过来EL6751把收到的完整帧放进输入缓冲区置位状态位主站看到接收长度有变化就把缓冲区读走。搞懂这个数据流以后调试思路就清晰了。在TwinCAT的Online视图里直接监控输入数据区能看到实时收到的十六进制字节。如果这里能看到预期报文说明EL6751这一层没问题问题出在上层协议解析如果这里空空如也那就要回到物理层和CoE参数去查。缓冲区大小是有限的。数据区默认映射的长度不一定够用比如你对接的协议一帧可能有几十个字节而默认映射只有几个字节多余部分就丢了。遇到这种情况需要在CoE里调整缓冲区映射大小或者在TwinCAT的PDO配置里修改数据区长度改完重新生成映射。我建议提前查好对端协议的最大帧长按“最大帧长余量”来设置别用默认值硬抗。3.4 先用环回测试验证通道配置完参数别急着接现场设备先用一根杜邦线或者短接端子把TXD和RXD直接短接做一次环回测试。EL6751发的字节从串口出来又原路回到EL6751主站侧发送什么就应该收到什么。这验证的是EL6751模块本身和EtherCAT链路是否正常工作。环回测试通过后再接上对端设备。如果还是不通问题大概率在接线或者对方设备配置上。千万不要跳过环回测试直接连设备否则模块本身有问题时你会拿着协议说明书排查半天最后发现是模块故障白白浪费时间。我这里说的环回是针对RS232的全双工方式。RS485半双工时不能简单短接A和B需要把A、B短接后看能否收到回环数据或者用两个EL6751对打测试。RS485方向切换是EL6751自己处理的主站侧不用管但如果半双工回环测试收不到数据检查一下现场有没有接终端电阻A、B之间没接120欧电阻时某些设备在通信距离短时仍然能工作但波形会差潜在隐患很大。4. 完整对接案例DL/T645电表轮询4.1 现场需求与接线方案有个项目需要把配电房的电能表数据采集到倍福控制系统里。电表有RS485接口协议是DL/T645-1997波特率2400数据格式8E1。现场距离大概三十米走的是仪表专用屏蔽双绞线。接线方案是EL6751的A接电表AB接电表B屏蔽线单端接地。因为距离不算特别长总线两端没有额外并联终端电阻。如果电表和EL6751之间距离超过百米或者线上并联了多台电表A、B之间就得加120欧匹配电阻这个后面排障部分再细说。DL/T645支持一总线上挂多块电表每块表有唯一地址通讯时主站通过地址域来点名。我们这台电表的地址从铭牌上抄下来转换成6字节倒序格式填进报文。地址算错或者字节顺序颠倒电表就直接不应答这是645协议对接时最典型的坑。4.2 DL/T645报文结构拆解DL/T645的帧结构固定是起始符0x68、6字节地址域、起始符0x68、控制码、数据域长度L、数据域、校验和CS、结束符0x16。注意这里有两个0x68中间夹着地址域。数据域长度占一个字节表示后面数据域实际字节数。校验和CS是从第一个起始符0x68开始到数据域末尾所有字节累加后的低8位结束符0x16收尾。这种结构最大的好处是帧边界清晰你只要找到0x68跳过6字节地址确认第二个0x68再读长度就能框出整帧。控制码0x11表示主站请求读数据从站正常应答时控制码是0x91。数据域里通常包含数据标识符比如读电压、电流或者电量。不同表厂的数据标识定义存在差异必须看随表附带的通信协议手册不能拿网上一个通用报文直接套用否则解析出来的数据可能张冠李戴。读数据的完整请求帧大致是68 地址域6字节 68 11 LEN 数据标识 CS 16。返回帧结构类似但控制码变成91数据域里除了数据标识还带上实际测量值。测量值通常以BCD码或原码形式组织转成浮点数时还要注意字节序和倍率。4.3 EL6751参数与主站轮询逻辑在这个案例里EL6751的CoE参数我这么设接口模式RS485波特率2400数据位8校验偶停止位1接收结束条件设为结束字符0x16同时接收超时设成50毫秒兜底。为什么设0x16因为DL/T645帧必然以0x16结束设了这个参数主站从过程数据里拿到的就是一整帧不需要自己处理粘包拆包。轮询逻辑也简单主站每隔500毫秒发一次读当前电量命令发送完后等电表响应。因为波特率只有2400一帧数据大约几十毫秒才传完如果发送后马上读接收缓冲区大概率还没收完。我习惯在发送后调用一个延时或者直接轮询接收长度等长度不再变化且大于0再取数据。接收长度连续几个扫描周期都不变基本可以断定电表响应完了。轮询周期不能太快。RS485是半双工总线电表那边处理命令、准备数据、发送回来都需要时间。我见过有人把轮询周期压到50毫秒结果电表应答和主站下一轮命令在总线上撞车直接导致数据一直读不出来。一般设置几百毫秒比较稳除非有强实时性要求否则别把串口总线榨得太狠。4.4 用Java实现645帧解析协议解析部分我习惯写一个小工具先在电脑上验证逻辑确定没问题后再翻译成PLC程序或C#上位机代码。这里用一个Java版本的解析器说明核心思路字节流假设已经从EL6751的过程数据里完整拿到。解析思路是在缓冲区里找0x68如果找到判断后面第7个字节是不是第二个0x68如果是读取第9个字节得到数据域长度L于是整帧长度就是12L。然后从缓冲区头部到数据域结束累加校验和对比CS字节再确认最后是0x16。全部匹配就是完整帧。public class Dlt645Frame { public static final byte FRAME_START (byte) 0x68; public static final byte FRAME_END (byte) 0x16; public static boolean tryParse(byte[] buf, int len, StringBuilder out) { int i 0; while (i len) { if ((buf[i] 0xFF) ! 0x68) { i; continue; } if (i 12 len) { return false; } if ((buf[i 7] 0xFF) ! 0x68) { i; continue; } int dataLen buf[i 9] 0xFF; int frameLen 12 dataLen; if (i frameLen len) { return false; } int cs 0; for (int j i; j i 10 dataLen; j) { cs buf[j] 0xFF; } cs 0xFF; int csIndex i 10 dataLen; int endIndex i 11 dataLen; if (cs (buf[csIndex] 0xFF) (buf[endIndex] 0xFF) 0x16) { out.append(OK, frameLength).append(frameLen); return true; } i; } return false; } }这段代码的定位函数处理的是“缓冲区里可能混有多包数据”的情况。找到帧后你可以把这次解析的结束位置记录下来下次从结束位置继续解析。如果返回false说明缓冲区里数据还不够等待下一波数据到达后拼接再解析。这就是典型的“RS232串口协议报文解析”的字节流处理模式。注意这里CS的累加范围从第一个0x68开始到数据域最后一个字节结束不包含CS本身和结束符0x16。很多初学者容易把结束符也算进校验和导致校验永远对不上。我也是被电表冷漠地不理不睬教育过一次才记住。4.5 换成Modbus RTU设备该怎么调同一条链路如果把电表换成Modbus RTU设备参数和解析逻辑要变好几个地方。CoE参数里接收结束条件不能再用结束符0x16改成纯超时时间判定。Modbus RTU帧没有固定结束符靠静默时间切帧超时值建议设成20到50毫秒。波特率按设备要求来常见的是9600 8N1。报文解析时Modbus RTU的帧结构是地址功能码数据CRC16。切帧不是难点校验才是重点。CRC16的计算是多项式0xA001的按位循环跟645的累加和根本不是一回事。写Modbus RTU解析器先写对CRC16计算函数。public static int crc16(byte[] data, int len) { int crc 0xFFFF; for (int i 0; i len; i) { crc ^ (data[i] 0xFF); for (int j 0; j 8; j) { if ((crc 1) ! 0) { crc (crc 1) ^ 0xA001; } else { crc 1; } } } return crc 0xFFFF; }拿到一帧后从地址字节开始到数据区最后一字节算CRC16算出来的结果跟帧尾的2字节比对注意低字节在前。如果校验不对帧直接丢弃。Modbus RTU对CRC的要求比645的累加和严格得多错一个字节基本校验都过不去这反而是好事能挡住很多干扰数据。5. 工业现场部署的排障经验与避坑清单5.1 部署前按这个清单查一遍从实验室到工业现场环境变化大我每次部署前都会花十分钟按固定套路过一遍。物理层确认接线没有松动D-sub接口的螺丝拧紧RS485的A/B没有接反屏蔽层是否按要求单端接地。跑现场最怕碰到那种用手一拽就掉的串口线工业振动环境下这种隐患迟早变成故障。设备侧参数对端设备的波特率、数据格式、站地址跟EL6751和主站程序里填的完全一致。这里我吃过一次亏设备说明书上写的默认地址是1实际设备被人改成了2结果用地址1轮询一直没有应答排查了半天才通过串口监听发现设备回复了地址2的异常帧。EtherCAT链路确认EL6751在设备树里状态正常没有报错。有时总线抖动导致从站丢失重新扫描会恢复但程序里的PDO映射可能会变注意检查。程序侧接收缓冲区长度是否够用轮询周期是否合理解析代码是否处理了粘包和半包。很多项目在实验室跑得好好的一到现场就丢数据往往就是这些边界条件没处理好。5.2 高频故障速查表我把现场最常见的串口通信故障整理成一张速查表排查时按着顺序走能省不少时间。故障现象可能原因处理办法完全收不到数据接线错误、A/B反接、接口模式不对检查接线对调A/B核对CoE接口模式收到乱码波特率、数据位、校验位不匹配逐项核对双方参数重新设置CoE能收到但总是丢最后一字节接收超时或结束字符设置不对加大接收超时检查结束字符是否唯一数据时通时不通接线松动、屏蔽层未接地、距离过远重新压接端子处理屏蔽层必要时加终端电阻上位机解析不到完整帧协议边界理解错、缓冲区溢出抓取原始字节流确认帧结构和起始位置EL6751扫描不到EtherCAT线缆、端子电源、模块未插紧检查物理链路重新扫描I/O最让我头疼的是“时通时不通”这一类。实验室环境干净距离两三米怎么都通现场车间里有变频器、伺服驱动器距离一拉长数据就开始丢。这类问题本质上都是信号完整性和干扰问题不是改软件能解决的。5.3 RS485现场布线的几个老司机观点RS485布线是有章法的但现场经常看到有人直接拿普通网线或者平行线拉几百米还不用屏蔽线结果就是各种诡异故障。我的经验是第一用屏蔽双绞线。A和B在双绞线里绞在一起能有效抑制共模干扰。屏蔽层只在EL6751或者电源侧单端接地不要两端都接避免形成地环路这一点很多电工师傅容易忽略。第二距离长、节点多时要加终端电阻。终端电阻120欧并接在总线最远两端目的是吸收反射信号。很多设备板载了跳线电阻拨一下开关就行不用额外焊电阻。距离短的实验室环境可以不加但现场超过五十米或者节点多于十个我一定加。第三走线避开动力线。RS485信号线不要跟变频器输出电缆、伺服动力线平行走同一个线槽至少保持二十公分以上距离交叉时尽量垂直穿越。这个属于布线的基本功但看不到具体标准时很多人就图省事随手捆在一起现场干扰问题随后就来。第四注意RS232传输距离。RS232电平标准本身只支持十几米超过这个距离就得转RS485或者加光隔中继。有人非要用RS232在车间里拉三十米线时序乱得没法看那不是EL6751的问题是物理层本来就不支持。5.4 排查工具和调试流程排查EL6751通信问题单靠TwinCAT的在线监控其实够了但效率更高的组合是电脑串口助手加一条USB转串口线。第一步先用串口助手直连对端设备向设备发命令看设备是否正常回复。这一步验证的是“设备本身是否健在、参数是否靠谱、协议说明书是否理解正确”。如果串口助手都不通那就别急着上EL6751先把设备侧搞定。第二步串口助手确认设备通信正常后把电脑的串口线撤下来换成EL6751。在TwinCAT的CoE里把参数设好环回测试确认模块没问题再接设备。然后在线监控EL6751的输入过程数据看看有没有字节进来。第三步如果EL6751能收到原始字节但主站解析不出数据就用TwinCAT在线视图把原始十六进制copy到电脑里用自己写的Java或C#解析脚本跑一遍验证解析逻辑。解析脚本在电脑上能跑通再翻译成PLC代码或上位机最终代码。整套流程下来基本能把问题定位到“设备侧”“链路侧”“解析侧”三个环节之一。我最反对一上来就改代码现场问题八成是物理层或者参数配置改代码最多能让你假装在努力实际上问题还在那里。最后再说几句EL6751这个模块本身不算复杂真正考验人的是串口协议的理解和现场排查的能力。我做了这么多串口对接项目最深刻的体会是不要在没理解对端协议之前就匆匆忙忙上线调试不要忽视基本的物理层检查更不要期待有什么万能工具能替代人工排查。如果你也是第一次用EL6751建议按这套流程走先读协议、再环回测试、再对接设备、最后部署上线。每换一种设备就先用串口助手把对方报文摸透再接入EtherCAT系统。这套习惯帮我省了无数加班时间也让我少接了不少半夜打来的现场电话希望对你也有用。
返回列表