网站首页 > 技术文章 正文
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-09-09 利用shell()函数在Word中打开Excel(2)
- 2025-09-09 PLC编程经验总结,事半功倍_plc编程入门及工程实例
- 2025-09-09 你知道《三国杀》于吉技能怎么用吗
- 2025-09-09 值得推荐的10家医疗健康初创公司_健康医疗企业
- 2025-09-09 VBA信息获取与处理专题五第二节:根据地址不同分发简单邮件
- 2025-09-09 手机云台稳定器 让你秒变专业摄影师
- 2025-09-09 3张表带你认识图纸上的常用符号,再也不用担心符号看不懂了
- 2025-06-30 手机云台稳定器 让你秒变专业摄影师
- 2025-06-30 二极管基础知识(2)二极管的关键参数
- 2025-06-30 Excel常用技能分享与探讨(5-宏与VBA简介 VBA之用户窗体-高级用法)
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)