-
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
-
-
Thành viên cấp 3
FUNCTION FC5 : VOID
TITLE = 'tinh tong n byte trong khoi db'
//************************************************** *****
VAR_INPUT
DB_BLOCK: INT; //TEN BLOCK VI DU 1=> SE LA DB1
AD_START: INT; //BYTE BAT DAU
N : INT; // SO LUONG BYTE
END_VAR
VAR_OUTPUT
SUM : DINT;
ERROR : BOOL;
END_VAR
VAR_TEMP
I: INT;
END_VAR;
//************************************************** *****
SUM:=0;
FOR I:=AD_START TO AD_START+N BY 1 DO
SUM:=SUM+BYTE_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD( DB_BLOCK)).DB[I]);
END_FOR;
//************************************************** *****
END_FUNCTION
Tính tổng n byte trong khối DB em không biêt test sao... có ý tưởng nên test chơi... vui là chính
mong các anh góp ý... em sẽ cố gắng viết rồi up hết lên mong các anh góp ý cho em. em cảm ơn ạ!!
Lần sửa cuối bởi nmh_bk, ngày 10-28-2013 lúc 11:07 PM.
-
-
Little PLC

Vi xử lý em học tốt lắm H. Cùng H nhưng ko phải Hiếu ^.^ Nếu em thích PLC vậy hôm nào wa Hùng Vương cafe nhé. Học lại anh văn xíu nữa là ok. Anh văn rất cần thiết. Cậu Nobita này có khả năng thành tài nếu được đào tạo.
-
-
Thành viên cấp 3

Gửi bởi
tran_hieu0983
Vi xử lý em học tốt lắm H. Cùng H nhưng ko phải Hiếu ^.^ Nếu em thích PLC vậy hôm nào wa Hùng Vương cafe nhé. Học lại anh văn xíu nữa là ok. Anh văn rất cần thiết. Cậu Nobita này có khả năng thành tài nếu được đào tạo.
vâng ạ. em cảm ơn thầy
-
-
Thành viên cấp 4
Mình rất thik những người ham học hỏi, chúc bạn thành công
-
-
Thành viên cấp 3

Gửi bởi
Mechatronic_Hieu
Mình rất thik những người ham học hỏi, chúc bạn thành công
em cảm ơn anh. em mới học mong anh chỉ bảo thêm
-
-
Thành viên cấp 3
https://www.dropbox.com/s/288c3fwtdborkyh/S7_Pro1.rar
dùng 2 time điều khiển 6 đèn giao thông. em không biết chạy thật nó có chạy không
SCL là ngôn ngữ mạnh, dễ học dễ viết. dùng SCL có thể tạo ra những hàm thực hiện chức năng mong muốn 1 cách dễ dàng
ở đay em dùng SCL kết hợp với LAD... mong các anh test hộ và góp ý
Lần sửa cuối bởi nmh_bk, ngày 10-29-2013 lúc 12:56 PM.
-
-
Thành viên cấp 3
Sau một thời gian đọc tài liệu và hoc tập, em thấy kiến thức của em nó lung tung quá, mỗi thứ biết một it, chẳng cái nào rõ ràng hết..., mấy anh có thể cho em xin cái list được không ạ( đại khái là coi PLC là cái bánh các anh có thể giúp em chia nhỏ nó ra được không ạ)... em sẽ học từng phần, từ từ hoàn thiện.
Tài liệu thì em cũng đọc rồi, em cũng test, mô phỏng chạy tốt, có điều lập trình xong đổ xuống PLC thì PLC lúc nào cũng stop, em k biết tại sao, chắc có lỗi mà em không biết...
tài liệu thì em cả đống rồi, đủ thứ PLC, WINCC... có điều là em chưa khai thác tốt, các anh có thể chỉ cho em cách khai thác tài liệu hiệu quả được không ạ.
Tiện đây các anh cho em hỏi luôn, PLC nó stop không chịu chạy khi nào ạ...
Các anh có thể cho em xin một số hàm hay dùng được không ạ, cho em xin chức năng thôi.. còn đâu em tự viết...
em cảm ơn nhiều
-
-
Thành viên cấp 4
Có nhiều trường uỳ hợp PLC stop lắm, bạn coi phần OB lỗi, đọc phần hel-p sẽ thấy dc mô tả khi nào PLC dừng, và tuỳ vào lỗi chúng ta sẽ có các OB lỗi tương ứng, cần hiểu rõ những gì mình bypass
-
-
Thành viên cấp 3
Các anh cho em tham khảo tí với ạ.
khi đứng trước một hệ thông PLC thì cần phải làm gì để có cái nhìn tổng quát về toàn bộ hệ thống,...
nguyên tắc làm việc với 1 hệ thống là như thế nào...
em không nói đến lập trình, ý em là làm sao để hiểu hệ thống ạ....
hiểu hệ thống, biết hệ thống có gì, chức năng gì thì mới lập trình được nên các anh chỉ em với ạ
thêm nữa là nếu trên tay em cầm cục PLC thì cần phải biết những gì về cục PLC đó ạ....
em cũng biết 1 it rồi, nhưng em muốn tham khảo ý kiến của các anh...
-
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à 04:42 AM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu