当前位置: 首页 > news >正文

基于西门子Smart200 PLC与Smart700屏的稳定追剪定长跟随切割系统——带堆放与报...

追剪,定长切割,跟随切割,PLC用的是西门子smart200,屏用的是smart700,是实际项目运行非常稳定,带堆放功能,报警功能,可提供CAD电气图,程序源代码,屏程序源代码

上周刚把这套金属型材切割线的收尾调试做完,客户当场就签了验收单,连说比之前用的老设备省心十倍。这套线用的是西门子Smart200 SR40当主控,配了块Smart700 IE V3的屏,从去年年底开始改线到现在,跑了快俩月没出过啥大毛病,稳得一批。

功能上基本把客户的需求都覆盖了:定长切割是基础,就是按输入的长度精准剪料;追剪是针对那种不停机送料的场景,比如传送带一直在跑,剪的时候剪刃要跟着料的速度走,不然绝对剪歪;还有跟随切割,适配卷料放料的连续作业场景,我们这个项目用追剪模式足够应付。另外还加了自动堆放和完整的报警系统,工人不用一直蹲在机器旁边盯梢。

先说最简单的定长切割,一开始我直接用普通的内部计数器,结果发现PLC扫描周期波动的时候,计数不准,剪出来的长度差个几毫米,客户不满意。后来改成用Smart200的高速计数器HSCS,带比较触发的那种,省得轮询浪费资源。给你们看个简化版的ST代码:

// 定长切割核心逻辑 VAR enc_total_pulse: DINT; // 高速计数器累计脉冲值 target_length: REAL; // HMI下发的目标切割长度,来自RW变量 pulse_per_mm: REAL := 127.32; // 调试算出来的每毫米对应脉冲数,一开始算错了差点翻车 cut_trigger: BOOL; // 切割触发标志 cut_done: BOOL; // 切割完成标志 END_VAR // 高速计数中断触发,每收到100个编码器脉冲刷新一次 enc_total_pulse := HSC0_CURRENT; target_length := RW100; // 从Smart700读取的设定长度,地址对应屏里的输入框 // 累计脉冲达到目标长度对应的脉冲数时触发切割 IF enc_total_pulse >= target_length * pulse_per_mm THEN cut_trigger := TRUE; Q0.0 := TRUE; // 输出给剪板机的电磁阀 // 延时120ms复位,刚好匹配剪板机的动作周期 TON(IN:=cut_trigger, PT:=T#120MS, Q=>cut_done); IF cut_done THEN enc_total_pulse := 0; // 等切割完成再清零计数器,避免重复触发 Q0.0 := FALSE; END_IF; END_IF

这段代码里最容易踩坑的就是重置计数器的时机,一开始我把enctotalpulse := 0直接放在cut_trigger置位后面,结果有时候剪板机电磁阀还没弹回来复位,计数器就清零了,导致连续剪了好几段废料。后来改成用TON的输出回调来重置,等剪板机动作完成再清零,就没出过这个问题。还有那个脉冲当量,一开始我把减速机比搞反了,算出来每脉冲的长度差了一倍,剪出来的料比设定的长了一倍,差点被客户怼,后来拿卷尺量了送料辊的直径,重新算一遍才搞定。

追剪才是这套线的核心,毕竟客户原来的老设备就是追剪的时候老是卡料。追剪的关键就是同步速度,得让剪刃的速度跟上传送带送料的速度,不然剪出来的料要么歪要么断。我这里用编码器读送料辊的转速,算出来当前的线速度,然后同步给剪刃的伺服电机。简化代码大概是这样:

// 追剪速度同步逻辑 VAR last_enc_pulse: DINT; // 上一次采样的编码器脉冲数 current_enc_pulse: DINT; // 当前编码器脉冲数 feed_speed: REAL; // 送料辊线速度,单位m/min servo_speed: REAL; // 剪刃伺服电机给定速度 gear_ratio: REAL := 50; // 剪刃伺服减速机比 END_VAR // 高速中断触发,每收到200个编码器脉冲刷新一次速度 current_enc_pulse := HSC0_CURRENT; // 计算100ms内的脉冲增量,换算成送料线速度 feed_speed := ((current_enc_pulse - last_enc_pulse) * 0.00785 * 60) / 1000; // 同步伺服速度,让剪刃和送料同速 servo_speed := feed_speed * gear_ratio; // 输出模拟量到EM AQ02,给到伺服驱动器的速度给定端口 MW100 := REAL_TO_WORD(servo_speed); last_enc_pulse := current_enc_pulse;

这段代码一开始用的是每秒刷一次的定时中断,结果还是有点延迟,后来改成每收到200个编码器脉冲就触发一次高速中断来算速度,这样精度就上来了。对了,我们这个项目没加花里胡哨的伺服通讯模块,就是用EM AQ02输出模拟量给伺服驱动器,直接给速度给定,新手也能调,省了好多通讯调试的麻烦。

