西门子工业支持中心,以专业共创价值!
西门子工业支持中心,以专业共创价值!
作者 | 主题 |
---|---|
TP回家 游士 ![]() 经验值:264 发帖数:156 精华帖:0 |
楼主
![]() 主题: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次看你的背影 奇侠 ![]() 经验值:7970 发帖数:2355 精华帖:73 |
1楼
![]() ![]()
楼主:你的疑惑我帮你看了一下,可参考如下
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
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
|