放久了的气球                高速走丝电火花线切割机电气原理与维修

 

 ★ 电气技术交流和讨论,生活体会和社会感言 ★

入门练习——FX型PLC输出的顺次接通(续)

[ 2007-3-8 15:18:50 | By: cmpqlin ]
http://www.golden-book.com/Publog/user1/339/archives/2007/1154.shtml
    接下来还是看图5,把Y0~Y3循环移位,扩展为Y0~Y17循环移位。应当好办:只要把置位Y0的条件改一下,再把K1改为K4就行了,如图6所示。

    仿真结果,问题来了:完成的是Y0~Y16共15位的顺移,那么怎么会把Y17丢失呢?是仿真软件的问题,还是程序的问题呢?
    先来分析一下。
    为便于理解,还是把K4Y0改为D0吧(图7)。首先1→D0、Y0通;然后1+1→D0,Y0断、Y1通;再是2+2→D0,Y1断、Y2通……;至Y15通时,(D0)=8192;再又是8192+8192=16384→D0,Y15断、Y16通;

   接着,16384+16384=32768,化为二进制数为10000000 00000000——16位、最高位为1,而D0也是16位,其最高位1对应Y17,1→Y17,Y17应当接通啊!

    如果用移位指令呢?将图3作些修改,得到见图8

    用“三菱教学软件”仿真结果:正确。
    那么,问题是出在“加法”指令上了。再编一个试验程序,见图9。

    16384 →D1、16384 →D2,接通X20,怎么啦……
    (D0)=0?难怪图6、图7中的Y17会不接通呢!
    但为什么会是(D0)=0呢?
    原来,FX中16位数据寄存器的最高位是符号位、其数据范围是-32678~+32767,当16384+16384=32768(>32767)时,结果就为0、并产生了进位——不信,M8022接通了呢!
    原因找到了,问题就解决了。
    利用进位标志M8022,就可实现图7的Y0~Y17顺序输出,见图10。

    这样一路试验下来,就对加法、移位等指令有了一些直观印象,对数据范围、进位标志有了一些了解,还对移位输出的不同方法、有了认识……试验时,不一定必须是优化的程序(当然,试验过程中可寻求优化的方法),而主要是在概念的掌握和指令的了解上。
    至于各种方法的特点、适应面、侧重点,比较比较就可得出初步的结论。
    (注:本内容原贴于“东莞自动化论坛”)

发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题:
    验证码:  JSWV