设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
步进/伺服定位控制时死机解决技巧
返回列表
发新帖
[西门子]
步进/伺服定位控制时死机解决技巧
[复制链接]
140
|
0
|
2024-6-26 09:18:08
|
显示全部楼层
|
阅读模式
>导读:相信很多小伙伴在编写西门子PLC定位控制程序时,会出现位置数据给定到指令中去了、也触发了定位控制指令的管脚,但是PLC却出现“死”机(不动作)的现象。那么本文就一起解决这个问题。
一、控制需求
1.按下启动按钮后,步进电机以设定的速度到达抓取点位置
2.步进电机到达抓取点位置后,又以设定的速度到达放置点位置
3.抓取、放置两点循环往复
二、程序设计
1.在这个案例中,明显是抓取、放置两点往复定位。而在西门子PLC定位时,当达到抓取位置后,使用定位完成位来触发下一段位置的定位需要延时一段时间触发“Execute”管脚(如图1所示),也就是需要错开扫描周期,才能正常定位,否则会不动作会出现“死机”现象。
图1
2.如果要实现这种到达一个位置后,再延时触发让步进去下一个位置的话有两种方法。
方法一:定位完成位接通后,延时触发下一个位置
1.程序段1时实现轴使能功能,程序段2实现轴的回原点功能
2.程序段3是轴点动功能。当按下启动按钮“McXAsix. XAsixStart” 后,将“1”传入到寄存器“McXAsix. XAsixNum”中。当按下停止后,将0传过去。
程序段4是调用绝对定位指令,只有寄存器中的值等于1和2时才调用。
3.程序段5,等寄存器的值等于1时将位置和速度数据给到绝对定位指令中,延时100ms后触发定位指令的Execute管脚。
程序段6是反方向控制,原理一样的,在此不赘述。
注意:那如果使用这种方法的话,定位的点位比较多,那就需要大量的定时器,给我们编程带来很多重复的劳动,那接下来看第二种方法!!!
方法二:使用置位和复位指令来错开扫描周期
1.新建一个FB块,定义接口变量
2.程序段1:一直复位一个标志位,用于错开扫描周期。
程序段2:在自动模式下,按下启动按钮后,启动标志位接通,将“1”给到“步序”这个寄存器中,否则为0。
3.程序段3:当步序等于1时,给定抓取位置数据和速度,同时置位“#S_定位触发[0]”标志位(这个位在下个扫描周期将复位,因为程序段1复位了)。当定位完成了后“I_定位完成”位接通,将“2”给到步序中。
程序段4的是反方向定位程序
4.主程序中调用FB程序
5.把“FB2008”上的“DB_轴数据”.绝对行走、“DB_轴数据”.绝对位置给定参数、“DB_轴数据”.绝对位置运行速度关联到绝对定位指令的管脚“Execute”和“Position”、“Velocity”管脚中即可!
写在最后:如果文章对您有帮助,帮忙点个“赞”和“在看”呗!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
PLC工业机器人
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』