ARTICLE DETAIL

资讯详情

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

基于PLC的自动门控制系统:I/O分配、状态机与变频调速实战

基于PLC的自动门控制系统:I/O分配、状态机与变频调速实战 简介这是一份面向自动化、机电一体化专业学生及PLC初学者课程设计参考的完整技术文档围绕基于三菱FX2N系列PLC的自动门控制系统展开解决从功能需求分析到软硬件实现与调试的完整设计思路问题。压缩包内为1个doc文件约240KB正文按摘要、绪论、PLC基本知识、系统硬件研究、软件设计等章节组织涵盖自动门组成部分、感应器件与红外传感器工作原理、行程开关作用、机械传动机构设计、驱动装置选型、I/O地址分配及梯形图编写等具体内容。目前已有68人学习下载。读者可据此获得一套结构完整的控制系统设计方案包括控制要求梳理、顺序控制流程、硬件接线图与程序调试过程便于直接对照完成课程设计报告撰写、理解PLC顺序控制编程方法并掌握传感器与执行机构之间信号传递与联锁判断的排错思路。1. 自动门控制系统为什么值得用 PLC 认真做一遍商场、写字楼、医院的平移自动门在外人眼里就是「人来开、人走关」。把控制柜打开才知道做得住和做不住差在细节上外侧感应器被人流连续触发时门停在哪、关门过程中光幕被遮住要不要立刻回退、门体被货箱顶住多久判故障、急停复位后是接着关还是回待机全都要有明确的状态定义。纯继电器方案实现基础开关门不难但改一个保持时间就要动接线逻辑一多就变成一堆互相锁死的回路排查靠猜单片机的成本低可现场抗干扰、备件通用性、维修人员看不看得懂都要打折。PLC 的强项恰好对得上这类设备I/O 状态可视、定时器参数在线改、梯形图和状态机两种写法都有成熟的工程积累。拿自动门做课题适合自动化专业的课程设计和毕业设计也适合做门禁、通道设备的机电工程师。控制对象不复杂却能把 I/O 分配、传感器选型、安全逻辑、变频调速、状态机编程和现场调试一次串起来。2. 自动门控制系统的 I/O 分配与硬件选型2.1 输入输出点表怎么分才够用点表是后面所有程序的根。分配的原则只有两条安全相关的信号一律用常闭让断线也表现为「危险」功能相近的点尽量落在同一个字节里监控时一眼能看完。下面这份点表是中小型平移门常见做法通道数按实际增减。地址符号名类型说明常开/常闭I0.0DI_ExtSensorBool外侧感应微波/红外常开I0.1DI_IntSensorBool内侧感应常开I0.2DI_OpenLimitBool开门到位限位常闭取反I0.3DI_CloseLimitBool关门到位限位常闭取反I0.4DI_LightCurtainBool安全光幕常闭I0.5DI_EStopBool急停常闭I0.6DI_AutoManBool手/自动切换常开I0.7DI_VFDFaultBool变频器故障反馈常闭Q0.0DQ_OpenBool开门输出正转—Q0.1DQ_CloseBool关门输出反转—Q0.2DQ_HighSpeedBool高速段使能—Q0.3DQ_RunLampBool运行指示—Q0.4DQ_AlarmBool声光报警—Q0.5DQ_LockReleaseBool电磁锁释放—点表定下来之后别急着写梯形图先把每个点用到的数据类型标清楚限位和感应器是 Bool编码器或超声波测距进来的是 Int 或 Real速度给定换算成 Real 再转 Int 送给变频器。类型混乱是后面数值对不上的头号原因。2.2 驱动方案选型继电器换向、变频器双速还是门机控制器三种做法在工程里都真实存在选哪种取决于门体重量和预算。轻载玻璃门单扇 80 kg 以内多数用成套门机控制器PLC 只给开、关、停三个干接点逻辑最简单。中重型工业平移门一般上三相异步电机加减速机PLC 通过两个接触器换向缺点是没有调速、冲击大。要平顺和节能就用变频器PLC 给运行指令和速度段信号加减速曲线在变频器里调。常见做法是PLC 输出两路互锁的换向信号再配一路高速段使能变频器设置两个固定频率如高速 35 Hz、低速 12 Hz。换向互锁必须在硬件和软件上各做一层接触器加机械互锁程序里再做互斥判断任何时刻不允许开门和关门同时输出。选 PLC 时看的是 I/O 余量和通讯口。西门子 S7-1200 CPU 1214C 有 14 点输入 10 点输出做单扇门够用三菱 FX3U 系列在小型门机改造里也很常见预算再低就选国产小型 PLC但一定确认有继电器或晶体管输出可选驱动接触器用继电器输出直驱电磁阀或高速脉冲用晶体管输出。2.3 安全回路与 NPN/PNP 输入接线要点安全光幕、急停、变频器故障这三路必须走常闭并且在程序里做断线判别。做法是光幕正常无遮挡时输入为 1遮挡或断线时变 0逻辑里统一按「0 即危险」处理。急停回路不要只依赖 PLC要在主回路上串一个物理的急停接触器PLC 读到急停信号后只负责切断输出和报警。传感器接线是入门阶段最容易踩的坑。三菱 FX3U 通过 S/S 端子接 24V 或 0V 切换漏型/源型输入S7-1200 的数字输入公共端 1M 接 24V 时对应漏电流输出的 NPN 传感器接 0V 时对应 PNP 传感器。接反的现象是输入指示灯常亮或永远不亮而不是「时好时坏」。买感应器前先确认 PLC 输入类型比事后加中间继电器省事得多。// TIA Portal PLC 变量表节选符号名与地址、数据类型一一对应 DI_ExtSensor AT %I0.0 : Bool; // 外侧感应源型输入公共端接 0V 时为低电平有效 DI_LightCurtain AT %I0.4 : Bool; // 安全光幕常闭0遮挡或断线 DI_EStop AT %I0.5 : Bool; // 急停常闭 DQ_Open AT %Q0.0 : Bool; // 开门输出与 DQ_Close 软件互锁 DQ_Close AT %Q0.1 : Bool; SetOpenHold AT %MD100 : Time; // 开门保持时间在线可改 SetRunTimeout AT %MD108 : Time; // 运行超时判定默认 T#8S这段声明里输入点都用 Bool两个时间参数放在保持性存储区 MD 里方便在触摸屏或在线监控表里直接改而不用下载程序。中间继电器和定时器不要复用同一个地址M 区做交叉引用检查时能发现重复赋值。3. 自动门状态机写法从梯形图自锁到步序控制3.1 把自动门拆成几个状态才够用新手写自动门最容易写成一大片自锁加互锁能跑但加一个「防夹回退」就要推倒重来。换成状态机先把门的动作阶段拆干净。经验值是五到六个主状态再加一个故障态。步号状态名进入条件退出条件该步输出0待机复位或关门到位任一感应器触发无10开门运行待机收到触发开门限位或运行超时Q0.0高速段20开门保持开门到位保持时间到无门停在开位30关门运行保持结束关门到位或光幕遮挡Q0.1先高速后低速40防夹回退关门中光幕遮挡回退时间到Q0.090故障运行超时或变频器故障人工复位Q0.4 报警步号跳变只允许沿表中列出的路径走任何不在表里的跳转都算逻辑漏洞。这套写法在设备维修时优势明显现场一看步号是 30就知道门正处在关门运行阶段问题排查范围立刻缩小。3.2 梯形图关键网络怎么写梯形图和状态机不冲突状态机是框架梯形图是每个输出支路的落地表达。常见写法是用一个整数寄存器记录步号每个输出线圈前面串上「步号等于几」的比较触点。第一个网络处理触发外侧或内侧感应器任一个为 1且当前步号为 0就置位开门触发。第二个网络做开门输出步号为 10 时驱动 Q0.0同时用 Q0.1 的常闭触点串进去做互锁。第三个网络是超时保护步号进入 10 的同时启动一个 TON 定时器8 秒内没等到开门限位直接把步号写 90。梯形图里有个细节值得注意限位开关的信号要取上升沿不能用电平。门到位后振动可能让限位来回抖动用电平判会反复触发状态跳转。做法是在限位前加一个 P 触点或者统一在程序开头用一圈边沿检测指令把物理输入转成一次性脉冲。3.3 SCL 状态机的完整实现与逐句说明状态数量一多SCL 比梯形图好读得多。下面这段循环调用的代码可以直接对应上面的状态表。// 自动门主状态机在 OB1 循环调用step 建议放保持性 M 区或 DB CASE #step OF 0: // 待机 #yOpen : FALSE; #yClose : FALSE; #yAlarm : FALSE; IF #ExtSensor OR #IntSensor THEN #step : 10; END_IF; 10: // 开门运行超时进故障 #yOpen : TRUE; #yHigh : TRUE; #tRun(IN : TRUE, PT : #SetRunTimeout); // 默认 T#8S IF #OpenLimit THEN #yOpen : FALSE; #yHigh : FALSE; #tRun(IN : FALSE); #tHold(IN : TRUE, PT : #SetOpenHold); // 默认 T#5S #step : 20; ELSIF #tRun.Q THEN #step : 90; END_IF; 20: // 开门保持期间再次感应会重新计时 IF #ExtSensor OR #IntSensor THEN #tHold(IN : FALSE); #tHold(IN : TRUE, PT : #SetOpenHold); END_IF; IF #tHold.Q THEN #tHold(IN : FALSE); #step : 30; END_IF; 30: // 关门运行光幕遮挡立即回退 #yClose : TRUE; IF #CloseLimit THEN #yClose : FALSE; #step : 0; ELSIF NOT #LightCurtain THEN #yClose : FALSE; #tReopen(IN : TRUE, PT : T#3S); #step : 40; END_IF; 40: // 防夹回退到开门位然后回到保持 #yOpen : TRUE; IF #tReopen.Q OR #OpenLimit THEN #yOpen : FALSE; #tReopen(IN : FALSE); #tHold(IN : TRUE, PT : #SetOpenHold); #step : 20; END_IF; 90: // 故障锁存必须人工复位 #yOpen : FALSE; #yClose : FALSE; #yAlarm : TRUE; IF #Reset THEN #yAlarm : FALSE; #step : 0; END_IF; END_CASE;逻辑上步号 10 到 40 是一条闭环路径任何时刻只可能处在一个步里所以开门和关门输出天然互斥不需要再写一堆互锁。#tRun做运行超时8 秒是经验值门体宽的按实际行程调到 12 秒#SetOpenHold是开门保持时间人流量大的场所取 5 到 8 秒#tReopen是防夹回退时间3 秒足够走完回退行程。#yHigh是高速段使能进入和退出该步时必须成对复位漏掉会在下一步让门带着高速指令冲出去。步号变量最好放在掉电保持区门在开门过程中断电、恢复后不至于停在中间不动。如果不想保持就在首次扫描时强制写 0让门回到待机。4. 变频器调速、防夹与故障排查4.1 变频器参数与加减速曲线怎么配加变频器的目的有两个起停平顺以及关门末段减速减轻撞击。PLC 只给运行指令和速度段信号曲线全在变频器参数里。下面是中小功率门机常见的参数方向具体号码按所用型号的手册核对。参数项典型取值作用加速时间1.5~2.5 s从 0 到高速频率的时间太短会过流跳闸减速时间1.5~3 s到限位前减速太长门会「滑」过到位点高速频率30~40 Hz门体平移速度玻璃门取低值低速频率10~15 Hz关门末段爬行速度转矩提升按负载重门启动时补偿空载门不要加电子热保护按电机铭牌防堵转烧电机故障输出常闭接到 PLC 的 DI_VFDFault如果 PLC 和变频器之间走 Modbus RTU就不必再用多段速端子直接写频率和读状态。西门子 PLC 做主站时用MB_MASTER一次请求的内容大致如下。// 周期读取从站 1 的输出频率和输出电流保持寄存器 0 起共 2 个字 #instMB(REQ : #readTrig, // 上升沿触发建议 300~500 ms 一次 MB_ADDR : 1, // 变频器从站地址与变频器参数一致 MODE : 0, // 0读保持寄存器1写单个寄存器 DATA_ADDR: 16#0000, // 起始地址Modbus 地址为 0 基 DATA_LEN : 2, // 读 2 个寄存器频率、电流 DATA_PTR : #rdBuf); // 接收缓冲区建议用数组REQ必须用脉冲触发不能一直给 1否则总线被占满、其他从站响应变慢。DATA_ADDR是协议地址不是手册上的 4xxxx 编号两者差 1 是常见错误。返回值存进#rdBuf后要按标定系数换算成实际工程值再显示或比较直接用原始整数做判断会得到错误结论。总线上挂多台设备时轮询周期要算清楚32 台变频器的场景就得先把单台响应时间量出来再决定能不能跑在一路 485 上。4.2 防夹、光幕与力矩保护的实现层次防夹不能只靠一层。第一层是安全光幕遮挡立即停止关门并回退响应要放在程序最短路径上。第二层是遇阻反转变频器读到电流超过额定值 1.3 到 1.5 倍且持续 0.3 秒以上判定为顶到障碍这个判断可以用变频器的过转矩输出功能直接给 PLC 一个开关量比在 PLC 里读电流再算更可靠。第三层是运行超时也就是上一章的#tRun它兜住的是限位失效、皮带打滑这类机械问题。三层逻辑要有明确优先级光幕最高遇阻次之超时最后。实现上光幕信号直接串进关门输出的允许条件不走状态机判断这样即使程序卡在某个步里关门也起不来。有人图省事把光幕只接到状态机的 30 步判断里一旦步号异常安全就一起失效了。4.3 现场故障排查顺序现象优先怀疑排查动作门完全不动运行灯正常换向输出或接触器监控 Q0.0/Q0.1 是否互斥量接触器线圈电压感应不触发传感器供电或输入类型看输入指示灯确认 NPN/PNP 与公共端接法一致到限位不停限位信号或边沿处理手动挡触发限位看步号是否跳到下一状态关门中反复回退光幕对射偏移或积灰擦镜面、调对射角度必要时临时屏蔽做验证运行超时报警机械阻力或变频器减速时间手动盘车感受阻力检查减速时间是否过短变频器报过流加速时间、转矩提升加长加速时间取消空载时的转矩补偿排查顺序的原则是先看 PLC 输入输出状态再看外部回路。所有输入点都有指示灯程序里再用监控表把关键步号和输出一起列出来两分钟就能定位是信号没进来还是程序没响应。5. 仿真验证与程序调试的实用做法5.1 在下载前把逻辑跑一遍程序写完直接上柜子等于拿真门做实验。做课程设计和毕业设计可以先用博途的 PLCSIM 或者三菱的仿真软件把状态机跑通做法是在仿真里用监控表手动置位DI_ExtSensor、DI_OpenLimit、DI_CloseLimit这几个点观察步号是否按 0-10-20-30-0 的顺序循环。重点验证三个边界开门过程中再次触发感应器门停在开位不重启、关门过程中给光幕信号能立刻回到 40 步、运行超时后必须人工复位才能回待机。屏幕上再配一层组态画面把步号、门位、报警状态做成动画答辩或者交付时比看监控表直观得多。组态软件关联变量时注意地址要和 PLC 变量表一致Bool 型的开关量用位地址时间和速度这类参数用字地址混用是显示不刷新最常见的原因。5.2 调试阶段的几个具体技巧先把所有输出强制断开用强制表逐点测试接触器和指示灯确认接线无误再接入电机这一步能避免接线错误导致的第一次上电跳闸。其次把每次状态跳转所在的步号和时间戳记到一个环形数组里运行一段时间后导出对照现场情况看门在哪一步停留最久加减速时间和保持时间的调整就有了依据。程序规模上去以后要养成看资源占用的习惯在博途里查看 PLC 资源使用情况重点看工作存储器和装载存储器余量、循环扫描周期。扫描周期超过 10 ms 就要留意自动门逻辑本身很轻周期变长通常是通讯块被高频调用或者程序块里出现了大循环。最后一步是把SetOpenHold、SetRunTimeout、防夹回退时间这三个参数做成一组可保存的配方不同现场调好之后能一键切换下次改门体尺寸不用重新下程序。本文还有配套的精品资源点击获取
返回列表