当前位置: 主页 > PLC控制

下面这段STL程序看不懂,求大神指导。。。

O(
LDB100.DBD2
LTOD#5:59:0.000
>=D
)
A(
LDB100.DBD2
LTOD#11:59:0.000
<=D
)
O(
LDB100.DBD2
LTOD#17:59:0.000
>=D
)
A(
LDB100.DBD2
LTOD#23:59:0.000
<=D
)
=#TEMP37

最佳答案

修改后:
这段程序有点像是排班时间表:
早上6点到中午12点
晚上18点到24点
经过模拟这段程序是可行;即:早上6点到中午12点或者晚上18点到24点置位=#TEMP37
分析,首先:DB100.DBD2是个日计时的时间格式,那么DB100.DBD2都是小于TOD#23:59:0.000的所以,最后一个
A(
LDB100.DBD2
LTOD#23:59:0.000
<=D
)
一直为1;
就是说
O(
LDB100.DBD2
LTOD#5:59:0.000
>=D
)//早上6点后
A(
LDB100.DBD2
LTOD#11:59:0.000
<=D
)//早上12点前
//以上程序是表示在,早上的6点到12点,成立时#TEMP37就为1
只要进入到18点,#TEMP37也为1
OM2.1
AM2.2
OM2.3
AM2.4
=M2.5//M2.1与M2.2都为1时,只要M2.4为1M2.5就为1
M2.3与M2.4都为1时,M2.5就为1
楼主可以模拟或者监控看看,最后一个时间的比较块是否一直为1"O"为1时,STARLO都为1,可以写写程序监控看看;
之前的解答有点不对;

提问者对于答案的评价:
感谢细心讲解,主要是对O,A的运用还是不够哈,最近才看STL的东西,这个没有从脑子里转换成梯形图,我感就是O相当于隐形的加了个中括号吧,这样我就能理解了。。。

  • 关注微信

猜你喜欢

微信公众号