首页 / 资讯中心 / 文章详情

PLC编程入门:硬件地址与软元件先行,再练指令实战

PLC编程入门:硬件地址与软元件先行,再练指令实战 ★ FEATURED ARTICLE
1. 这套课件为什么把地址放在第一课带过几批新人之后我发现一个很稳定的规律PLC编程入门的卡点几乎从不在指令表上。指令就那么几十条翻两遍手册能记住名字真正让人在设备前面站半小时不敢下手的是硬件地址没吃透——端子上的线接到哪个软元件、软元件编号为什么这么排、改一个编号会不会撞车这些想不明白梯形图抄得再像也只是照着描。我这次整理的这套课件核心思路就是先把硬件地址这条地基夯实再谈指令实战顺序反过来的话后面全是补丁。这套内容面向的是刚接触日系小型机FP系列这一类的朋友包括自动化专业的在校生、转岗做电控的维修工程师、以及接了小型非标设备项目想自己写程序的小团队负责人。前提是有点电工基础知道按钮、接近开关、继电器、电磁阀长什么样不需要任何编程经验。学完能独立完成看图纸—排IO—写梯形图—下载调试这条完整链路处理常规的启保停、定时循环、计数报警、多工位顺序动作这类需求。下面是我把课件从四十多页讲义压缩重构后的实战版讲原理的地方会掰开揉碎讲操作的地方直接给能抄的参数。1.1 新手卡壳的真实原因不是指令不会背很多人对PLC的第一印象是指令多、记不住于是买一堆指令手册猛背结果到了现场发现根本用不上。真实情况是日常项目里高频出现的指令不超过二十条剩下的都是特殊场合才翻出来。真正的门槛在于地址思维——你得能在脑子里建立一张映射表左边是配电柜里的物理端子右边是程序里的软元件编号中间隔着扫描周期这个时间轴。我见过最典型的翻车场景新人把停止按钮接到X1程序里写成了X0按下停止没反应急得去查线路量了半小时万用表发现线是好的。这种问题在老手眼里一眼就看出来因为老手写程序前一定先画IO分配表写完再对照表逐条核。课件的第一个练习就是强制要求先填表、后画图把这张表当成功课不填不许开软件。听着笨但省下来的调试时间是以小时计的。还有个认知偏差值得说清楚X和Y不是变量它们对应真实的电平状态。X点接的是输入回路的通断Y点驱动的是输出模块上的晶体管或继电器。你在程序里让Y0置位端子上的负载就会得电这个因果关系必须在第一课就建立起来否则后面调试时容易把仿真和实物搞混仿真通了就以为现场能跑。1.2 课件的三段式骨架与选型考量整套内容按寻址—指令—联调三段推进每一段都配一个能独立跑起来的小案例不做纯理论堆砌。第一段解决软元件体系和IO分配第二段覆盖基本逻辑指令、定时计数、数据传送与比较、边沿与移位第三段用一个三段式循环动作的完整项目把前面所有知识点串起来最后是联机下载、在线监控和故障排查。选择这个结构而不是按手册的指令顺序讲理由是学习动机的维持。按指令表顺序教学学员前三天都在看触点符号看不到任何能动起来的东西注意力很快就散了。改成每讲完一组指令就有一个小动作能跑比如讲完定时器马上做一个按一下灯亮3秒自动灭学员的反馈回路是闭合的学习效率明显不一样。至于机型选型课件默认用带继电器输出和晶体管输出两种配置的小型机继电器输出方便直接驱动中间继电器和电磁阀做演示晶体管输出用来练脉冲和高速计数。软件侧用官方编程软件仿真功能足够支撑前两段的绝大部分练习只有涉及实际IO电平和输出负载的部分才需要上机。这个安排是为了让没有实物设备的学员也能完整走一遍流程——预算有限的情况下先仿真把逻辑跑顺上机只验证接线和电平效率最高。1.3 学习节奏建议一天一练别贪多我给学员的节奏是每天一个半小时连续十天左右。前三天专攻地址和IO表每天手画一张八点到十六点的分配表要求闭卷默写常见的软元件代号和用途。第四到七天进指令每学完一条就写一个小程序并仿真跑通跑通后故意改坏一个条件看现象理解为什么坏。第八到十天做完整项目从需求到接线图到梯形图到调试,全程自己走一遍。这个节奏看起来慢但比起三天看完教程、现场还是不会的路径实际总耗时更短。我个人的经验是学PLC的时间成本主要花在返工上而不是花在第一次学习上。前面多花两小时把地址体系理顺后面能省掉一整天在配电柜前发呆的时间。这条建议对自学者尤其适用因为自学者没有老师兜底卡住的时候容易钻牛角尖。2. 硬件地址精讲把软元件当成门牌号软元件这个词听着唬人本质就是程序里能直接点名的存储单元。你可以把它想成一栋楼里的房间号X是朝外的窗户外界往里递东西Y是大门程序决定什么时候开R是内部储物间随便放T、C是带计时的房间进去要打卡。编号不是随便定的每个字母开头的房间有不同的物理属性和访问规则。这一章把常用软元件逐个拆开重点讲清楚哪些能写、哪些只能读、哪些断电会丢。2.1 输入输出继电器 X/Y 和端子的对应规则X是输入继电器编号一般按八进制排X0-X7、X8-XF这样不同机型有差异以端子排丝印为准一个X点对应输入模块上的一个通道。它的特点是只能被外部信号驱动程序里只能读不能写。你在梯形图里给X0写一个OT输出软件通常会报警或直接无效这是很多人第一次上机就撞的墙。理解这一点很重要X是传感器视角程序是决策者视角决策者不能反过来决定传感器看到什么。Y是输出继电器编号规则类似一个Y点对应输出模块的一个通道。它可读可写程序里既能用OT驱动也能在其他逻辑里当条件用。这里有个实用技巧Y点的实际通断状态可以直接作为反馈条件用来做互锁和状态判断比另外接一个辅助触点省事。但要注意输出模块的类型——继电器输出有机械寿命频繁通断的场合要换成晶体管输出或者中间加一级固态继电器。接线层面输入端的公共端接法分漏型和源型两种日系机常见的是漏型输入公共端接负极开关接正极到输入点。接反了不会烧但输入指示灯不亮程序读不到。我建议第一次接线时先用万用表确认公共端极性再逐个点短接测试看模块上的LED是否点亮把所有X点验证一遍再进程序。这一步花五分钟能避免后面大量程序对了但设备不动的误判。提示不同机型的X/Y编号不一定是连续八进制有些机型把输入输出混合编号务必以端子排上的丝印和手册的分配表为准不要凭印象。2.2 内部继电器 R、定时器 T、计数器 C、数据寄存器 DT 的分工内部继电器R是程序内部的中间变量不直接对应物理端子断电后状态通常不保持部分机型可通过系统寄存器设置为保持区。它的作用是把复杂逻辑拆成可读的中间结果比如三个条件都满足这件事先算出来存到R0后面多处引用R0比在每个地方重复写三个触点清爽得多改逻辑时也只改一处。这是我强烈建议养成的习惯程序规模一过五十步不做中间变量分层会变成一团麻。定时器T和计数器C都是带状态的软元件区别在触发源。定时器靠内部时钟累计松下这类机型上T的编号区间通常按时间精度分段比如某一段是100ms基准、另一段是10ms基准、还有1ms的具体分段以机型手册为准。这里的关键概念是时基同样写K30100ms基准的定时器是3秒10ms基准的是0.3秒。这个细节坑过无数人我见过一个项目里把原本该用100ms段的编号写到了10ms段结果气缸动作快了十倍撞了治具。计数器C靠输入脉冲的上升沿累计设定值用K加常数。它和定时器一样有保持型和非保持型之分停电保持型在断电重启后保留计数值做产量统计、批次计数必须用保持型否则一断电数据清零。数据寄存器DT用来存数值16位一条32位要占用连续两条低字在前这个低字在前的顺序在32位运算和通讯打包时经常被搞反导致数值大得离谱后面会专门说。软元件代号能否程序写入断电保持典型用途输入继电器X否只读否按钮、限位、传感器输出继电器Y是否电磁阀、指示灯、接触器内部继电器R是一般否可设保持区中间逻辑、状态标志定时器T是线圈视型号延时、节拍计数器C是线圈分保持/非保持计数、批次数据寄存器DT是一般否可设保持区参数、运算结果2.3 特殊继电器与特殊数据寄存器不接线的系统信号特殊继电器是一批编号固定、功能预定义的系统资源最常用的几个必须记住。常ON继电器相当于程序里的1和常OFF继电器相当于0用来做无条件执行或者屏蔽某段逻辑调试时临时把一个常闭触点换成常ON整段逻辑就旁通了比删程序安全。初始化脉冲继电器在PLC上电后的第一个扫描周期ON一次是做上电初始化、参数复位、报警清除的标准位置任何需要开机只执行一次的动作都应该挂在这里。时钟脉冲继电器提供固定周期的方波0.1秒、0.5秒、1秒这类做闪烁指示灯、简单的节拍控制不用自己搭定时器直接用现成的。比较结果标志位在做过比较指令后会置位用来判断大小关系。这些资源的具体编号各家不一样我一般让学员直接在编程软件里打开特殊继电器一览对照表或者用帮助里的搜索功能按功能名查比背编号靠谱。这里有个实操心得做上电初始化时不要只清数据还要复位所有保持型输出和中间状态。设备上一次断电时如果停在中途重新上电后某些SET型的Y点可能还保持着ON一上电就动作非常危险。正确做法是在初始化脉冲那一支里把所有的SET线圈逐一RST把步序号清零然后再允许启动。这个动作在课件里被列为必须写的第一段程序很多人省掉它现场就出过一合闸气缸自己伸出来的事故。2.4 一张 IO 分配表怎么排实操模板IO分配表是整个项目的总纲我要求学员必须画在纸上并贴在配电柜门内侧。表的字段至少包括序号、地址、设备名称、信号类型常开/常闭、信号来源或去向、备注。排序规则是先按物理位置从左到右、从上到下排输入输出再按功能分组补充中间变量和定时计数这样接线时顺着端子排走不容易漏。地址设备类型说明X0启动按钮常开绿色面板左上X1停止按钮常闭红色面板左上X2急停辅助触点常闭安全回路串联X3上料位传感器常开光电NPNX4下料位传感器常开光电NPNY0输送电机接触器继电器输出经中间继电器Y1推料气缸电磁阀继电器输出单电控Y2运行指示灯继电器输出绿色Y3报警指示灯继电器输出红色闪烁这里必须强调停止按钮用常闭这条行业惯例。物理上接常闭程序里用常开触点读它正常时X1一直是ON按下断开变成OFF程序检测到OFF就停止。这样做的好处是断线故障等同于按下停止是失效安全的方向。新人常犯的错是物理接常开、程序也按常开写结果线松了设备照跑风险全留着。急停回路同理而且急停应该走硬线切断不能只靠程序。3. 指令实战从触点逻辑到数据处理地址理顺之后指令就是积木。日系小型机的指令体系分基本指令和高级指令两套基本指令负责触点和线圈的组合高级指令负责数据处理。初学阶段我不建议贪多把基本逻辑、定时计数、传送比较、边沿移位这四组练熟日常项目能覆盖九成。下面按使用频率从高到低讲每条都配一个能跑的小例子。3.1 基本触点与输出指令ST/AN/OR/OT 的组合逻辑基本指令的核心就四条起始ST开启一条逻辑行串联AN接在后面并联OR另起一支输出OT收尾。加上它们的常闭形式ST/、AN/、OR/构成了梯形图的全部骨架。理解方式很简单ST是从母线出发的第一段导线AN是串联在后面的开关OR是从上一节点分出去的支路OT是最终接的灯。这个类比能帮新手快速看懂别人写的图。启保停是必须练到肌肉记忆的电路。标准写法是启动按钮常开触点与运行输出Y0的常开触点并联再串停止按钮的常开触点物理上接的常闭所以程序里读常开最后接Y0线圈。这里有一个容易被忽略的细节——Y0的自锁触点应该放在停止触点之后还是之前两种画法逻辑等价但工程上习惯把停止放在最后理由是停止条件离线圈最近读图时看到线圈往前一步就是停止更直观。这种约定没有对错团队统一就行。置位SET和复位RST指令用来做状态保持一对SET/RST能替代自锁。它俩的优势是跨逻辑段操作方便可以在程序的不同位置对同一个Y点置位复位劣势是容易漏复位导致状态卡死。我个人的使用原则是单纯的自锁用OT自锁触点涉及多个条件在不同地方触发同一动作才用SET/RST而且每写一个SET必须立刻在旁边写上对应的RST条件写不出来就先别写SET。这条纪律能省掉大量设备卡在某个状态不动的排查时间。上升沿和下降沿指令DF、DF/解决的是瞬间动作问题。一个按钮按下去扫描周期里它可能连续几十个周期都是ON如果直接驱动计数器一次按压会被计成几十次。正确做法是用上升沿指令把它变成单个扫描周期的脉冲再驱动计数。下降沿用于松开时触发的场合比如松手后开始计时。这两个指令在手动/自动切换、按钮计数、通讯触发里用得极多属于必练项。3.2 定时器与计数器参数 K 值怎么算定时器的设定值计算是新人最容易算错的地方。公式是设定值K 需要的延时时间 ÷ 时基。举例需要5秒延时用100ms时基的定时器K就是50用10ms时基的K就是500。反过来如果手册上写某段T的时基是0.1秒你写了K100实际就是10秒不是100秒也不是1秒。我让学员在做每个定时器旁边用注释写清楚时基×K实际秒数一眼可查改参数时不会算错。定时器的编号区间一定要先查清楚。同一台机器上不同区间的T精度不同写反了现象是动作快慢差了十倍非常迷惑。另外接通延时和断开延时是两种不同的指令有些机型用不同的助记符区分有些靠加辅助参数。做启动后延时3秒动作、停止时立即复位用接通延时做信号消失后再保持2秒输出用断开延时。选错类型的话动作看起来总是差一点很难往指令类型上想。计数器设定值直接用K加常数计数脉冲必须取上升沿理由前面说过。保持型计数器在设备断电后保留计数值适合做班产量、模具寿命统计。这里有个坑保持型计数器的复位必须显式写且最好做双重保护——一个手动复位按钮加上初始化脉冲里的自动复位。有些场合不希望上电自动清零那就只保留手动复位但要把它做成长按3秒防止误触清掉一批数据。这个需求看起来很细但客户验收时经常就是盯着这些点。需求时基设定值说明按键后灯亮3秒100msK303÷0.130气缸动作超时1.5秒报警10msK1501.5÷0.01150闪烁指示灯时钟继电器0.5s或1s不用自建定时器省步数每10件报警提示计数器K10脉冲取上升沿保持型3.3 数据传送、比较与运算16位与32位的坑传送到用的时候通常是为了把某个常数或计算结果搬到目标地址或者做参数的间接调用。传送指令MV是16位双字传送DMV是32位。32位操作必须占用两个连续的DT且低字在前这条规则在写DMV、做32位加减、以及和触摸屏通讯按32位读数时必须记牢。我遇到过一次现场调试触摸屏上显示的累计长度比实际大了65536倍查了半天是高低字反了——低位写到了高位地址上。比较指令用在报警和分支判断里比如温度值超过设定上限就置位报警。日系机普遍支持触点比较的写法直接把比较条件画成触点比用指令做比较再取标志位更直观。这里有个可读性建议把参与比较的常数写到DT里不要在程序里散落一堆K值。比如设定上限写进DT100、下限写进DT102程序里只写DT和DT100比较。这样现场调参数时不用改程序重新下载用触摸屏或者编程软件在线改一下DT值就行客户自己就能调省掉大量售后电话。加减乘除这类运算指令的助记符各家略有差异我通常不背编号直接在编程软件的指令列表里按名称搜双击插入比手打准确率高。需要注意的是运算结果的溢出16位乘法两个一万多的数相乘结果超过32767就溢出了必须用32位乘法或者先做除法缩小量纲。做流量累计、脉冲当量换算这类计算时先想清楚最大可能值再决定用16位还是32位这个习惯能避免很多数据偶尔跳变的怪问题。3.4 边沿、置位复位与移位让程序记得住状态移位指令在流水线、多工位、料仓管理里非常好用。它的作用是把一串位的状态整体挪一格新状态从一端挤进去旧状态从另一端挤出去。典型的用法是做工位占用图每个工位对应一个位物料每前进一格就移一位程序只要判断最末端的位是否是1就知道有没有物料到达。这种写法比用一堆计数器和比较清爽得多改工位数也只需改移位长度。移位寄存器一般有左移和右移两种配合脉冲触发使用。要注意的是移位指令执行时会改变整个寄存器区的内容所以寄存器区不能和别的逻辑共用必须单独划出来。我一般把移位区放在一段连续的R地址上并在程序注释里标明此区域仅用于工位图勿作他用团队协作时这条注释能救命。脉冲输出和高速计数属于进阶内容遇到步进电机、伺服定位、编码器测长才会用到。这类功能通常依赖机型的硬件资源特定的Y点支持高速脉冲、特定的X点支持高速计数选型阶段就要确认好不要等程序写完才发现端口不支持。课件里这一块只做原理介绍和选型提示实操留给专门的运动控制练习。4. 完整实操一个三段式循环动作的程序落地光讲知识点没有闭环这一章用一个完整的小项目把所有内容串起来。需求是这样的一个简易送料工位按下启动后输送电机运行物料到位后电机停止推料气缸伸出两秒后自动缩回计数一件累计十件后报警指示灯闪烁按复位清除。带急停、带断电保持计数、带上电初始化。这个需求不大但几乎覆盖了入门阶段的全部知识点。4.1 需求拆解与 IO 分配先拆动作序列画成文字流程图不用画图用编号列表就够待机、启动、输送运行、到位检测、电机停、气缸伸出、延时2秒、气缸缩回、计数加一、判断满十件、报警或回到待机。每一步的进入条件和退出条件都写清楚写不清楚的地方就是需求有歧义的地方必须回头和提出需求的人确认。这一步绝不能省程序写错改起来快需求理解错了改起来是重做。IO分配按第二章的模板填。X0启动、X1停止、X2急停辅助、X3到位传感器、X4复位按钮Y0输送电机、Y1气缸电磁阀、Y2运行指示、Y3报警指示。内部变量方面R0做运行标志、R1做气缸动作中标志、T0做气缸伸出延时100ms时基K20、C0做计数保持型K10。这些全部写进表里包括备注。类型地址说明备注输入X0启动常开按钮输入X1停止物理常闭输入X2急停辅助常闭硬线串联输入X3到位检测NPN光电常开输入X4计数复位常开按钮输出Y0输送电机经中间继电器输出Y1气缸电磁阀单电控断电缩回输出Y2运行指示绿色输出Y3报警指示红色时钟脉冲驱动内部R0运行标志中间变量内部T0气缸延时100msK20内部C0计数保持型K104.2 梯形图逐段编写第一段写上电初始化这是纪律。用初始化脉冲继电器驱动把R0、R1复位把Y0到Y3全部复位把T0、C0复位如果客户要求保留计数就跳过C0。这段程序不参与正常运行只在第一个扫描周期执行一次作用是保证每次上电状态是干净的。|--[ 初始化脉冲 ]------------------( RST R0 )--| | ( RST R1 )--| | ( RST Y0 )--| | ( RST Y1 )--| | ( RST Y2 )--| | ( RST Y3 )--| | ( RST T0 )--|第二段写运行标志标准启保停停止条件里串入急停辅助和到位信号的中断逻辑之外的所有保护。这里我把停止做成停止按钮或急停任一满足就复位急停虽然走了硬线但程序里再串一次是双保险。|--[ X0 ]----[ X1 ]--[ X2 ]----------( R0 )--| | | | |--[ R0 ]-- |第三段写输送输出和到位停止。运行标志ON时Y0输出到位传感器X3来了之后切断Y0。这里要注意到位信号可能有抖动如果传感器安装位置不好物料在临界位置晃动会导致Y0反复通断。稳妥做法是到位后先置位一个到位锁存标志用这个标志去停Y0等气缸动作完成后再清锁存。这个小改动在现场能省掉大量莫名其妙的启停。第四段写气缸动作。条件是运行中且已到位且不在气缸动作中置位R1表示气缸动作中同时驱动Y1。延时用T0设定值K20对应2秒。T0到了之后复位Y1、复位R1并对计数器C0发一个上升沿脉冲注意直接用T0的常开触点驱动计数器因为T0只在到达时ON一个扫描周期以上配合上升沿指令更保险。第五段写报警。C0的当前值达到设定值时其常开触点闭合用这个触点串时钟脉冲继电器驱动Y3实现闪烁。同时在这一段里并一个复位分支X4按下时复位C0并熄灭报警。|--[ C0 ]--[ 时钟0.5s ]---------------( Y3 )--| | | |--[ X4 ]----------------------------( RST C0 )|第六段写运行指示灯R0直接驱动Y2简单直白。整个程序的步数不到五十步但结构分层清晰每一段职责单一后面要改哪一块直接定位。4.3 下载、在线监控与强制IO调试程序写完后先仿真跑一遍把所有分支都走一遍包括异常分支。仿真通过再上机。上机顺序我固定为四步先断电接线并核对、再上电只读IO、然后下载程序空跑、最后带负载试动作。第一步用万用表通断档对照IO表逐个点核对重点是常闭点的接线和公共端极性。第二步不下载程序直接在软件里看输入监视窗口逐个触发传感器确认地址和实际一致这一步能揪出九成的接线错误。第三步下载程序但不接负载只观察输出指示灯和监视窗口。按启动看R0是否置位、Y0指示灯是否亮手动遮挡到位传感器看Y0是否灭、Y1是否亮、T0是否计时。这一步全程空载安全。第四步接负载先接指示灯这类无危险负载最后接气缸和电机。每次只加一个负载加一个测一个出了问题范围明确。在线监控里我常用两个功能一是软元件批量监视把关键的X、Y、R、T、C一起列出来看状态变化二是时序采样把几个关键点录下来看先后顺序。后者在排查动作顺序不对的问题时特别有效因为扫描周期是毫秒级的肉眼根本看不清谁先谁后。很多看起来同时发生的竞争问题靠时序采样一看就明白。注意强制IO强制置位输出只能在空载或确认安全的情况下使用。在带气缸、带电机的情况下强制输出等于绕过所有逻辑保护直接让设备动作。4.4 加保护急停、互锁与上电初始化保护分三层。硬线层是急停按钮直接切断控制回路电源不经过PLC这是底线。程序层是急停辅助触点在程序里串入所有输出条件以及气缸和电机之间的互锁——电机运行时不允许气缸伸出气缸伸出时不允许电机启动。机械层是限位和机械挡块防止程序出错时设备跑到极限位置。互锁的写法有个原则正向和反向条件互为对方的禁止条件且都要用常闭触点。比如电机运行中禁止气缸动作和气缸动作中禁止电机运行两边的程序都要写只写一边等于没写。有些新人觉得写一遍就够实际上一旦逻辑分支多了单向互锁很容易被绕过。上电初始化的必要性前面提过这里再强调一次具体场景设备在气缸伸出的状态下突然断电重新上电时如果电磁阀是保持型的气缸可能立刻继续动作。初始化程序里把Y1复位等于强制让气缸回到缩回位置操作员才有安全的介入空间。这段程序只有七八步但它决定了一台设备是能用还是敢用。5. 常见问题与排查实录入门阶段的问题高度集中我把带学员过程中反复出现的故障整理成表按现象查原因比从头推理快得多。表格后面几条是文档里通常不写、但现场特别值钱的经验。5.1 典型故障速查表现象可能原因排查动作按启动无反应X点地址写错公共端极性接反程序未下载看输入监视窗口短接端子看LED输出指示灯亮但负载不动输出模块类型不匹配负载回路断公共端未接量输出端子对公共端电压定时器时间不对时基选错K值算错核对T编号区间重算K计数一次按压计多次未取上升沿加DF指令设备停在某个状态不动SET后漏RST互锁条件死锁监视R/Y状态查复位条件断电后数据丢失用了非保持型寄存器换保持型或设置保持区32位数值异常偏大高低字顺序反检查连续两个DT的分配上电设备自行动作缺初始化复位加初始化脉冲段5.2 几个文档里不写的避坑经验第一条永远在改动前备份程序。现场调试时经常是我先试一下这个改法改完发现不对想撤回结果已经下载覆盖了。编程软件一般有历史版本或者可以另存为带日期的文件名养成每次下载前存一份的习惯成本几秒钟。我吃过一次亏在一个跑了三年的老程序上改了一个触点改错了没备份最后靠打印出来的一张旧图纸硬推回去花了大半天。第二条注释写到未来的自己看得懂的程度。现场调试往往是几个月后甚至交接给别的同事。注释不要写启动要写启动按钮X0绿色面板左上按下后电机运行。软元件的用途、单位的换算、特殊值的含义全部写上。程序的可维护性八成来自注释跟代码本身写得多漂亮关系不大。第三条调试时把改一个变量看现象当成主要手段。逻辑不动先怀疑接线接线确认了再怀疑地址地址确认了再怀疑指令用法。逐层排除不要同时改三处那样即使好了也不知道是哪一处起的作用。这个方法论听起来是废话但现场着急的时候人就是会乱改。提示新机首次上电先不接任何负载把所有输入点手动触发一遍把所有输出点强制通断一遍确认硬件没问题再进程序。这十分钟的体检能排掉大量硬件层面的隐患。第四条关于扫描周期的影响。程序越长扫描周期越长输入信号的响应就越滞后。做高速检测比如飞料检测时如果信号持续时间短于扫描周期程序根本抓不到。这类需求必须用输入中断或者高速计数器普通输入点靠扫描读取是靠不住的。入门阶段不用深究但要知道这个边界在哪遇到偶尔漏检的现象能想到这个方向。6. 带新人做课件的一些体会这套内容最初是给内部新人做的培训材料后来陆续有同行拿去用反馈里最有价值的部分不是技术点而是顺序和节奏。技术点手册上都有难的是怎么排布让零基础的人不掉队。这一章说说课件本身的设计思路给同样要带人的朋友一点参考。6.1 课件里必须有的三样东西第一样是可运行的半成品程序。不要给完整的成品让学员看给一个跑不通的版本让他们找错并修好。找错的過程比从零写更能暴露理解漏洞而且贴近真实的维护场景——实际工作中大部分时间是改别人的程序不是从白纸开始写。我一般准备三个难度梯度的半成品接线错误型、地址冲突型、逻辑死锁型。第二样是IO分配表的空白模板。强制要求每个练习都填填完才允许开编程软件。这个约束一开始会被抱怨繁琐两三次之后学员自己就体会到好处了因为改程序时对照表一查就知道影响范围。习惯的养成靠强制靠讲道理没用。第三样是故障现象库。把常见故障的现象描述和排查路径整理成清单学员遇到问题先自查清单查不出来再问。这样既训练了排查思维也减少了重复答疑。清单要按现象组织而不是按原因组织因为现场的人只知道现象不知道原因。6.2 考核题怎么出考核我不用笔试用实操。给一个需求描述和一堆元器件两小时内完成接线、编程、调试让设备按需求动起来。评分点分三块功能是否实现、程序结构是否清晰分层、注释、变量命名、安全保护是否到位急停、互锁、初始化。第三块权重最高因为功能可以凑安全习惯凑不出来。有一道题我用了很久效果不错需求是按一下按钮指示灯亮三秒后自动熄灭期间再按无效。这道题小但要同时处理自锁、定时、边沿屏蔽三个点很多人第一次写会在期间再按无效上翻车因为他们只在启动条件上加了互锁忘了把按钮的重复触发也屏蔽掉。这种看起来简单实则有坑的题目比复杂的大项目更能检验基本功。另外我会故意在题目里留一个歧义点比如到位后延时一下再动作里的一下是多久看学员会不会主动来确认。会问需求的人比会写程序的人稀缺这个意识从练习阶段就要培养。实际项目里需求歧义造成的返工远比技术难点造成的多。我个人在实际带人过程中的体会是教PLC这件事讲多少不重要让学员自己动手撞墙多少次才重要。课件的作用不是把知识灌进去而是把撞墙的顺序排好——先撞哪个、后撞哪个、撞了之后怎么复盘。顺序排对了十天的效果能顶自学三个月。最后分享一个小技巧让学员把自己踩过的每一个坑写成一句话贴在工位上一个月后回头看那面墙就是最好的教材。
阅读完成 · 觉得有帮助?
咨询建站