欢迎您,请 登录 或 注册

学工控网

查看: 50|回复: 1

[求助] FX5U ST语言的CASE如何执行的?

[复制链接]
发表于 前天 08:46 | 显示全部楼层 |阅读模式
我需要将FX5U的K7轴上电时能回零,目前只有一个零点感应,为了保证每次回到标准零点,需要空转一圈找到零起点,继续转找到零终点,然后利用DSZR回零,程序如下:

问题是第4步回零时报错,说轴被占用了。 但是我已经将M106置为FALSE, 监视PLC也表明了这一点,为啥还会出现轴被占用? 谢谢大家

PLSV(M106, D16, K7, Y64);
DSZR(M100,1000,100,K7,M60);
DRVI(M101,D104,D100,K7,M62);

IF NOT M40 THEN
    Y64:=TRUE;
    Y65:=TRUE;
   
    CASE D110 OF
    0:
        D110:=D110+1;   //初始化
        M106:=TRUE;
    1:
        D16:=D100;       //找到零起点
        IF X65 THEN
            D16:=0;
        END_IF;
        IF X65 THEN
            D110:=D110+1;
        END_IF;
        
    2:                              
        IF X65 THEN    //找到零终点
            D16:=D100;
            ELSE
            D16:=0;
        END_IF;
   
        IF NOT X65 THEN
            D110:=D110+1;
        END_IF;
        
    3:
        M106:=FALSE;       //准备DSZR回零点
        M51:=TRUE;
        M55:=TRUE;
        D110:=4;
        
        
    4:
        M16:=TRUE;       //回零
        IF X65 AND X62 THEN
            D110:=D110+1;
            M40:=TRUE;
        END_IF;
    ELSE
        M40:=TRUE;
    END_CASE;
   
END_IF;

(*Manual Control*)
(*进入手动控制页面,M51手动控制标志*)
IF M51 THEN
(*    IF M0 AND Y4=FALSE AND X0=FALSE THEN
    END_IF;*)
    IF M55 THEN                  //分步动作
        M106:=FALSE;
        M107:=FALSE;
        M108:=FALSE;
    ELSE
        M106:=TRUE;        //全手动动作
        M107:=TRUE;
        M108:=TRUE;
    END_IF;

    IF M6 OR M16 OR M26 THEN
        IF M6 THEN
            IF Y64 THEN
                D16:=D0;
            ELSE
                D16:=-D0;
            END_IF;
        END_IF;
        IF M16 THEN                          //回零点
            set (NOT X65,M100);
            IF M60 OR X65 THEN
                M100:=FALSE;
                M60:=FALSE;
                M16:=FALSE;
                M120:=FALSE;
            END_IF;
        END_IF;
    ELSE
        D16:=0;
    END_IF;
END_IF;

回复

使用道具 举报

发表于 前天 09:25 | 显示全部楼层
CASE  算是IF的条件分支吧    D110=1,  D110=2,  D110=3 取值执行 执行对应的程序段
至于轴被占用,你需要排除一下,是不是哪条脉冲没发送完成。或其他相关的
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

发布主题 快速回复 返回列表

客服电话

15888750101

工作时间 周一至周六 8:00-21:00

客服QQ点击咨询

Copyright @ 2013-2019 学工控网 版权所有 | 浙ICP备15003942号

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