Thông báo

Collapse
No announcement yet.

Giao tiếp S7-200 với PC

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giao tiếp S7-200 với PC

    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

  • #2
    Thì bạn cứ tự nhiên giao tiếp qua cáp PPI hoặc MPI đó

    Comment


    • #3
      Nguyên văn bởi HueDN Xem bài viết
      Thì bạn cứ tự nhiên giao tiếp qua cáp PPI hoặc MPI đó
      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 ko

      Comment


      • #4
        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


        • #5
          cam on bac nhieu, em se co gang, mong cac bac gop y them cho em nhe

          Comment


          • #6
            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


            • #7
              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


              • #8
                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


                • #9
                  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ước
                  CUNG 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


                  • #10
                    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


                    • #11
                      Nguyên văn bởi www9van Xem bài viết
                      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
                      )
                      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.
                      Dùng hàng VN - Giữ lại USD cho đất nước.

                      Comment


                      • #12
                        Nguyên văn bởi vnn2005 Xem bài viết
                        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 ko
                        Ở 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.

                        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


                        • #13
                          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


                          • #14
                            Nguyên văn bởi sensorman Xem bài viết
                            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.
                            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ày
                            - 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.
                            có thể ko đúng vì khi chuyển đổi giữa hai chế độ free port và PPI sử dụng SMB30 ví dụ:

                            //
                            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
                            Không nhất thiết phải sử dụng ngắt.
                            sử dụng free port lên sử dụng con trỏ để lập trình.

                            Comment


                            • #15
                              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

                              Về tác giả

                              Collapse

                              vnn2005 Tìm hiểu thêm về vnn2005

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X