[西门子] [西门子PLC] 通过向导设置S7-200smart的运动控制

[复制链接]
查看80692 | 回复0 | 2025-3-27 09:18:54 | 显示全部楼层 |阅读模式
亲爱的PLC小伙伴们,今天我们来聊聊西门子S7-200 SMART PLC的运动控制功能。

别看它个头小,这小家伙在运动控制方面可是有两把刷子的!让我们一起来揭秘S7-200 SMART的运动控制向导,看看它能给我们带来哪些惊喜。

1. S7-200 SMART运动控制概览


首先,咱们得知道,S7-200 SMART提供了三种开环运动控制方式:
    脉冲串输出(PTO)脉宽调制(PWM)运动轴

这三种方式就像是三种不同的"武功",各有特点。今天我们主要focus在第三种"运动轴"上,因为它最能体现S7-200 SMART的独特之处。

温馨提示:别跟大哥哥S7-1200混淆哦!S7-200 SMART只能做开环运动控制,就像是没有反馈的"一根筋"。

2. 运动控制向导初体验


打开TIA Portal,找到运动控制向导,就像打开了一本"武功秘籍"。让我们一步步解锁这本秘籍的奥秘!




2.1 测量系统设置


这一步就是设置脉冲当量,简单来说,就是告诉PLC:"喂,我转一圈,你得给我多少个脉冲啊?"

2.2 方向控制


这里要选择脉冲的类型和极性。一共有4种脉冲类型:
    脉冲+方向正负脉冲AB相单脉冲

就像选择武器一样,每种类型都有its own优缺点。

2.3 输入设置


这一步是给输入点分配功能,就像给武林高手分配不同的任务:
    LM+、LM-:硬限位开关,就像是武林高手的"点到为止"



    RPS:回参考点减速开关,相当于高手的"刹车技能"ZP:零脉冲,这是S7-200 SMART的独门绝技,S7-1200都没有呢!STP:用于停止运动控制,就是"紧急叫停"TRIG:在双速连续旋转时用于触发停止,像是"急刹车"




2.4 输出设置


这里主要是分配输出口,比如DIS用于控制伺服使能,就像是给电机下达"准备战斗"的命令。

2.5 电机速度设置


设置最大速度、最小速度和启动速度。想象一下,这就像是设置你的"跑步速度":最快能跑多快,最慢不能低于多少,起步速度是多少。




2.6 JOG设置


JOG就是手动移动时的速度和点动量。这就像是你慢慢地、小心翼翼地移动,一步一步地挪动。

2.7 电机时间设置


这里设置加减速时间。想象一下赛车的起步和刹车,我们不能太猛,要给电机一个缓冲的时间。




2.8 急停时间设置


设置急停延时停止的时间。这就像是你急刹车,但还是需要一定的时间才能完全停下来。

2.9 反冲补偿


这个功能很有意思,它解决的是机械系统中的"反向间隙"问题。




工程鱼饵:反向间隙就像是钓鱼时鱼竿和鱼线之间的那一点点空隙。当你改变方向时,需要先把这个空隙"吃掉",才能真正带动鱼钩移动。

2.10 参考点寻参参数


这里设置查找回零开关信号(RPS)的速度和方向,以及找到开关后以慢速寻找零脉冲(ZP)的速度和方向。就像是你在黑暗中小心翼翼地摸索,先快速找到大概位置,然后慢慢精确定位。

2.11 参考点偏移量


找到机械零点后,还可以设置一个偏移量,将工件零点设在一个更方便的位置。这就像是你在地图上标记了家的位置,但实际上把"家"定义在了附近的便利店。

2.12 搜索顺序


S7-200 SMART提供了4种回参考点的方式。不像S7-1200那样能自动处理硬限位开关,这里需要我们自己多操心一下。

2.13 读取位置


通过485口读取驱动器的绝对位置,这是S7-200 SMART的一个小亮点。S7-1200想要这个功能,可能还得自己捣鼓一番。

2.14 曲线设置


这个功能类似于S7-1200的"命令表",但没有那么灵活。

每个轴能定义32个曲线,每个曲线最多16个步骤。但是,一个曲线里的所有步骤必须是同一种运动模式(要么都是相对运动,要么都是绝对运动)。




温馨提示:虽然不如S7-1200灵活,但对于大多数简单应用来说已经足够了。而且,价格便宜啊,童鞋们!

2.15 存储器分配


这一步是把刚才设置的所有数据都存到VB块中。就像是把你的"武功秘籍"存到安全的地方。

2.16 组件选择


选择需要的功能子程序。通常情况下,建议全选,就像是"全套武功"都学一遍,以备不时之需。

2.17 映射


这一步会列出所有刚才配置的硬件I/O。检查一下,确保没有遗漏或错误。

