2003922
相互学习、共同进步
级别: 略有小成
精华主题: 0
发帖数量: 79 个
工控威望: 374 点
下载积分: 1065 分
在线时间: 38(小时)
注册时间: 2008-02-23
最后登录: 2024-08-15
查看2003922的 主题 / 回贴
楼主  发表于: 2018-03-21 16:37

各位高手:
         我在ST语言中运用PLS这个函数时遇到一个很奇怪的问题,求助400无解,我怀疑是ST语言有bug。三菱的400客服不知道也不解释,只好求助大家。
         图片中PLS(TURE,M1);应该是要输出一个上升沿后就OFF的,但情况是M1一直ON。从这段程序看不出有什么不对或者违规,我只想知道原因,当然
         我也可以换别的方式一样能实现,但就想知道这句话有什么不对?还望大家不吝赐教,谢谢!
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1547 分
在线时间: 414(小时)
注册时间: 2017-10-10
最后登录: 2024-11-29
查看枫落云端的 主题 / 回贴
1楼  发表于: 2018-03-31 12:01
梯形图和ST都是一样的,最后编译为指令表代码。为什么出现这个情况,是因为IF语句编译后是生成CALL Pn (n为编译自动分配)
,也就是CALL Pn 不生效时,CALL里面的语句PLC是不扫描的,里面的值就会像“冻住”一样。所以CALL内部最好不要使用脉冲化指令。想要脉冲化,建议在条件加。
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1547 分
在线时间: 414(小时)
注册时间: 2017-10-10
最后登录: 2024-11-29
查看枫落云端的 主题 / 回贴
2楼  发表于: 2018-03-31 12:03
可以这样写 PLS(D0>0 & M0 ,M1);
                    RST(M1,M0);
[ 此帖被枫落云端在2018-03-31 12:49重新编辑 ]
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1547 分
在线时间: 414(小时)
注册时间: 2017-10-10
最后登录: 2024-11-29
查看枫落云端的 主题 / 回贴
3楼  发表于: 2018-03-31 12:13
图片:
[attachment=220659] [attachment=220659]  翻译一下楼主出现问题的ST程序转变为梯形图  
[ 此帖被枫落云端在2018-03-31 12:53重新编辑 ]