电工这行干久了,总会走到一个岔路口:天天拆继电器、修接触器不是长久之计,想往自动化方向走,PLC几乎是绕不开的第一道门。但很多人卡住的第一步,不是梯形图怎么写,而是“我到底该学哪个牌子”。西门子、三菱、汇川、信捷、台达、松下、倍福……网上吵成一锅粥,有人说西门子天下第一,有人说三菱简单好用,还有人说国产性价比碾压。我入行这些年,帮客户改过产线,也带过新人,今天想把一些踩过的坑和实际经验聊透:选PLC品牌到底在选什么,不同场景下怎么判断,以及怎么选才能真的“快速上手”,而不是把时间浪费在纠结上。
先说结论:PLC品牌的选择,本质上是选生态,不是选芯片型号。你选的不是CPU有多快、点数有多少,而是你周围的电气图纸用什么画的、老工程师手里有什么教你的资材、车间里变频器和触摸屏是什么牌子的、坏了以后供应商多久能到现场。这些才决定了你上手的速度和你在这个行业里的长期竞争力。下面我把这套判断逻辑拆开讲。
1. 选型前先想清楚:三个问题比品牌本身更关键
很多新人一上来就问“西门子好还是三菱好”,说实话这个问法本身就有问题。好不好是相对你的工作环境而言的。我建议你先回答自己三个问题,答案基本能把你导向正确的品牌阵营。
1.1 你的日常工作场景是什么
这个决定了你需要什么级别的PLC和什么风格的软件。
如果你主要在工厂做设备维护,那你需要的是“车间里最常见的那一款”。我以前在长三角一家汽配厂待过,车间里八成是西门子S7-1200和S7-1500,剩下是几台老掉牙的三菱FX系列。这种情况下,学西门子几乎是唯一选项,因为出故障了你得会看程序、会监控、会强制点位,哪怕只是换一个模块,也要懂总线组态的逻辑。如果你是做系统集成的,那你的选择会更宽,因为你要面对不同客户的不同标准,这时候反而得“通吃”几家的基本操作。
如果你是做非标设备开发的,那要看的点又不一样:编程效率、功能块复用、开放通信能力、成本。很多非标设备厂用信捷和汇川,除了价格便宜之外,还有一个非常现实的原因——他们的伺服和变频器是配套的,三根线一接,参数一设,整个轴就转起来了,省掉大量调试时间。
如果你只是想入行练手,那我建议你选一个生态成熟的品牌,资料多、视频多、模拟器好用,有人卡住的时候能搜到解决方案。自学最怕的就是遇到问题没人教,憋三天憋不出来的那种挫败感,非常打击学习热情。
1.2 先看周边设备是什么牌子,再看PLC是什么牌子
这是我反复跟人强调的一条经验:PLC不是独立工作的,它要跟变频器通信、跟伺服驱动器通信、跟触摸屏通信、跟上位机SCADA通信。你选PLC的时候,先看一眼你手头或者项目里现有的电机驱动器是什么品牌。
举个例子,ABB变频器配西门子PLC,这是工业现场特别常见的组合。ABB的ACS510、ACS880系列基本都支持Modbus RTU和Profinet通信,西门子S7-1200做Modbus Master非常方便,一个MB_COMM_LOAD和几个MB_MASTER指令块就搞定了。但如果换成三菱PLC,虽然也能用Modbus,但指令风格、寄存器映射的写法完全不一样,调试思路也不同。
反过来,如果你现场是汇川的伺服或者变频器,那你选汇川Easy系列PLC就有隐藏优势:汇川的InoProShop里直接集成了他们自家产品的GSD文件、EDS文件和功能块,做运动控制和总线通信的时候,很多参数是自动匹配的,不需要手动翻手册查地址。我做过一个项目,汇川伺服配汇川PLC,EtherCAT总线一接上,伺服参数直接能自动识别,组态时间比我用第三方PLC省了大概三分之一。
所以,选PLC品牌,先看你身边的“邻居”是谁。变频器、伺服、触摸屏、温控表、仪表的品牌,往往比PLC本身更能决定你选哪个阵营。
1.3 预算、供应链和售后响应
预算不是越低越好,因为PLC的故障率虽然低,但一旦坏了,停产损失是很可怕的。自动化设备老板算账的方式很直接:停机一小时损失几千块,那500块的差价就不是差价,是保费。
国产PLC这几年进步非常大,信捷XD系列、汇川Easy系列在中小型设备上已经非常稳定,而且价格是真的香。一个国产小型PLC可能三百来块,西门子S7-1200要一千多。如果是自己做个小型工装、改造一台单机设备,国产完全够用,甚至更好——便宜、货期短、技术支持本地化。但如果是大型产线、出口设备或者客户指定品牌的招标项目,那就必须按客户要求来,这时候西门子、罗克韦尔AB、倍福这种国际品牌更占优势,因为它们的认证体系、国际化项目案例、服务网络都更完整。
还要看一个很实际的东西:周边谁能帮你。我见过一个小厂买了台二手进口设备,PLC是AB的,坏了一个输出点,找人修要等两周,因为市面上会用AB的人太少。这就是生态的代价。你身处二线城市,周围工程师全是搞三菱和西门子的,那你就老老实实搞这两个,别特立独行,否则出问题是你一个人扛。
2. 主流PLC品牌横向拆解:不吹不黑,各有各的道
把市面上最常见的几个品牌拉出来聊一圈,不排名、不分高低,只讲它们各自的特点、适合的场景和上手的成本。你可以拿个小本子记一下跟你的情况匹配的点。
2.1 西门子:工程师的瑞士军刀,但别被TIA Portal吓到
西门子在中国的工业自动化领域占有率非常高,尤其汽车、冶金、食品饮料、市政这些中大型项目里几乎是无处不在。PLC产品线从S7-200 SMART、S7-1200、S7-1500一路到S7-400,基本覆盖了从小型单机到大型工厂的全部需求。
编程软件方面,现在主流是TIA Portal(博途),统一了PLC、触摸屏、伺服驱动的组态。第一次打开博途的人常常会被它的界面吓到,感觉比三菱GX Works复杂一个量级。但其实它的逻辑很清晰:左边是项目树、中间是程序编辑区、下面是诊断和监视窗口,你要搞清楚“设备组态”“程序块”“变量表”这几个核心入口,后面就很顺了。博途里的高级语言IEC 61131-3标准支持得很好,梯形图LAD、功能块图FBD、结构化文本SCL随意切换。我个人非常推荐用SCL来做复杂算法和数据处理,比如PID、温度曲线、配方管理,写起来比梯形图清爽得多。
S7-1200和S7-1500的通信能力非常强大,自带Profinet口,想做Modbus TCP、OPC UA,库和指令都齐全。尤其是S7-1500,连OPC UA都是内嵌的,不用额外花授权费。这意味着它跟SCADA系统、MES系统、数据库的连接都是“原生的”,你不需要搞一堆中间转换盒子。
缺点呢,也很明显:贵。西门子的CPU模块、通信模块、IO模块,价格基本是对标国产的三到五倍。另外博途软件本身对电脑配置要求挺高,我以前用一台8G内存的老笔记本跑博途V15,打开一个中型项目能卡半分钟,编译一次等半天。建议至少16G内存再加固态,最好32G,否则写程序的心情会被严重影响。
2.2 三菱:老前辈的江湖地位与转型困惑
三菱PLC是很多老电工的初恋,FX系列从FX0N到FX3U,再到现在的FX5U,皮实耐用、指令简单、上手很快。很多学校的实训室和培训教材还在用三菱FX系列,所以“会三菱”几乎是老一代电工的基本功。
三菱的编程软件也经历了从FXGPWIN到GX Works2再到GX Works3的过程。FXGPWIN是给FX系列老型号用的,那个界面真的复古,居然还在网上被人到处搜下载链接,我只能说经典就是这样经久不衰。FX3U用GX Works2,FX5U和Q系列、R系列用GX Works3。GX Works3跟GX Works2的界面风格差异很大,更现代化但也更复杂,中间切换需要适应一段时间。
三菱PLC的指令系统非常有特色,比如步进梯形图、状态转移图SFC在顺序控制里有独特优势。做工序分明的设备——上料、加工、检测、下料——用三菱的SFC思路来编程,逻辑清晰得不像话。还有一个特色是它的高速计数器、脉冲输出指令,早年做定位控制的话,三菱FX是标配。
但三菱在高端数字化这条路上有点跟不上节奏,OPC UA、工业以太网、信息安全这些新东西,三菱的推广和生态建设不如西门子积极。如果你要连SCADA或者做数据采集,三菱常用的是MC协议,打包封装比较麻烦。我的经验是,如果你接手的都是老设备改造项目,三菱必须要会;如果你是新项目选型,日系品牌里可以多看一眼别的再定。
2.3 国产新势力:汇川和信捷,性价比之外的隐藏优势
这几年国产PLC增长很快,尤其是汇川和信捷两家。很多人还停留在“国产=不稳定”的旧印象里,我没法用一篇文章扭转这种观念,但可以负责任地说:在中小型控制场景,国产PLC已经非常能打了。
汇川主要是两条技术路线。一条是Easy系列、H系列这种走的是类似三菱风格的编程思路,用的软件是InoProShop,老电工上手很平滑。另一条是AM系列、中大型PLC走的是Codesys内核,这是全球范围广泛使用的IEC 61131-3开发环境,语法和生态都跟倍福TwinCAT、施耐德SoMachine同源。你如果会Codesys,等于打通了欧系和国产的一大片品牌。热搜词里有人问“汇川AM系列和威纶通通讯”,这个我处理过几次,走Modbus TCP或者汇川自有协议都行,主要是设备地址和寄存器映射要对上,后面详说。
信捷也是国产里很有特色的一家,XD系列、XL系列在包装机械、木工机械、纺织机械上量大管饱。它的编程软件XDPPro,界面有很多国产化特色,比如中文化做得很彻底,指令帮忙提示。如果你英语基础一般,信捷的软件体验对初学者极度友好。信捷跟MCGS(昆仑通态)触摸屏搭配是中小型设备里的经典组合,驱动基本都是即装即用,组态时在驱动列表里选“信捷XD系列”就能通上,地址映射也做得挺直观。
国产PLC最大的隐藏优势不只是便宜,而是服务响应速度。你买西门子遇到问题,可能要走代理渠道,等几个工作日回复;你买汇川遇到问题,可以直接找地区技术工程师,甚至能拉个小群现场远程解决。做项目有工期压力的时候,这种差别真的能救命。
2.4 其他品牌速览:倍福、松下、AB、Keba
倍福和Keba这类是PC-based控制的代表,软件平台是TwinCAT和基于Codesys的定制系统。倍福在运动控制和高速同步场景非常强大,风电、半导体、印刷机械、包装机械用的多。如果你要做的是高性能多轴联动,倍福值得深入学习。它最大的特色是“软PLC”,没有传统意义上的独立硬件CPU,控制程序运行在电脑上,通过EtherCAT总线去连接IO和驱动。这种架构扩展性极强,但入门门槛也高,对PC的稳定性、软件的实时性理解要到位。
松下的PLC在国内也有一定保有量,尤其在包装和食品机械领域。它的FP系列编程软件风格比较独特,指令库跟欧系日系都不太一样,上手需要单独适应。如果你遇到的是松下的老设备,那没办法,只能硬着头皮学它的FPWIN Pro系列软件。
罗克韦尔AB在美国市场占有率极高,但在中国相对小众。AB PLC用的是Studio 5000软件,编程逻辑跟西门子有相似之处,又有自己的体系。前面提到的那位二线城市朋友遇到的AB困局,就是典型的生态问题。如果你身处外企或者做出口美国的OEM设备,AB会很重要;否则可以先放一放。
为了让你看得更明白,我做个一张对比表,按“新人友好度”和“生态成熟度”来简单评估几个主流品牌:
| 品牌 | 软件环境 | 新人友好度 | 生态成熟度 | 典型应用场景 | 学习建议 |
|---|---|---|---|---|---|
| 西门子 | TIA Portal | 中等,界面复杂但资料极多 | 极高 | 中大型产线、汽车、食品、市政 | 首选,优先学S7-1200 |
| 三菱 | GX Works3 | 中上,指令风格清晰 | 高 | 老设备改造、中小型单机、定位控制 | 做维护必学FX系列 |
| 汇川 | InoProShop / Codesys | 高,中文支持好 | 中高 | 非标设备、伺服运动控制、中小型产线 | 国产首选,运动控制强 |
| 信捷 | XDPPro | 极高,全中文,指令提示完善 | 中 | 包装机械、木工机械、单机自动化 | 入门非常推荐 |
| 倍福 | TwinCAT | 低,需理解PC架构与EtherCAT | 中高 | 高性能多轴、半导体、风电 | 进阶后学习 |
| AB | Studio 5000 | 低,资料少且贵 | 中 | 外企项目、出口设备 | 按需学习 |
| 松下 | FPWIN Pro | 中等,生态独立 | 中低 | 包装机械、食品机械 | 遇到再学即可 |
3. 快速上手的核心方法:软件、指令、思路一体化
品牌选定之后,真正的挑战才开始。很多人拿着PLC,翻了几页手册就蒙了:这么多指令、这么多模块、这么多变量怎么搞?我的建议很明确:不要零散学指令,而是直接把软件学透,围绕一个“完整的小项目”来建立系统性认知。
3.1 先吃透编程软件,代码只是它的输出
所有PLC编程软件的核心窗口都差不多:项目管理树、编程区、变量表、输出窗口和在线监控工具。你花半天时间把软件的菜单挨个点一遍,比啃三天指令手册都有用。
以西门子TIA Portal为例。新建项目后,第一件事是“添加设备”——你选CPU型号,然后组态机架。很多人新手上手S7-1200,连“设备组态”和“程序块”的区别都分不清。设备组态是硬件物理构成的映射:哪个槽放CPU、哪个槽放通信模块、哪个口接什么网段。程序块是你要写逻辑的地方:OB100是启动组织块、OB1是主程序、OB35是定时中断,FB和FC是可复用功能块。这些概念一旦理清,后面看任何厂家的软件都事半功倍。
三菱GX Works3的操作逻辑也类似。左侧导航是“导航窗口”,里面有“参数”“PLC参数”“CPU参数”“模块参数”,程序写在“程序”“MAIN”里面。FX5U跟S7-1200最大的差异之一在于,三菱的变量处理更“随性”,你可以直接用软元件编号X0、Y0、M0、D0,也可以定义标签。而西门子更强调符号寻址,变量名即地址,IO点都通过PLC标签表来管理。
学软件的精髓是:你要能看懂“编译后的输出”。比如在博途里,你写了一段梯形图,点“编译”,下方的“编译错误”窗口会告诉你哪里语法错误、哪里变量未定义、哪里地址冲突。学会看编译日志,是积累调试能力的第一步。
3.2 从经典小项目开始,而不是从整条产线开始
我教新人最常用的练手项目是“十字路口红绿灯控制”和“四层电梯控制”。你可能会觉得:这也太简单了吧。但我跟你说,这两个项目能检验你对PLC的四大基本功:
- 定时器使用:红绿灯的时间继电器逻辑、时间戳闪烁
- 计数器与顺序控制:红绿灯状态循环切换、电梯的楼层呼叫响应排序
- 触摸屏/组态联动:外部按钮、指示灯模拟,或者接实际HMI修改时间参数
- 状态机思维:把连续运行过程拆成有限个状态,然后在状态之间有序跳转
十字路口红绿灯的经典控制逻辑是:东西方向绿30秒、黄闪3秒、红40秒,南北方向刚好反相。用梯形图写,最直接的方式是搞几个TON定时器串联,T1计时30秒到,切状态,T2再走3秒,等等。但如果你用三菱的SFC或者西门子的SCL,写出来的代码量会少很多,逻辑也更清晰。这里要强调的是:同一个功能,不同品牌的写法不同,但思路一致——分状态、定时间、跳条件、互锁保护。
四层电梯控制程序更有意思,它涉及“外呼请求”“轿内按钮”“当前位置判断”“同向优先响应”这些概念。哪怕是简版逻辑,写出来也会让你对PLC的位逻辑处理有质的提升。建议你直接把这两个项目做出来、仿真跑通、看监控,然后把逻辑改成自己的版本,加上故障保护信号(比如红绿灯还有一个“夜间黄闪模式”),这才是真的学进去了。
3.3 模拟器是快速上手的最好老师,但要用对
仿真功能是自学者最伟大的朋友。西门子有PLCSIM和PLCSIM Advanced,三菱有GX Works3自带的仿真器,博途里可以直接启动仿真并写入程序,几乎能做到“无硬件验证逻辑”。很多公司的工程师在交付前也是先仿真的。
但热搜里有一个特别高频的问题:S7-PLCSIM Advanced的实例启动不了、没有报错,或者直接报Error11。我遇到过太多次,基本都是几种原因:一是软件版本不匹配,TIA Portal V15跟PLCSIM Advanced V3.0用着可以,换到V16就得升级V4.0,版本差一级就会莫名其妙起不来;二是虚拟网卡没配置好,PLCSIM Advanced依赖虚拟以太网卡,如果没装或者驱动不对,实例就会启动失败,还不会给你明确提示;三是防火墙阻拦了通信端口。解决办法按顺序排查:先确认版本对应关系,再重装虚拟网卡驱动,然后关掉Windows防火墙或加白名单。有个更省心的办法:如果你只是练逻辑,直接用PLCSIM基础版(就是博途集成的那版)就够了,没必要上Advanced,因为基础版不需要这些复杂的网络配置。
三菱的仿真器在GX Works3里叫“三菱综合仿真”,点击“调试”菜单里的“模拟”,下载到虚拟PLC后就可以在线监视。它的优势是兼容性好,装了就能用,不用配置网络,对新人极友好。缺点是有些指令在仿真器中模拟不到真实硬件特性,比如高速计数、脉冲输出,这种还是得上实物。
3.4 网上是怎么快速学会程序编写的?
多练、多抄、多改,这是最快路径。你去搜“PLC程序编写”,出来的教程和视频成千上万,但质量参差不齐。我建议你看的时候抓住核心:不要背指令,背“结构”。看一段别人写的程序,先问三个问题:第一,程序整体分几个部分?(初始化、主逻辑、报警、通信)第二,主逻辑是什么结构?(顺序控制?循环控制?状态跳转?)第三,报警和互锁放在哪里?(互锁是PLC编程的灵魂,安全第一)
比如基于西门子PLC的大棚灌溉控制系统,网上有很多实例。核心结构无非是:启动条件判断(湿度传感器低于阈值)→ 控制逻辑(打开电磁阀、启动水泵)→ 反馈确认(流量开关检测)→ 超时保护(10分钟没达到目标就报警停机)。你套这个思路,几乎可以改造成任何环境监控项目:温室、养殖场、冷库、机房。
另外,现在AI代码生成也很火,有人用来生成PLC程序。我的观点是:可以用,但前提是你能看懂代码。因为AI生成的结构化文本可能逻辑正确,但会有一些不符合实际设备地址映射的地方,你如果不懂底层,很容易被带沟里。把它当助手,不要当老师。
4. 打通通信和人机组态:从单机控制到系统控制的必由之路
很多人学PLC学到能做简单控制就觉得“完事”了,但真实的工业项目从来不是一台PLC独自战斗。你要么要连触摸屏,要么要连SCADA,要么要连其他PLC和设备。通信是进阶时最大的一道坎,也是最容易出问题的地方。
4.1 SCADA与PLC连接:点位映射是所有可视化的核心
SCADA(数据采集与监控系统)跟PLC连接,本质上就三件事:物理链路通不通、协议对不对、点位映射关系准不准。物理链路通常是以太网或者串口,协议得双方都支持,点位映射则考验你对PLC内存地址的熟悉程度。
以西门子为例,SCADA系统(比如WinCC、组态王、力控,甚至ThingsBoard这类开源平台)连接S7-1200/1500,最常用的是SIMATIC S7协议走TCP/IP。在WinCC里建变量时,“连接”选好,然后填“数据地址”,比如DB1.DBD0对应PLC里的一个实数。很多人在这一步被卡住,是因为忘了西门子的寻址方式是“DB块+偏移地址”,跟三菱那种简单的D100、M50完全不同。我建议你画一个地址映射表,把PLC变量、数据类型、绝对地址、SCADA侧变量名一栏一栏列出来,宁可慢一点,不要跳到程序里东改一个西改一个。
如果你用的是国产SCADA,比如组态王,连西门子PLC有很多驱动选项:MPI、PPI、Profinet、Modbus TCP等。我个人强烈推荐你用Modbus TCP来连,原因很简单:配置最简单,映射最直观,不会遇到底层驱动不稳定的问题。先把PLC当Modbus Server,把要读的变量统一映射到一个保持寄存器区间,然后SCADA侧按Modbus地址填就行。虽然西门子原生走Modbus要做些地址映射的额外组态,但换来的是整个系统的调试效率。
4.2 用C#开发上位机读取PLC数据:频率和延迟要心里有数
现在越来越多的工控项目不局限于SCADA,而是用上位机软件(C#、Python、Java)直接跟PLC交互。热搜里有人问“C#读取PLC频率多少”,这个问题问得很实在。
C#读取PLC(以西门子S7协议为例),推荐用开源库S7netplus。这个库封装了底层通信协议,你只需要指定IP、机架号Rack和槽号Slot,然后调用Read/Write方法读变量。读的频率取决于你轮询的点数和网络的实时性。我实测下来的经验是:常规每秒10到20次的轮询完全没有问题,如果你只读十几个点位,跑个50毫秒周期(即20Hz)都很稳。但要小心,如果你把读取频率拉到5毫秒一次,而且点位很多,CPU使用率会飙升,还可能影响PLC的通信处理,甚至导致上位机卡死。工控行业里有个词叫“不要敲打PLC”,就是说轮询别太暴力,要懂得“量力而行”。
更好的做法是利用PLC的主动上报机制。S7-1500支持OPC UA Server,连接后上位机可以订阅变量变化,数据一变化就推送过来,不需要反复查询。这样通信压力极小,响应也快,还能做复杂的跨平台集成。C#里接入OPC UA有现成的库(比如Opc.Ua.Core),但需要你花点时间学习OPC UA的浏览树、节点ID这些概念。
4.3 触摸屏驱动找不到?大概率是协议选型问题
热搜里两个非常典型的问题:“威伦通触摸屏软件上找不到汇川PLC的驱动”和“MCGS与信捷PLC的驱动”。这类问题很常见,原因是品牌间驱动列表可能不叫你想的那个名字。
威伦通(Weinview)的EB Pro软件支持很多PLC的驱动,但汇川PLC你需要按型号区分。汇川Easy系列走Modbus协议,那在威伦通里选“Modbus RTU”或者“Modbus TCP”就行,IP和站号设对,不用选“汇川”这个名字。汇川AM系列走EtherCAT或者Modbus TCP,通常也是用通用驱动。所以你在驱动列表里搜不到“汇川”两个字,不代表不支持,只是要以协议为导向来找。
MCGS(昆仑通态)连接信捷PLC也很类似。有些型号走专用协议,有些走Modbus。我的建议是:能不专用就不专用,能走Modbus就统一走Modbus。把PLC里的数据映射到固定的保持寄存器区间,触摸屏侧用Modbus驱动访问,一套配置通吃所有品牌。这个思路对做设备配套的朋友特别有用,因为你不确定客户指定什么触摸屏,但你只要保证PLC常年开放一个Modbus从站接口,任何支持Modbus的设备都能接。
4.4 汇川AM系列与威纶通的通信配置实操
这里专门把汇川AM系列和威纶通通信的配置流程拉出来捋一遍,因为不少人私信问过。
AM系列PLC基于Codesys,支持多种通信协议。与威纶通通信最常规的方式是Modbus TCP。步骤分四步:
- 第一步,在AM的PLC程序里,创建一个“Modbus TCP Server”或类似功能块,把需要触摸屏访问的数据(速度、报警状态、温度等)映射到可访问的保持寄存器地址区间。
- 第二步,打开威纶通的EB Pro,在“系统参数”里新增“设备”,选择驱动为“Modbus TCP”,填写汇川AM的IP地址。
- 第三步,在EB Pro的“设备列表”里创建变量,地址按300001或4x0001这样的Modbus地址格式来填。注意:不同触摸屏的Modbus地址表达方式差别很大,有些是0开头,有些是1开头(0和1的区别是对应Modbus协议里的0基地址和1基地址),如果不通,记得试试加减1。
- 第四步,把触摸屏站号设成跟AM的Modbus Server一致,默认是255或者1,你要看PLC里设定的。
如果通信不上,检查顺序是:物理网线通不通(先Ping一下IP)→ PLC端的Modbus Server有没有运行(在线监控看连接状态)→ 触摸屏的站号和寄存器地址对不对。按照这个顺序,至少能解决九成问题。
5. 实操中的常见问题与排查技巧:这些坑,走一遍踩一遍才记住
最后把一些高频问题集中整理一下,作为一份“避坑速查表”。本人干自动化这几年,踩过不少坑,有的是炸了现场才知道的,希望你能直接跳过。
5.1 S7-PLCSIM Advanced启动不了
前面提到过,这里把排查逻辑再细化一点。Error11这个错误在PLCSIM Advanced V4.0里遇到过,核心原因有两个:一是虚拟以太网适配器问题,二是实例名称问题。PLCSIM Advanced要求你有可用的虚拟网卡支持“软PLC”的网络通信。你打开“控制面板”查看网络适配器,如果看不到“TAP-Windows Adapter V9”或者类似虚拟网卡,说明驱动没装好;如果装好了,看它的属性,确保TCP/IP协议是启用的。
另外,PLCSIM Advanced的实例名要跟你组态的PLC设备名对应。有人图省事随便起个名字,结果启动实例时系统找不到设备,于是报错却“没有报错信息”——因为它到某个内部步骤就静默失败了。打个比方,你叫张三,别人喊李四,你当然不会答应。
如果以上都排除了,就考虑版本匹配问题。TIA Portal V17请匹配PLCSIM Advanced V4.0以上,V18对应V5.0以上,不要跨版本混用。厂商文档里有一个兼容性表格,学软件前先看一眼,省掉一半折腾。
5.2 变频器与PLC通信的参数匹配问题
ABB变频器与西门子PLC的样例特别多,但还是有人连不上。最容易被忽略的是变频器侧的控制字和状态字。ABB变频器走Modbus RTU时,控制字在地址40001/40002,状态字在40003/40004。你需要先写控制字启动变频器(比如十六进制047F表示准备、启动、使能),然后还要通过速度给定地址(通常是40005/40006)发频率指令。这个“先解除封锁再启机”的顺序,稍微错一步,变频器就毫无反应。我用一个生活类比来解释:变频器就像一台带安全锁的机器,你得先按“解锁”再按“开始”,锁没解开,按多少次开始都没用。
调试技巧:不要直接在PLC程序里猛调,先用厂商的调试软件(比如ABB的Drive Composer)把这台变频器单独转起来,确认通信链路是好的,再去PLC里写逻辑。把变量拆开验证,永远是排障的王道。
5.3 PLC莫名其妙宕机
“导致PLC宕机”这个话题在热搜里出现,说明很多人遇到过这种灵异事件。PLC本来应该是极其稳定的设备,但如果出现反复重启、程序丢失、运行灯闪烁,通常离不开几个原因:电源质量差、接地不良、程序里有非法操作(死循环或指针越界)或者通信风暴。
电源和接地是重灾区。我之前去一个客户现场修宕机问题,换了三块PLC,最后发现是车间里一台大功率变频器干扰太强,PLC的24V电源又没有隔离,导致主板反复复位。解决办法:PLC电源单独走隔离变压器,或者加装直流稳压模块,通信线用屏蔽双绞线,屏蔽层单端接地。
程序层面的问题也常见。比如写了死循环(看门狗超时)、数组越界(代码拼命写一个不存在的地址)、或者以太网通信的报文太密集导致阻塞。排查时先用PLC的诊断缓冲器看停机原因,很多品牌都记录最后几次停机的故障代码和状态。比如西门子S7-1500的诊断缓冲区会直接告诉你“看门狗超时”“编程错误”还是“硬件故障”。把诊断信息导出来看,比瞎猜强得多。
5.4 时间到期自动停机:保护知识产权的常见需求
还有一个热搜词是“PLC怎么设置时间到期自动停机”,说实话这个需求通常是设备厂商做“分期付款”用的:客户付清全款前,设备到了约定时间就停机锁机。这里我只讲技术实现,不讲商业争议。
实现方式无非两种:一是给PLC加实时时钟(RTC),程序里读当前日期时间,跟预设的到期时间比较,到期后用一个M继电器把主控程序锁死;二是利用PLC的保持寄存器存储一个“运行天数”,每次开机累加,超过阈值就锁机。但要注意一个重要细节:PLC断电后日期时间靠什么维持。S7-1200和FX5U这类自带电池或超级电容的型号,断电后RTC还能跑;但一些国产小PLC,断电后RTC会回到默认时间,如果程序只用“当前时间是否超过到期时间”判断,客户把PLC断电几天再上电,很容易绕过。所以更稳的做法是把“到期时间”本身写进保持区,并且结合“上电次数”和“总运行时间”多个维度来综合判断。
5.5 快速定位:配一张常见问题排查速查表
这里我把前面整理的经验浓缩成一张速查表,方便你现场参考:
| 现象 | 大概率原因 | 优先排查方向 |
|---|---|---|
| PLCSIM Advanced启动报Error11 | 版本不匹配或虚拟网卡故障 | 检查TIA与PLCSIM版本对应表,重新安装虚拟网卡 |
| 仿真无报错但启动不了 | 实例名与设备名不一致 | 核对实例名、设备名、IP地址 |
| 触摸屏搜不到PLC品牌驱动 | 驱动以协议命名,如Modbus | 改用Modbus TCP/RTU驱动,不要搜品牌名 |
| 通信偶发断连 | 接地不良或通信线未屏蔽 | 检查屏蔽层单端接地、信号线远离动力线 |
| 变频器无法启动但无故障 | 控制字顺序不对 | 用变频器调试软件单独验证,再走PLC逻辑 |
| PLC反复重启 | 电源质量差或干扰严重 | 加隔离变压器、稳压模块,检查接地 |
5.6 秀才的选型经,最终落到这七个字
绕了一大圈,回到本文的题目:如何选择PLC品牌快速上手?我的回答可以压缩成七个字:跟着你的场景走。你的车间什么设备最多,你未来的项目用什么驱动器和触摸屏,你身边谁能给你答疑,这些才是真正决定你“上手快不快”的因素。
我个人在实际操作中的体会是,不要试图做一个“全品牌通吃”的高手,那是神话,不现实。人的精力有限,你把西门子的S7-1200搞到能熟练组态、通信、写运动控制程序、处理故障,就能养活一家小公司了。如果有余力,再用Codesys那条线去打通国产阵营——你会发现之前学的很多东西都能平移过去,因为工业自动化的底层逻辑从来都是一样的:输入、输出、逻辑、状态、通信。品牌只是外衣,剥开之后的内核几十年都没变过。
最后再分享一个小技巧:选了一个品牌后,前三周就只跟这个品牌的软件和模拟器死磕,别中途换阵地。把软件菜单点熟,把红绿灯和电梯两个项目各写两遍,把模拟器的启动和下载流程走到闭着眼都能操作。三周之后你再看别的品牌的PLC,会有一种“天下武功殊途同归”的通透感。