có bác nào làm về vấn đề này chưa chỉ em với, hoặc có tài liệu về vấn đề này cũng được em cảm ơn nhiều
Thông báo
Collapse
No announcement yet.
Giao tiếp S7-200 với PC
Collapse
X
-
Nguyên văn bởi HueDN Xem bài viếtThì bạn cứ tự nhiên giao tiếp qua cáp PPI hoặc MPI đó
Comment
-
PLC và PC
Nếu bạn có 1 PLC S7-200 rồi thì bắt tay mà thử luôn đi chứ. Mua hoặc làm 1 đoạn cáp nối chuẩn RS-232 nối cổng COM với cổng freeport của PLC.
Giao thức chuẩn dùng Modbus hoặc bạn tự định nghĩa 1 giao thức truyền.
Đọc manual của S7-200, có viết về cái này.Càng biết nhiều càng thấy mình biết ít.
Comment
-
Hi! mình có một ít kinh nghiệm như sau trong chế độ truyền tự do điểm - điểm
Phần 1- Truyền khoảng cách cở trên dưới 1200 m ( 1 PLC <-> 1 PC)
phần cứng bao gồm: CPU 22X, PC, cáp chuyển đổi rs232/rs485 ( phần rs485 chiếm độ dài chủ yếu).
Cách 1-: không sử dụng PC access.
phần mềm: ở PC bạn có thể dùng VB( visual basic) hoặc dùng NC …
Tự định nghĩa giao thức. Tuy nhiên bạn cần thực hiện các thủ tục sau ở PLC:
- Định nghĩa và khai báo khung truyền ( byte khởi đầu và độ dài của khung truyền)
- Chọn: tốc độ truyền( 9600bit/s…), byte dữ liệu (8 or 7 bit), bit start, stop, bit parity ..), chế độ truyền free port.
- Chuyển đổi dữ liệu: bạn cần mov dữ liệu vào địa chỉ dữ liệu đã xác định trong khung truyền đã định nghĩa phía trên.Lưu ý tất cả dữ liệu cần truyền ( integer. nhị phân, BCD, real, kí tự..) bạn cần chuyển sang mã ASCII. Tuy nhiên một số phiên bản step micro/Win củ chỉ cung cấp lệnh chuyển đổi có toán hạng là từ ( word) nếu dữ liệu cần truyền của bạn đủ lớn chứa trong từ kép (dW) thì cần phải viết chương trình con để chuyển đổi.
- Tiếp theo là thực hiện việc truyền thông bằng lệnh XMT ( bao gồm địa chỉ đầu của khung truyền và chọn cổng sẽ truyền, ví dụ nếu CPU 226 có 2 port)
- Sử dụng ngắt truyền thông để truyền và nhận dữ liệu
- Truyền dữ liệu: bạn có thể tự đặt 1 chu kì truyền theo vòng quét hoặc theo ngắt thời gian để định nghĩa chu kì truyền. Sau khi kết thúc bạn có thể sử dụng ngắt 2 để xác định việc truyền kết thúc ví dụ
ATCH INT_2 9 //Attach interrupt 2 to the transmit complete event.
ENI //Enable user interrupts
Nếu không cần thiết bạn có thể không sử dụng ngắt này.
- Nhận dữ liệu: Bạn phải bắt buộc sử dụng ngắt truyền thông 0 để nhận dữ liệu. Như vậy giã sử nếu khung truyền của bạn có 10 byte( mỗi kí tự được thể hiện dưới dạng mã ACSII(0-255) =1 byte) như vậy mỗi kí tự nhận được sẽ gây ra 1 ngắt truyền thông nhận dữ liệu. 10 byte tương ứng có 10 lần ngắt. Tuy nhiên do bô đệm truyền thông của S7200 chỉ có 1byte vì vậy trong chương trình xử lí ngắt bạn phải cất ngay byte dữ liệu vừa nhận được, sau đó lại biến đổi mã ASCII này sang số dạng dữ liệu của nguời sử dụng.Nếu bạn không xử lí vấn đề này thì các kí tự sau sẽ chèn lên kí tự trước đó trong bộ đệm. Chú ý các ngắt chỉ có hiệu lực khi bạn khai báo lệnh cho phép ngắt ENI.
- Ở PC bạn thực hiện tương tự ( sử dụng VB/MSCOMM,mình sẻ cấp tài liệu qua mail nếu bạn cần tham khảo)
- Quy tắc hỏi / đáp ở PC và PLC do bạn tự định nghĩa.
- Lưu ý khi đã kích hoạt chế độ ngắt truyền thông ở PLC và PLC ở chế độ RUN bạn không thể dùng chức năng chart status của micro win để giám sát online trạng thái các biến trong của PLC. Bạn cần chuyển PLC về STOP thì micro win mới test được PLC.
Để khai báo các thủ tục trên bạn có thể tham khảo các lệnh trong sách S7/200 của PGS. Phan Xuân Minh..hoặc đọc Help của micro win và cần nắm rỏ các ô nhớ đặc biết ví dụ:
‘SMB30 controls Freeport communication for port 0; SMB130 controls Freeport communication for port 1. You can read and write to SMB30 and SMB130. These bytes configure the respective communication port for Freeport operation and provide selection of either Freeport or system protocol support.’
-
Cách 2-: sử dụng PC access.
phần mềm: ở PC bạn có thể dùng WINCC. Như vậy toàn bộ công việc truyền thông do PC access và PLC tự động thực hiện. Mình có đủ các bộ cài cho PC access và WinCC.
Phần 1- Truyền khoảng cách trên 1200 m ( PLC <-> PC)
phần cứng bao gồm: CPU 22X, PC, .module Modem. … truyền qua mạng điện thoại sẽ bổ sung phần 2.
Comment
-
Su dung Mscomm trong VB
Hi!
Sorry hiện nay không hiểu sao mình không upload các file lên được nên không thể gửi các ví dụ về cách sử dụng MSComm cho bạn được. Dưới đây là cơ chế hoạt động của MSComm và VB.
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.
Comment
-
Tóm lại như sau:
+ Về phần cứng:
Cổng COM của PLC là 485 --> bắt buộc phải có 1 converter 232/485
+ Về phần mềm:
Dòng 200 của Siemens đã build in 1 protocol là PPI (PLC đóng vai trò là SLAVE)--> chỉ cần 1 phần mềm là master để lôi dữ liệu lên, master này có thể viết (chưa thấy ai), hoặc dùng của chính hãng (PC access, MicroComputing,..) hoặc hãng thứ 3 (KEP, Matrikon...rất nhiều)
Nếu ko ưa PPI mà thì tự định nghĩa 1 protocol (tính năng freeport của PLC
)
Comment
-
Bác sensorman có thể gửi các file ví dụ giao tiếp PLC với PC cho tôi theo địa chỉ encoder83@yahoo.com được không. Cảm ơn bác trướcCUNG CẤP PSOC, MẠCH NẠP
CHUYỂN ĐỔI USB <-> RS485 AutoBaud
RS232 <-> RS485 MultiBaud
MẠCH NẠP USBPPI S7-200
Mobile: 0906076116
Email:
Comment
-
Phiền bác Sensorman giúp em 1 bản với: hpecom@gmail.com
Cảm ơn bác nhiều!Một bông hồng cho những ai đang còn mẹ,
Đang còn mẹ để lòng vui sướng hơn ..
Comment
-
Nguyên văn bởi www9van Xem bài viếtTóm lại như sau:
+ Về phần cứng:
Cổng COM của PLC là 485 --> bắt buộc phải có 1 converter 232/485
+ Về phần mềm:
Dòng 200 của Siemens đã build in 1 protocol là PPI (PLC đóng vai trò là SLAVE)--> chỉ cần 1 phần mềm là master để lôi dữ liệu lên, master này có thể viết (chưa thấy ai), hoặc dùng của chính hãng (PC access, MicroComputing,..) hoặc hãng thứ 3 (KEP, Matrikon...rất nhiều)
Nếu ko ưa PPI mà thì tự định nghĩa 1 protocol (tính năng freeport của PLC
)Dùng hàng VN - Giữ lại USD cho đất nước.
Comment
-
Nguyên văn bởi vnn2005 Xem bài viếtem muốn tìm hiểu về nhưng giao thức của s7-200 với pc, và lập trình qua cổng com, bác có thể giúp em được ko
Tôi đã dử dụng thử ví dụ MODBUS slave của nó rồi, dùng với chương trình modbus test trên máy tính thấy ngon lắm.Dùng hàng VN - Giữ lại USD cho đất nước.
Comment
-
có thể dùng chế độ freeport để gửi dữ liệu.
Để truyền thông từng byte thì dùng ngắt 8.
Để truyền thông cả mảng DL thì dùng ngắt 23. Trước đó đã khai báo các byte đầu trong SMB 88, cuối trong SMB 89 và độ dài của bản tin trong SMB 94và lựa chọn điều khiển nhận bản tin sủ dụng SMB 86
lệnh dọc DL từ mạng là RCV
.............
Comment
-
Nguyên văn bởi sensorman Xem bài viếtHi! mình có một ít kinh nghiệm như sau trong chế độ truyền tự do điểm - điểm
Phần 1- Truyền khoảng cách cở trên dưới 1200 m ( 1 PLC <-> 1 PC)
phần cứng bao gồm: CPU 22X, PC, cáp chuyển đổi rs232/rs485 ( phần rs485 chiếm độ dài chủ yếu).
Cách 1-: không sử dụng PC access.
phần mềm: ở PC bạn có thể dùng VB( visual basic) hoặc dùng NC …
Tự định nghĩa giao thức. Tuy nhiên bạn cần thực hiện các thủ tục sau ở PLC:
- Định nghĩa và khai báo khung truyền ( byte khởi đầu và độ dài của khung truyền)
- Chọn: tốc độ truyền( 9600bit/s…), byte dữ liệu (8 or 7 bit), bit start, stop, bit parity ..), chế độ truyền free port.
- Chuyển đổi dữ liệu: bạn cần mov dữ liệu vào địa chỉ dữ liệu đã xác định trong khung truyền đã định nghĩa phía trên.Lưu ý tất cả dữ liệu cần truyền ( integer. nhị phân, BCD, real, kí tự..) bạn cần chuyển sang mã ASCII. Tuy nhiên một số phiên bản step micro/Win củ chỉ cung cấp lệnh chuyển đổi có toán hạng là từ ( word) nếu dữ liệu cần truyền của bạn đủ lớn chứa trong từ kép (dW) thì cần phải viết chương trình con để chuyển đổi.
- Tiếp theo là thực hiện việc truyền thông bằng lệnh XMT ( bao gồm địa chỉ đầu của khung truyền và chọn cổng sẽ truyền, ví dụ nếu CPU 226 có 2 port)
- Sử dụng ngắt truyền thông để truyền và nhận dữ liệu
- Truyền dữ liệu: bạn có thể tự đặt 1 chu kì truyền theo vòng quét hoặc theo ngắt thời gian để định nghĩa chu kì truyền. Sau khi kết thúc bạn có thể sử dụng ngắt 2 để xác định việc truyền kết thúc ví dụ
ATCH INT_2 9 //Attach interrupt 2 to the transmit complete event.
ENI //Enable user interrupts
Nếu không cần thiết bạn có thể không sử dụng ngắt này.
- Nhận dữ liệu: Bạn phải bắt buộc sử dụng ngắt truyền thông 0 để nhận dữ liệu. Như vậy giã sử nếu khung truyền của bạn có 10 byte( mỗi kí tự được thể hiện dưới dạng mã ACSII(0-255) =1 byte) như vậy mỗi kí tự nhận được sẽ gây ra 1 ngắt truyền thông nhận dữ liệu. 10 byte tương ứng có 10 lần ngắt. Tuy nhiên do bô đệm truyền thông của S7200 chỉ có 1byte vì vậy trong chương trình xử lí ngắt bạn phải cất ngay byte dữ liệu vừa nhận được, sau đó lại biến đổi mã ASCII này sang số dạng dữ liệu của nguời sử dụng.Nếu bạn không xử lí vấn đề này thì các kí tự sau sẽ chèn lên kí tự trước đó trong bộ đệm. Chú ý các ngắt chỉ có hiệu lực khi bạn khai báo lệnh cho phép ngắt ENI.
- Ở PC bạn thực hiện tương tự ( sử dụng VB/MSCOMM,mình sẻ cấp tài liệu qua mail nếu bạn cần tham khảo)
- Quy tắc hỏi / đáp ở PC và PLC do bạn tự định nghĩa.
- Lưu ý khi đã kích hoạt chế độ ngắt truyền thông ở PLC và PLC ở chế độ RUN bạn không thể dùng chức năng chart status của micro win để giám sát online trạng thái các biến trong của PLC. Bạn cần chuyển PLC về STOP thì micro win mới test được PLC.
Để khai báo các thủ tục trên bạn có thể tham khảo các lệnh trong sách S7/200 của PGS. Phan Xuân Minh..hoặc đọc Help của micro win và cần nắm rỏ các ô nhớ đặc biết ví dụ:
‘SMB30 controls Freeport communication for port 0; SMB130 controls Freeport communication for port 1. You can read and write to SMB30 and SMB130. These bytes configure the respective communication port for Freeport operation and provide selection of either Freeport or system protocol support.’
-
Cách 2-: sử dụng PC access.
phần mềm: ở PC bạn có thể dùng WINCC. Như vậy toàn bộ công việc truyền thông do PC access và PLC tự động thực hiện. Mình có đủ các bộ cài cho PC access và WinCC.
Phần 1- Truyền khoảng cách trên 1200 m ( PLC <-> PC)
phần cứng bao gồm: CPU 22X, PC, .module Modem. … truyền qua mạng điện thoại sẽ bổ sung phần 2.
- Lưu ý khi đã kích hoạt chế độ ngắt truyền thông ở PLC và PLC ở chế độ RUN bạn không thể dùng chức năng chart status của micro win để giám sát online trạng thái các biến trong của PLC. Bạn cần chuyển PLC về STOP thì micro win mới test được PLC.
//
LD SM0.0
A I0.0
EU //Nếu có I0.0 sườn dương thì
MOVB 9, SMB30 // no parity, 8Bit, 9600, Free port protocol
//
Lúc này MicroWin ko kết nối được với PLC. Hiển nhiên là vậy
//
LD SM0.0
A I0.0
ED //Nếu có I0.0 sườn âm thì
MOVB 9, SMB30 // no parity, 8Bit, 9600, PPI mode
//
Lúc này MicroWin kết nối được với PLC. Vì PLC đã chuyển sang chế độ PPI
Như vậy không cần STOP PLC bằng phần mềm vẫn có thể đang từ free port chuyển sang PPI.
Bạn phải bắt buộc sử dụng ngắt truyền thông 0 để nhận dữ liệu
sử dụng free port lên sử dụng con trỏ để lập trình.
Comment
-
Giao tiếp PLC S7-200 với PC sử dụng Microcomputing
Mình đang cần phải lập trình giao tiếp giữa PLC S7-200 với PC sử dụng phần mềm Microcomputing, viết giao diện bằng VB, có bạn nào đã tìm hiểu về vấn đề này xin chỉ giáo cho mình chút. Cách thức nhúng microcomputing vào vb và tạo cơ sở dữ liệu trong vb, report, in ấn. Mình đang cần gấp, rất mong được mọi người nhiệt tình giúp đỡ!!!
Comment
Bài viết mới nhất
Collapse
-
bởi nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
Hôm qua, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
Hôm qua, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
Hôm qua, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
21-12-2024, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -
Comment