追剪,定长切割,跟随切割,PLC用的是西门子smart200,屏用的是smart700,是实际项目运行非常稳定,带堆放功能,报警功能,可提供CAD电气图,程序源代码,屏程序源代码

屏用的是Smart700,操作界面做的特别简单,就三个大页面:主页面显示当前料长、实时速度、报警状态;设置页面改目标长度、剪板机气缸压力阈值;报警页面看历史报警。比如客户要是换了不同厚度的型材,直接在设置页改一下目标长度就行,工人学两分钟就会。还有堆放功能,就是每剪一次加一个计数,到了设定的堆料数就弹个红色报警框,提醒工人清料,省得料堆太高掉下来砸到人。

报警系统做的还算全:要是编码器10秒没脉冲,就报“送料卡滞”;剪板机的气缸压力低于设定值,报“剪板机压力不足”;伺服电机过载的话,直接触发伺服的DO信号给PLC,屏上直接弹出警告。所有报警都存在屏的存储卡里,客户要是想查历史故障,直接导出来就行,不用自己瞎记笔记。

这套线的CAD电气图、PLC的源代码还有屏的程序源代码我都整理好了,要是客户后续想改功能,比如加个自动上料的功能,直接拿过去改就行,不用从头写。毕竟西门子的这套文档还是挺全的,查起来也方便。

总的来说,Smart200加Smart700这个组合真的适合中小项目,性价比高,稳定性也够,不像有些国产PLC老是出兼容问题。这次的项目算是我近期做的最省心的一个了,客户满意,我也不用天天跑现场改bug。

http://www.jsqmd.com/news/572170/

相关文章:

  • 别再为PyTorch GPU环境发愁了!手把手教你用Miniconda管理多版本CUDA(GTX1060实测)
  • 施密特触发器在智能家居中的7个隐藏用法:从空调变频到漏电保护
  • Windows 10/11下CUDA Toolkit和cuDNN安装避坑指南(附详细步骤)
  • Struts2 S2-005漏洞绕过技巧:从编码混淆到命令执行
  • 好写作AI|博士毕业论文初稿中的AI辅助学术语言优化路径
  • Amazon Bedrock安全指南:如何用Guardrails功能过滤有害内容(实测案例)
  • 元宇宙资产通行证:搭建游戏世界的“数字桥梁“
  • 告别‘夜盲症’:用Python+OpenCV手把手教你实现红外与可见光图像融合(附完整代码)
  • 从理论到实践:手把手教你用MATLAB绘制MSK系统的信噪比-误码率曲线
  • LangChain4j的AiService注解,除了自动装配还能怎么玩?一个注解搞定复杂AI逻辑
  • 专业开发者的Blender插件配置方案:高效导入导出虚幻引擎模型
  • Kandinsky-5.0-I2V-Lite-5s创意作品展:利用LSTM预测生成故事性动态画面
  • 2026年当地大车驾校品牌,学车驾校/考车照/增驾/增驾培训/驾照培训/学大车/学车驾照/大车驾校,大车驾校学校哪个好 - 品牌推荐师
  • 告别Transformer的O(L²)噩梦:手把手带你复现Informer的ProbSparse注意力机制(附PyTorch代码)
  • 海康工业相机ROS驱动避坑指南:从MVS安装到实时彩色点云生成(Ubuntu 18.04/Jetson实测)
  • SMAPI模组加载器全方位指南:从安装到高效管理星露谷物语模组
  • 从平衡车到无人机:手把手教你用STM32 CubeMX配置FOC驱动无刷电机(有感/无感模式切换)
  • BilibiliDown:如何高效批量下载B站视频并实现离线收藏管理?
  • 终极指南:如何快速掌握jQuery-JSONP跨域请求插件
  • 如何高效使用猫抓扩展:浏览器资源嗅探工具完整实战指南
  • 告别本地环境:用Databricks Notebook快速搞定数据探索与可视化
  • 信号与系统2-连续离散系统时域分析
  • STM32F103RCT6 -- 基于FreeRTOS队列机制的USART1高效串口通信实现
  • RocketMQ监控搭好了但告警总失灵?手把手教你配置Prometheus告警规则和Grafana钉钉推送
  • Ollama实测:Yi-Coder-1.5B代码生成速度有多快?3秒搞定日常函数
  • App上架避坑指南:如何7天快速拿到软著证书?不同应用市场要求全解析
  • ElementUI动画进阶:从零封装一个平滑的左右抽屉式折叠组件
  • 3个核心优势解决离线文本提取难题:Umi-OCR如何重塑本地OCR工作流
  • 从MDK到VSCode:为STM32H743搭建一个高效双开发环境工程模板(含ARM Compiler V5/V6选择指南)
  • 如何彻底掌控你的微信聊天记录:WeChatMsg本地数据管理终极指南