非自动化专业如何自学PLC?我的6个月学习路线图

0.前言

之前从嵌入式软件接触到PLC控制器编程,一开始只是了解到简单的梯形图编程。

后面在逐渐学习的过程中发现PLC的使用场合很多。可以说只要是在长时间稳定运行的场合都会涉及到PLC的程序控制。

之前只是在嵌入式领域的学习,其实通过这次机会也从侧面扩展了自己的工作能力和学习的边界,对于整个工业控制领域和自动化领域有了一次全面的认识。借这次机会和CSDN的这个平台进行技术分享和学习,同时也是自己的一份wok记录,希望对广大技术从业者有所启发,在人生的路途中不断开拓新的边界,新的观点和视角。

1.PLC的历史

Programmable Logic Controller可编程逻辑控制器(PLC)的历史是一部工业控制技术从硬接线继电器向数字化、网络化、智能化演进的缩影。

一、诞生背景:继电器时代的困境(1960年代之前)

在PLC出现之前,工业自动化完全依赖继电器逻辑控制系统。控制室内布满成墙的继电器、端子排和密密麻麻的电线,每次产线调整或车型变更都需要重新布线,耗时数周甚至数月。

1968年,通用汽车(GM)自动变速箱分部(Hydramatic)的 Bill Stone 在西屋机床论坛上提出了"标准机器控制器"的概念,并列出详细的技术规格------这就是后来著名的"通用十条"(GM Ten Specifications)。核心诉求很明确:用固态可编程设备取代机械继电器,实现快速重新编程、模块化扩展和高可靠性。

二、破晓时刻:三大原型机的角逐(1968--1969)

通用汽车的招标吸引了多家公司参与,最终有三家交付了原型机进行实测:

Bedford Associates 由 Dick Morley(被誉为"PLC之父")等人于1964年创立。1968年他们成立子公司 Modicon(Modular Digital CONtroller 的缩写),并于1969年11月交付了第84个项目原型机,故名"084"。

关键胜负手:Modicon 084 采用梯形图逻辑(Ladder Logic)编程,这让熟悉继电器电路的工厂工程师和电工能够无缝过渡;而DEC和3-I的产品使用布尔值编程,对现场人员门槛过高。

三、第一代PLC:固态继电器的革命(1970年代)

1970年代是PLC从概念验证走向实用化的关键十年。

技术特征:

• 采用分立元件(存储芯片、ALU、缓冲器),而非微处理器------英特尔4004直到1971年才投产。

• 以离散量I/O控制为主,扫描时间以每KB逻辑数十至数百毫秒计。

• 编程通过手持编程器(如PP105)或专用终端完成,程序备份使用磁带。

竞争格局形成:

• Modicon:1973年推出184,1975年推出284,逐步完善产品线。

• Allen-Bradley:1969--1971年通过收购Information Instruments Inc.和Bunker-Ramo的数控部门进入市场。1971年,Odo Struger 博士团队开发出梯形图图形用户界面,并首创了"Programmable Logic Controller(PLC)"这一术语。AB最初将"PLC"注册为商标,后因行业普遍采用而成为通用名称。

• 西门子:1979年左右推出S3系列,配备七段数码管用于I/O监控,随后被影响深远的S5系列取代。

通信萌芽:1973年,Modicon推出了Modbus协议,使PLC之间能够远距离通信,模拟量也开始介入控制。

四、第二代PLC:微处理器与通信时代(1980年代)

1980年代是PLC技术爆发式增长的黄金期,年增长率一度达到30--40%。

核心突破:

• 微处理器普及:1977年首款基于微处理器的PLC问世,到80年代微处理器已成为标配,运算速度和内存容量大幅提升。

• 编程标准化萌芽:通用汽车推动的 MAP(Manufacturing Automation Protocol) 试图统一工厂自动化通信协议。

• HMI革命:个人电脑(PC)和CRT显示器开始取代控制面板上的按钮和指示灯,图形化监控成为现实。

• 小型化:出现"Brick"型微型PLC,体积与工业继电器相当。

代表产品:

• Modicon 884/984(约1985--1987年):第五代旗舰产品,确立了现代PLC的许多编程惯例。

• Allen-Bradley 1771系列:并行远程I/O系统获得巨大成功。

• 西门子S5系列:S5-95U、S5-100U、S5-115U等成为欧洲工业界部署最广泛的PLC家族之一。


五、第三代PLC:标准化与网络融合(1990年代)

1990年代PLC进入成熟期,关键词是标准化和开放系统。

里程碑事件:

• 1993年:IEC 61131-3 国际标准正式发布(第二版于2001年成为国际标准),定义了五种编程语言:梯形图(LD)、功能块图(FBD)、顺序功能图(SFC)、指令表(IL)和结构化文本(ST)。

• PLCopen组织成立,负责认证各厂商编程语言与IEC 61131-3的符合性。

• 以太网对等网络普及,EEPROM和闪存取代EPROM。

• PLC与DCS融合:PLC开始大规模进入过程控制领域,在某些应用上替代传统DCS系统。

• 安全PLC:出现具备三重冗余(TMR)架构的安全PLC,用于高安全等级场合。

技术特征:

• 运动控制、数据采集、PID调节等功能高度集成。

• 内置诊断工具支持预测性维护。

• 从专有协议向开放网络过渡。


六、第四代PLC:PAC与工业以太网(2000年代)

进入21世纪,PLC制造商经历了一轮大整合(如施耐德1997年收购Modicon),产品形态向可编程自动化控制器(PAC)演进。

核心特征:

• 高速处理:CPU性能大幅提升,支持复杂算法和实时控制。

• 工业以太网:Profinet、EtherNet/IP、Modbus TCP等成为主流。

• 无线通信与现场总线系统深度融合。

• 网络安全:开始引入工业防火墙、访问控制等安全机制。

• 人机界面升级:LCD触摸屏全面取代CRT。


七、当代与未来:工业4.0与边缘智能(2010年代至今)

今天的PLC已不再是孤立的逻辑控制器,而是工业互联网(IIoT)和工业4.0架构中的边缘节点。

当前趋势:

• OPC UA:成为跨厂商数据互操作的标准协议,如西门子S7-1500系列内置Profinet接口并支持OPC UA。

• 边缘计算:PLC本地处理80%以上的现场数据,仅将关键信息上传云端。

• AI集成:三菱iQ-R系列等高端PLC已搭载AI算法,实现预测性维护。

• 国产替代:汇川技术H3U系列等国产PLC已突破16轴联动控制,进入高端应用领域。

未来方向:向更小型化、模块化、智能化演进,与数字孪生、5G、TSN(时间敏感网络)深度耦合,成为智能制造的"隐形指挥官"。

2.国内主流PLC厂家

国内PLC市场目前呈现"外资主导、国产快速崛起"的格局。西门子、三菱、欧姆龙等外资品牌仍占据约55%的市场份额,尤其在大型PLC领域形成垄断;但国产品牌凭借高性价比、快速响应和生态协同,在中小型PLC市场已实现显著突破。以下是按梯队划分的主流国产PLC厂家:

