pg7499
级别: 探索解密
精华主题: 0
发帖数量: 59 个
工控威望: 114 点
下载积分: 828 分
在线时间: 15(小时)
注册时间: 2022-11-03
最后登录: 2022-12-23
查看pg7499的 主题 / 回贴
楼主  发表于: 2022-11-16 10:39
IF (M1=1 OR Y1=1 AND M3=1 AND Y2=0) THEN
    Y1:=1;
END_IF;
IF (m2=1 OR Y2=1 AND m3=1 and y1=0) THEN
    Y2:=1;
END_IF;

为什么M1为true ,M3为false Y1会为true

这个要怎么解决
松下全系产品
电话:15565565172
微信:pg990601
pg7499
级别: 探索解密
精华主题: 0
发帖数量: 59 个
工控威望: 114 点
下载积分: 828 分
在线时间: 15(小时)
注册时间: 2022-11-03
最后登录: 2022-12-23
查看pg7499的 主题 / 回贴
1楼  发表于: 2022-11-16 10:40
图片:
测试是这样
松下全系产品
电话:15565565172
微信:pg990601
hansir
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 101 点
下载积分: 2010 分
在线时间: 17(小时)
注册时间: 2021-09-17
最后登录: 2024-11-22
查看hansir的 主题 / 回贴
2楼  发表于: 2022-11-16 10:54
先要说你想实现啥功能吧?不然怎么知道你有什么问题
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 755 个
工控威望: 3141 点
下载积分: 13344 分
在线时间: 1080(小时)
注册时间: 2019-12-26
最后登录: 2024-11-22
查看13821917697的 主题 / 回贴
3楼  发表于: 2022-11-16 10:55
适当的在加点括号 你试试
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3132 分
在线时间: 9509(小时)
注册时间: 2006-09-13
最后登录: 2024-11-22
查看cvlsam的 主题 / 回贴
4楼  发表于: 2022-11-16 10:58
引用
引用楼主pg7499于2022-11-16 10:39发表的 求助三菱ST语言 :
IF (M1=1 OR Y1=1 AND M3=1 AND Y2=0) THEN
    Y1:=1;
END_IF;
IF (m2=1 OR Y2=1 AND m3=1 and y1=0) THEN
    Y2:=1;
.......


或,有1出1,M1=1,OR后面是什么结果不重要.

Good Luck~
heiheiwodeai
级别: 略有小成
精华主题: 0
发帖数量: 246 个
工控威望: 368 点
下载积分: 976 分
在线时间: 330(小时)
注册时间: 2013-03-26
最后登录: 2024-11-22
查看heiheiwodeai的 主题 / 回贴
5楼  发表于: 2022-11-16 11:05
M1后边是or逻辑 啊
hansir
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 101 点
下载积分: 2010 分
在线时间: 17(小时)
注册时间: 2021-09-17
最后登录: 2024-11-22
查看hansir的 主题 / 回贴
6楼  发表于: 2022-11-16 11:10
AND的优先级高于OR,程序中是先执行AND,后执行OR,相当于
IF M1=1 OR (Y1=1 AND M3=1 AND Y2=0)THEN
    Y1:=1;
END_IF;
另外你的括号等于没加,IF判断条件整体不需要加括号

我猜你想实现的是M1=1或者Y1=1,然后串联M3=1,Y2=0
可以改成
IF (M1=1 OR Y1=1) AND M3=1 AND Y2=0THEN
    Y1:=1;
END_IF;
明白了吗?
pg7499
级别: 探索解密
精华主题: 0
发帖数量: 59 个
工控威望: 114 点
下载积分: 828 分
在线时间: 15(小时)
注册时间: 2022-11-03
最后登录: 2022-12-23
查看pg7499的 主题 / 回贴
7楼  发表于: 2022-11-16 11:15
引用
引用第6楼hansir于2022-11-16 11:10发表的  :
AND的优先级高于OR,程序中是先执行AND,后执行OR,相当于
IF M1=1 OR (Y1=1 AND M3=1 AND Y2=0)THEN
    Y1:=1;
END_IF;
另外你的括号等于没加,IF判断条件整体不需要加括号
.......


明白了,感谢感谢
松下全系产品
电话:15565565172
微信:pg990601