-
Thành viên cấp 3
hàm copy khối data dựa trên hàm sfc 20 làm việc với 3 vùng nhớ I Q M
em dã chạy và thành công, copy tốt, mong các anh cho y kiến
FUNCTION "copy" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
SRC_BLK : ANY ;
DST_BLK : ANY ;
END_VAR
VAR_TEMP
TEMP0 : BYTE ;
kieudulieu_1 : BYTE ; //kieu du lieu
n_1 : WORD ; //so byte muon copy
db_num_1 : WORD ; //khoi db
TEMP1 : BYTE ;
vungnho_1 : BYTE ;
kieudulieu_2 : BYTE ;
n_2 : WORD ;
db_num_2 : WORD ;
vungnho_2 : BYTE ;
index : BYTE ;
cont : BYTE ;
scr : DINT ; //dong vai tro pointer scr
dst : DINT ; //dong vai tro pointer dst
temp_data : BYTE ;
TEMP2 : BYTE ;
END_VAR
BEGIN
NETWORK
TITLE =
// xac dinh kieu du lieu, so byte muon copy, khoi db so___, hoac vung nho
L P##SRC_BLK;
LAR1 ;
L B [AR1,P#1.0];
T #kieudulieu_1;
L W [AR1,P#2.0];
T #n_1;
L W [AR1,P#4.0];
T #db_num_1;
L B [AR1,P#6.0];
T #vungnho_1;
L D [AR1,P#6.0];
T #scr;
// xac dinh kieu du lieu,cac thong so cua noi muon coppy den
// kieu du lieu|so byte|khoi dbso___| hoac vung nho
L P##DST_BLK;
LAR2 ;
L B [AR2,P#1.0];
T #kieudulieu_2;
L W [AR2,P#2.0];
T #n_2;
L W [AR2,P#4.0];
T #db_num_2;
L B [AR2,P#6.0];
T #vungnho_2;
L D [AR2,P#6.0];
T #dst;
//-----------------------------------------------------------------------------------
// if(n2>n1) {index=n1
//elseif(n1>n2){index=m2;}
// else index=n1;
//-----------------------------------------------------------------------------------
A( ;
L #n_2;
L #n_1;
>I ;
) ;
JNB lbb1;
L #n_1;
T #index;
JU next;
lbb1: A( ;
L #n_2;
L #n_1;
<I ;
) ;
JNB lbb2;
L #n_2;
T #index;
JN next;
lbb2: L #n_1;
T #index;
//---------------------------------------------------------------------------------------
//xac dinh kieu du lieu
next: L #vungnho_1;
L W#16#F;
AW ;
T #vungnho_1;
L #vungnho_1;
L 1;
-I ;
T #vungnho_1;
L #vungnho_2;
L W#16#F;
AW ;
T #vungnho_2;
L #vungnho_2;
L 1;
-I ;
T #vungnho_2;
//---------------------------------------------------------------------------------------
L #scr;
LAR1 ;
L #dst;
LAR2 ;
L #index;
lap: T #cont;
//---------coppy data--------------
L #vungnho_1;
JL err;
JU lb_i;
JU lb_q;
JU lb_m;
err: JU exit;
lb_i: L IB [AR1,P#0.0];
T #temp_data;
JU lbb;
lb_q: L QB [AR1,P#0.0];
T #temp_data;
JU lbb;
lb_m: L MB [AR1,P#0.0];
T #temp_data;
JU lbb;
//----------------------------------
lbb: L #vungnho_2;
JL errr;
JU lbbi;
JU lbbq;
JU lbbm;
errr: JU exit;
lbbi: L #temp_data;
T IB [AR2,P#0.0];
JU lbbb;
lbbq: L #temp_data;
T QB [AR2,P#0.0];
JU lbbb;
lbbm: L #temp_data;
T MB [AR2,P#0.0];
JU lbbb;
//------------------------------------
lbbb: +AR1 P#1.0;
+AR2 P#1.0;
L #cont;
LOOP lap;
exit: NOP 0;
//------------------------------------------------------------------------------
END_FUNCTION
-
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Back to Top
Múi giờ GMT +7. Bây giờ là 05:18 PM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu