一一
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看一一的 主题 / 回贴
楼主  发表于: 2009-08-13 16:02
下面是一部分梯形图,知道实现的功能,就是不知道具体的实现过程
想请教一下,还望知道的人不吝赐教


能具体写出每一次脉冲过后的变化的具体过程更是感激不尽了
一一
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看一一的 主题 / 回贴
1楼  发表于: 2009-08-13 16:04
第一行后面是INCP K4Y0Z0
第二行后面是INCP Z0
shuangyu
工控行业呆的越久越迷茫.......懂得多?少?......
级别: 家园常客
精华主题: 0
发帖数量: 344 个
工控威望: 891 点
下载积分: 1083 分
在线时间: 115(小时)
注册时间: 2009-08-04
最后登录: 2024-07-12
查看shuangyu的 主题 / 回贴
2楼  发表于: 2009-08-13 16:59
M1  与X1 忽略
M8013   1秒时钟
INCP Z0   脉冲递增指令  接通一次  Z0 数值加1   Z0 变址地址
INCP K4Y0Z0   就看Z0=?   Z0=1   那么就输出Y1   Z0=2  输出Y2 。。。。。Z0=8  输出Y10 。。。。。。
所以上面的程序一句话就是 M8013 通一次 Y接通一个
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3342 分
在线时间: 9516(小时)
注册时间: 2006-09-13
最后登录: 2024-11-28
查看cvlsam的 主题 / 回贴
3楼  发表于: 2009-08-13 17:02
这个程序的作用是将输出点0~377都分别置1,这只能说是初衷,当时在Y361后,由于无法达到一个字的操作长度,会发生越界而导致系统错误停机。

次数         K4Y0Z0
   1                       Z0=0  那么K4Y0+1=》K4Y0中相当于Y0=1
  2                       Z0=1   操作对象变为K4Y1   因此Y1=1
  3                      Z0=2     操作对象为K4Y2  因此Y2=1
……
直到Y361=1
继续,K4Y362……由于FX最大的Y地址到377,因此K4Y362造成地址溢出,从而Error。

此地的做重点为:Z0的操作对象为字地址而不是位地址,因此只能将位地址组合为字地址K4Y0。
               Z0的增加只是对其操作元件的增加,并非对常数的增加,也就是K4Y0Z0当Z0=1的时候,是指K4Y1,而非相当于增加一个字,这一点需要注意。

以上
本帖最近评分记录:
  • 下载积分:+4(guochunyi) 热心助人,加分表扬
    一一
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看一一的 主题 / 回贴
    4楼  发表于: 2009-08-13 18:14
    实际执行的时候好像是这样的,Z0=1时,Y0=1,Z0=2时,Y1Y0=11,Z0=3时,Y2Y1Y0=111,以此类推的
    我就是不知道怎么来的
    qlin
    学过一点FX型PLC基本知识
    级别: 家园常客
    精华主题: 0
    发帖数量: 537 个
    工控威望: 531 点
    下载积分: 12343 分
    在线时间: 258(小时)
    注册时间: 2009-07-13
    最后登录: 2019-05-13
    查看qlin的 主题 / 回贴
    5楼  发表于: 2009-08-13 20:44
        ·执行条件第1次接通时,(Z0)=0,K4Y0Z0为K4Y0,而之前K4Y0为0,故执行结果为(K4Y0)+1=0+1=1,即Y17Y16…Y1Y0对应00…01,所以Y0=1,而Y1~Y17均为0。执行完毕,Z0=1。
        ·执行条件第2次接通的第1个扫描周期(接通瞬时),(Z0)=1,K4Y0Z0为K4Y1,INCP K4Y0Z0为执行(K4Y0Z0)+1→(K4Y0Z0)即(K4Y1)+1→(K4Y1);而之前K4Y1为0,故执行结果为(K4Y1)+1=0+1=1,即Y20Y17…Y2Y1对应00…01,所以Y1=1,而Y2~Y27均为0。
        但是,之前Y0=1,而之后无复位Y0的指令,故Y0保持1,结果为Y0=1,Y1=1。
        ·执行条件第3次接通瞬时,(Z0)=2,K4Y0Z0为K4Y2,而之前K4Y2为0,故执行结果为(K4Y2)+1=0+1=1,所以Y2=1,Y0、Y1保持为1。
        ·以下以此类推。
    一一
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看一一的 主题 / 回贴
    6楼  发表于: 2009-08-13 22:06
    引用
    引用第5楼qlin于2009-08-13 20:44发表的  :
        ·执行条件第1次接通时,(Z0)=0,K4Y0Z0为K4Y0,而之前K4Y0为0,故执行结果为(K4Y0)+1=0+1=1,即Y17Y16…Y1Y0对应00…01,所以Y0=1,而Y1~Y17均为0。执行完毕,Z0=1。
        ·执行条件第2次接通的第1个扫描周期(接通瞬时),(Z0)=1,K4Y0Z0为K4Y1,INCP K4Y0Z0为执行(K4Y0Z0)+1→(K4Y0Z0)即(K4Y1)+1→(K4Y1);而之前K4Y1为0,故执行结果为(K4Y1)+1=0+1=1,即Y20Y17…Y2Y1对应00…01,所以Y1=1,而Y2~Y27均为0。
        但是,之前Y0=1,而之后无复位Y0的指令,故Y0保持1,结果为Y0=1,Y1=1。
        ·执行条件第3次接通瞬时,(Z0)=2,K4Y0Z0为K4Y2,而之前K4Y2为0,故执行结果为(K4Y2)+1=0+1=1,所以Y2=1,Y0、Y1保持为1。
        ·以下以此类推。

    先谢谢这位仁兄的解答了,呵呵
    我还有一个疑问的,就是K4Y0,不应该就是指的Y17—Y0,这16个输出吗,那加1的时候不应该就是在这16个输出的基础上加吗?
    你的意思是不是K4Y0Z0,随着Z0值的变化而变成K4Y1,K4Y2,K4Y3........