PLC硬件基础入门:配线、软元件与通信程序排查 在实训室里带新人最常听到的一句抱怨是“程序我照着敲完了机器就是不动”。拆开柜子看输入点的公共端接反了、输出端接着感性负载却只挂一个中间继电器、通信线两头都压了屏蔽层。这类问题跟指令集毫无关系全落在 PLC 硬件基础这块地板上。我习惯把它切成三块来讲基本配线、软元件、通信程序。基本配线决定电能不能进得去、信号能不能传得准软元件决定你有没有一张清晰的内部地址地图通信程序决定这台机器是孤岛还是网络里的一个节点。三块任何一块塌了程序写得再漂亮都是白搭。这篇内容面向刚接触小型机的新手也面向那些“能改程序但不敢动柜子”的朋友主线用 FX3U/FX5U 这类实训里出镜率极高的小型机来讲其他品牌欧系的小型机、国产的几个主流系列思路完全一样差别只在软元件名字和通信参数的填法上。1. 三块划分背后的边界逻辑1.1 为什么是这三块而不是按“硬件/软件”分多数教材按“硬件组成—指令系统—编程方法”来排章学完一轮你会发现知识是连着的但故障是分层的。现场出问题第一件事是判断问题落在哪一层是电没送到配线层是程序里的地址逻辑错了软元件层还是这台机和别人说不上话通信层。按这三块切最大的好处是排查时有明确的收敛路径——先量电压再看监控最后抓报文不用一上来就怀疑程序。我见过太多人一停机就打开编程软件盯着梯形图看半小时实际上柜门上那颗急停按钮根本没复位。配线层的问题用眼睛和万用表三分钟能定位软元件层的问题用在线监控五分钟能定位通信层的问题才需要抓数据。把这三层分开效率差好几倍。另一个理由是学习成本。配线层的知识是通的学一次 FX 的接线逻辑换任何品牌的继电器输出型 PLC 都能迁移软元件层是半通的编号规则不同但“输入不可写、输出唯一驱动、保持区要规划”这些原则通用通信层最不通但通了协议层的思维之后换品牌只是查手册的事。按这三块学投入产出比最高。1.2 用 FX 系列做主线跨品牌怎么迁移选 FX3U/FX5U 当主线不是因为它最好是因为它在各类实训场景里保有量大、资料全、扩展模块便宜出问题容易找到人问。FX3U 是典型的“经典小型机”软元件编号是八进制混十进制的老传统特殊继电器用 M8xxx通信参数全靠往数据寄存器里写数值——这套做法略显笨拙但极其锻炼你对“参数就是内存里的一串位”的理解。FX5U 则往前走了一步内置以太网口特殊软元件改名叫 SM/SD通信大多在工程软件里图形化配置。迁移到其他品牌时你只需要做三张对照表。第一张是软元件对照X/Y 在多数品牌里还叫 I/Q 或 X/Y辅助继电器 M 对应 DB 或 M保持寄存器对应 VW 或 D。第二张是特殊继电器对照常 ON、初始脉冲、时钟脉冲这三个是刚需任何品牌都有只是地址不同。第三张是通信格式寄存器对照有的品牌叫通信格式字有的直接在硬件组态里选波特率和校验。提示跨品牌迁移时最容易被忽略的是“输入编号是否八进制”。FX 系列的 X/Y 是八进制X7 之后是 X10不是 X8。新手在纸上排点位表时按十进制写一到现场就错位。2. 基本配线把电送对把信号接对2.1 先分清主回路和控制回路别一上来就接 PLC我见过最典型的新手错误是把接触器线圈直接串在 PLC 的输出点上或者把 220V 直接引到输入端子上。开柜第一件事永远是画清楚两条线主回路走的是电机、加热管、电磁阀这类功率负载控制回路走的是 PLC 本体、传感器、指示灯。这两条线在物理上要分开走线槽在电气上只通过接触器、继电器、固态继电器这些器件耦合。FX3U 本体一般吃 AC100~240V 或 DC24V本体上有一路 DC24V 辅助输出容量通常几百毫安够带几个接近开关和光电开关但别拿它去带电磁阀。我习惯的做法是控制回路单独配一个 DC24V 开关电源PLC 的 24V 输出只做传感器供电并且加一路 2A 保险。这样即使传感器侧短路也只烧保险不至于把本体电源拖垮。主回路的进线侧要有断路器接触器线圈侧要有浪涌吸收RC 或者压敏变频器、伺服驱动器这类干扰源要单独走线并且和 PLC 的信号线保持至少 20 厘米距离实在避不开就交叉走不要平行走长距离。这些是配线层的“地基”做不好后面所有排查都是徒劳。2.2 输入侧漏型源型接反是最常见的“灯不亮”FX3U 的输入侧有一个 S/S 公共端这一个端子决定了整组输入是漏型还是源型。S/S 接 DC24V 正极输入点就要接 0V 侧信号NPN 型传感器、干接点另一端接 0V这叫漏型输入S/S 接 0V输入点接 24V 侧信号PNP 型传感器这叫源型输入。接反了不会烧但输入指示灯永远不亮很多人第一次遇到会以为模块坏了。实操上我给新人一个口诀看传感器铭牌NPN 配漏型PNP 配源型。NPN 型传感器输出的是低电平有效也就是动作时输出端被拉到 0V所以 PLC 的公共端必须接 24V形成从 24V 经 PLC 内部光耦经输入点经传感器到 0V 的回路。PNP 反之。还有两个数值需要记一下。FX3U 的输入 ON 电流门槛大约在 3.5mA 左右OFF 电流要低于 1.5mA 才可靠关断输入回路的额定电流在 7mA 上下24V 时。这两个数字解释了两类常见怪病一是输入点微亮但程序不认属于漏电流在门槛附近游走二是输入点断开后不灭多半是线间电容或者传感器漏电流太大。现象常见原因处理办法输入灯完全不亮S/S 接反、传感器类型不匹配对照铭牌改公共端接线输入灯微亮不动作漏电流在 3~5mA 之间输入端并联泄放电阻常见 2.2kΩ 左右或改用干接点输入灯断开后不灭长线感应电压、相邻强电串扰换双绞线、缩短走线、加中间继电器隔离输入偶尔抖动机械触点抖动、线缆接触不良程序里加 10~20ms 滤波或查端子压接输入信号线长距离走的时候我一直用双绞线并且把双绞线的一端悬空、另一端在 PLC 侧单点接地。别两头都接两头都接就形成了地环路干扰反而更大。这一点在传感器离柜子二三十米的时候特别明显。2.3 输出侧继电器、晶体管、可控硅选错就是返工FX3U 的输出类型在型号里就写着了MR 是继电器输出MT 是晶体管输出MS 是可控硅输出。这三种的差别不是“贵不贵”是“带什么负载、要多快”。类型负载能力响应速度适合负载不适合继电器输出每点约 2A阻性感性打折约 10ms接触器线圈、电磁阀、指示灯、交流负载高频动作、大电流直驱电机晶体管输出每点约 0.5ADC 24V1ms 以内步进/伺服脉冲、固态继电器、DC 电磁阀交流负载、大电流可控硅输出每点约 0.5~1AAC半周波交流电磁阀、加热感性冲击大的负载继电器输出最大的价值是隔离和通用最大的坑是寿命。机械寿命上千万次听着多但电气寿命在额定负载下往往只有十万次量级带接触器线圈这种感性负载还要再打折。我见过包装机上一个输出点一天动作两千次两个月触点就粘死了。这种情况要么换晶体管输出加中间继电器要么在继电器输出端加 RC 吸收把触点火花压下去。输出侧接线有两个必做动作。第一是每个公共端加保险FX3U 的输出是分组的每组一个 COM 端子比如四点或八点共用一组具体分组看端子盖上的印字不要凭记忆。每个 COM 上串一个 2A 保险成本几毛钱能救一块几百块的板子。第二是感性负载加吸收直流感性负载反并联续流二极管交流感性负载并联 RC 吸收或者压敏电阻。缺了这一步输出点烧毁只是时间问题。还有一个隐蔽的坑输出点的 COM 端没接电源。程序里 Y 点亮了模块上的 LED 也亮了但负载不动因为公共端悬空回路根本不通。这个错误在新手第一次独立接线时出现率高得惊人因为 LED 指示的是“内部驱动已经动作”不是“外部回路已经闭合”。2.4 保护、接地与抗干扰的落地做法接地这件事教科书上写“第三种接地接地电阻小于 100Ω”但现场真正要命的是“接在哪儿”。PLC 的接地端子必须单独接地不能和变频器、伺服、大功率接触器共用一根接地排否则变频器开关产生的高频噪声会顺着地线灌进 PLC。如果一个柜子里实在只有一根接地母排那就把 PLC 的接地线单独引到母排的最远端并且加粗线径别随便拧在接触器旁边的螺丝上。急停回路的做法值得单独说。我的原则是急停不经过 PLC 程序。急停按钮用常闭触点直接切断主回路接触器的线圈同时把一路信号送进 PLC 作为状态检测。这样即使 PLC 死机、程序跑飞拍下急停依然能断动力。如果确实需要通过 PLC 控制也要做双通道或者加安全继电器靠单点软件逻辑实现急停是不可接受的。线径和端子也顺便说一句。主回路按负载电流选控制回路 0.5~1.5mm² 够用端子压接一定要用压线钳压紧再插不要用螺丝刀把散线硬拧进去虚接引起的间歇故障最难查。所有端子拧完之后拉一遍这是最土但最有效的检查方法。注意柜内布线时PLC 的输入输出信号线与动力线保持距离实在要走同一个线槽中间加隔板。这不是讲究是解决 80% 莫名抖动的根本手段。3. 软元件PLC 内部的一张地址地图3.1 八类软元件分别管什么软元件这个概念说白了就是“PLC 内存里的具名地址”。你写的每一行梯形图本质上都是在读写这些地址。FX 系列把它分成八类每一类有明确的用途边界理解边界比记住编号更重要。输入继电器 X是只读的反映外部端子状态程序里只能当触点用不能写线圈。输出继电器 Y是唯一的执行出口一个 Y 点在整个程序里只能出现一次 OUT出现两次就是双线圈实际生效的是最后执行的那一处这是新手最常见的逻辑黑洞。辅助继电器 M是中间变量用来做状态记忆、步进标记、条件中转分通用区和断电保持区。状态继电器 S主要给步进顺控用做顺序流程时比一堆 M 清爽得多。定时器 T和计数器 C是带功能的软元件T 有不同时基100ms、10ms、1ms选错时基会导致定时精度差十倍C 分 16 位和 32 位还分通用和保持累计计数必须用保持型或者 32 位。数据寄存器 D是 16 位字两个连续的 D 可以拼成 32 位用来存参数、存通信数据、存计算结果。变址寄存器 V/Z是间接寻址用的做批量处理时能省掉大量重复逻辑但可读性会下降我不建议新手一上来就用。指针 P/I用在跳转和中断一般的逻辑控制用不上做高速计数或者定位的时候才会碰。3.2 FX 系列软元件编号与容量速查FX3U 的编号规则是“X/Y 八进制其余十进制”这是最容易栽跟头的地方。X0 到 X7 之后是 X10不是 X8。你在纸上排点位表的时候如果按十进制写接线上机必然错位。软元件功能FX3U 常用范围断电保持X输入X0~X177八进制否Y输出Y0~Y177八进制否M辅助继电器M0~M499 通用M500~M3071 保持后者保持S状态S0~S9 初始S10~S999 通用部分可设T定时器T0~T199100msT200~T24510ms累计型保持C计数器C0~C9916位通用C200~C23432位C100 起保持D数据寄存器D0~D199 通用D200~D7999 保持后者保持V/Z变址V0~V7Z0~Z7否特殊软元件是另一套体系用 M8xxx 和 D8xxx 表示。刚需的有这么几个M8000 是运行监视常 ON所有需要“一直执行”的指令都串它M8002 是初始脉冲只在 RUN 后的第一个扫描周期 ON 一个周期用来做初始化M8013 是 1 秒时钟脉冲做闪烁和计时很方便M8011 是 10ms 时钟。D8010 里是当前扫描周期时间调性能的时候瞄一眼就知道程序是不是太重。D8000 是看门狗定时器默认 200ms程序扫描超时就直接报错停机。换成 FX5U这套名字全变了常 ON 变成 SM400初始脉冲变成 SM402特殊寄存器统一用 SD 开头。很多从 FX3U 转过来的人第一次写程序找不到 M8002就是因为这个。做跨机型移植时我建议单开一个“特殊软元件对照”注释块贴在程序开头比查手册快。3.3 软元件分配表一个能省掉一半调试时间的习惯我带的每个项目开工第一件事不是写程序是画一张软元件分配表。左边写点位号中间写功能描述右边写备注比如“常闭”“带滤波”“上位机读取”。这张表打印出来贴在柜门上接线的人按表接编程的人按表写调试的人按表查。这张表最重要的作用是防止双线圈和地址冲突。一个中等规模的设备M 点用到两三百个很正常如果没有表写到第三天你自己都不记得 M120 是干什么的。等现场出现“某个动作偶尔不执行”你要在一堆网络里找哪个 M 被重复驱动那才叫绝望。具体写法上我习惯按功能分块每块预留 20%~30% 的余量。输入输出按物理顺序排M 点按工位排上料区 M0~M99加工区 M100~M199下料区 M200~M299D 点按用途排参数区 D100~D199通信区 D200~D299报警区 D300~D399。这样定位问题时看地址就知道大概位置不用满程序搜。保持区的规划要单独提一句。断电保持的 M 和 D 在设备重启后仍然保留原值用得好是“记住上次状态”用不好就是“上次的故障状态一直卡着”。我的做法是真正需要记忆的累计产量、配方参数、机械原点偏移放保持区纯逻辑中间变量一律放通用区并且在初始化程序里对保持区做一次“合理性检查”超出范围的参数强制复位成默认值。提示双线圈问题在梯形图里不容易看出来因为很多编程软件不会报错。查的办法是在软元件使用列表里搜这个地址看出现了几处 OUT。养成这个习惯能省掉大量“为什么这段逻辑不生效”的困惑。4. 通信程序让这台机器不再是一座孤岛4.1 三种通信形态先选对再动手小型机的通信需求基本落在三类里。第一类是编程和调试通信就是你的电脑连 PLC 下载程序这条链路平时不用管。第二类是无协议通信有的品牌叫自由口PLC 只负责把一串字节发出去、把一串字节收进来协议内容自己定适合对接条码枪、称重仪表、老式变频器这类“对方协议很简单但非标准”的设备。第三类是标准协议通信比如 Modbus RTU、Modbus TCP以及各家自己的链接网络适合 PLC 之间、PLC 与触摸屏、PLC 与上位机之间交换数据。选型的判断标准很朴素对方设备支持标准协议就走标准协议别自己造轮子对方设备只吐一串 ASCII 或者固定格式的二进制就走无协议两台 PLC 之间数据量不大又不想写握手逻辑用现成的链接网络最省事但如果跨品牌还是老老实实 Modbus。FX3U 的串口资源是这样分布的本体上有一个编程口扩展可以加一块 485 通信板或者通信适配器。加板子和加适配器的区别在于占用位置和电气隔离适配器一般隔离更好、走线更远做长距离通信我都建议用适配器。硬件接好之后A/B 两线是差分信号必须双绞屏蔽层单端接地总线两端各接一个 120Ω 终端电阻——注意是“两端”中间站不要接接多了会把信号衰减掉。4.2 通信参数寄存器一串位决定能不能说上话FX3U 的串口通信格式靠一个 16 位寄存器设定常见的是 D8120。这个寄存器的每一位都有含义写错一位就通不上而且现象往往是“收不到任何数据”没有报错提示特别打击人。位含义常用取值bit0数据长度07 位18 位bit1~2校验方式00 无01 奇11 偶bit3停止位01 位12 位bit4~7波特率1000 对应 96001001 对应 19200最常用的组合是 9600、8 位数据、偶校验、1 位停止位对应写入十六进制 87。19200 同参数则是十六进制 89。这几个数值我建议直接背下来现场改参数时不用翻手册。这里有个操作细节必须强调通信格式寄存器改完之后要复位生效。很多人在 RUN 状态下直接改改完发现还是不通以为改错了其实是没生效。稳妥的做法是在初始脉冲M8002里写一次然后断电重启让参数在冷启动时被加载。同理站号、超时时间这些参数也建议写在初始化块里别散落在程序各处。还有一个坑是通信超时时间。FX 系列用 D8129 设超时单位是 10ms默认值往往偏小。波特率低、数据帧长的时候默认超时会频繁误判我一般的起步值是 100即 1 秒再根据实际响应时间往下调。超时设太短的后果不是“通不上”而是“时通时不通”这种间歇故障排查成本极高。4.3 无协议通信的程序骨架无协议通信的程序我习惯拆成四段初始化、组帧、发送、接收。这四段的顺序和扫描周期的关系必须想清楚否则会出现“数据发出去了但被下一次扫描覆盖”的问题。初始化段在 M8002 里写通信格式、超时时间、接收缓冲区清零。组帧段把要发送的数据按对方协议拼到一段连续的数据寄存器里比如 D100 开始前面加帧头、后面加校验。发送段用一个上升沿触发发送请求配合发送指令或者发送请求标志位。接收段用接收完成标志位触发把收到的数据搬到处理区处理完立刻清标志位为下一帧做准备。一个关键认知是通信是异步的。PLC 的扫描周期是毫秒级串口一帧数据可能要几十毫秒所以你不能在同一个扫描周期里“发完立刻处理结果”。正确的做法是状态机发送触发后进入等待状态接收完成标志置位后进入处理状态处理完回到空闲。用步进标记一个 M 点或者一个 D 里的步骤号来管理状态比用一堆定时器硬等要可靠得多。还有一个容易被忽略的点发送和接收用的缓冲区不能重叠。我见过有人把发送数据放在 D100 开始接收数据也放在 D100 开始结果发送还没发完接收数据已经把发送缓冲覆盖了对方收到的是一堆乱码。缓冲区分开中间留出足够空间这是基本纪律。4.4 Modbus 轮询从站一多逻辑就要讲究多从站轮询是通信程序里最能体现功力的地方。假设一条 485 总线上挂了五台从站你不可能同时问只能一台一台来。轮询程序的核心是三件事当前站在哪、这一步做什么、失败了怎么办。我的写法是用一个步骤号寄存器比如 D500。D5000 时空闲检查是否有轮询请求D5001 时装载当前从站号和功能码D5002 时触发发送D5003 时等待完成标志D5004 时处理数据并切到下一站D500 回到 0。每一步都有明确的进入条件和退出条件任何时候看监控都能知道卡在哪。轮询间隔要留够。从站响应需要时间紧接着发下一帧会让总线冲突或者从站来不及处理。我一般在两帧之间留 20~50ms 的空隙用定时器或者步骤号延时都行。波特率越低、从站越多这个间隔越要留足。失败处理决定系统的健壮性。每个从站要有独立的失败计数器和超时计数器连续失败 N 次N 一般取 3就标记该站为离线跳过它继续轮询其他站同时给出报警。跳过而不是整体停摆这一点很重要——一台从站掉线不应该让整条线的数据采集全部瘫痪。等它恢复响应了再自动把在线标志置回来。CRC 校验这块用标准协议时指令内部会处理用无协议自己拼 Modbus 帧的时候才需要手算。手算 CRC 的常见错误是把高低字节顺序搞反或者把 CRC 本身也算进校验范围。这两种错误的现象都是“对方不响应”很难从现象反推原因所以第一次调试时宁可拿一个已知正确的帧做比对。注意RS485 总线上站号不能重复。两台设备设了同一个站号现象是“有时能通有时不能通”因为两台设备都在应答总线上信号打架。这个坑我踩过查了两个小时。5. 常见故障与排查实录5.1 配线类故障先量电压再看程序配线故障的排查顺序永远是电源电压 → 公共端电位 → 输入点电位 → 输出点电位 → 负载电位。这五步用万用表走一遍五分钟内能锁定绝大多数问题。举一个我遇到过的典型案例。一台设备所有输入点都不亮新人第一反应是 PLC 坏了。我让他量本体电源端子电压正常量 S/S 端子对 0V是 0V再看传感器全是 NPN 型。问题很清楚——S/S 应该接 24V 才能配 NPN接成 0V 就变成了源型输入NPN 传感器给不出高电平。改一根线全部恢复。另一个案例是输出点带电磁阀烧触点。负载是 DC24V 电磁阀继电器输出直驱一个月烧了两个输出点。原因是没有续流回路电磁阀断电瞬间的反电动势在触点上打火。加一个反向并联的二极管问题消失。这类问题的成本对比很悬殊一个二极管几毛钱一块输出板几百块。排查时还要注意一件事LED 指示不等于回路闭合。输入 LED 亮只说明光耦导通了输出 LED 亮只说明内部驱动动作了两者都不代表外部回路真的通了。判断外部回路要用万用表量负载两端电压或者用个灯泡当假负载试。5.2 软元件类故障看得见程序看不见地址软元件层面的故障特点是“程序逻辑看着没错就是不按预期走”。最常见的三个来源是双线圈、保持区污染、时基选错。双线圈的表现是“某个输出时而正常时而不正常”因为两处 OUT 都在写同一个 Y 点实际生效的是扫描顺序靠后的那个。这种情况用交叉引用查最快搜一次地址看有几处写操作。有的编程软件会在编译时给出警告别忽略那个警告。保持区污染的表现更隐蔽。设备断电重启后某个流程莫名其妙跳过一步或者产量计数从一个奇怪的数字开始。原因是这个 M 点落在保持区上次停机时它是 ON重启后仍然 ON初始化的条件判断直接绕过去了。解决办法是在初始脉冲里对所有保持区做一次显式初始化别指望“上电默认是 OFF”。时基选错是个纯知识性错误但很常见。用 100ms 时基的定时器去卡 50ms 的动作精度根本不够用 1ms 时基的定时器去卡 10 秒的延时虽然能实现但占用高速定时器资源。选型原则是延时精度要求小于 100ms 用 10ms 或 1ms 时基大于 1 秒用 100ms 时基中间地带看具体需求。5.3 通信类故障速查现象可能原因检查手段处理完全收不到数据A/B 接反、波特率不匹配、格式寄存器未生效量差分电压、核对双方参数、断电重启调线、统一参数、复位生效偶尔丢一帧无终端电阻、屏蔽层两端接地、超时太短查总线两端电阻、查屏蔽接地两端各加 120Ω、单端接地、加大超时收到的数据是乱码数据位/校验位不一致、字节序理解反了抓原始字节比对统一格式、明确大小端多站轮询时好时坏站号重复、轮询间隔不够逐站断开测试改站号、留间隔通信一段时间后中断干扰累积、缓冲区溢出看错误计数、看接收标志是否未清加隔离、及时清标志、加看门狗通信排查的核心工具是“抓原始字节”。别一上来就怀疑协议逻辑先确认物理层通不通、字节对不对。我习惯先用一个最简单的读指令读一个寄存器打通单站确认能收到正确响应之后再往上叠加多站轮询和数据解析。一次只改一个变量这是通信调试的铁律。干扰问题单独说一句。变频器、伺服、中频加热设备旁边走 485 线出问题的概率极高。解决办法按成本从低到高改用屏蔽双绞线并单端接地、降低波特率、缩短距离、加磁环、换隔离型通信模块。很多时候把波特率从 19200 降到 9600 就能稳定代价只是响应慢一点对于非实时数据采集完全可以接受。6. 上手路径与踩坑心得6.1 一套可以照抄的练手顺序如果你手上有一台 FX3U 或者任何一台小型机我建议按这个顺序练每一步都能独立验证不至于一上来就被综合项目劝退。第一步只接电源和急停确认本体上电、RUN 灯亮、编程软件能连上。第二步接两个输入点一个按钮、一个接近开关和两个输出点一个指示灯、一个中间继电器验证输入指示灯和程序监控一致、输出能驱动继电器动作。第三步用定时器和计数器做一个“按三下按钮灯亮五秒”的小逻辑把软元件的基本用法过一遍。第四步加一块 485 板用两台设备做单站 Modbus 读写把参数配置和收发流程走通。第五步加到三台从站做轮询把失败重试和离线标记加上。这五步走完基本配线、软元件、通信程序三块的核心动作你都亲手做过一遍比看十篇教程有用。每一步都要做记录接了什么线、改了什么参数、遇到什么问题、怎么解决的。这份记录就是你自己的排查手册。6.2 几个用钱和时间换来的经验第一个经验接线前先拍照。柜子原状拍一张改完再拍一张。设备出问题需要恢复原状时照片比记忆可靠。我在一个改造项目里因为没拍照恢复接线时把一组输入的公共端接错了又多花了半天。第二个经验参数要写进程序不要只靠手调。通信格式、站号、超时时间这些如果在触摸屏上让操作工调一定要在程序里做合法性检查非法值直接拒绝并提示。我见过操作工把波特率调成 115200 而总线上其他设备都是 9600整条线瘫痪最后查了两天才发现是屏上的一个参数。第三个经验任何一个输出点动作前先问自己“它坏了会怎样”。驱动一个气缸动作很简单但这个气缸在没有气压、在限位没到位、在急停拍下的情况下动作会不会撞坏东西配线层面加不加限位开关做硬件互锁程序层面加不加动作条件这些判断比写指令重要得多。第四个经验调试用的临时短接线当天必须拆。临时短接是排查利器也是事故源头。我给自己定的规矩是短接线用醒目的红色并且在线头挂一张纸条写明“临时调试后拆除”。设备交付前专门有一道工序叫“清点临时线”一道一道过。带新人时我常说PLC 这东西程序写得再花哨最终还是要靠一根线把电送过去、靠一个地址把状态记住、靠一帧报文把数据传出来。这三件事做扎实了剩下的是时间问题。