nilgns
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 123 点
下载积分: 517 分
在线时间: 10(小时)
注册时间: 2013-01-03
最后登录: 2013-10-01
查看nilgns的 主题 / 回贴
楼主  发表于: 2013-01-03 14:47
大家好:帮我看下程序那里出错!

我要实现的功能是:用三菱PLC的FX1s-30MR,当D0 == 0的时候,X0出现上升沿则将Y0置1,当D0==1的时候,X0出现上升沿则将Y0清0。(程序的case有很多状态,这里只是简化出现的故障)
现在的故障现象:初始上电后,X0的第一次上升沿出现时,Y0不动作,然后再出现则Y0正常动作。

IF Y0 THEN
    D0 := 1;
ELSE
    D0:=0;
END_IF;


CASE D0 OF
    0:
        SET((LDP(TRUE,X0)),Y0);
    1:
        RST((LDP(TRUE,X0)),Y0);
END_CASE;

从PLC内读出的梯形图见附件。

在此先谢谢大侠们~~~~~~~
描述:梯形图
附件: 梯形图.pdf (44 K) 下载次数:38
网站提示: 请不要用迅雷下载附件,容易出错
nilgns
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 123 点
下载积分: 517 分
在线时间: 10(小时)
注册时间: 2013-01-03
最后登录: 2013-10-01
查看nilgns的 主题 / 回贴
1楼  发表于: 2013-01-03 22:28
自己顶下,求助啊~~
abcde12345
级别: 论坛先锋
精华主题: 1 篇
发帖数量: 212 个
工控威望: 1259 点
下载积分: 11131 分
在线时间: 311(小时)
注册时间: 2012-10-09
最后登录: 2024-12-23
查看abcde12345的 主题 / 回贴
2楼  发表于: 2013-01-03 22:50
你牛叉,那么多的跳转被你搞晕了
你直接搞
LD= D0 K0   ANDP X0  SET Y0
LD= D0 K1  ANDP X0 RST Y0

其实你的那个跳转和没跳一样,他和子程序不同,跳转其实M8000还是有电的,但是子程序的M8000没有电(没有调用之前)
邹三木
级别: 探索解密
精华主题: 0
发帖数量: 43 个
工控威望: 180 点
下载积分: 763 分
在线时间: 24(小时)
注册时间: 2012-11-30
最后登录: 2022-04-08
查看邹三木的 主题 / 回贴
3楼  发表于: 2013-01-03 23:06
二楼正解啊,简单的东西何必搞那么复杂化?
nilgns
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 123 点
下载积分: 517 分
在线时间: 10(小时)
注册时间: 2013-01-03
最后登录: 2013-10-01
查看nilgns的 主题 / 回贴
4楼  发表于: 2013-01-04 08:35
谢谢两位的回答!
其实我是要用ST语言写的,case的情况还有很多,不止0、1两种,还有2、3、4、……,而且D0也不是简单的由Y0控制,我的意思是D0受到多个输出点Yn的影响。我现在想问的是上面的程序为什么在X0的第一次上升沿(其实就是一个按键,我通过上升沿来判断它为一次合法按键过程)Y0不动作。(本来程序的功能就是按下X0,Y0转换下状态0<->1)

附件里面的梯形图是我将上面的ST程序烧录进去后读出来的。(我不管开发软件是如何转换编译的,我只想知道ST程序为什么会出错)
nilgns
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 123 点
下载积分: 517 分
在线时间: 10(小时)
注册时间: 2013-01-03
最后登录: 2013-10-01
查看nilgns的 主题 / 回贴
5楼  发表于: 2013-01-04 08:38
而且每个case里面也不止简单的一句话,里面还有一小段程序。感觉用梯形图要画出好几层了,看起来更晕!
nilgns
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 123 点
下载积分: 517 分
在线时间: 10(小时)
注册时间: 2013-01-03
最后登录: 2013-10-01
查看nilgns的 主题 / 回贴
6楼  发表于: 2013-01-04 12:54
再顶下!
有谁知道不~~