ARTICLE DETAIL

资讯详情

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

基于S7-200 PLC和MCGS的矿井皮带速度控制系统设计

基于S7-200 PLC和MCGS的矿井皮带速度控制系统设计 矿井主运皮带如果跑偏、打滑甚至断带轻则烧电机、撕皮带重则造成安全事故。这个项目就是围绕“让皮带转速既跟得上出煤量、又不会因为超速或打滑出问题”来展开的用S7-200 PLC采集编码器脉冲算皮带实际速度通过变频器调节电机频率MCGS触摸屏作为操作员窗口负责显示速度曲线、下发给定值、报警记录。整套系统麻雀虽小五脏俱全非常适合理清“检测—运算—执行—交互”这条主线。我尽量按当时做项目的顺序来讲从方案选型到硬件接线再到PLC程序和MCGS画面最后是现场调试踩过的坑每一步都给你可以直接参考的细节。1. 项目整体拆解这套系统到底在解决什么问题1.1 带式输送机速度控制的三个核心矛盾先看现场根本诉求。煤矿井下主运皮带往往长达数百米甚至上千米带速一般设计在2.5m/s到3.5m/s之间。过去很多老矿用工频直起电机永远跑满速带来几个问题重载启动会打滑。皮带上煤多了启动瞬间惯性大电机满速冲击摩擦驱动力跟不上滚筒和皮带之间就会打滑轻则皮带磨出烟重则撕裂皮带。如果能把启动过程做成一段斜坡让皮带速度从0慢慢升上去打滑概率明显下降。空载跑高速浪费电。井下生产不是一直满负荷皮带没煤的时候还跑高速纯粹是浪费电、磨损托辊和滚筒。按出煤量动态调整带速节电效果很直接。多台设备配合需要稳定的速比。采区皮带、主运皮带、给煤机之间如果速度不匹配会出现堆煤或者断煤。人工看着电流调频率反应太慢需要一套自动调速系统。所以题目里“速度控制”不是简单的调变频器频率而是要解决三件事测速测准、调速平稳、故障能停。1.2 为什么选S7-200和MCGS这套组合现在新项目可能直接上S7-1200配博途加WinCC但回头看这个项目S7-200加MCGS仍然是很务实的选择尤其适合煤矿这类工况。S7-200的指令集简单直接。位逻辑、计数器、定时器、PID、高速计数器这些功能都内置梯形图写起来直观毕业生或者半路转行的电工很容易上手。CPU226自带24路数字量输入和16路数字量输出这个项目连扩展数字量模块都省了。S7-200存量极大。煤矿设备更新周期长很多在役控制柜用的还是S7-200系列备件和图纸都好找维护人员也熟悉。选它意味着后续有人能接棒维护不会出现没人会修的尴尬。MCGS组态软件上手门槛低。和WinCC、iFIX相比MCGS的思路更“所见即所得”拖拽控件、绑定变量、下载运行流程非常顺。嵌入式触摸屏如TPC7062K价格不高在煤矿井下放在操作台上抗震动、防尘表现都不错。通讯简单。S7-200的PPI口直接能和MCGS触摸屏通过串口通讯不用额外买OPC服务器一根PPI电缆就搞定。这在学校实验室做毕设现场调试兜底都非常方便。补充一点如果你们矿上新上项目且预算充足可以选S7-1200配合昆仑通态新一代屏走Profinet通讯速度快很多趋势曲线刷新更流畅。但项目目标是搞懂原理S7-200足够了。2. 硬件系统设计与选型2.1 系统硬件拓扑与选型清单先看整体结构分成四层现场层皮带、电机、滚筒、编码器、跑偏开关、急停开关控制层S7-200 CPU226 PLC执行层变频器这里是西门子MM440交互层MCGS TPC7062K触摸屏层级之间都用硬接线或者PPI串口连接结构很清晰。硬件清单我整理成表格序号设备名称型号/规格数量作用1PLCS7-200 CPU226 AC/DC/继电器1逻辑控制与PID运算2模拟量输出模块EM2322路AO1输出0-20mA/0-10V给变频器3旋转编码器欧姆龙E6B2-CWZ6C600线差分输出1测滚筒转速4变频器西门子MM440 7.5kW1调节电机频率5触摸屏MCGS TPC7062K含组态软件1人机交互界面6通讯电缆PPI电缆西门子原装或兼容1PLC与触摸屏通讯7开关电源明纬24V 5A1给编码器、触摸屏供电8各种继电器、接触器、断路器施耐德系列若干启停与保护回路选型理由说几句。编码器是增量式的600线意味着电机每转一圈发600个脉冲经过倍频后分辨率够用。真做项目时如果追求更精确可以选1000线或2000线但要注意S7-200高速计数器最大计数频率不能超过32kHz2000线在1500转/分钟时已经接近30kHz了余量不大。600线就稳妥很多。MM440变频器是西门子经典的通用变频器支持端子启停、模拟量给定频率、内置PID还能直接读取电机电流和转速调试很方便。新项目如果采购不到可以用汇川、英威腾替代接线和参数设定思路是一样的。2.2 测速方案选择与编码器安装测皮带速度的方法有几种磁电转速传感器测滚筒转速编码器测电机轴转速皮带测速轮摩擦轮压在上面测皮带表面线速度我选的是编码器装在电机侧或滚筒侧轴端。电机侧的好处是安装方便缺点是皮带打滑时测到的还是电机转速反馈速度不真实。滚筒侧更接近真实皮带线速度但如果滚筒包胶磨损或皮带打滑测得的数据依然有误差。更理想的是用测速轮压在皮带上但摩擦轮打滑、磨损、积煤都会影响精度。这个项目因为重点在“调速逻辑”和“组态交互”用编码器测滚筒转速就够了。实际操作中编码器通过联轴器或弹性软连接安装在滚筒非驱动端轴端用支架固定。要注意编码器对中不同心会导致轴承快速损坏。编码器输出有两种类型差分输出A/A-、B/B-和集电极开路输出。S7-200 CPU226输入板可以接受5V/24V两种电平需要匹配编码器供电。我用的E6B2-CWZ6C是推挽输出供电12-24V输出也是12-24V电平直接接到S7-200的I0.0和I0.1公共端1M接24V正极。对了S7-200高速计数器的输入公共端接法有讲究如果是PNP源型输入公共端要接正极接编码器时要查S7-200系统手册确认I0.0在什么电平下被识别。2.3 变频器与PLC的接口设计MM440变频器本身不便宜但是这个项目里它扮演两个角色一是执行机构接收PLC发的模拟量频率给定信号二是保护机构变频器过流、过载、过热时自动跳闸并把故障信号反馈给PLC。接线方面我做了三组控制线模拟量给定线EM232的AO0输出端子接到变频器的AIN和AIN-用屏蔽双绞线。启停控制线PLC数字量输出接入变频器的端子这里用的是变频器“端子启停”方式PLC给一个干接点信号变频器就运行断开就停机。故障反馈线变频器继电器输出端子例如12-13端子接到PLC输入端变频器故障时闭合PLC立刻停皮带。这里有个容易踩的坑MM440的模拟量输入有两个端子AIN1和AIN2。选AIN1端子3和4作为频率给定源用DIP开关切换为电流输入还是电压输入。用0-10V电压输入接线简单用4-20mA电流输入抗干扰能力强。我实际选的是4-20mA因为井下电缆长电流信号不容易受电压降影响。EM232输出可以通过跳线设为0-20mA与4-20mA对应关系软件里再做变换。3. PLC程序设计从手动启停到PID闭环S7-200的编程软件是STEP 7-Micro/WIN程序结构分主程序、子程序和中断程序。这个项目的程序段不算复杂我按功能模块拆成了五块初始化模块启动/停止逻辑高速计数器测速模块PID调速模块报警保护模块3.1 高速计数器的配置与中断处理S7-200有6个高速计数器HSC0-HSC5可配置为多种模式。测旋转编码器通常用HSC0或HSC1支持A/B相正交模式可以四个倍频分别计数能精确测转速还能判断正反转。我们只需要速度大小就用了HSC0模式9A相接I0.0B相接I0.11倍频模式。配置的步骤大致是用HDEF指令定义计数器设置HSC编号和模式。用MOV_B指令写控制字节SMB37启用HSC0更新当前值设置方向如果只测正转速度不需要方向。用MOV_DW指令写初始值SMD38设为0。用HSC指令激活。这种配置思路最重要的一点是测速不是在每个脉冲都做计算而是每隔固定时间窗口读一次累计脉冲数差值除以时间就是频率/速度。我用的是SMB34定时中断周期设为100ms然后中断程序里把HSC0当前值复制到PLC变量里再把HSC0清零重新计数。这样做的理由每100ms算一次速度触摸屏显示曲线能有100ms分辨率视觉上比较流畅同时每秒10次的速度变化量能反映瞬时波动又可以平滑掉机振动产生的毛刺。如果采集周期太短比如10ms皮带运行颠簸造成的脉冲抖动会让速度曲线全是噪声如果太长1s现场看曲线就感觉“迟钝”打滑保护的响应也慢了。3.2 测速公式与标定速度计算这一步要让西门子的人都能复现公式这样写假设滚筒直径为D单位m电机通过减速机连接滚筒减速比为i编码器600线1倍频模式下电机每转一圈产生600个脉冲。编码器实际装在滚筒侧电机和滚筒1:1直连那么皮带线速度为[ v \frac{N}{600} \times \pi \times D \times \frac{60}{1000} \text{ m/min} ]其中N是1秒内的脉冲数。如果编码器装在电机轴侧经减速比为i公式要除以i[ v \frac{N}{600 \times i} \times \pi \times D \times \frac{60}{1000} \text{ m/min} ]实际程序里用整数运算或者浮点运算。S7-200的浮点运算指令不缺我直接用浮点算避免整数除法带来的精度损失。一种更稳妥的调试方法是先把变频器打到“面板控制”给定一个已知频率比如20Hz用测速表放皮带上实测带速然后和程序里算出的速度做对比误差在2%以内就说明公式里的系数是对的。现场做标定是必需步骤不要只信理论计算。3.3 手动模式与自动模式的启停逻辑系统设计了两套操作模式手动模式操作员在MCGS触摸屏上输入一个模拟量目标速度用百分比表示变频器输出频率PLC把百分比线性映射成模拟量输出值变频器按给定频率运行。速度闭环不参与只是“开环给频”。自动模式操作员设定皮带目标带速PLC通过PID调节器把实际带速和目标带速作比较自动调整模拟量输出到变频器皮带有扰动物料量变化时,能自动恢复目标速度。因为模式切换必须在皮带停止状态下进行我做了互锁逻辑如果皮带在运行切换模式无效。这个细节在现场很重要防止运行状态下误切换导致PID输出跳变。切换逻辑这样写自动模式M0.0置位手动模式M0.1复位如果皮带运行标志M0.2ON则禁止切换模式程序里用启保停电路实现启动保持。按下启动按钮I0.2M0.2吸合同时输出Q0.0给变频器运行信号按下停止按钮或者某个保护信号动作M0.2复位Q0.0断开Q0.1故障复位脉冲清故障。3.4 PID调速回路与关键参数确定S7-200自带PID指令使用前要分配一个回路表起始地址是VB0具体的偏移量是固定的过程变量PV、设定值SP、输出M、增益Kc、采样时间Ts、积分时间Ti、微分时间Td等依次排列。我做了两组PID参数一组用于“空载调试验证”一组用于“重载运行”。分别存在PLC不同数据块里运行时根据工况切换空载时用Kp偏小的一组满载时用Kp偏大的一组。如果只做毕设演示一组参数就行。参数整定的经验先设Ti0Td0只保留比例。Kp从0.2开始往大了加观察速度曲线直到出现等幅振荡再退回一半。加入积分Ti从180s开始每次减小一半同时Kp适当降低直到稳态误差消失。微分在皮带调速这种惯性大的对象上效果不明显而且容易放大干扰我就没启用Td0。关键参数表给一个参考值根据现场情况还要微调参数符号初始值比例增益Kc0.8采样时间Ts1.0s积分时间Ti120s微分时间Td0输出下限-0.0输出上限-100.0PID采样时间我用1s为什么不是100ms因为皮带速度响应本身有滞后变频器和电机都有惯性采样太快了反而会让输出频繁波动1s的采样周期配合积分时间120s动态响应已经足够。而且S7-200的PID指令要求采样时间与定时中断匹配我把PID调用放在SMB35定时中断1s周期里执行。3.5 梯形图关键程序段带注释解读这里抽出几个最核心的梯形图网络用文字描述结构方便你照着写网络1启动禁止条件没有打滑报警没有堆煤报警没有跑偏报警没有急停。 如果满足输出M10.0允许启动。所有报警信号并联取反然后串联。这是保护连锁的第一步。网络2启动保持回路条件允许启动M10.0为1按下启动按钮M0.3触摸屏变量然后置位M0.2运行标志停止按钮M0.4触摸屏变量或者故障信号M10.1为1复位M0.2。 输出Q0.0接到MM440的紧急停止/运行端子。启动按钮接的是瞬时点动型运行保持靠的是M0.2自锁。网络3皮带转速换算每次定时中断进入读取HSC0当前值到VD100清零HSC0。用浮点数运算 VD100 → 实数 → 除以600 → 乘以πD → 除以减速比 → 得到vm/s存入VD104。 这个VD104就是整个系统的“速度反馈PV”后面PID调用和触摸屏显示都用它。网络4手动模式模拟量输出手动模式M0.11时MCGS给定值VD1080-100直接线性映射 VD108 / 100 × 32000 → 装入AQW0EM232输出通道0。 这样操作员把滑块拉到50%变频器就接收16mA左右电流对应25Hz。网络5自动模式PID调用自动模式M0.01时调用PID0指令回路表起始地址VB0。设定值取MCGS写入的VD1120-100过程变量取VD1160-100映射的当前带速百分比。PID输出VD120再映射到AQW0。网络6打滑报警实际速度VD104m/s和给定速度VD112比较。如果实际速度 给定速度×0.5启动定时器延时5s定时器到置位打滑报警M30.0复位运行标志M0.2输出停机和报警指示。网络7超速报警实际速度 给定速度×1.2延时3s置位超速报警M30.1。这几个网络的顺序有讲究的报警判断要放在PID输出之后保证PID输出时用的速度反馈已经是上一轮采样值了稳定一些。4. MCGS组态界面开发4.1 工程建立与通讯配置MCGS嵌入版组态软件新建工程后第一件事是配置“设备窗口”这是很多新手忽略的。只有把驱动配置好变量才能和PLC对上号。步骤在设备窗口里选择“通用串口父设备”再选“西门子S7-200PPI”子设备。通讯参数设置波特率9600数据位8停止位1偶校验这是S7-200 PPI协议的默认参数。如果PLC系统块里改过必须一致。PLC站号默认是2触摸屏如果是主站站号设0。这一项对不上通讯永远失败。测试通讯看设备状态为“通讯正常”再往下做。要注意的是MCGS的“S7-200PPI”驱动走的是PPI协议一次请求交换的数据量有限。变量太多、刷新周期太短会导致通讯拥堵CPU24小时高占用率。一般把刷新周期设200ms以上报警变量才设100ms优先刷新。4.2 实时数据库变量与PLC寄存器映射MCGS的“实时数据库”是中间层画面上显示的都是数据库变量每个变量都要绑定到设备驱动的通道地址上。关键映射我列成表MCGS变量PLC地址数据类型方向说明StartM0.3位PLC启动按钮StopM0.4位PLC停止按钮RunFlagM0.2位PLC运行状态显示SpeedSetVD112浮点PLC自动模式设定速度占4字节SpeedActualVD104浮点PLC当前带速占4字节ManSpeedVD108浮点PLC手动频率给定百分比PID_KPVD200浮点PLCPID比例在线修改Alarm_ClM0.5位PLC故障复位按钮请注意VD地址都是断电保持区域程序里占不冲突就行。MCGS读写浮点变量时高低字节顺序要跟PLC一致。实际项目中遇到过触摸屏上浮点速度显示成“巨值”的情况多半是高低字序反了在驱动配置里勾选“双字节交错”或者“大端/小端”选项调整。4.3 画面布局与控件设置画面我规划了四个分页主监控画面实时/历史趋势画面报警记录画面参数设置画面主监控画面最核心包含大号数字显示当前带速单位m/s。给定速度输入框操作员直接输入目标带速写进VD112。启动按钮、停止按钮、故障复位按钮用MCGS的“位开关”控件按钮操作设为“数据对象操作-置1”或“数据对象操作-清0”。运行状态指示灯用“椭圆”控件填充颜色连接RunFlag变量变量为1显示绿色为0显示灰色。手/自动切换按钮一位“选择开关”连接M0.0和M0.1。报警画面用MCGS的“报警显示”控件关联数据库中所有报警变量。PLC里报警时把对应的M30.0、M30.1置1MCGS里设变量报警属性超过阈值自动弹窗并记录时间。趋势画面用“实时趋势曲线”控件绑定SpeedActual变量X轴显示时间Y轴0-maxSpeed曲线自动刷新。建议曲线背景设成深色井下光照条件不好的时候看得更清楚。4.4 组态与PLC通讯稳定性的几个坑这几点都是实际调试踩过坑总结的值得单独拿出来说第一变量类型要严格匹配。S7-200的V区访问有位/字节/字/双字四种方式MCGS里必须选对。比如VD104是32位浮点数你在MCGS里选“16位无符号”来读读出来的数字没意义。地址和类型任何一个不匹配效果都是乱码。第二画面控件刷新周期不能太密集。很多新手喜欢把“实时曲线”的采集周期调成100ms实际会导致通讯排队。建议曲线控件采集周期500ms数字显示200ms报警状态100ms主次分明。第三按钮的“置1”和“清0”别搞混。如果你用“置1”做停止按钮按下后M0.4会一直保持为1程序复位了M0.4但下次循环MCGS又会把M0.4置1可能影响停止逻辑。正确做法是停止按钮用“清0”或者用MCGS的“瞬时值”方式。第四MCGS嵌入版的变量保存和掉电保持。组态里的设定值比如PID参数、给定速度默认掉电丢失。如果想让参数掉电保存要在实时数据库里勾选“允许存盘”并且在用户应用里设置存盘周期。我一般设置每10分钟存盘一次这样断电重启能恢复上次参数。5. 现场调试与常见问题排查5.1 调试顺序先开环后闭环先空载后带载调试流程我总结了一个高效顺序不用从头到尾摸索第一步单点测试变频器。先把PLC到变频器的模拟量线断开用变频器面板给定频率让电机空转确认电机转向和转速正常。方向反了改变频器输出相序这是最简单的检查。第二步PLC模拟量输出测试。接上模拟量线程序里临时给AQW0写固定值比如16000对应50%频率测量变频器给定端子电流是否在8-20mA之间变化。如果电流固定不变检查EM232的模块地址拨码设置和PLC组态里的地址。第三步手动模式开环调试。把MCGS手动频率给定滑块拉到20%、30%、50%看实际带速是否对应变化。第四步自动模式空载调试。设PID参数为初始值把给定速度设到2m/s看速度曲线是否收敛有没有振荡。第五步带载调试。皮带上放模拟负载或真正出煤观察带速波动微调PID参数。这里专门说一下如何判断带载后速度会不会“跌”如果带载后速度下降很多说明PID比例不够或积分时间太长系统恢复速度慢。如果速度波动大可能是编码器数据不准确先检查测速是否稳定不要急着调PID。如果PID输出到一半就饱和检查输出限幅是否设置成0-100%之外的范围了还有变频器模拟量给定范围和PLC输出范围是否匹配。5.2 常见问题速查现象可能原因排查方法MCGS触摸屏显示“设备通讯失败”站号不一致、波特率不对、PPI电缆损坏检查PLC系统块设置确认站号和波特率替换PPI线测试用串口调试助手抓包看有无回应PLC有运行信号但电机不转变频器端子启停未使能或模拟量信号为零检查变频器参数P0700是否设为端子启停P1000是否设为模拟量给定测量模拟量端子电流带速显示明显偏大或偏小编码器线数、减速比、滚筒直径任一参数设置错用测速表实测皮带速度与显示屏对比反向调整公式中的参数自动模式下速度波动大PID参数不当、编码器信号有干扰、皮带运行颠簸先把采样周期设为1s适当降低Kp检查编码器安装是否松动打滑报警误报报警延时太短、给定速度与实际速度偏差大加长延时到8-10秒或者重载启动时短暂屏蔽低速报警模拟量输出到变频器频率无变化EM232地址错误或输出量程不匹配监控AQW值是否变化测量EM232端子电流是否随数值变化触摸屏上的速度曲线长时间不动MCGS变量刷新周期太长或变量类型不对确认控件采集周期检查绑定变量是否为VD104浮点型5.3 速度传感器的抗干扰处理这是现场最容易出暗故障的地方。编码器信号线走井下巷道电缆桥架里有高压变频器动力电缆电磁干扰严重。我在项目里做了几件事编码器信号线用屏蔽双绞线屏蔽层单端接地接在PLC侧的地排上避免形成地环路。信号线与动力线分开桥架间距至少300mm不得已交叉时走直角。PLC输入点并接1mF电容滤波不S7-200高速计数器的输入频率高不能随便加电容会影响脉冲边沿检测。要加只能加RC低通滤波但时间常数要很小否则滤掉了高频脉冲。更好的办法是装个抗干扰滤波器比如信号隔离器或者用差分编码器输出抗共模干扰能力更强。编码器电源用PLC内部24V供电还是外部电源我建议外部开关电源给编码器单独供电不跟变频器控制端子、触摸屏共用电源避免地线串扰。6. 扩展方向与实际心得6.1 多台皮带机顺序联锁单台皮带调速做完后现场往往要求多台皮带机联动。比如三台皮带顺序启动逆序停止这在煤矿运输系统里很常见。程序扩展思路不复杂把启动信号按逆煤流方向延时接力停止信号按顺煤流方向延时。第一台皮带启动后把它“运行正常”的反馈信号作为第二台皮带的允许启动条件用定时器延时8秒左右逐台启动。6.2 双电机驱动功率平衡长距离、大运量皮带很多采用双电机驱动这时要加功率平衡控制。思路是主电机用速度闭环从电机用速度跟随电流闭环微调通过比较两个电机的电流差调整从电机的变频器输出让两电机承担的负载接近一致。S7-200的PID指令可以设两个回路一个管速度一个管功率平衡输出叠加后给从电机变频器。6.3 上位机远程监控煤矿还希望在地面调度室看到井下皮带运行状态。做法是用S7-200的以太网模块或者加一个工业网关把数据通过以太网到地面服务器上位机用组态软件或者C#读数据。如果嫌麻烦直接用MCGS的物联网模块也行昆仑通态有配套的云端方案网页上就能看曲线和报警。6.4 项目复盘与几个实在的建议做这类课题/项目我最深的体会是速度控制系统的重头戏往往不在“自动控制理论”而在“现场信号是否可靠”。编码器安装不稳一切白搭通讯参数不一致画面就不出数。调试阶段多花时间彻底检查接线和通讯比一开始就纠结PID参数有价值得多。对准备做毕业设计的朋友建议时间分配上这样安排硬件搭建和接线用40%PLC程序用30%MCGS组态用15%现场调试用15%。别把进度全压在最后一周调试的时间永远比你预想的长。如果遇到实在调不通的环节比如高速计数器计数不灵敏、PID输出异常先把问题拆开分别验证“给定-编码器反馈-PLC计算-变频器执行”这四段信号是否正常用排除法定位。拿到数据后哪怕一个环节一个环节查也比盲调快。最后分享一个小技巧调试时可以在MCGS画面里加一个“内部测试”页面把所有中间量和状态位都显示出来比如HSC计数初值、PID输出值、报警标志位。这样出现问题扫一眼画面就知道卡在哪一段了省去反复插拔编程电缆看状态的麻烦。这个习惯让我后面做项目都省了很多心。
返回列表