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
-
em 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 koNguyê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
-
Anh nói đúng nhưng bọn này phải mất tiền mua mới dùng được. Em đã tìm trên mạng rất nhiều chỉ cần có protocol thôi để mình tự lập cũng không có. Bác nào có PPI protocol cho xin cái, em sẽ viết thành thư viện gửi lên cho anh em dùng.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
-
Ở trong đĩa cài help của S7200 có rất nhiều ví dụ về truyền thông sử dụng freeport bạn nên tìm mà xem.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
-
Toàn bộ phần đầu của bạn nói có thể tham khảo trong Free port held hoặc tip . Nhưng có cái nàyNguyê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.
có thể ko đúng vì khi chuyển đổi giữa hai chế độ free port và PPI sử dụng SMB30 ví dụ:- 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.
Không nhất thiết phải sử dụng ngắt.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
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
Hôm qua, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment