回复:LW =指令的问题

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2012-02-03 11:07:30

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
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

共有0条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。