工控康
级别: 略有小成
精华主题: 0
发帖数量: 93 个
工控威望: 221 点
下载积分: 753 分
在线时间: 65(小时)
注册时间: 2011-05-13
最后登录: 2024-11-12
查看工控康的 主题 / 回贴
楼主  发表于: 2011-08-07 11:24
图片:
图片:
用仿真运行两个程序运行的结果是一样的  就是不明白 为什么INCP K4Y000Z0 和MOV Z0 K4Y0这两个程序运行是一样的 求解释 麻烦您讲得详细点 谢谢
新人一个 谢谢大家的帮助
qlin
学过一点FX型PLC基本知识
级别: 家园常客
精华主题: 0
发帖数量: 537 个
工控威望: 531 点
下载积分: 12343 分
在线时间: 258(小时)
注册时间: 2009-07-13
最后登录: 2019-05-13
查看qlin的 主题 / 回贴
1楼  发表于: 2011-08-08 15:53
    仿照楼主的程序编制了以下程序:

  
    仿真(按FX2N编程),通断X0,以下仅示出接通者:
    1次,Y0、M0
    2次,Y1、M0、M1
    3次,Y0、Y1、M0、M1、M2
    4次,Y2、M0、M1、M2、M3    
    ……
    所以,两段程序的运行结果是不一样的;原因如2楼wu32u2所解释的。

    对于INCP K4M0Z0(对应于楼主的INCP K4Y0Z0)、INCP Z0,其执行过程是:
    第一次接通X0时,(Z0)=0,(K4M0Z0)+1=(K4M0)+1=1,所以M0接通;此后(Z0)=1。
    第二次接通X0时,(Z0)=1,(K4M0Z0)+1=(K4M1)+1=1;虽然,加1前、(K4M0)=1但 (K4M1)=0,而加1后、(K4M1)=1,所以M1接通;而之前M0已接通,并无指令将其复位,所以M0保持接通,从而得到仿真的结果;此后(Z0)=2。
    ……余下类推。
楼主留言:
我到现在还是有点迷糊,为什么Z0=0时m0接通,z=1时m0和m1接通,z=2时m0,m1和m2接通等等,INCP Z0是给寄存器内数据加一,那INCP K4M0Z0 是给什么加一呢,有点笨,麻烦说得详细点, 谢谢
[ 此帖被qlin在2011-08-08 16:02重新编辑 ]
本帖最近评分记录:
  • 下载积分:+5(铭杰工控) 热心助人
  • 仅很早前用过几次顺控编程(PLC),嘿嘿,没寻找机会
    qlin
    学过一点FX型PLC基本知识
    级别: 家园常客
    精华主题: 0
    发帖数量: 537 个
    工控威望: 531 点
    下载积分: 12343 分
    在线时间: 258(小时)
    注册时间: 2009-07-13
    最后登录: 2019-05-13
    查看qlin的 主题 / 回贴
    2楼  发表于: 2011-08-09 17:06
    引用
    引用楼主留言  :
    我到现在还是有点迷糊,为什么Z0=0时m0接通,z=1时m0和m1接通,z=2时m0,m1和m2接通等等,INCP Z0是给寄存器内数据加一,那INCP K4M0Z0 是给什么加一呢,有点笨,麻烦说得详细点, 谢谢

        呵呵,不能说笨,只是一时没有转过弯来。

        Z0是变址寄存器,INCP Z0每执行一次,Z0内容加1,这个已经理解。
        同样地,INCP K4M0Z0,将K4M0Z0看成一个(由位元件组成的)数据寄存器,执行一次该条指令,则K4M0Z0的内容加1。
        若K4M0Z0中的Z0保持不变,例如为0,则K4M0Z0就是K4M0Z0=K4M(0+0)=K4M0,那么K4M0Z0内容加1、就是K4M0内容加1,这个也可以理解。
      
        现在的问题是,K4M0Z0中的Z0,每次都是变化的;若(Z0)=0,则K4M0Z0=K4M(0+0)=K4M0;若(Z0)=1,则K4M0Z0=K4M(0+1)=K4M1,依此类推;这个关系,可参阅编程手册。
        有了上面的关系,再看INCP K4M0Z0的加1操作:
        当(Z0)=0时,执行INCP K4M0Z0,就是K4M0Z0即K4M0内容加1;当(Z0)=1时,执行INCP K4M0Z0,就是K4M0Z0、此时为K4M1的内容加1;依次类推。
      
        设开始时,M0~M15均是断开的,即K4M0的内容为0,则在(Z0)=0时执行一次加1操作后,K4M0的内容为0+1=1,所以M0为1、即M0接通。
        在(Z0)=1时执行的K4M0Z0加1操作,是K4M1的加1操作,假设M16是断开的(不妨假设涉及到的M15以后的M全是断开的),则在进行加1操作前,K4M1为0,所以加1后,K4M1为1,新增加了M1接通;
        而之前M0是接通的;应用指令的特点是,执行条件断开后,其结果会保持,所以M0保持接通;又在执行K4M1加1操作时,没有牵涉到M0,也无其他指令使M0复位,所以M0是保持接通的。
        于是,此时得到的结果是:M0接通、M1接通。
        其余类推。
    楼主留言:
    底下有我看了你的解释自己理解的,你看我写的对不对,谢谢你对我的帮助,耐心的为我解释,加你为好友,谢谢
    本帖最近评分记录:
  • 下载积分:+2(fxm1013) 热心助人
  • 下载积分:+5(铭杰工控) 优秀回帖!
  • 仅很早前用过几次顺控编程(PLC),嘿嘿,没寻找机会
    qlin
    学过一点FX型PLC基本知识
    级别: 家园常客
    精华主题: 0
    发帖数量: 537 个
    工控威望: 531 点
    下载积分: 12343 分
    在线时间: 258(小时)
    注册时间: 2009-07-13
    最后登录: 2019-05-13
    查看qlin的 主题 / 回贴
    3楼  发表于: 2011-08-10 20:03
       11 楼的解释是对的,很好!
        另外,对于数据位,书写时,通常是低位在右边,以符合我们的习惯;
        例如,FX2N的K4Y0,排列为:Y17 Y16 Y15 Y14 …… Y3 Y2 Y1 Y0;这样,若Y0为1,其余为0,就可以得出(K4Y0)=1(0000 0000 0000 0001),即位组成的字K4Y0的内容为1。
        楼主学习精神不错,学习态度也很好,进步会很快的!

        谢谢铭杰工控以上的评分。
    仅很早前用过几次顺控编程(PLC),嘿嘿,没寻找机会