L
PIW256
//7KF02模块的温度通道地址
ITD
//转换为浮点数
DTR
L
10.0
/R
T
MD10
//MD中就是实际温度值。
1、SET //将RLO(逻辑运算结果保存位)位置1;
2、SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行;
3、= L 0.1 //将RLO位保存到L0.1临时存储区位;
4、L #IN3 //装载#IN3这个变量到ACC1;
5、SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行;
6、ITD //将ACC 1中的数值转换为双整数;
7、DTR //将ACC1的双整数转为浮点数,最终#IN3变成了浮点数,保存在了ACC1;
8、SAVE //将RLO结果保存到BR位;
9、L 1.000000e+001 //装载10.0到ACC2;
10、/R //ACC2除以ACC1,也就是10.0除以#IN3变量,结果保存在ACC1;
11、JO M001 //如果有溢出那么跳转到M001;
12、JU M002 //如果没有溢出那么跳转到M002;
13、M001: CLR //清除RLO位;
14、= L 0.1//RLO结果暂存到L0.1临时存储区;
15、M002: T #IO9 //将ACC1的数据传送给#IO9变量;
16、CLR //清除RLO位;
17、A #STAT65 //检查#STAT65是否为1;
18、NOT //对RLO取反;
19、A #IN0 //检查#IN0是否为1;
20、JCN M003 //如果以上逻辑运算结果为0跳转到M003;
21、L #IO9 //如果逻辑运算结果为1,那么装载#IO9;
22、T #STAT66 //将#IO9传送给#STAT66;
23、L #IO9 //装载#IO9;
24、T #IO10 //将#IO9传送给#IO10;
25、L 0.000000e+000 //装载0.0;
26、T #STAT67 //创送0.0给#STAT67;
27、M003: CLR //清零RLO。
L #IN0//将变量#IN0的值送入累加器ACCU1中ITD//将ACCU1的数据转换为DINT类型
DTR //将ACCU1的数据转换为REAL类型,即浮点数,西门子规定,INT转换为REAL,必须使用ITD,DTR这两个步骤。
L 1.000000e+001 //将浮点数10.0装入ACCU1中,原先ACCU1的数据送入ACCU2中
/R//ACCU2的数据除以ACCU1,结果送入ACCU1中,ACCU1原先数据送入ACCU2中,/R为浮点数除法,要求除数被除数均为REAL类型。
T #OUT1//将ACCU1的数据送入变量#OUT1中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)