
上个月接手一条快递分拣线的改造被现场主管拉住就问了一句触摸屏上一直报Device No Response你们玩PLC的不是应该半小时就搞定吗我盯着那个红色的报警框看了看通讯参数又看了看PLC柜门上的IP标签心里已经清楚问题出在哪但为了让现场的人以后不至于天天被这类问题折腾我还是把整套排查过程录了一遍顺便把这几年在物流仓储自动化项目里攒下的经验整理出来。物流仓储自动化这条线说穿了就是两样东西在唱主角PLC负责逻辑和时序触摸屏负责把逻辑变成人能看懂的画面。两者配合好了一条输送线、一个分拣环线、一排提升机就能跑得稳稳当当配合不好就是永远在查通讯、改标签、调参数。这篇文章我打算按实际项目的推进顺序来写从PLC选型接线讲到触摸屏工程落地再讲高频的通讯故障和现场调试笔记争取让刚入行的朋友也能照着理一遍思路。1. 为什么物流仓库里PLC和触摸屏是铁打的搭档很多人刚接触自动化时容易把PLC想成高级继电器把触摸屏想成一个大按钮。真实做项目久了会发现这两者的关系更像“大脑”和“脸面”PLC是大脑负责接收传感器信号、跑梯形图、判断什么时候启动电机、什么时候报警停机触摸屏是脸面把内部寄存器的状态展示成画面让操作员能监控、能改参数、能看产量报表。以快递分拣线为例包裹从卸车口进来经过单件分离、扫码、称重、供包再进入交叉带或者摆轮分拣机最后落到对应的格口。这一整条链路里PLC要做的事情包括控制皮带电机的启停、变频器的调速、气动摆轮的换向、扫码枪触发信号的捕捉以及跟上一层WMS系统交换数据。触摸屏则负责把每一段输送机的运行状态、每台电机的电流报警、每个格口的满包信号集中显示出来同时让操作员可以一键切换自动/手动模式或者在异常时手动启停某一段设备。我见过不少只通PLC、不怎么管触摸屏的项目结果就是调试时极度依赖电脑设备一运行就抓瞎。相反如果只把触摸屏画面做得花哨通讯和变量映射一塌糊涂那这个屏就只是个摆设。所以做物流仓储自动化务必要把两者当成一个整体去设计。IO表、变量表、报警文本这些都应该在编程前统一规划否则后期无论是连线还是组态都会非常痛苦。另外提醒一句现在的PLC早就不只是梯形图了。西门子S7-200 SMART系列、三菱FX系列、汇川H系列还有基于Codesys平台的一众国产PLC都支持以太网通讯、Modbus TCP、自由口协议甚至很多都集成了运动控制指令可以直接管理伺服轴。触摸屏方面威纶通、昆仑通态、台达、中达优控这些品牌也已经把标签导入、宏脚本、配方管理做得相当成熟。设备选型的时候不要只看单个件要看它们能不能顺畅地“对话”。2. PLC控制柜的选型与接线细节软启一拖三、通讯口和不同品牌差异PLC选型听起来简单但实际落地时特别容易踩坑。核心不是你选了哪个品牌而是你得知道自己这套系统里到底要多少个输入点、多少个输出点、需不需要模拟量、需不需要高速计数、需不需要走总线。2.1 输入输出点数和扩展模块怎么定我在做非标项目时都会先列IO表。比如一条分拣输送段有入口光电、出口光电、电机运行反馈、变频器故障反馈这些算输入对应电机启停、变频器使能、报警指示灯这些算输出。先把这个表拉出来再决定PLC主机选多少点的不够就挂扩展模块。千万别凭感觉选点数和通道数一旦定错后期改起来非常被动。有些项目还要考虑模拟量模块比如风压检测、温湿度检测、变频器0到10V调速信号。温度PID控制需要接热电偶或者PT100模块这部分要提前把精度和传感器类型定清楚。否则等设备进场了再补模块货期和接线都是麻烦事。2.2 汇川InoProShop、博途、Codesys平台里的端口设置差异编程软件这块西门子用博途TIA Portal三菱用GX Works汇川主流型号用InoProShop还有一些国产PLC直接就是Codesys内核。很多人问inproshop怎么设置plc端口号其实并不复杂。在InoProShop的项目树里找到设备双击通讯设置可以看到站地址、波特率、数据位、停止位、校验位这些参数。走串口时关键是PLC物理拨码或参数里设定的站号要和触摸屏里填的从站地址一致走以太网时则是把PLC的IP地址和端口号填对默认端口通常是502或者102具体看协议。Codesys平台的PLC比如汇川、信捷、禾川这些入门级产品里面有个很有趣的地方它会在TCP/IP设置里显示网口的MAC地址。不少工程师第一次接触会觉得奇怪为什么找不到传统意义的“设备IP设置”其实Codesys的PLC很多默认通过BootP或者静态IP绑定MAC地址是识别硬件的关键。调试时如果PLC和电脑不在同一网段直接在本地连接的“以太网属性”里改IP或是在Codesys的通讯设置里通过网关搜索设备比自己盲填IP有效得多。2.3 软启动器一拖三接线的实物细节物流仓库里大功率设备不少比如重型输送皮带、风机、空压机直接全压启动对电网冲击大所以要用到软启动器。热词里有个“plc软启动器一拖三接线实物”这里面的“一拖三”通常是指一台软启动器轮流拖动三台电机或者用一个PLC控制三台软启动器。前者更常见但接线一定要小心。一拖三的典型接法是软启动器主回路进线接三相电源出线端通过接触器柜切换接到三台电机。PLC输出节点分别控制三台切换接触器的线圈同时控制软启动器的启动和停止端子。这样做的好处是省了一台软启动器坏处是逻辑上必须互锁——切换接触器只能在软启动器未启动时动作否则带载切换会直接烧掉接触器。我在实际项目里会在PLC程序里加两个条件第一软启动器在运行状态时所有切换接触器输出强制置0第二三台电机的切换接触器之间要软件互锁。硬件上最好再加一组辅助触点串联双重保险。反馈信号也必须接回PLC否则你不知道软启动器到底起来没起来还容易在调试时被电机的轰轰声误导。交流接触器线圈控制电压也别忘了看是220V交流还是24V直流中间要加中间继电器过渡别把PLC输出点直接拿去驱动大接触器线圈那样继电器迟早会烧坏。2.4 变频器通讯以西门子S7-200 SMART和森兰SB200为例现在仓储线用变频器调速太普遍了。比如摆轮分拣机的速度要跟随包裹间距动态调节供包台皮带的加速要根据扫码结果调整。现场设备种类五花八门西门子S7-200 SMART配森兰SB200这种组合很常见。森兰SB200支持Modbus RTU标准RS485接口。S7-200 SMART的通讯板或者本体上如果带RS485口可以用两根线直连。接线时注意变频器侧的A接PLC侧的BA-接B-交叉接法具体看端子定义。通讯参数要设成一致Modbus地址可以从01开始试波特率9600、无校验是大多数变频器的出厂默认程序里用MSGB和MSGW指令来读写。关键是串口通讯里的站号别冲突同一总线上有多个变频器时每个站的地址要错开。有次我在现场遇到“一上电变频器就乱跳”的情况后来发现是通讯线和动力线穿在同一根线槽里变频器启动瞬间共模干扰把RS485信号全打乱了。后来把通讯线换成屏蔽双绞线单独走线屏蔽层单端接地问题才彻底消失。凡是带变频器的柜子动力线、通讯线、信号线最好分三条槽走这是硬经验。3. 触摸屏工程落地的关键动作标签对接、宏脚本和画面设计PLC侧的程序写好了触摸屏这块才真正开始。“触摸屏编程100例”看看可以但工程里最花时间的往往是通讯对接和画面逻辑而不是画几个漂亮的按钮。3.1 一个PLC到底能不能接两个触摸屏这个问题经常被问到。答案是绝大多数情况下可以但要看具体通讯方式。用Modbus TCP或以太网协议时PLC作为一个Server理论上可以同时接受多个客户端的连接所以一台PLC接两台威纶通或者昆仑通态触摸屏基本没问题。只要在触摸屏里都填同一个PLC的IP地址占用不同的连接通道就行。但走串口RS485的时候要稍微注意一台触摸屏占一条主站链路你想再接第二个屏要么用支持多主站的协议要么把两台屏设成不同地址挂在总线上。不过有些触摸屏驱动对串口通讯的主从频率有限制两个屏同时频繁读写PLC的串口处理不过来会表现出响应特别慢。所以我的建议是非要双屏显示的话优先用网口方案省心很多。3.2 威纶通导入西门子S7-1200标签的常见弯路威纶通触摸屏连西门子S7-1200最舒服的方式是直接导入标签。先用博途把PLC程序编译出变量表然后在威纶通的“系统参数→设备属性”里选择S7-1200驱动设置好IP地址、机架号和插槽号。S7-1200默认的机架是0插槽是1。导入标签时威纶通软件会读取PLC导出的XML或SDF文件把变量名批量映射过来。很多人出错是因为PLC程序里没有勾选“允许从HMI进行完整访问”或者博途的通讯连接数被默认设置限死了。还有一点容易被忽略S7-1200固件版本不同HMI驱动里的兼容性设置也不同如果通讯列表里选错PLC类型会一直连不上。导入标签后一定要做一次“离线模拟”检查变量对应的是不是同一个数据块地址。我在现场见过标签导入成功但数据完全不对的情况原因就是数据类型长度对不上比如实数当成了整数。3.3 MCGS脚本里字符串怎么换行、宏怎么写昆仑通态MCGS是国产触摸屏里用得很多的一款脚本功能也挺强。热词里问“脚本中字符串内容如何换一行”其实很简单在赋值时字符串里直接加上换行符的转义也就是写成类似变量第一行\n第二行这样的形式脚本引擎翻译时会把\n认成换行。如果你是在文本显示构件里做动态显示也可以在内容里手动敲回车或者用chr(10)拼接。威纶通的宏功能更丰富一点可以用来做用户登录和权限管理。比如我们常用宏实现一个“操作员登录”画面输入用户名和密码宏里去比对内部寄存器或配方文件里的预设值比对成功就置位相应的权限位。这样做的逻辑很清楚画面本身的按钮根据权限位的变化来启用或禁用权限不够的人连点都点不动。这个做法比单纯靠系统自带的用户管理更灵活因为它可以和PLC内部逻辑联动。3.4 产量报表、FTP功能和画面设计经验仓储线对产量报表的需求很高每天多少包裹过线、多少条码异常、每小时分拣效率多少都需要触摸屏能看能导出。威纶通的报表功能可以做成“数据采样”把产量变量按时间周期记录到内部存储再用批次查询显示。MCGS也有“存盘数据浏览”功能数据可以存到U盘或者通过FTP上传到服务器。这里要给个经验报表存储的数据类型和采样周期要提前规划不然一天的记录量就能把触摸屏的内存撑爆。画面设计方面我的习惯是主画面只放总览和关键报警详细操作放到二级画面。按钮要带“按下确认”或“互锁”比如启动按钮旁边必须有停止按钮危险设备启动前要在画面上做三秒倒计时。状态颜色要统一绿色代表运行、红色代表故障、黄色代表待机、灰色代表无通讯这个习惯坚持下来现场操作员基本不会误判。4. 通讯故障处理实录从威纶通Device No Response到AMS NetID说到通讯故障这是最消耗工程师时间和耐心的部分。我把这些年碰到的高频问题集中写一个排查链路照着走能省不少事。4.1 威纶通触摸屏报Device No Response到底是谁的锅威纶通触摸屏连不上设备时最常见的提示就是“Device No Response”。很多人第一反应是PLC死机了其实未必。我一般按这个顺序查第一看PLC的运行指示灯。如果PLC在STOP状态那触摸屏自然读不到数据这是最容易被忽略的。第二看网线插没插好尤其是设备运行中有人动过柜子门。第三看触摸屏里设置的IP地址和PLC实际IP是不是同一个网段。很多PLC调试时可能被改过IP触摸屏里还是旧的。第四看通讯驱动有没有选对。S7-200 SMART用S7-200驱动连接S7-1200要用S7-1200驱动高级和低级的协议并不通用。第五查PLC侧的程序密码或连接许可。西门子PLC里的防护等级太高时也会拒绝HMI访问。这几步走完百分之八十的问题都能定位。如果还不行就现场直接开一个电脑上的调试软件比如用Modbus Poll去读PLC如果能通说明是触摸屏驱动或者组态问题如果不通那就是网络物理链路或者PLC侧的问题。这种“把问题域一分为二”的方法是排查通讯故障最快的方式。4.2 建立连接需要目标PLC的AMS NetID和端口号怎么填这个问题在接倍福PLC或者Codesys内核PLC的HMI时特别常见。因为Codesys的实时以太网通讯用的是ADS协议它不像Modbus那样填个IP就行而是要填一个6字节的NetID和一个端口号。AMS NetID就是设备在网络里的标识格式类似于1.2.3.4.5.6其中前两个字节通常是网段的某个值后面的要根据设备的配置来定。怎么找到它方法其实很简单在开发电脑上打开TwinCAT或Codesys的系统管理器在线连接PLC后看“Runtime System”或“Device”属性里的AMS NetID。有些PLC在网页诊断页面也能看到。填到触摸屏里时注意要填目标PLC的NetID不是开发电脑的端口号一般是48898或者851具体要看PLC系统中定义的ADS端口号。之前有个朋友把电脑的NetID填了进去IP又对不上结果排查了整整一个下午。4.3 博途PLC和模拟屏“不兼容”是怎么回事博途TIA Portal自带的HMI模拟和PLC模拟有时候会出现版本不一致的问题。最典型的表现是PLC程序能正常模拟一启动HMI模拟屏就报通信故障甚至直接闪退。原因多半是项目的TIA版本、WinCC版本、PLC固件版本三者中的某一个对不上模拟时找不到匹配的设备镜像。解决办法并不复杂第一确认博途的软件版本支持你用的PLC固件第二HMI面板的镜像版本要和组态的版本一致不要在“设备组态”里随便升级第三模拟之前先在组态里做一次“编译”把所有错误都消掉再启动模拟。另外如果只是想在电脑上看画面效果完全可以直接用威纶通或昆仑通态的“离线模拟”并不一定要依赖博途本身的模拟环境。离线模拟的好处是不占用真实PLC还能顺便检查变量地址有没有写错。4.4 InoProShop端口与MAC地址的那些坑汇川PLC用InoProShop编程时端口设置藏在设备通讯参数里。很多新手找不到是因为把编程口的COM口和以太网口混为一谈。串口时用COM口参数以太网时用IP和端口。设置时还要注意修改完参数后要重新下载工程并且把PLC断电重启一次参数才会真正生效。有次我改完端口号忘了下载结果试了一个小时都连不上以为PLC坏了其实只是程序没传进去。Codesys平台的MAC地址问题也要多说一句。有些PLC是软网关型的MAC地址可能被锁在触点式拨码设置或者BootP配置里现场如果IP和电脑IP对不上最简单的办法是找一个交换机管理界面看一下ARP表通过MAC地址反查设备IP。你不需要背太多网络命令但在仓库这种到处都有交换机的环境里会看ARP表真的能救命。5. 现场调试中积累的几条土办法时序启停、PID温控与坐标换算最后这部分我想写点调试时跟书本上不太一样的东西。书里教你原理现场教你怎么用原理处理现实里的毛刺。5.1 电机顺启逆停、红绿灯时序的梯形图思路热词里的“plc电机顺启逆停定时器”和“十字路口红绿灯plc程序”本质上都是一个东西用定时器去构造时序状态。顺启逆停指的是多台电机按顺序启动、按逆序停止。比如一条输送线三台皮带启动时M1先跑三秒后M2跑再三秒后M3跑停止时M3先停四秒后M2停再四秒后M1停。梯形图里的做法其实不难启动按钮置位一个运行标志用T1、T2两个定时器分别控制启动间隔和停止间隔再配合一个“正在停止”的标志位。关键是停止时如果有人在触摸屏上按了急停所有电机必须立即全部停机这时时序程序要把链条切断直接复位运行标志。这个细节如果不做现场急停后电机还会按顺序停那就会出安全问题。红绿灯程序更简单用三个定时器轮流触发状态分别是红、绿、黄再加一个闪烁状态。做这个程序的真正收获是学会画状态转移图。物流分拣线上很多设备的状态切换比如供包台从“空闲”到“等待包裹”到“输送中”到“放行完成”本质上都是同一套思路。用状态机而不是一堆乱七八糟的置位复位线圈程序可读性和可维护性会好很多。5.2 温度PID波动温差大怎么调仓储环境有时需要做恒温控制比如药品仓、电子料仓温度控制精度要求很高。PLC上跑PID不算复杂但调不好是常事。热词里问的“plc温度PID波动温差大如何调节”几乎每个项目都会遇到。温度控制容易波动大的原因主要有几个第一PID采样周期太长或太短导致反馈滞后第二P比例太大输出对误差过于敏感系统震荡第三积分时间太长余差修正太慢第四实际加热功率和对象惯量不匹配。我的调法一般分四步。第一步先把积分和微分全部关掉只留比例从小到大慢慢加让温度出现微微来回波动记录此时的比例值取它的一半作为初始P。第二步把积分时间设为P值除以三十秒左右开始观察温度回到设定值的速度。如果过冲严重就加大积分时间。第三步加一点微分用来抑制超调但温度系统本身滞后大微分加多了会放大噪声一般只给一点点。第四步做完之后做一次带负载的升温和降温测试比如开门模拟现场干扰看温度能不能慢慢回到设定值。还有个很实用的小技巧给PID输出加限幅。冷库和烘箱的加热器功率很大如果输出直接拉到100%温度必然过冲。你把最大输出限制在70%、80%温度虽然爬得慢一点但稳定后波动会小非常多。很多工程师调不好就是因为输出限幅根本没设。5.3 单片机从触摸屏上获取到触摸点坐标怎么映射到屏幕内容这个热词很有意思看起来是嵌入式项目里用裸屏加电容/电阻触摸屏的场景。很多人想自己在GD32或ESP32-S3上做一个类HMI的界面需要把触摸控制器返回的原始坐标和屏幕上显示的控件位置对应起来。原理很简单四线电阻屏或者I2C电容屏返回的坐标值通常是ADC原始值或某种归一化坐标范围比如0到4095。屏幕上像素坐标是0到320或480。映射公式就是线性比例像素坐标等于原始坐标除以原始最大值再乘以屏幕宽度同时还要考虑原点方向因为触摸屏的X轴方向可能和屏幕显示的方向相反。看起来简单实际做的时候有两个坑。第一个坑是触摸框校准四线电阻屏用久了会漂移。解决办法是做三点校准用校准参数做矩阵变换而不是单纯线性缩放。第二个坑是触摸按压抖动连续检测到两个非常接近的坐标点时不要立即判定为按下要加消抖。我见过一个项目界面按钮老是无缘无故自己触发后来发现就是把触摸检测引脚上的毛刺当成了有效触摸加一个几十毫秒的去抖就解决了。5.4 六轴机械臂、伺服驱动和电气柜联动的调试顺序物流仓储里现在也越来越多用到机械臂比如拆垛、码垛、翻箱。PLC管理六轴机械臂伺服通常不是PLC直接控制每轴伺服而是PLC和机械臂控制器之间走总线协议比如Profinet、EtherCAT。PLC下发目标位置或者请求信号机械臂自己完成轨迹规划再把完成状态回传给PLC。调试这类系统的顺序我建议先单独调机械臂再单独调PLC程序最后联调。单独调机械臂时把每一个点位、每一个姿态都确认清楚特别是夹具开合信号和货物到位传感器。单独调PLC程序时先用模拟信号仿真通讯数据不要真开设备。联调时先低速运行再提升速度。这个过程看起来很慢但反而最省时间。我见过有人一上来就让机械臂全速跑结果位置没算对直接撞翻了一个货框那比慢慢调浪费的时间多得多。5.5 毕业设计和非标调试的通用思路最后聊聊毕业设计和刚入行做非标项目的通用思路。就算你是拿PLC做一个红绿灯、做一个小型仓库模型也建议遵循一套流程先画系统布局图再列IO表再画流程图再写梯形图最后做HMI画面。很多初学者一上来就打开编程软件开始拖触点结果拖到后面发现自己都不知道在控制什么返工三四次。做非标项目还有一条我很在乎的原则每个改动都留痕迹。改过PLC程序、改过触摸屏参数都要在调试记录表里记一笔。毕竟现场设备不是你一个人在维护过了三个月再回去查问题如果连改过什么都不知道那简直是在大海捞针。比如那次Device No Response最后查到的问题其实就是前一天晚上有人临时改了PLC的IP地址来测试另一台设备改完没恢复。现场和远程协作时这种“改了没留痕”的操作最坑人。如果看完整篇只记三个关键词我会说是IO表先于代码、通讯参数先于画面、调试日志先于腰包。物流仓储自动化项目的复杂度不在单点技术而在所有环节的咬合PLC和触摸屏只是这套体系里最容易被看见的一对搭档。下次现场再报通讯故障先别急着怀疑设备坏了把IP、端口、驱动、网线、状态灯按顺序过一遍多半能省出一个下午。