回复:伊默:你看我这样编对不对呀?

伊默

西门子1847工业学习平台

  • 帖子

    4271
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2005-11-13 22:28:09

0楼

打开一个DB块的时候,系统会自动把上一个打开的DB块关闭的...你上面的程序思路是对的. 如果要打开两个块,可以参考我在博客日志里发的关于"十六进制转换成ASCII"的程序,我给你粘过来吧,具体你自己看看吧,当然这个功能在STEP7中已经有了,是FC95,只是它占用空间大一些,我无聊了自己写了一个玩的,你可以参考一下:
FUNCTION FC10:VOID

VAR_INPUT
IN:POINTER;
N:INT;
END_VAR
VAR_OUTPUT
OUT:POINTER;
END_VAR
VAR_TEMP
FLAG:BOOL;
NTMP,DBLKNO:INT;
AR2TMP:DWORD;
END_VAR

BEGIN
L 0;
L N;
==I;
JZ EXIT;
TAR2 AR2TMP;
L P#IN;
LAR1;
L W[AR1,P#0.0];
T DBLKNO;
OPN DB[DBLKNO];
L D[AR1,P#2.0];
LAR1;
L P#OUT;
LAR2;
L 0;
L W[AR2,P#0.0];
==I;
JZ NODB;
T DBLKNO;
OPN DI[DBLKNO];
L D[AR2,P#2.0];
OD DW#16#05000000;
JU BEGN;
NODB:L D[AR2,P#2.0];
BEGN:LAR2;
L N;
NEXT:T NTMP;
CONT:L B[AR1,P#0.0];
AN FLAG;
S FLAG;
JC _001;
R FLAG;
AW W#16#000F;
JU _002;
_001:SRW 4;
_002:L B#16#A;
JC AX30;
TAK;
L B#16#37;
+I;
JU SEND;
AX30:TAK;
L B#16#30;
+I;
SEND:T B[AR2,P#0.0];
+AR2 P#1.0;
A FLAG;
JC CONT;
+AR1 P#1.0;
L NTMP;
LOOP NEXT;
LAR2 AR2TMP;
EXIT:SET;
SAVE;

END_FUNCTION


I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54716条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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