3. 开始编程


完成以上设置后,向导会为每个轴生成对应的子程序。接下来,就可以开始真正的编程了!

让我们来看一个简单的例子,假设我们要控制一个轴做往复运动:

Network 1 // 使能轴

LD     SM0.1

CALL   "AXCTL"

       AX               :="HMI".Axis1.AxisControlWord

       CMDVEL           :=0

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/e5ceb766fa6b42d3b11ae563579662d4~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=AGS4GaD3YryzEM4gtuHC%2BLLeEgA%3D"/></p>

       CMDPOS           :=0

       DIST             :=0

       RPS              :=I0.0

       LMN              :=I0.1

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/78b88fa19ef8489abbd0ada21afe756b~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=kwXLXCTPaY6cqGcT12EbVjuMbxs%3D"/></p>

       LMP              :=I0.2

       ZP               :=I0.3

       STP              :=I0.4

       ERR              :="HMI".Axis1.Error

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/16ba2f557d3f442bb21a8acd9d9d5a29~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=v7CRIJxW1j7Z%2BFew5wxHzYxvRLY%3D"/></p>

       DONE             :="HMI".Axis1.Done

       BUSY             :="HMI".Axis1.Busy

       ACT_POS          :="HMI".Axis1.ActualPosition

       AXIS_EN          :=M0.0

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/cf5518456e0c4855b0828bf8f61f9437~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=IBFVkpLGijlKrItU1VPXCwWyGDg%3D"/></p>

Network 2 // 往复运动

LD     SM0.0

EU

MOVE   100, "HMI".Axis1.TargetPosition

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/a59279f26bef42768383a39bf377fa88~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=7jAYvMiWtQipi86pI712%2F0Kf%2BLE%3D"/></p>

EU

CALL   "AXMOVE"

       AX               :="HMI".Axis1.AxisControlWord

       POS              :="HMI".Axis1.TargetPosition

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/733346bd635a40eba07790d28c40f19d~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=iJke0KWcjnMKBQgBzPwS25Szyrs%3D"/></p>

       VEL              :=1000

       DIR              :=0

       MODE             :=0

       BUSY             :="HMI".Axis1.Busy

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/0c3f1db7e73f49f99cd1787b9466994d~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=mX0%2BNpnYuJF3PT19gQiz1XJPhW0%3D"/></p>

       DONE             :="HMI".Axis1.Done

LD     "HMI".Axis1.Done

EU

MOVE   0, "HMI".Axis1.TargetPosition

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/2e29812acdb844b4a325aa3defc223c2~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=UR5lMiWRj6j2X6vdzFih3LXv7Fs%3D"/></p>

EU

CALL   "AXMOVE"

       AX               :="HMI".Axis1.AxisControlWord

       POS              :="HMI".Axis1.TargetPosition

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/5e583018d55349328c0d28931c75ca8c~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=J0hcbV1RrTds4hDwdkIpdlQXbdg%3D"/></p>

       VEL              :=1000

       DIR              :=0

       MODE             :=0

       BUSY             :="HMI".Axis1.Busy

<p><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/33d24669b2ee443f9f5dad9c50d4cd49~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1737547791&x-signature=X4zMIrlN4odz68TyAM2Dn%2BEzGDU%3D"/></p>

       DONE             :="HMI".Axis1.Done

这段代码做了以下事情:
    在Network 1中,我们调用"AXCTL"功能块来使能轴。这就像是给电机发出"准备就绪"的信号。



    在Network 2中,我们实现了一个简单的往复运动:
      首先,移动到位置100当这个动作完成后(通过检测Done信号),再移动回位置0这个过程会不断重复,形成往复运动
    我们使用"AXMOVE"功能块来执行移动。每次移动都设置了目标位置(POS)和速度(VEL)。MODE设为0表示这是一个绝对位置移动。如果设为1,就会变成相对位置移动。

工程鱼饵:在实际应用中,别忘了添加一些安全检查,比如检查限位开关的状态,以及在紧急情况下如何停止运动。安全第一,动作第二!

4. 总结


通过S7-200 SMART的运动控制向导,我们可以轻松设置复杂的运动控制参数。

虽然比起它的"大哥"S7-1200,功能上稍显简单,但对于大多数小型设备来说已经足够用了。而且,别忘了它的价格优势!

记住,在自动化的世界里,不是越贵越好,而是最适合最重要。S7-200 SMART就像是一把称手的小刀,也许不能砍树,但切水果、削铅笔可是一把好手!

下一次,我们将深入探讨如何利用S7-200 SMART的这些特性来解决实际工程中的问题。



在此之前,不妨自己多尝试一下,看看能不能做出一些有趣的运动控制程序。记住,实践出真知,coding让你更懂PLC!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则