一、头部品牌(第一梯队)

  1. 汇川技术(Inovance)
    • 市场地位:国产PLC龙头,小型PLC市场占有率超20%,位居国产首位。
    • 核心优势:"PLC+伺服+变频"一体化解决方案,生态协同效应极强。H5U系列采用ARM Cortex-A9处理器(400MHz主频),支持EtherCAT总线,年出货量超15万台。
    • 代表产品:H1U/H2U(小型)、H3U(中型,已突破16轴联动)、H5U(中型,支持EtherCAT)
    • 优势行业:新能源、物流自动化、纺织机械、电梯、锂电设备
  2. 台达(Delta,中国台湾)
    • 市场地位:台系自动化代表,在国内中小制造企业及东南亚市场渗透率高,市场份额约15%。
    • 核心优势:产品线覆盖工控全场景,与自家变频器、温控器、HMI深度集成;编程软件ISPSoft与三菱Works3相似,迁移友好。
    • 代表产品:DVP系列(小型)、AH系列(中大型)
    • 优势行业:恒压供水、中央空调、包装机械
  3. 信捷电气(XINJE)
    • 市场地位:国产经济型PLC标杆,市场份额约12%,在纺织、包装机械领域市占率领先。
    • 核心优势:高性价比、编程软件Works3上手门槛低、针对国内常见设备(如水箱式包装机)提供现成程序库,调试效率极高。全国设有20余个办事处,服务响应快。
    • 代表产品:XC/XD系列(小型,XD支持最多16路高速脉冲输出)
    • 优势行业:纺织、机床、建材、包装、塑料机械
  4. 和利时(HollySys)
    • 市场地位:国产大型PLC的代表品牌,流程工业与重大装备控制的"国之重器"。
    • 核心优势:LK系列PLC在火电、化工、地铁、核电等关键领域广泛应用;冗余容错、安全仪表系统(SIS)技术深厚,满足最高级别安全标准。
    • 代表产品:LK系列(大型PLC)、LE系列(小型PLC)
    • 优势行业:轨道交通、电力、石化、市政基础设施
    二、中坚力量(第二梯队)
  5. 中控技术
    • 定位:与和利时齐名的流程自动化厂商,DCS领域国产替代主力。
    • 特点:在石化、电力行业成功实施大量标杆项目,PLC+DCS混合架构能力强。
  6. 禾川科技
    • 定位:伺服驱动与PLC协同开发,运动控制领域新锐。
    • 特点:高度集成化方案,在起重、冶金、半导体设备领域定制化能力突出。
  7. 英威腾
    • 定位:变频器起家,PLC与驱动集成方案成熟。
    • 特点:上市公司背景,在起重、冶金等领域应用广泛。
  8. 联诚科技
    • 定位:自主可控工业控制器与解决方案服务商。
    • 特点:LicOS PLC系列采用自主操作系统,专利50+,聚焦国产替代与数字化转型。
  9. 永宏(FATEK,中国台湾)
    • 定位:老牌PLC厂商,用户界面友好,编程简便。
    • 特点:在机械设备制造领域有稳定客户群,但近年被汇川、信捷替代较多。
  10. 丰炜(Vigor,中国台湾)
    • 定位:台湾最大PLC生产商之一。
    • 特点:产品以耐用性和抗干扰能力著称,在大陆市场与日系设备配套较多。
    三、细分领域专家(第三梯队)

    3.国外主流PLC厂家
    国外PLC市场呈现高度集中的寡头格局,前五大厂商(西门子、罗克韦尔、三菱、施耐德、ABB)合计占据全球约60%的收入份额。以下按市场地位和影响力分梯队介绍:
    一、全球霸主(第一梯队)
  11. 西门子(Siemens)--- 德国
    • 全球份额:约 31--40%,连续多年稳居全球第一。
    • 核心优势:生态系统最完整,TIA Portal(博途)集成开发环境覆盖从编程到HMI、驱动、安全的全链路;PROFINET工业以太网生态成熟;数字孪生(NX MCD)与MindSphere IIoT平台领先。
    • 代表产品:
    o S7-1200:紧凑型,集成Web服务器和模拟量I/O,性价比首选。
    o S7-1500:旗舰级,1 ns/bit指令速度,支持SIL3安全、TSN-ready PROFINET、TensorFlow Lite边缘AI。
    o ET 200SP:分布式I/O,支持热插拔和IO-Link。
    • 强势领域:汽车整车、电池制造、制药、能源、流程工业。
    • 区域格局:欧洲绝对主导,中国中小型PLC市场半壁江山,北美持续扩张。
  12. 罗克韦尔自动化 / 艾伦-布拉德利(Rockwell Automation / Allen-Bradley)--- 美国
    • 全球份额:约 17--22%,北美市场绝对霸主。
    • 核心优势:ControlLogix/CompactLogix平台可靠性极强;EtherNet/IP生态(CIP协议)在北美制造业根深蒂固;Studio 5000编程环境对多语言支持友好;FactoryTalk云分析、MES和远程诊断服务贡献约32%的经常性收入。
    • 代表产品:
    o ControlLogix 5580:45 MB内存,双1 Gbit EtherNet/IP,原生Python脚本,SIL3安全集成,北美大型离散控制"黄金标准"。
    o CompactLogix 5380:紧凑型高性能,集成运动控制。
    • 强势领域:汽车制造(福特、特斯拉产线)、轮胎、食品饮料、半导体设备。
  13. 三菱电机(Mitsubishi Electric)--- 日本
    • 全球份额:约 11--14%,亚太市场(尤其日本、韩国、中国)强势。
    • 核心优势:运动控制精度极高,伺服+PLC+机器人垂直整合能力强;CC-Link IE TSN网络确定性性能优异(31.25 µs周期);拥有超20,000项自动化专利。
    • 代表产品:
    o MELSEC iQ-R:0.98 ns指令执行,支持4,096轴同步,内置AI推理,用于三星/台积电3nm晶圆厂、丰田产线。
    o FX5U/FX5S:紧凑型,34 ns指令,双以太网,亚洲OEM设备性价比之王。
    • 强势领域:汽车装配、半导体制造、锂电池(CATL)、3C电子、包装机械。
  14. 施耐德电气(Schneider Electric)--- 法国
    • 全球份额:约 8--10%,欧洲第二,Modicon品牌历史悠久。
    • 核心优势:EcoStruxure机器架构深度融合能源管理与自动化;性价比高,产品线覆盖微型到大型全系列;在基础设施和能源领域根基深厚。
    • 代表产品:
    o Modicon M580:大型PLC,内置以太网,支持Modbus TCP、PROFIBUS、EtherNet/IP。
    o Modicon M340:中型。
    o Modicon TM系列:小型。
    • 强势领域:基础设施、数据中心、能源管理、水处理、OEM机械设备。
  15. ABB --- 瑞士/瑞典
    • 全球份额:位列前五大厂商之一,过程自动化领域根基深厚。
    • 核心优势:PLC与DCS(AC800M/AC500)融合能力强;在电力、机器人、过程控制领域拥有完整解决方案;安全系统(SIL3/AK6)经验丰富。
    • 代表产品:AC500系列、AC800M(与DCS集成)。
    • 强势领域:电力、冶金、化工、机器人集成、过程工业。

二、技术专精型强者(第二梯队)

  1. 欧姆龙(Omron)--- 日本

• 特点:技术精密,集成控制能力强,在半导体、电子制造领域渗透率高。PLC与视觉、传感、安全产品协同出色。

• 代表产品:NX系列(中型)、CP系列(小型)。

• 适用领域:半导体、电子组装、食品医药、轻工业自动化。

  1. 倍福(Beckhoff)--- 德国

• 特点:PC-Based控制(基于Windows的软PLC)先驱,EtherCAT总线技术发明者,性能极致,开放性最强。

• 代表产品:CX系列嵌入式控制器、TwinCAT软件平台。

• 适用领域:高端设备、测试台架、大数据量处理、科研及定制化产线。

  1. 艾默生(Emerson)--- 美国

• 特点:过程控制领域经验丰富,PLC常与DCS(DeltaV、Ovation)配合使用。

• 代表产品:PACSystems RX3i。

• 适用领域:石油天然气、化工、电力。

  1. 基恩士(Keyence)--- 日本

• 特点:以传感器和视觉起家,PLC与测量、检测、扫码设备高度集成,"即插即用"体验极佳,溢价高。

• 代表产品:KV系列。

• 适用领域:3C电子、汽车部件检测、精密装配。

  1. 松下(Panasonic)--- 日本

• 特点:小型PLC性价比高,与自家伺服、传感器生态绑定紧密。

• 代表产品:FP系列。

• 适用领域:家电制造、小型设备、电子组装。

  1. 博世力士乐(Bosch Rexroth)--- 德国

• 特点:运动控制与液压技术背景深厚,ctrlX AUTOMATION平台倡导"智能手机式"自动化APP生态。

• 代表产品:ctrlX CORE。

• 适用领域:高端机床、压铸、注塑、物流。

  1. 贝加莱(B&R,已被ABB收购)--- 奥地利

• 特点:高端PC-Based控制,Automation Studio开发环境强大,在印刷、包装、塑料机械领域有极高声誉。

• 代表产品:X20系列、APC系列。

• 适用领域:高端包装、印刷、纺织机械。

三、其他重要玩家

外资PLC的核心护城河在于生态锁定(编程软件、通信协议、驱动/HMI配套)和长期可靠性验证。对于新建大型项目或对安全性要求极高的场合,西门子、罗克韦尔、三菱仍是多数企业的稳妥之选。

4.PLC学习及使用记录

一开始进行接触PLC编程的设备是西门子的S7-1200PLC,西门子PLC的编程是使用博途软件进行操作。里面涉及到PLC的一些参数定义,程序框架的搭建,不同设备之间的组态等操作。150 KB 工作存储器;24VDC 电源,板载 DI14 x 24VDC 漏型/源型,DQ10 x 24VDC 和 AI2;板载 6 个高速计数器和 4 个脉冲输出;信号板扩展板载式 I/O;最多 3 个通信模块用于串行通信;最多 8 个信号模块用于 I/O 扩展;PROFINET IO 控制器,智能设备,TCP/IP 传输协议,开放式用户安全通信,S7 通信,Web 服务器,OPC UA:服务器 DA。博途软件配置如下:

内部数据传输如图所示:

PLC与外部设备连接的示意图:

一般的PLC的程序逻辑:

PLC之间的通信关系:

功能块的一些含义和演示:

PLC主程序和子程序以及功能块之间的调用关系,主要是理解FB和FC之间的一些区别和联系。

在一个系统中可以创建几个不同的OB,每一个OB都相当于是一个mian函数。

怎么将每一个不同的功能的通信组块进行分组?也可以使用SCL自动创建一个功能函数,然后在下一次使用的时候就可以进行直接调用。

PLC编程中的数据长度定义:

PLC与外部伺服驱动器之间的连接示意图:

PLC的导轨安装示意图:

两个PLC之间的通信示意图:

PLC的学习也需要了解一些电气知识,比如一些IO点位和电机或者继电器的连接等:

日常练习的一些使用梯形图方式编程的PLC程序段:

在汇川的中型PLC编程中可以使用ST语言进行编程,其实是类似于西门子里面的SCL语言的。我的感觉是随着技术的进步,目前的趋势是PLC的编程正在往高级语言编程的方向靠拢。现在对日常的一些练习和学习进行一个整理:

进行CPU机架的组态,除了CPU的机架还有EtherCAT的机架配置等:

可以在main_task中进行自己的程序框架的搭建,添加一些自己的任务。比如手动,自动,设备暂停,设备二次启动等情况。在PLC编程中对于FB块封装尤为关键。好的FB块的封装可以让程序的执行更加高效。

还有学习了一下倍福的相机的标定过程和坐标的转换关系:校准成功,点击"写入结果"将结果写入相机的图像提供器。此步骤是必要的,以便PLC中的FB_VN_GevCameraControl 相机功能块能够访问校准结果。在图像提供程序中,选中"显示隐藏参数"选项,可在"参数(初始化)"下查看校准结果。将校准结果加载到PLC中。

c 复制代码
FB_VN_GevCameraControl 功能块可用于将校准参数加载到 PLC 中
hr                        :   HRESULT;
fbCamera                  :   FB_VN_GevCameraControl;
aCameraMatrix             :   TcVnMatrix3x3_LREAL;
aDistortionCoefficients   :   TcVnArray8_LREAL;
aRotationMatrix           :   TcVnMatrix3x3_LREAL;
aTranslationVector        :   TcVnVector3_LREAL;

hr := fbCamera.GetCameraMatrix(aCameraMatrix);
hr := fbCamera.GetDistortionCoefficients(aDistortionCoefficients);
hr := fbCamera.GetRotationMatrix(aRotationMatrix);
hr := fbCamera.GetTranslationVector(aTranslationVector);

将像素坐标转换成世界坐标:

然后使用 F_VN_TransformCoordinatesImageToWorld_Points 函数,根据校准图案的零点,确定图像中某一点在真实世界中的坐标

c 复制代码
aPointImage               :   TcVnPoint2_LREAL;
aPointWorld               :   TcVnPoint3_LREAL;

hr := F_VN_TransformCoordinatesImageToWorld_Point(
        aSrcPoint                 :=  aPointImage, 
        aDestPoint                :=  aPointWorld, 
        aCameraMatrix             :=  aCameraMatrix, 
        aDistortionCoefficients   :=  aDistortionCoefficients, 
        aRotationMatrix           :=  aRotationMatrix, 
        aTranslationVector        :=  aTranslationVector, 
        fZ                        :=  0, 
        hrPrev                    :=  hr);

