网站首页 > 技术文章 正文
01 导读:
在使用西门子 PLC 让步进或者伺服来进行定位控制的时候,估计不少用户都发现了,当完成一个位置的定位之后,要启动下一个位置的定位,常常得延迟一些时间。为啥会这样呢?主要是为了把扫描周期错开,否则定位会重叠,或者跑数,导致定位不准。
一般来说,有两种办法能做到:
第一,靠添加定时器来实现;
第二,通过巧妙的编程逻辑把扫描周期错开。在接下来的内容里,咱们会深入研究第二种办法。
02 案例需求
在这个案例里,得用 S7-200SMART PLC 来实现对步进电机往复定位的精准控制。具体是这样的要求:要是按下启动按钮,步进电机就会以每秒 10 毫米的速度,朝着 50 毫米的位置移动。等电机准确定位到 50 毫米那里之后,马上又以同样每秒 10 毫米的速度,反向运行到 0 毫米的起始位置。从这以后,电机就会一直按照这个模式来循环往复地运转,不停地完成从 0 毫米到 50 毫米,再从 50 毫米回到 0 毫米的定位动作。
03 使用200SMART软件组态运动控制
在通过 S7-200SMART PLC 来完成定位控制任务之前,用 200SMART 软件做运动控制组态是特别重要、不能少的关键步骤。这里面,像每转脉冲数还有每转机械位移量这些参数的设定,对整个运动控制的效果有着决定性的影响。因为各种应用场景都不一样,又很复杂,实际的工作情况差别也很大,所以在这就不对具体的组态步骤和参数设置仔细讲了。特别建议读者根据自己碰到的实际情况,认认真真、仔仔细细地完成运动控制组态,这样才能保证后面的定位控制工作又准又高效。
04 程序编写
1)、网络段 1 一直把 V100.0 复位,网络段 2 则是调用定位初始化指令
2)、网络段 3 是把当前位置设定成原点,在实际的项目里可以调用回参考点的指令。咱们在这测试,用这个指令就行啦!
3)、网络段 3 是实现往复定位功能的关键:按下启动之后,把状态步设成 1,等于 1 的时候就把 50 的位置给到 VD12,同时在这次的扫描周期把 V100.0 置位成 1,而到下一个扫描周期 V100.0 就会复位,这样就能避免在这次的扫描周期把“2”这个状态步给到 VB20,只有当定位完成了,V0.6 变成 1 时,VB20 才会是 2。当状态步等于 2 时,分析的方法和等于 1 时是一样的,在这就不多说了。
4)、调用定位指令并填写管脚参数。
本案例主要讲的是利用 S7-200SMART PLC 来让步进电机实现往复定位。在这个过程里,要保证定位指令和状态步能准确切换,错开扫描周期是很重要的。
具体来说,在程序的网络段 1 加上常通复位指令,能很好地避免因为变量有残留值而影响系统运行,对整个定位控制流程都有帮助。从这次案例能明白,要是碰到像这种步序切换的程序编写工作,在程序开始的地方设置常通复位指令是个挺不错的办法。这不但能保证系统一开始的状态是对的,还能给后面程序稳定运行和精准控制提供有力的保障。
不管是简单的工业自动化控制,还是比较精细的设备运动操控,这种编程的想法都可以参考。
PLC 定位控制中,延时问题的编程技巧大公开
http://bbs.plcjs.com/forum.php?mod=viewthread&tid=504821&fromuid=42656
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)
猜你喜欢
- 2025-06-30 手机云台稳定器 让你秒变专业摄影师
- 2025-06-30 二极管基础知识(2)二极管的关键参数
- 2025-06-30 Excel常用技能分享与探讨(5-宏与VBA简介 VBA之用户窗体-高级用法)
- 2025-06-30 百年前的步兵神器,VB枪榴弹发射器历史以及原理解析
- 2025-06-30 WORD中打开EXCEL文件(word里面打开excel文件)
- 2025-06-30 利用单步运行及断点设置来调试程序
- 2025-06-30 开春就要上颗黄金U!酷睿i7 9700KF配置推荐
- 2025-06-30 抗晃电模块的接线及应用(防晃电模块工作原理接线图)
- 2025-06-30 PLC基础知识57问,工控人常见问题集合
- 2025-06-30 详解有关MOS管的各项参数(详解有关mos管的各项参数是什么)
- 1506℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 493℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 484℃MySQL service启动脚本浅析(r12笔记第59天)
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 458℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 442℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 421℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)