-
Thành viên cấp 3

Gửi bởi
Mechatronic_Hieu
hàm bạn viết như SFC20 vậy, có 1 chân Int và 1 chân Out. Thì là hàm Move thôi, bạn cho giá trị các word đầu vào rồi kiểm tra đầu ra thế là test dc thôi. Viết thì tất nhiên sẽ dc nhưng vấn đề là hàm thế nào cho tổng quát: đầu nào người dùng có thể đưa vào địa chỉ bất kỳ vùng nhớ nào( Db,M,DW...) và có thể 1 dãy 100 hay 200 word tuỳ ý
FUNCTION FC4 : VOID
TITLE = 'MOVE N BYTE'
//************************************************** *****************
VAR_INPUT
VUNG_NHO: CHAR; //TEN VUNG NHO BYTE/WORD/DWORD (B-D-W)
DB_BLOCK: INT; // TEN CUA DATA BLOCK
FROM_AD : INT; // COPPY TU FROM_DT
TO_AD : INT; // DEN DIA CHI TO_AD
N : INT; // VOI SO LUONG N BYTE/WORD/DWORD
END_VAR
VAR_OUTPUT
ERROR: BOOL;
END_VAR
VAR_TEMP
I : INT;
BUFFER : ARRAY[1..30] OF BYTE;
BUFFER1 : ARRAY[1..30] OF WORD;
BUFFER2 : ARRAY[1..30] OF DWORD;
END_VAR;
//************************************************** *****************
//coppy data tu from_ad den from_ad+n vao BUFFER
FOR I:=FROM_AD TO (FROM_AD + N) BY 1 DO
CASE CHAR_TO_INT(VUNG_NHO) OF
66: BUFFER[I-FROM_AD]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DB[I];
87: BUFFER1[I-FROM_AD]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DW[I];
68: BUFFER2[I-FROM_AD]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DD[I];
ELSE:
ERROR:= TRUE;
END_CASE;
END_FOR;
//************************************************** *****************
//coppy data tu BUFFER vao dich
FOR I:= TO_AD TO TO_AD+N BY 1 DO
CASE CHAR_TO_INT(VUNG_NHO) OF
66: WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DB[I]:=BUFFER[I-TO_AD];
87: WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DW[I]:=BUFFER1[I-TO_AD];
68: WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DD[I]:=BUFFER2[I-TO_AD];
ELSE:
ERROR:= TRUE;
END_CASE;
END_FOR;
//************************************************** *****************
END_FUNCTION
em không làm được.
một đầu vào 1 đầu ra thì em không biêt làm.... anh chỉ em với. em không biết làm thế nào để nhận biết ngõ vào ở là byte, word, hay dword
-
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à 11:07 AM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu