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
-
[/QUOTE]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
-
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![/QUOTE]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
-
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: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
-
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![/QUOTE]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 Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -

Comment