将世界坐标转换成图像坐标:

可以通过 F_VN_TransformCoordinatesWorldToImage_Points 函数逆转此变换,从而将世界坐标系中的点进行变换,使其能在图像中显示在正确的位置。这对于显示辅助线以更好地定位图像非常有用。

c 复制代码
i                         :   INT;
aLine                     :   TcVnVector4_DINT;
aCoordinatesWorld         :   ARRAY[0..4] OF TcVnPoint3_LREAL := [ [0,0,0], [50,0,0], [-50, 0, 0], [0, 50, 0], [0, -50, 0] ];
aCoordinatesImage         :   ARRAY[0..4] OF TcVnPoint2_REAL;
FOR i:= 0 TO 4 DO
    hr := F_VN_TransformCoordinatesWorldToImage_Point(
            aSrcPoint                :=  aCoordinatesWorld[i],
            aDestPoint               :=  aCoordinatesImage[i],
            aCameraMatrix            :=  aCameraMatrix,
            aDistortionCoefficients  :=  aDistortionCoefficients,
            aRotationMatrix          :=  aRotationMatrix,
            aTranslationVector       :=  aTranslationVector,
            hrPrev                   :=  hr);

    IF i > 0 THEN
        aLine[0] := REAL_TO_DINT(aCoordinatesImage[0][0]);
        aLine[1] := REAL_TO_DINT(aCoordinatesImage[0][1]);
        aLine[2] := REAL_TO_DINT(aCoordinatesImage[i][0]);
        aLine[3] := REAL_TO_DINT(aCoordinatesImage[i][1]);
    hr := F_VN_DrawLine_TcVnVector4_DINT(aLine , ipImageRes, aColorGreen, 3, hr);
    END_IF    
END_FOR

5.总结

最近这大半年从零开始接触PLC。从中通过自学和向行业内的老师请教,逐渐加深了对于电气自动化或者说是自动化控制专业的理解程度。开始的时候从西门子的S7-1200开始入手,后面学习了一段时间的梯形图编程,之后接触到SCL语言。然后了解到倍福PLC的一些知识和特点。在日常的一些工作中使用到了国产的一些PLC,是比如汇川的,在学习和使用汇川的PLC过程中,一开始上手就直接从ST语言开始进行理解和掌握其中的编程思路和语法知识。其实在实际的日常的PLC编程工作中,中间需要和机械专业的同事或者或其他专业的同事进行沟通。同时在PLC设备编程之外也需要知道实际的物理世界的执行动作的时间差距,以及调试大型项目和单纯的嵌入式调试板子还是有很多的不同,这些设备的使用和调试都需要很注意,需要注意设备人员安全和设备安全。比如一些急停按钮,以及一些二次启动条件等。本次系统地过了一下这段时间的工作和学习的日常,作为一种分享,通过记录,以便回顾和知新。在AI的时代大潮下,用好这门工具,丰富我们的生活,让我们的生活更有活力。

相关推荐
拾陆楼1 小时前
PT: DMSA辅助调tree报告前后级余量脚本
后端·学习
m0_525724722 小时前
Jenkins共享库实现流水线复用
自动化·k8s·devops
疯狂打码的少年2 小时前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
sbjdhjd3 小时前
大三网安秋招核心学习前言(AI 安全 + Web 漏洞 + 内网渗透全考点)
人工智能·网络协议·学习·安全·网络安全·开源·php
東隅已逝,桑榆非晚3 小时前
类和对象(中)
c++·笔记
Black蜡笔小新4 小时前
从智慧社区到雪亮工程:国标GB28181公网平台EasyCVR如何构建视频“一张网”?
人工智能·自动化·easycvr
野生yumeko4 小时前
QtScrcpy电脑无线控制手机屏幕
经验分享·笔记·智能手机
梦想的旅途24 小时前
企业微信自动化实战:客户资料自动修改与备注同步
运维·自动化·企业微信
LccKyI4 小时前
C#学习day06(方法/函数及其关键字,附思维导图)
经验分享·学习·c#