• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
楼主  发表于: 2021-08-04 00:20
我是新人小白,请大神帮忙我一下啊,看看我哪里写错了呀,
三菱ST中DDRVA执行后,DZRN无法回归原点的问题,单独回原点正常,执行
DDRVA移动后,再执行DZRN就无动作 详细请帮忙看看下面的程序

(*校准螺距*)
Current_Distance := Pulse_Current_Distance / ONE_Pulse_Feed;
IF Calibration THEN(*如果校准按钮被按下*)
    ONE_Pulse_Feed := Calibration_Distance / Pitch_Setting * K100;(*计算1mm所用脉冲值*)
    DDRVA ( Calibration,Calibration_Distance,Feeding_Distance,Pulse_Output,Y001);
    Direction_Output :=TRUE;(*正转方向启动*)
    IF M8029=TRUE THEN
        Direction_Output := FALSE;
        Calibration := FALSE;(*否则RST校准按钮*)    
    END_IF;
END_IF;

(*回原点*)
IF    NOT Backward_Limit AND NOT Enclosure_Not_Closed AND NOT Backward_Limit THEN
    DZRN (Back_Servo_Origin,K2000,K1000,Servo_Origin,Pulse_Output);
    IF Back_Servo_Origin THEN
    OUT_T(Scintillation=1,TC2,K10);
    OUT_T(Servo_Origin_Lamp =TRUE,TC1,K10);
        IF TC2 =TRUE THEN
            Servo_Origin_Lamp :=TRUE;
            IF TC1 =TRUE THEN
                Scintillation :=0;
            END_IF;
        ELSIF TC2 =FALSE THEN
            Servo_Origin_Lamp :=FALSE;
            Scintillation :=1;
        END_IF;
    END_IF;
END_IF;
IF Back_Servo_Origin THEN    
    IF Pulse_Current_Distance =K0  THEN
        Back_Servo_Origin :=FALSE;
        Servo_Origin_Lamp :=TRUE;
    END_IF;
ELSIF Pulse_Current_Distance <>K0 THEN
    Servo_Origin_Lamp :=FALSE;
END_IF;


最后在论坛的好心大哥帮助下,完美解决,提供修改的程序,帮忙大家避坑!!

IF Calibration THEN
    IF LDF(TRUE ,OUT_Puls_Monitor) THEN
        M340:=1;
    END_IF;
    OUT_T(M340=1,TC3,K100);
    IF TC3=1 THEN
        Calibration := FALSE;
        M340:=0;
    END_IF;
END_IF;
[ 此帖被flexium在2021-08-17 19:11重新编辑 ]
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
1楼  发表于: 2021-08-04 15:41
我自己顶一下,希望大神帮忙解决一下
我飞二天
级别: 略有小成
精华主题: 0
发帖数量: 158 个
工控威望: 248 点
下载积分: 654 分
在线时间: 22(小时)
注册时间: 2019-11-22
最后登录: 2024-02-20
查看我飞二天的 主题 / 回贴
2楼  发表于: 2021-08-04 15:47
为什么不用梯形图搞?
工控吴彦祖
级别: 实习会员
精华主题: 0
发帖数量: 3 个
工控威望: 26 点
下载积分: 502 分
在线时间: 2(小时)
注册时间: 2021-05-03
最后登录: 2024-11-05
查看工控吴彦祖的 主题 / 回贴
3楼  发表于: 2021-08-04 16:27
这是c 单片机
seafar
目前C#
级别: 家园常客
精华主题: 0
发帖数量: 619 个
工控威望: 764 点
下载积分: 1909 分
在线时间: 594(小时)
注册时间: 2018-03-23
最后登录: 2023-10-27
查看seafar的 主题 / 回贴
4楼  发表于: 2021-08-04 17:07
加个延时再触发回原点
枕星河之倒影兮与星光同流,望群星之包覆兮随繁星同辉。
B站资源分享链接https://space.bilibili.com/39855180
akesur
级别: 略有小成
精华主题: 0
发帖数量: 30 个
工控威望: 317 点
下载积分: 286 分
在线时间: 24(小时)
注册时间: 2021-02-22
最后登录: 2022-10-24
查看akesur的 主题 / 回贴
5楼  发表于: 2021-08-04 17:29
      
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
6楼  发表于: 2021-08-04 21:00
图片:
引用
引用第3楼工控吴彦祖于2021-08-04 16:27发表的  :
这是c 单片机

这个的确是三菱PLC的ST语言编程;如图
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
7楼  发表于: 2021-08-04 21:05
引用
引用第4楼seafar于2021-08-04 17:07发表的  :
加个延时再触发回原点


加了延时还是不行,不能回原点,如下红色字体部分

(*校准螺距*)
Current_Distance := Pulse_Current_Distance / ONE_Pulse_Feed;
IF Calibration THEN(*如果校准按钮被按下*)
    ONE_Pulse_Feed := Calibration_Distance / Pitch_Setting * K100;(*计算1mm所用脉冲值*)
    DDRVA ( Calibration,Calibration_Distance,Feeding_Distance,Pulse_Output,Y001);
    Direction_Output :=TRUE;(*正转方向启动*)
    IF Relay_1 = TRUE THEN
        Direction_Output := FALSE;
        Calibration := FALSE;(*否则RST校准按钮*)    
    END_IF;
END_IF;
OUT_T (M8029,TC3,K10);
IF TC3 =TRUE THEN
    Relay_1:= TRUE;
ELSE
    Relay_1:= FALSE;
END_IF;


(*回原点*)
IF    NOT Backward_Limit AND NOT Enclosure_Not_Closed AND NOT Backward_Limit THEN
    DZRN (Back_Servo_Origin,K2000,K1000,Servo_Origin,Pulse_Output);
    IF Back_Servo_Origin THEN
    OUT_T(Scintillation=1,TC2,K10);
    OUT_T(Servo_Origin_Lamp =TRUE,TC1,K10);
        IF TC2 =TRUE THEN
            Servo_Origin_Lamp :=TRUE;
            IF TC1 =TRUE THEN
                Scintillation :=0;
            END_IF;
        ELSIF TC2 =FALSE THEN
            Servo_Origin_Lamp :=FALSE;
            Scintillation :=1;
        END_IF;
    END_IF;
END_IF;
IF Back_Servo_Origin THEN    
    IF Pulse_Current_Distance =K0  THEN
        Back_Servo_Origin :=FALSE;
        Servo_Origin_Lamp :=TRUE;
    END_IF;
ELSIF Pulse_Current_Distance <>K0 THEN
    Servo_Origin_Lamp :=FALSE;
END_IF;
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
8楼  发表于: 2021-08-04 21:08
引用
引用第2楼我飞二天于2021-08-04 15:47发表的  :
为什么不用梯形图搞?


上一任程序工程师用ST写的,我只能继续用了,不然我要从头写,那头发不保呀
hefq
级别: 家园常客
精华主题: 0
发帖数量: 614 个
工控威望: 808 点
下载积分: 1922 分
在线时间: 1523(小时)
注册时间: 2008-07-03
最后登录: 2024-11-24
查看hefq的 主题 / 回贴
9楼  发表于: 2021-08-04 21:19
M8029只接通到下一个功能指令就关掉了,你拿他来开定时器是没用的
情深深雨蒙蒙
If you don't forget your o
级别: 家园常客
精华主题: 0
发帖数量: 893 个
工控威望: 949 点
下载积分: 16375 分
在线时间: 263(小时)
注册时间: 2019-04-14
最后登录: 2024-11-26
查看情深深雨蒙蒙的 主题 / 回贴
10楼  发表于: 2021-08-04 22:20
M8029貌似一般都用上升沿
不忘初心,方得始終;初心易得,始終難守。三更莫贪色;半夜不恋食。
flexium
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 53 点
下载积分: 282 分
在线时间: 12(小时)
注册时间: 2021-07-25
最后登录: 2024-08-29
查看flexium的 主题 / 回贴
11楼  发表于: 2021-08-04 23:15
引用
引用第9楼hefq于2021-08-04 21:19发表的  :
M8029只接通到下一个功能指令就关掉了,你拿他来开定时器是没用的

感谢提醒,已做修改.
问题还是无法解决,我明天对这段定位重写试试
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go