西门子S7-300 连用4个L指令是何用法?

2024-11-26 08:28:30
推荐回答(2个)
回答1:

SET //将RLO(逻辑运算结果保存位)位置1,
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
= L 0.1 //将RLO位保存到L0.1临时存储区位
L #IN3 //装载#IN3这个变量到ACC1
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
ITD //将ACC 1中的数值转换为双整数
DTR //将ACC1的双整数转为浮点数,最终#IN3变成了浮点数,保存在了ACC1
SAVE //将RLO结果保存到BR位
L 1.000000e+001 //装载10.0到ACC2
/R //ACC2除以ACC1,也就是10.0除以#IN3变量,结果保存在ACC1
JO M001 //如果有溢出那么跳转到M001
JU M002 //如果没有溢出那么跳转到M002
M001: CLR //清除RLO位
= L 0.1//RLO结果暂存到L0.1临时存储区
M002: T #IO9 //将ACC1的数据传送给#IO9变量
CLR //清除RLO位
A #STAT65 //检查#STAT65是否为1
NOT //对RLO取反
A #IN0 //检查#IN0是否为1
JCN M003 //如果以上逻辑运算结果为0跳转到M003
L #IO9 //如果逻辑运算结果为1,那么装载#IO9
T #STAT66 //将#IO9传送给#STAT66
L #IO9 //装载#IO9
T #IO10 //将#IO9传送给#IO10
L 0.000000e+000 //装载0.0
T #STAT67 //创送0.0给#STAT67
M003: CLR //清零RLO

回答2:

L是相当于到DB,所不同的是,L是只有局部变量,只用于子程序,和初始值是不固定的,不一定是零,临时变量的子程序的中间用于。 DB是一个全局变量,你可以保存