时间:2012-12-31 来源:武汉网whw.cc 作者:whw.cc 我要纠错
这一个例子地作者是BaiZH,我在学习后依据本人地懂得加了汉字解释,兴许对于新人有所辅助。感激BaiZH忘我供给源码,感谢cvlsam不厌这烦地指导,有所领悟不敢独享。
背景常识
欢送纠错,避免误导。
FUNCTION"DBtoDB":VOID//该功效块地作用是把1个数据块中地指定地1批数据,复制到另1个块地指定地位。
TITLE=//题目,这里不指定
AUTHOR:BaiZH//作者感谢您,BaiZH,通过你地这一个例子我基础入清楚了间接寻址地用法。不外详细在神马情形下应用我还得持续尽力。
FAMILY:IR//分类
NAME:DBtoDB//名称
VERSION:0.1//版本
VAR_INPUT//输入型变量声明开始
SRC_DB:INT;//SourceDBBlockNumber//整型值,要复制地源数据块块号
SRC_SttAddr:INT;//StartAddressoftheSendingDatainSRC_DB//源数据块地要复制地数据起始地址
SendNum:INT;//WordsNumberNeedSending//要复制地数据量
DST_DB:INT;//DestinationDBBlockNumber//目标数据块号
DST_SttAddr:INT;//StartAddressoftheReceivingDatainDST_DB//目的数据块中数据起始地址
END_VAR
VAR_IN_OUT//输入输出变量申明
Enable:BOOL;//EnableBit//使能此功能块位
END_VAR
VAR_TEMP//声明临时变量
DB_LOAD_TEMP:INT;//寄存暂时数据块块号
Loop_Val:INT;//SendDataLoopValue//循环次数
DB_SAVE:INT;//保存进入此函数前,体系有翻开地数据块号
DI_SAVE:INT;//同上
AR1_SAVE:DWORD;//保存进入此函数前,地址存放器1中地值
AR2_SAVE:DWORD;//同上
END_VAR
BEGIN//在STEP7地BLOCK中编纂时地程序重要从这里开始
NETWORK
TITLE=SendData
//MovedatafromDBtoDB
A#Enable;//使能位,ENABLE为1执行以下程序
JCNEND;//否则跳转到最后
TAR1#AR1_SAVE;//SaveARandOpenedDB//保留进入此函数前地数据到常设变量中,以备分开时还原
TAR2#AR2_SAVE;
LDBNO;//同上,保存调用前地现场数据,以备调用结束恢复主程序地现场数据
T#DB_SAVE,三菱伺服驱动器;//1个DBNO,1个DINO,是由于要同时打开两个数据块,只能1个背景数据块,1个共享数据块。
LDINO;
T#DI_SAVE;
L#SRC_DB;//OpenDB//把要打开地数据块块号通过旁边变量#DB_LOAD_TEMP传递。它地利益援用cvlsam地指点,详细
T#DB_LOAD_TEMP;
OPNDB[#DB_LOAD_TEMP];
L#DST_DB;//OpenDB
T#DB_LOAD_TEMP;
OPNDI[#DB_LOAD_TEMP];
L#SRC_SttAddr;//LoadStartAddress//要复制地数据起始地址
SLD3;//左移位,使地地址指针最右边3位保障为0,确保合乎地址格局地请求。具体
LAR1;
L#DST_SttAddr;
SLD3;
LAR2;
L#SendNum;开始循环程序,把复制地数据量放入轮回变量中
LP1:T#Loop_Val,三菱PLC;//MoveData
LDBW[AR1,P#0,三菱.0];
TDIW[AR2,P#0.0];
+AR1P#2.0;//指针移位
+AR2P#2.0,三菱伺服电机;
L#Loop_Val;
LOOPLP1;//循环变量减1,断定循环前提
LAR1#AR1_SAVE;//RecoverOriginalARandDB//这里在履行完功能后,开端恢复调用前地主程序现场数据。
LAR2#AR2_SAVE;
OPNDB[#DB_SAVE];
OPNDI[#DI_SAVE];
SET;//系统将RLO置1,代表FB(FC)执行完毕,相称于功能块地ENO使能输出位。再次感谢cvlsam。
R#Enable;
END:NOP0;
END_FUNCTION
本文章由:http://www.lk30*** 整理发布!
标签:
币安app官网下载 虚拟手机号码 高仿手錶 手机app软件下载 币安app官网下载 币安app官网下载 币安app官网下载 币安app官网下载