工控之家

 找回密码
加入工控之家

轴定位指令zp.pstrt   求大师解释

[复制链接]
发表于 2012-7-10 18:31:45 | 显示全部楼层 |阅读模式
图片:
图片:
求指教,1,两个指令中的K1,K3是如何应用的,他们的含义的是什么。2,movp K1 D32  ; ZP.PSTRT   U0  D30  M32 和 movp K3 D280  ;  ZP.PSTRT U5 D278 M308中D32与D30和D280与D278  其中有什么联系吗。3, 指令ZP.PSTRT2  U5  D278  M308中的D278如何处理,求各位大师指教
发表于 2012-7-10 21:08:06 | 显示全部楼层
1。 K1,K3是常数1和3。
2。movp K1 D32  当M150成立时将常数1传送D32一次;
ZP.PSTRT1   U0  D30  M32 :轴1定位指令执行,M200成立,定位模块U0热行定位操作,D30是存储控制数据的首地址。D30是系统区,数据不用设置,D30+1,即D31存储完成状态,由系统设置,0:正常完成;除0以外:异常完成(内存储异常代劳),D30+2,即D32存储定位编号,由用户设置:
定位数据编号:1-600;
块启动编号:7000-7004;
机器OPR:9001;
快速OPR:9002;
当前值更改:9003;
多轴同时启动:9004。
M32:指令执行完成标志,指令完成时ON并在一次扫描时间持续;若异常完成,M32+1,即M33也会变成ON。
…………movp K1 D32 ,当M150成立,向D32传送常数1一次,ZP.PSTRT1   U0  D30  M32,当M200成立,定位模块U0的轴1(ZP.PSTRT1:轴1,ZP.PSTRT2:轴2……)向定位数据编号为1的执行定位动作,正常完成时,M32 ON;异常完成时,M33 也ON。

下面的自个拽摩。楼主留言:

又是大师啊,麻烦你了,希望以后有不会的能在您请教,谢谢。剩下的我自己琢磨琢磨,QD75内的数据存储器D也是定义好的吗[/quote]
发表于 2012-7-10 23:44:26 | 显示全部楼层

[ZP.PSTRT1   U0  D30  M32],该是定位启动专用指令,是向定位模块U0的轴1发送的定位启动的指令。其中数据处理是这样的:
D30,D32是由PLC向U0发送数据;D30是首地址,不用设置,D32是定位数据编号,其值由1-600,编号1对应的定位地址(绝对系统)/位移量(相对系统)的数据存于2006和2007,2的数据存于2016和2017,3的数据存于2026和2027……;若D32是1,则U0调用2006和2007的数据进行定位,若D32是2,则调用2016和2017的数据定位。
而D31,M32,M33是存储接收由UO执行定位过程中反馈的信息的,当正常完成定位,向D31写入0;当异常完成,向D31写入异常的代码;当指令执行完成,M32在一个扫描时间内被置ON;异常完成,则M33也被置ON。

例:movp K1 D32  是设置的向定位编号1实行定位的操作,所以在指令ZP.PSTRT   U0  D30  M32条件成立前,先向#2006写入定位数据,比如[DTO K0 K2006 K5000 K1],如果绝对定位系统,则是向原点正方向的5000这个地址实行定位;如果是相对定位系统,则是向当前位置正方向走5000的位移量。
K5000也可以用D?来代替,这样只要改变D?的数据就可以多点定位。
发表于 2012-7-11 02:20:46 | 显示全部楼层
图片:
就像刚才你说的那样在执行ZP.PSTRT2之前,先向#8026写入定位数据D324,D280是定位数据编号=3,所以定位数据写入#8026.   当指令ZP.PSTRT2   U5  D278  M308完成时M308在一个扫面周期内置ON,异常完成时M309也置ON,
发表于 2012-7-11 04:57:06 | 显示全部楼层
楼主留言:

大师,还是有点不明白的地方,已经写在下面了,你看看我对不对,呵呵[/quote]
发表于 2012-7-11 07:33:26 | 显示全部楼层
图片:
图片:
图片:
刚才看了一下程序还是有点不明白的地方。前面你所说的:\"编号1对应的定位地址(绝对系统)/位移量(相对系统)的数据存于2006和2007,2的数据存于2016和2017,3的数据存于2026和2027……;是不是图一上所说的,轴一对应编号1对应的定位地址(绝对系统)/位移量(相对系统)的数据存于2006和2007,编号2对应的是2010到2019,编号3对应的时2020到2029,那么在中间图上MOVP K1 D272  定位数据编号为1,所以写定位数据写在#2006, 那么当K=2时,是不是应该写在2010至2019中间的任意一个都行呢,K=3写在2020至2029呢,就像图三所示,轴二的定位编号为3时,定位数据写入#8026。求解释,呵呵,
发表于 2012-7-11 10:09:46 | 显示全部楼层
定位数据需要存储32位数据,一个缓冲地址只能存储16位,和PLC存储器D一样一个只能存16位,需要存32位就需要两个一起,所以需要两个地址存储,2006为低位,2007为高位。
写入指令要加D,例:[DMOVP D234 U5/G8026]是将D234,D235的数据写入#8026,#8027里,将常数写入D234也是一样,要用32位指令的,即前面加D。[DMOVP K5000 D234]是将常数以32位的形式写入D234,D235里。当使用[DMOVP D234 U5/G8026]这样的指令后,D235就不能再用做存储其它数据了。
轴1:编号1:2006,2016,编号2:2016,2017……2006为首至7996,每一编号+10,共600组。

而2010-2019中并非每一个都是存储定位地址的,如:2010是存储运行形式/控制系统/加减速时间等,2011存储M代码/条件数据,2012存储停顿时间,2013未使用,2014和2015是存储命令速度的,2016和2017才是存储定位地址的,2018和2019存储弧地址。

32位写入方法要从低位开始写入,如:[DMOVP D234 U5/G8026]才是正确的,[DMOVP D234 U5/G8027]是不对的。

你在5楼发的第二张图片就很好理解,在手动模式,回零按钮M262被输入时,先在#2006写入0,#2006是编号1的定位地址,所以在D272写入了1,再用定位启动专用指令ZP.PSTRT1执行定位启动.
第三张图写入#8026是轴2的编号2的定位地址,所以用指令ZP.PSTRT2(而不是ZP.PSTRT1).

楼主留言:

现在我想我明白了,那既然2006,2007和2016,2017和2026,2027至7996,7997,是编号1到600定位地址存储区,那么他们都有什么区别吗,除了编号不一样除外[/quote]
发表于 2012-7-11 12:46:06 | 显示全部楼层
一样。但你可以在每一编号中写入不同的数据,实现多点定位和不同的速度等的控制。只使用一组数据实现多点定位的话须得在每次定位起动前先更改定位数据,这样的话写程序会比较麻烦。

我的QQ:269088868
有兴趣加朋友一起学习学习。我是刚学习PLC的,但我是不是做工控的。
你呢?是做工控的吗?楼主留言:

我只是一个电工而已,上面些都是厂里机器里的程序的截图,现在正在学习,希望更上一层楼[/quote]
发表于 2012-7-11 15:22:26 | 显示全部楼层
请问块启动编号:7000-7004怎样用的啊!谢谢!
发表于 2012-7-11 17:58:46 | 显示全部楼层
我一直不理解,D30系统区我到那找的到啊。和M32我到那取找到啊。
您需要登录后才可以回帖 登录 | 加入工控之家

本版积分规则

QQ|手机版|小黑屋|Archiver|工控之家 ( 鲁ICP备12015736号-1 )

GMT+8, 2024-5-18 07:31 , Processed in 0.065183 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表