ARTICLE DETAIL

资讯详情

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

西门子PLC输送带控制系统实战指南:从选型到联调

西门子PLC输送带控制系统实战指南:从选型到联调 做了这么多年西门子PLC的输送带控制系统我最大的感受是最怕的不是工艺复杂而是选型阶段就把后面的路堵死了。这篇文章不聊教科书上的抽象原理就聊我怎么从一条真实的输送带项目里把控制系统搭起来——从PLC选型、变频器通讯、触摸屏跨网段访问到梯形图编程和现场联调踩过的坑整个过程尽量还原。如果你正在准备西门子PLC相关的毕业设计、非标设备调试或者刚接手输送线项目这篇文章可以直接当参考。我会尽量说人话把为什么这么做也讲清楚。先交代一下项目背景现场有三段输送带分别负责上料、中转、卸料电机全部走变频器驱动控制柜里一台西门子S7-200 SMART PLC触摸屏用MCGS后来改造时又把数据并入了S7-1500做集中监控。这套配置不算豪华但非常典型小到单条皮带大到几十米的输送线核心逻辑都是同一套。1. 先搭框架一条输送带控制系统的组成与选型逻辑1.1 输送带控制到底控制什么很多人以为输送带控制就是一个启动按钮、一个停止按钮、一个接触器真到现场就发现不是这么回事。输送带最基础的控制对象是电机但电机背后还有变频器、减速机、光电传感器、限位开关、跑偏开关、急停拉绳以及和上下工序联锁的信号。控制逻辑至少包括这几层启停控制本地按钮、触摸屏远程启停、中控室指令启停。调速控制根据生产节拍调整带速或者根据物料流量自动调速。保护联锁跑偏、打滑、堵料、过载、急停任何一个信号触发都要让相关皮带按正确顺序停机。顺序控制多段输送带必须按启动时先下游后上游、停止时先上游后下游的规则动作否则物料会在中间堆积。状态监视变频器电流、运行频率、累计运行时间、故障代码这些不仅要显示在触摸屏上还要传给MES或上位监控系统。早些年我见过一个项目只用继电器回路做启停结果物料堆了两米高操作工拿着铁锹铲了半天。后来所有皮带都改成PLC控制逻辑写清楚之后再没出现过堆料问题。控制系统的价值不是把按钮换成触摸屏而是把工艺逻辑固化成稳定可靠的程序这才是输送带控制的核心。1.2 200 SMART、1200、1500怎么挑西门子PLC这个大家族里输送带项目最常见的就三个系列S7-200 SMART、S7-1200、S7-1500。选型不是越贵越好而是看通讯需求、I/O点数和后期扩展空间。项目S7-200 SMARTS7-1200S7-1500定位小型经济型中型通用型大中型高端型编程软件STEP 7 Micro/WIN SMART博途TIA Portal博途TIA Portal集成以太网口有有有扩展能力有限适合几十点中等最多数百点强适合复杂系统通讯协议Modbus RTU/TCP、以太网Modbus、PROFINET、OPC UA部分Modbus、PROFINET、OPC UA、更多典型场景单机设备、小型皮带线中型输送线、多站控制大型生产线、需连接机器人/MES/SCADA我当时的选型逻辑很简单三段输送带本地触摸屏加一台变频器通讯用200 SMART就够了博途授权都不用折腾。后来要接S7-1500做集中监控本质是数据采集需求不是控制需求所以仍然保留200 SMART做现场控制1500只做数据汇聚。如果你是新做项目我的建议是I/O点数五十个以内、通讯对象只有变频器和触摸屏直接上S7-200 SMART便宜、好上手、资料多如果有几十个I/O且后续可能要接机器人、视觉系统上S7-1200比较稳如果是整条产线集中控制还要和库卡机器人交互、给MES提供OPC UA数据那就一步到位选S7-1500别在选型上省这个钱。2. 变频器通讯那些事森兰SB200与S7-200 SMART的Modbus RTU实战2.1 为什么我不用模拟量而用Modbus控制变频器有两种常见方式一是模拟量给定PLC输出0-10V或4-20mA信号控制频率用继电器触点控制启停二是通讯给定PLC通过RS485总线向变频器写频率和启停命令同时读取运行状态。输送带项目我强烈建议用通讯原因有三个。第一模拟量给定需要模拟量输出模块成本比RS485通讯高而且长距离传输容易受干扰现场变频器一启动模拟量信号就可能飘。第二模拟量只能给指令收不回变频器的真实输出频率、电流和故障码。输送带卡料时变频器会报过载或堵转故障你要是收不到故障码整个联锁逻辑就是瞎的。第三Modbus RTU在RS485总线上可以挂多台变频器一台PLC带五台变频器用通讯完全没问题模拟量带五台就得加一堆模块。森兰SB200系列是输送带现场特别常见的高性能通用型变频器本身支持Modbus协议物理接口就是RS485端子。S7-200 SMART本体上有集成RS485口两个设备天生就是一对。连接方式变频器RS485端子A接PLC的RS485信号正B接负注意A/B不要接反屏蔽层一端接地。2.2 参数匹配与通讯指令的落地细节通讯的前提是两边参数完全对得上变频器和PLC任何一边的波特率、数据位、校验位、停止位不一致结果就是通讯失败。我调试时习惯先把变频器这边的参数设定好再写PLC程序这样排查问题更容易。森兰SB200需要重点确认的几组参数控制方式设为通讯控制启停命令由RS485给定。频率来源设为通讯给定而不是面板电位器或模拟量端子。从站地址每台变频器必须唯一比如1号、2号、3号。通讯参数波特率9600或19200数据格式8-N-18数据位、无校验、1停止位这是Modbus RTU最常见的配置。恢复出厂默认后要重新设电机铭牌参数否则变频器会按默认电机参数运行。S7-200 SMART侧编程时主要用两个指令MBUS_CTRL负责初始化串口MBUS_MSG负责读写数据。MBUS_CTRL有一个关键参数就是波特率和校验方式必须和变频器侧完全一致。每次扫描周期MBUS_MSG只能激活一个读写请求所以我习惯用一个定时脉冲触发比如间隔200ms触发一次读请求间隔200ms再触发一次写请求错开时间避免读写冲突。写频率时数据要写进变频器对应的通讯地址读电流、读频率、读故障码时从对应地址读出来。注意很多变频器的Modbus寄存器地址在PLC侧要映射成40001这种地址格式而且有些手册里地址从0开始有些从1开始差一个数整个数据就是乱的。我踩过一次频率写进去了但变频器显示频率和设定值差一个量级查了半天发现是数据格式问题16位数据和带小数点的比例因子没对上后来按说明书把数据转换关系写好才正常。2.3 读写没反应一次典型的排查链路有一次第3段输送带变频器突然不给指令了触摸屏上显示通讯故障。我当时的排查顺序是这样的你可以直接拿去用。第一步先确认物理链路。用Modscan这类串口调试工具接到同一根RS485线上如果能读出变频器的运行状态寄存器说明链路和变频器都没问题如果Modscan能读而组态软件不能读问题基本不在硬件而在软件配置。第二步检查PLC侧MBUS_CTRL的初始化参数。波特率、校验方式、从站地址哪怕只差一个MSG指令就会报错误代码。把错误代码对照手册翻译出来往往能直接定位到问题。第三步检查MBUS_MSG的读写地址。先读一个已知值的寄存器比如额定电压、额定电流如果读回来的数据能对上再读运行参数这样能分清是地址错还是数据转换错。第四步查A/B线是否接反。RS485是A对应正、B对应负但很多变频器端子标注是和-接反后偶尔也能通但极其不稳定经常时通时断。我当时把A/B对调后马上稳定了。那次最终找到的原因有点狗血第3段变频器被人按过面板操作控制方式从通讯改回了面板控制。这种事在现场太常见了所以我在程序里加了一个运行模式监测一旦变频器控制方式被改掉立刻报警提示而不是等操作工发现设备不受控。3. 上位机互联MCGS触摸屏和S7-1500的跨网段通讯技巧3.1 跨网段到底卡在哪很多输送带项目到后期都会遇到一个问题现场控制柜里的PLC用192.168.1.x网段办公室上位机或MES用192.168.2.x网段两边都想互相访问。MCGS触摸屏和S7-1500之间也一样触摸屏在192.168.1.10PLC在192.168.2.1直接PING不通通讯自然建立不起来。跨网段这个问题本质是子网和路由的问题。IP地址由网络部分和主机部分组成子网掩码决定了哪些设备算同一个网段。192.168.1.10和192.168.2.1如果掩码是255.255.255.0那就是两个网段普通二层交换机只能转发同网段流量跨网段必须经过三层设备做路由。最简单的做法是统一网段——把触摸屏和PLC的IP都改成192.168.1.x或192.168.2.x然后用一个交换机连起来。大部分现场网络除了这两台设备没别的东西统一网段是最省事的方案。但如果现场网络比较复杂不能随便动IP那就得靠网关或者路由设备。S7-1500的PROFINET接口支持多个IP地址你可以在接口属性里给PLC配置第二个IP让它同时存在于两个网段。这样MCGS触摸屏通过192.168.1.x访问PLC上位机通过192.168.2.x访问同一台PLC互不干扰。这个做法很实用但要注意两个网段不能在同一个广播域内造成地址冲突而且防火墙规则要放行对应端口。3.2 MCGS连S7-1500的通道配置MCGS触摸屏通过以太网驱动访问S7-1500时最容易错的就是驱动设置里的几个参数。首先是PLC的IP地址这个必须准确无误其次是端口号S7协议默认用102不能乱改然后是机架号和插槽号S7-1500在博途里的默认Rack0、Slot1很多人习惯用S7-300的Rack0、Slot2填错就连接不上。跨网段时还要在MCGS的本机设置里正确配置网关地址。触摸屏作为客户端它要访问192.168.2.1就必须让触摸屏的默认网关指向一个能转发到192.168.2.0网段的三层设备。如果只是把两个设备接在同一个普通交换机上而没有网关设备怎么填都没用因为二层交换机根本不会做路由转发。给S7-1500启用第二个IP地址时我一般这样操作打开博途的以太网接口属性在IP地址列表里添加一个191.168.1.x的地址掩码255.255.255.0同时保留原始的192.168.2.1。下载后在线检查一下两块网卡状态确定两个地址都生效。这样MCGS就可以用192.168.1.x访问PLC不影响原有的PROFINET设备通讯。现场实测下来很稳没有出现掉线。3.3 OPC UA与Modbus TCP往上位机送数据的两条路输送带的数据如果只给触摸屏看那组态软件就够了。但现在很多项目要上MES、SCADA或者要让机器人、数控机床、传感器设备的数据统一汇总这时候就绕不开OPC UA和Modbus TCP这两个协议。Modbus TCP简单直接很多第三方系统都支持把PLC当Modbus服务器用就行。它在读寄存器地址时需要你自己维护数据映射表好处是兼容性好坏处是信息模型太弱数据类型和含义全靠约定别人接手时看地址表能看晕。OPC UA的优势在于信息模型强数据可以带结构、带描述、带报警、带历史。S7-1500本身集成了OPC UA服务器在博途里勾选启用之后上位机或者第三方软件比如KepServer或直接走OPC UA客户端就能按标签读取数据。对输送带项目来说运行状态、变频器电流、皮带速度、故障代码这些值都可以用结构化方式暴露出来MES查询任意一台设备的状态都清清楚楚。我还碰到过用OPC UA读数控机床和传感器运行数据的场景和读PLC数据是同一个套路客户端配置好服务器地址和证书浏览到对应节点订阅变化数据。S7-1500做服务器时性能还不错几十个节点实时刷新没什么压力。和库卡机器人交互也是类似要么用PROFINET要么用OPC UA看机器人那边支持哪种。4. 梯形图的核心积木启停、联锁和输送时序的编程套路4.1 启停逻辑的安全底线输送带程序里最基础的一段就是启停逻辑但这段逻辑也是安全风险最高的一段。最简单的自锁回路长这样启动按钮I0.0按下输出Q0.0得电并保持停止按钮I0.1断开Q0.0复位。这个逻辑在纸上一点问题没有可是在现场变频器控制的皮带并不需要一直通电而是需要允许运行信号。我一般会把启停逻辑分成两层第一层是允许运行标志由启动按钮、停止按钮、急停信号、跑偏信号、堵料信号共同决定第二层才是实际输出给变频器的运行信号由允许运行标志和联锁状态一起控制。这样做的好处是任何联锁条件触发时你不会只断掉一台变频器而是可以根据工艺需要按顺序停掉相关皮带。安全底线有三条必须写死急停回路必须在PLC之外用硬线直接切断变频器主回路或控制回路不能完全依赖PLC程序因为程序可能跑飞CPU可能停机。跑偏、拉绳、堵料信号要用常闭触点接入PLC如果线断了、传感器掉了系统会按报警处理而不是误认为正常。启动前必须检查所有联锁条件任何一条不满足都禁止输出。很多初学者喜欢用置位/复位指令做启停这没问题但要注意复位顺序和急停优先权。急停信号触发时所有输出必须无条件复位这个判断要放在程序最前面。4.2 多点输送带的顺启逆停多段输送带最讲究的就是顺序。三分钟讲清楚逻辑启动时先启动下游皮带卸料端再启动上游皮带给料端因为前面的物料要有一条已经转起来的皮带接着才不会被堵在溜槽里停止时正好反过来先停上游皮带让还在皮带上的物料全部送到下游等皮带空了再停下游。实现方法没有想象中复杂用定时器做级联延时就行。比如三段皮带启动信号一到来先把第3段带起来延时3秒后启动第2段再延时3秒启动第1段。停止信号来时先把第1段停下延时几秒等皮带上的物料走完再停第2段再延时几秒停第3段。延时时间怎么定看皮带速度和长度。比如皮带长度30米带速1.5米/秒物料从上游走到下游大约20秒那停止时每段之间的延时至少要取一个大于物料走完时间的值。这个用定时器T37TON很容易实现S7-200 SMART里定时器数量也够。我之前给三菱FX3U写类似逻辑时还专门确认过断电保持问题——FX3U的D0-D8默认断电不保持要通过PLC参数设置保持区西门子200 SMART的V区大多数可以断电保持但定时器当前值断电后还是清零的这一点要记住别指望定时器状态来恢复现场。你还可以拿十字路口红绿灯程序来练手红灯、绿灯、黄灯的时序切换和多段皮带顺启逆停本质一样都是定时器级的循环状态转移。8人抢答程序也是练位逻辑的好东西抢答本质是多输入互斥优先——和多个启动按钮同时按下时只认先到的一个逻辑模型一样。4.3 程序结构从OB到FC怎么分S7-200 SMART的程序结构简单主程序写到底也能跑。但换到S7-1200/1500用博途编程时如果不按OB、FC、DB组织程序调试起来会非常痛苦。我通常这样分OB1主循环只负责调用各个功能不在OB1里堆逻辑。FC_Safety集中处理急停、跑偏、拉绳、堵料等安全信号。FC_Sequence处理启停顺序和联锁状态机。FC_VFD_Comm处理Modbus通讯读写指令把频率、电流、状态数据写到共享DB。DB_VFD放所有变频器运行数据每个变频器一个数据结构。DB_IO_Mapping把物理I/O点映射成符号变量程序里只用符号不直接写I0.3这种地址。这样做的好处是哪天某个传感器换点位了我只需要改I/O映射不用在几百段程序里找地址。输送带这种项目传感器点位经常被现场改来改去有了映射层能省大量时间。另外程序块加注释也很重要特别是别人接手时一个没有备注的联锁段能让调试工程师崩溃。我现在写程序的标准是每个FC开头必须写清功能说明、输入条件、输出结果、修改记录这也是我们做非标项目交付的基本要求。5. 联调阶段最折磨人的几个坑搜索不到CPU、EN/ENO和程序保护细节5.1 搜索不到CPU的完整排查过程输送带项目到现场最尴尬的一幕就是打开STEP 7 Micro/WIN SMART点搜索结果找不到CPU但是直接输入IP地址又能连上。这个情况我碰到不止一次排查链路值得完整记录一下。当时情况是电脑直连PLC网口IP设成了192.168.1.100PLC默认地址是192.168.1.10掩码255.255.255.0。理论上同一个网段应该搜得到但Micro/WIN SMART的搜索功能就是空转半天。后来我发现问题出在搜索设置上——软件默认搜索IP范围不对或者电脑防火墙拦截了广播包。解决办法很直接在查找CPU对话框里不要只点搜索而是手动填写目标PLC的IP地址让软件直接按IP访问同时把Micro/WIN SMART加入防火墙例外。还有一种情况是CPU被设置了访问密码搜索能看到但连不上需要先确认密码。如果连手动填IP都连不上就要查网卡了。西门子的PG/PC接口设置里如果选错网卡比如选了无线网卡而不是有线网卡肯定连不上。我后来还在工控机上拆开过一条USB-PPI电缆研究过那种老式的PPI电缆本质是USB转RS485加电平转换电脑端驱动没装好、或线内部芯片虚焊都会出现设备管理器能看到但不通讯。遇到这种情况别急着怀疑PLC坏了先换根线试试最省时间。S7-1500用博途在线连接也有类似的坑电脑IP和PLC不在同网段、PROFINET设备名冲突、博途版本太低导致无法识别新固件。我用的原则是现场调试前先花五分钟把电脑IP、掩码、网关确认一遍再打开在线诊断看设备状态比反复搜索靠谱得多。5.2 EN/ENO、时间锁、程序块解锁这几个细节值得认真对待EN/ENO是西门子PLC图形化编程里一个让新人很懵的概念。简单来说EN是指令/功能块的使能输入只有EN为1时指令才执行ENO是使能输出指令执行正确时ENO为1出错时变0。ENO可以串联你可以让一条指令的ENO驱动下一条指令的EN这样形成指令链其中任何一条出错后面的都不会执行。在输送带程序里EN/ENO最典型的应用就是通讯指令。MBUS_MSG执行完如果ENO为0说明通讯请求没发送成功我会在程序里把ENO接到一个报警用的中间变量上同步记录错误代码。这个比不看ENO直接闷头执行下一轮读写要稳重得多。时间锁这个“功能”也经常有人问。有些项目甲方会要求设备试用期到了自动锁定或者采购要求程序带使用期限。实现思路很简单读取PLC系统时钟和预设的截止日期比较超期后把某个允许运行标志置0。但这里有个坑CPU断电后如果时钟没有后备电池时间可能会复位导致锁机逻辑时序错乱。所以做时间锁之前必须确认CPU的时钟保持能力或者把时间写进保持性存储区我见过太多因为这个翻车的案例甚至闹到要和客户对线的地步。还有程序块解锁。STEP7或博途里的程序块可以被加密或设为只读如果拿到一个加了密码的项目想改逻辑就必须输入正确口令。网上常常流传什么“解锁工具”我劝你别乱用因为很多来源不明的解锁程序可能带捆绑内容职业道德上也说不过去。正确做法是找项目原开发者要口令或者走正规授权流程别为了省事把整条线的源代码都搭进去。5.3 调试验收的清单化套路输送带项目最容易出现的问题不是某个功能做不出来而是功能都做出来了联调时才发现互相矛盾。我调试时习惯按这个顺序一步步来单体调试逐个检查I/O点确认每个按钮、传感器、接触器、变频器端子都对应正确的PLC点位。用强制功能把每个输出点单独驱动一遍确认接线无误。通讯调试先确认PLC和每台变频器的Modbus通讯全部通再确认触摸屏和PLC的变量读写正常最后确认OPC UA数据能被上位机订阅。空载联调不挂负载让输送带按正常启停顺序跑一遍观察各段皮带的启停间隔是否合理顺启逆停是否按预期动作。带载试运行放物料跑起来看变频器电流、带速、堵料传感器动作是否正常调整延时间隔和过载保护参数。验收存档把程序归档、导出变量表、记录所有设备型号和参数设置。这一步往往被人忽略但设备运行三个月后哪怕换一个变频器你都需要这些存档来恢复现场。值得一提的经验是调试存档这个想法我是从数控系统那边学来的西门子828D数控系统载入调试存档的思路放在PLC项目里同样适用所有参数、程序、网络配置都归档成一份完整文件方便日后还原和复制。WinCC和PLC仿真也是省时间的好办法博途里的PLCSIM可以在没有硬件的情况下跑通整个逻辑触摸屏画面用WinCC做仿真联动很多变量地址的错误在办公室就能发现不用到场站上蹲半天。写在最后这条输送带系统做下来我最大的感受是控制逻辑本身并不难难的是想清楚整个系统的边界。开始选型时多想一想通讯对象和网段划分编程时把程序结构搭得干净一点联调时按链路一层层排查这三点做到位项目就不会出现大的失控。最后分享一个我自己的习惯每次下载完程序我都会把CPU在线诊断、模块信息和变频器参数表截图存档等到半年后客户打电话说“设备突然不转了”翻出这些存档往往能少跑很多冤枉路。你如果刚开始接触西门子PLC输送带项目也可以从这个习惯做起它会让你在调试这条路上越走越稳。
返回列表