Nguyên văn bởi caohoangvu
Thông báo
Collapse
No announcement yet.
Giao tiếp S7-200 với PC
Collapse
X
-
Nguyên văn bởi kemoihoc Xem bài viết[
Như vậy chúng ta thấy Mscomm là một bộ công cụ đã có sẳn trong VB giúp người lập trình can thiệp vào cổng com ( RS232). Và đây chính là 1 Actix có đầy đủ các thuộc tính cần thiết. Thông thường sau khi tạo một Project mới, ở phần các Actix có thể chưa có Mscomm do vậy bạn cần phải lấy đối tượng này ra ( hình điện thoại). Chúng ta có thể xem Mscomm là 1 đối tượng có nhiều thuộc tính, để Mscomm hoạt động chúng ta phải khai báo hay nói đúng hơn là set các thuộc tính cần thiết cho cơ chế truyền thông.
Khi đã được kích hoạt, Mscomm sẽ tự động lấy data từ cổng RS232 vào và cất ở bộ đệm truyền thông ( được thực hiện trên cơ chế ngắt truyền thông, Mscomm sẽ tự động chuyển đổi dữ liệu nguời sử dụng sang mã ASCII hoặc ngược lại), vậy người lập trình chỉ có nhiệm vụ lấy dữ liệu ( hoặc ngược lại) đưa vào 1 Text để hiện thị hoặc cất vào 1 địa chỉ cần thiết. Tuy nhiên VB là ngôn ngữ có cơ chế kích hoạt theo sự kiện vì vậy CHU KÌ lấy dữ liệu của bạn bắt buộc phải theo 1 sự kiện ( đây chính là nhược điểm hạn chế tốc độ truyền và nhận gói dữ liệu và hạn chế tính thời gian thực ), như ví dụ trên hình vẽ bạn phải sử dụng 1 timer để tạo ra sự kiện có tính tuần hoàn, và mỗi lần timer tràn thì sẽ tạo ra 1 sự kiện và đây chính là điều kiện để thực hiện việc lấy dữ liệu từ bộ đệm vào text.
Để kích hoạt các thuộc tính cần thiết của Mscomm cho truyền thông bạn cần khai báo các thuộc tính của nó như sau:
Mscomm1.PortOpen = True // mở cổng
Mscomm1.CommPort=1 // chọn com 1
Mscomm1.Settings=’ 9600,N,8,1’ // tốc độ,không sửdụng Parity,8 bít dữ liệu,1 bít stop.
Để lấy dữ liệu từ bộ đệm vào text ta sử dụng câu lệnh
Text1.text = Mscomm1.input ( hoặc .output)
Lưu ý các công việc này chỉ được thực hiện theo sự kiện ( ví dụ timer tràn)
Nếu cần thiết bạn có thể liên hệ trực tiếp tôi sẽ gửi cho bạn tài liệu và các chương trình mẫu. Chúc thành công.
Nếu dùng con S7-200 để truyền thông với máy tính theo phương thức Modbus thì lại phải khởi tạo nó = phần mềm. Còn nếu có thàng PC Access thì mọi việc chở nên đơn giản rất nhiều.katllu
Comment
-
Nếu dùng con S7-200 để truyền thông với máy tính theo phương thức Modbus thì lại phải khởi tạo nó = phần mềm. Còn nếu có thàng PC Access thì mọi việc chở nên đơn giản rất nhiều.[/QUOTE]
Bác có tài liệu và phần mềm PC access không gửi cho mình với nhé! Cảm ơn bác nhe!
Comment
-
Nguyên văn bởi nodiesun Xem bài viếtNếu dùng con S7-200 để truyền thông với máy tính theo phương thức Modbus thì lại phải khởi tạo nó = phần mềm. Còn nếu có thàng PC Access thì mọi việc chở nên đơn giản rất nhiều.
Nâu rồi không đụng tới chẳng nhớ nó lằm ở đâu nữa bạn chịu khó search trên mạng đi hoặc tham khảo đoạn code sau của mình qua đường link:
http://dientuvietnam.net/forums/show...?t=5207&page=2katllu
Comment
-
Nguyên văn bởi mstudio8x Xem bài viếtBác có tài liệu và phần mềm PC access không gửi cho mình với nhé! Cảm ơn bác nhe!
http://dientuvietnam.net/forums/show...?t=5207&page=2[/QUOTE]
Anh Lưu ơi em đang làm đồ án về hiển thị và điều khiển nhiệt độ dùng S7-200. Anh có phần mềm và tài liệu về PC access gửi cho em với nhé! À nếu em muốn hiển thị nhiệt độ theo thời gian thì lập trình như thế nào để có được đồ thị nhiệt độ theo thời gian hả anh! Anh cố gắng giúp em với nhé! Thanks anh!Last edited by nodiesun; 15-04-2008, 20:33.
Comment
-
Nguyên văn bởi nodiesun Xem bài viếtNâu rồi không đụng tới chẳng nhớ nó lằm ở đâu nữa bạn chịu khó search trên mạng đi hoặc tham khảo đoạn code sau của mình qua đường link:
http://dientuvietnam.net/forums/show...?t=5207&page=2
Đây là đường link mình gửi trên diễn đàn bạn vào đó xem:
http://dientuvietnam.net/forums/show...8261#post98261katllu
Comment
-
Cho mình hỏi với Microcomputing cái này dùng làm gì mà ai cũng tranh nhau xin thế?
Mình đang viết chương trình giao tiếp PC với S7200 của siemen không biết cái đó có giúp gì được không? Xin hỏi trong diễn đàn ai đã làm về đề tài này giúp đỡ mình với
cảm ơn nhiều
xuanvudk2@gmail.comNGUYỄN XUÂN VŨ
Mua bán, sửa chữa PLC, biến tần
Vỉ mạch điện tử công nghiệp các loại
0978462163
Comment
-
mình đang viết chương trình nhận kí tự 'A' từ VB6.0 truyền xuống plc ,rồi sau đó sẽ xuất tín hiệu qo.o. vậy ai có thể sửa bài làm này dùm ko ? xin cảm ơn .
trong chương trình chính
LD SM0.0
MOVB 16#09,SMB30 /khai báo cổng truyền thông ..
MOVD &VB300,AC1 / byte nhận vào ô nhớ VB300
MOVB SMB2,*AC1
INCD AC1
NETWORK 2:
LD SM0.1
ATCH INT_0, 8
ENI
TRONG CHƯƠNG TRÌNH NGẮT INT0
LD SM0.0
AB= VB300, 'A' / lệnh so sánh kí tự A
= Q0.0
LD SM0.0
AB= VB2, 1 /VB2 là biến đếm số lượng byte nhận
= Q0.0
Comment
-
giao tiếp plc S7-200 với VB6.0
mình đang muốn truyền kí tự (ví dụ kí tự A) xuống plc S7-200 rồi mở tín hiệu Q0.0 .trong VB mình có ô textbox1 (dùng ghi kí tự) , cmdsend (gửi kí tự ) . trong cmdsend ,viết : mscomm1.output=buffer(65)
trong form_load : dim buffer
buffer= text1.text.
nhưng tại sao khi test lại ko được nhỉ ? sau khi mình nhấn nút send thì PC ko kết nối được với plc s7-200,mình ko thể upload hay download chương trình lên đc. vậy đại ca nào biết xin giúp đở ,xin cảm ơn.
Comment
-
Chao ban !
Theo như bạn nói : sau khi nhấn nút Send nhưng không kếtt nối được với S7-200 do :
1. Bạn phải viết chương trình nhận ở chế độ freeport cho PLC
2. Sau khi PLC nhận được ký tự đó, rồi so sánh nếu bằng thí xuất ra q0.0
3. Chương trình vb bạn viết chưa có lệnh mở cổng Com (portopen=true) , tốc độ truyen (baud=9600,8,1).
4. khi cần truyền ký tự bạn có thể dùng dòng lệnh :
mscomm1.output = text1.text
Comment
-
giao tiếp vb với plc s7-200
những cái đó thì mình khai báo rồi .mình sẽ viết đầy đủ code nhé :
trong VB6.0 : mình nhấn nút command thì sẽ gửi kí tự A
private form_load()
with mscomm1
.rthreshold=1
.commport=1
.settings="9600,N,8,1"
.handshaking=2-comrts
.RTSenable=true
.portopen=true
end with
end sub
privat sub command_click()
mscomm1.output="A" 'truyền kí tự A
trong plc s7-200
NETWORK 1:
LD SM0.1
MOVB 16#09,SMB30
MOVD &VB300,AC1
NETWORK 2:
LD SM0.1
ATCH INT_0, 8
ENI
Phần nhận ký tự ở trong chương trình con
LD SM0.0
MOVB SMB2,*AC1
INCD AC1
trong chương trình chính
LD SM0.0
AB= VB300, 'A' // lệnh so sánh kí tự A
= Q0.0
khi so sánh là kí tự A thì sẽ mở tín hiệu Q0.0 ,nhưng khi mình test như vậy thì có một số vấn đề sau :
trong VB6.0 thông báo lỗi ở đoạn : .portopen=true
còn trong plc thì lúc đầu download chương trình được ,nhưng sau đó ko download được ,thông báo lỗi truyền thông (communication time-out,check port,address..).vậy ai đã từng làm bài này xin chỉ giáo dùm .chờ đợi câu trả lời .
Comment
-
bạn thử tắt nguồn PLC đi rồi bật lại. Thế là ok ngay mà!
Nhưng ma chương trình PLC và VB bạn xem kĩ lại nhé. Theo mình thì khi bạn truyền ký tự A trên VB xuống PLC sẽ có mã là 41h. Nếu bạn khai báo ký tự 'A' trong PLC là 41h rồi thì ok. Mình có câu hỏi này muốn hỏi bạn. Mình muốn truyền từ PLC lên VB nhưng ko phải liên tục mà cứ cách khoảng 1s lại truyền thì phải viết chương trình như thế nào nhỉ. Giúp mình với nhé! Thanks. Chúng ta cùng trao đổi nhé!
Comment
-
Chao ban !
Đây là đoạn code mình đã thử trên vb :
Private form_load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End sub
Private Sub SEND_Click() ' truyền ký tự A xuống PLC
MSComm1.Output = Chr(65)
End Sub
Private Sub THOAT_Click()
MSComm1.portOpen = Flase
end
End Sub
Chương trìn nhận trên PLC :
PROGRAM COMMENTS
Chuong trinh Ket noi PLC va PC
PC se gui mot ky tu la " V " xuong PLC. Khi PLC nhan duoc ky tu "V" thi ngo ra Q0.0 ON.
PC se gui mot ky tu la " A" xuong PLC. Khi PLC nhan duoc ky tu "A thi ngo ra Q0.0 OFF
MAIN COMMENTS
Network1
LD SM0.1
CALL SBR_0
SUBROUTINE COMMENTS
network1
LD SM0.0
MOVB 16#09, SMB30
ATCH INT_0, 8
ENI
INTERRUPT ROUTINE COMMENTS
Network1
LDB= SMB2, 16#56
S Q0.0, 1
Network2
LDB= SMB2, 16#41
R Q0.0, 1
Chuc ban thanh cong.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về bơm màng bldcbởi nhathung1101Thì đây là 4r điên nặng điện mà, nên họ show phần điện thôi. Phần "cốt lõi" có cái tay biên chắc sang Văn Môn rồi....
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:54 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi nhathung1101Điện DC đương nhiên là khác với AC rồi. Chỉ cần biết mặt chữ là thấy khác như gà trống với gà mái mà.
Còn về bản chất, AC là dòng điện hoạt động theo tần số. Tần số càng cao thì dây dẫn càng mỏng, nhẹ, vì hiệu ứng...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:46 -
-
Trả lời cho Công thức điện tửbởi nhathung1101Ăn ít => Nói nhiều.
Nói nhiều => Làm ít.
Làm ít => Vợ mắng.
Vợ mắng => Cáu nhiều.
Cáu nhiều => Ngủ ít.
Ngủ ít => Râu nhiều.
Râu nhiều =>...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 18:39 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi mèomướpDạ vài chục mét thì chú tính như vậy được ạ. Chứ chuẩn thì phải tính cả điện trở của toàn bộ chiều dài dây dẫn nhân với dòng điện xem sụt áp có trong khoảng chấp nhận đc hông ạ. Trong mạch điện tử khoảng cách ngắn và mạch...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:49 -
-
bởi vietroadTheo mình biết thì chọn dây dẫn dựa vào dòng tải. Thường thì tiết diện 1mm2 cho dòng 6A. Nhưng trong các mạch điện tử, như mạch nguồn tổ ong chẳng hạn, dòng đến vài chục Ampe mà đường mạch mỏng dính. Phải chăng điện DC nó khác với...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:19 -
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
29-11-2024, 08:19 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
28-11-2024, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2024, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
27-11-2024, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
27-11-2024, 11:37 -
Comment