技术论坛

 LW =指令的问题

返回主题列表
作者 主题
TP回家
游士

经验值:264
发帖数:156
精华帖:0
楼主    2012-02-02 17:06:34
主题:LW =指令的问题
S5程序:
Segment 1
Name :MIN-L00P
Decl :MIN I/Q/D/B/T/C: D KM/KH/KY/KS/KF/KT/KC/KG: KF
Decl :DBSW I/Q/D/B/T/C: B
Decl :DWMI I/Q/D/B/T/C: I BI/BY/W/D: W
Decl :DWMA I/Q/D/B/T/C: I BI/BY/W/D: W

:***

Segment 2
:DO =DBSW
:LW =DWMI
:T FW 250
LOOP :LW =MIN
:DO FW 250
:L DW 0
:<=F
:JC =INC
:DO FW 250
:L DW 0
:L KB 0
:!=F
:JC =INC
:LW =MIN
:DO FW 250
:T DW 0
INC :L FW 250
:I 1
:T FW 250
:LW =DWMA
:<=F
:JC =LOOP
:BE


关于这段程序的一些疑问:
1、MIN的数据类型是D,那么相当于S7里面的哪种数据类型呢?

2、 :DO =DBSW
:LW =DWMI
:T FW 250
这段程序的意思是
OPN DB[DBSW]
L #DWMI
T FW 250
还是
OPN DB[DBSW]
L P##DWMI
T LD0
L DBW[LD 0]
T FW250

我的主要问题就是“LW =”这个指令是直接取数值,还是将这个数值作为地址指针。
后面跟随的操作参数在不同数据类型或其它情况下,结果一样吗?(比如说上面这段程序里的LW =DWMI 和LW =MIN).


谢谢各位大神!
n次看你的背影
奇侠

经验值:7703
发帖数:2337
精华帖:73
1楼    2012-02-03 11:07:30
精华帖  主题:回复:LW =指令的问题
楼主:你的疑惑我帮你看了一下,可参考如下
1、MIN的数据类型是D,那么相当于S7里面的int数据类型(16位整数);
2、 :DO =DBSW
:LW =DWMI
:T FW 250
这段程序的意思是
OPN #DBSW
L P##DWMI
T MW 250

“LW=”这个指令是将后面的数据作为地址指针,P##DWMI是双字指针,装载到累加器中是个32位数据哦。


楼主:我转换了你S5的程序到S7,现在提供一下S5转S7的STL Sources源代码给你参考,也许对你更有帮助!
FUNCTION FC 0 : VOID
NAME: MIN_LOOP // MIN-LOOP
VAR_INPUT
MIN :int; // MIN
DBSW :block_db; // DBSW
DWMI :word; // DWMI
DWMA :word; // DWMA
END_VAR
VAR_TEMP
conv_akku1 :dword;
conv_akku2 :dword;
conv_stw :word;
END_VAR
BEGIN
NETWORK
OPN #DBSW ;
L #DWMI;
// // *** Error in Line 62 (FB 1): Invalid operator, can possibly be replaced with the
statement:\"L P##DWMI\" ***
T MW 250;
LOOP:L #MIN;
T conv_akku1;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
<=I;
JC INC;

T conv_akku1;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
L 0;
==I;
JC INC;

T conv_akku1;
TAK;
T conv_akku2;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku2;
L conv_akku1;
T DBW [ AR1, P#0.0 ];
INC: L MW 250;
INC 1;
T MW 250;
L #DWMA;
// // *** Error in Line 111 (FB 1): Invalid operator, can possibly be replaced with the
statement:\"L P##DWMA\" ***
<=I;
JC LOOP;

END_FUNCTION
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。