曙海教育集团论坛PLC编程专区PLC编程系列 → 一个间接寻址的例子程序源代码。讨论下编程思想。完善代码注释


  共有3790人关注过本帖树形打印

主题:一个间接寻址的例子程序源代码。讨论下编程思想。完善代码注释

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
一个间接寻址的例子程序源代码。讨论下编程思想。完善代码注释  发帖心情 Post By:2010-12-9 10:19:41

FUNCTION "DBtoDB" : VOID
TITLE =
AUTHOR : BaiZH
FAMILY : IR
NAME : DBtoDB
VERSION : 0.1
VAR_INPUT
SRC_DB : INT ; //Source DB Block Number
SRC_SttAddr : INT ; //Start Address of the Sending Data in SRC_DB
SendNum : INT ; //Words Number Need Sending
DST_DB : INT ; //Destination DB Block Number
DST_SttAddr : INT ; //Start Address of the Receiving Data in DST_DB
END_VAR
VAR_IN_OUT
Enable : BOOL ; //Enable Bit
END_VAR
VAR_TEMP
DB_LOAD_TEMP : INT ;
Loop_Val : INT ; //Send Data Loop Value
DB_SAVE : INT ;
DI_SAVE : INT ;
AR1_SAVE : DWORD ;
AR2_SAVE : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =Send Data
//Move data from DB to DB
A #Enable;
JCN END;
TAR1 #AR1_SAVE; // Save AR and Opened DB
TAR2 #AR2_SAVE;
L DBNO;
T #DB_SAVE;
L DINO;
T #DI_SAVE;
L #SRC_DB; //Open DB
T #DB_LOAD_TEMP; //这里为什么要多用个“#DB_LOAD_TEMP”临时变量啊?
OPN DB [#DB_LOAD_TEMP];
L #DST_DB; //Open DB
T #DB_LOAD_TEMP;
OPN DI [#DB_LOAD_TEMP];
L #SRC_SttAddr; //Load Start Address
SLD 3; //这里为什么用这个指令?有什么用?
LAR1 ;
L #DST_SttAddr;
SLD 3;
LAR2 ;
L #SendNum;
LP1: T #Loop_Val; //Move Data
L DBW [AR1,P#0.0];
T DIW [AR2,P#0.0];
+AR1 P#2.0;
+AR2 P#2.0;
L #Loop_Val;
LOOP LP1;
LAR1 #AR1_SAVE; //Recover Original AR and DB
LAR2 #AR2_SAVE;
OPN DB [#DB_SAVE];
OPN DI [#DI_SAVE];
SET ;
R #Enable;
END: NOP 0;
END_FUNCTION
<link href="/templates/xhtml2/skins/xhtml/digg/style3/style.css" type="text/css" rel="stylesheet"/>

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

一个间接寻址的例子程序源代码。讨论下编程思想。完善代码注释








签名