Thông báo

Collapse
No announcement yet.

1 Project Wincc mẫu cho các bạn

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

  • #16
    Thanks ! pác ! em sẽ tiếp tục ngâm cứu thêm !
    |

    Comment


    • #17
      Nguyên văn bởi hac_am2003 Xem bài viết
      Hì, đã gọi là gợi ý thì chỉ có tính chất gợi í thôi. Cái project này mình làm trên quan điểm chia sẻ các thủ thuật nên có tính mở rộng, ai cũng có thể xem cách mình edit nó ntn? Còn khi viết chương trình yêu cầu tính bảo mật, thì ngay cả bạn có quyền Admin đi nữa thì cũng không thể mở cái WinCC Explorer của mình ra được đâu. Điều này có nghĩa là tùy từng kỹ xảo của kỹ sư thiết kế í mà.
      Gợi ý cho bạn trình tự vận hành khi chúng ta đưa project cho khách hàng nhé :
      khởi động PC -> auto start runtime luôn -> thao tác, điều khiển (tất cả các phím tắt bị vô hiệu hóa,vô hiệu hóa task managerment, chạy full screen và dùng hàm SetWindowPos để làm cho cái runtime của mình luôn ở vị trị top - hàm này bạn tra trên google nhé) -> khi ấn nút exit , hiện hộp thoại tương tác , nếu yes thì tự động tắt PC đi thôi.
      Cách này có thể áp dụng cho công nhân vận hành mà không lo mấy ông sửa chương trình lung tung, vì ko thể thoát runtime dc, thoát là tắt máy tính luôn. Còn khi kỹ sư thiết kế hệ thống tới, muốn thoát runtime và mở wincc explorer thì phải có mẹo riêng của từng kỹ sư chứ.
      Hi Pac !
      Việc vô hiệu hóa các phím tắt trong windown , cũng như khi khởi động PC -> auto start runtime luôn , em đã thực hiện được. Nhưng còn thao tác khi ấn nút exit , hiện hộp thoại tương tác , nếu yes thì tự động tắt PC em chưa tìm ra . (Hiện tại em chỉ tìm thấy cách khi ấn Exit xuất hiện hộp thoại tương tác , xác nhận thì Close & Exit winCC) . Anh chỉ giúp em thao tác : ấn nút exit , hiện hộp thoại tương tác , nếu yes thì tự động tắt PC đi
      .
      Cám ơn pác !
      |

      Comment


      • #18
        Nguyên văn bởi Manhho86 Xem bài viết
        Hi Pac !
        Việc vô hiệu hóa các phím tắt trong windown , cũng như khi khởi động PC -> auto start runtime luôn , em đã thực hiện được. Nhưng còn thao tác khi ấn nút exit , hiện hộp thoại tương tác , nếu yes thì tự động tắt PC em chưa tìm ra . (Hiện tại em chỉ tìm thấy cách khi ấn Exit xuất hiện hộp thoại tương tác , xác nhận thì Close & Exit winCC) . Anh chỉ giúp em thao tác : ấn nút exit , hiện hộp thoại tương tác , nếu yes thì tự động tắt PC đi
        .
        Cám ơn pác !
        bạn đã làm được thế thì tốt quá rùi con j nữa. (Hiện tại em chỉ tìm thấy cách khi ấn Exit xuất hiện hộp thoại tương tác , xác nhận thì Close & Exit winCC)
        đó bạn làm được thế là ok, chỉ cần thay câu lệnh trong phần đó = câu lệnh sau :
        DMExitWinCCEx (DM_SDMODE_POWEROFF);

        Comment


        • #19
          Nguyên văn bởi hac_am2003 Xem bài viết
          bạn đã làm được thế thì tốt quá rùi con j nữa. (Hiện tại em chỉ tìm thấy cách khi ấn Exit xuất hiện hộp thoại tương tác , xác nhận thì Close & Exit winCC)
          đó bạn làm được thế là ok, chỉ cần thay câu lệnh trong phần đó = câu lệnh sau :
          DMExitWinCCEx (DM_SDMODE_POWEROFF);
          Cám ơn pác đã chỉ giáo !
          |

          Comment


          • #20
            Nguyên văn bởi hac_am2003 Xem bài viết
            bạn đã làm được thế thì tốt quá rùi con j nữa. (Hiện tại em chỉ tìm thấy cách khi ấn Exit xuất hiện hộp thoại tương tác , xác nhận thì Close & Exit winCC)
            đó bạn làm được thế là ok, chỉ cần thay câu lệnh trong phần đó = câu lệnh sau :
            DMExitWinCCEx (DM_SDMODE_POWEROFF);
            Em có vấn đề cần hỏi pác !
            Thứ nhất câu lệnh DMExitWinCCEx (DM_SDMODE_POWEROFF) là câu lệnh dùng trong ngôn ngữ C. Nhưng để tạo ra hộp thoại tương tác như Project của pác (nút Exit) thì phải dùng VB ( như pác đã viết)
            Vậy thì cho em hỏi là câu lệnh DMExitWinCCEx (DM_SDMODE_POWEROFF) sẽ tương đương với câu lệnh nào trong VB ( Ví dụ như để thoát Runtime thì ta dùng HMIRuntime.Stop , còn muốn thoát Runtime mà tắt ngay PC thì sẽ dùng lệnh j hả anh ? )
            |

            Comment


            • #21
              Nguyên văn bởi Manhho86 Xem bài viết
              Em có vấn đề cần hỏi pác !
              Thứ nhất câu lệnh DMExitWinCCEx (DM_SDMODE_POWEROFF) là câu lệnh dùng trong ngôn ngữ C. Nhưng để tạo ra hộp thoại tương tác như Project của pác (nút Exit) thì phải dùng VB ( như pác đã viết)
              Vậy thì cho em hỏi là câu lệnh DMExitWinCCEx (DM_SDMODE_POWEROFF) sẽ tương đương với câu lệnh nào trong VB ( Ví dụ như để thoát Runtime thì ta dùng HMIRuntime.Stop , còn muốn thoát Runtime mà tắt ngay PC thì sẽ dùng lệnh j hả anh ? )
              hộp thoại tương tác cũng có thể viêt = C hoặc VB.
              Ví dụ thì mình viết VB. Và trong hầu hết các project thì mình kết hợp cả 2 loại VB và C để có tính đa dạng, biến hóa trong ứng dụng mà. Câu lệnh tương ứng trong VB thì mình chưa tìm hiểu. Bạn vẫn có thể shut down PC với câu lệnh C này mà nếu bạn cho Action này xảy ra khi điều kiện ấn Yes xảy ra. Khi ấn Yes thì bạn cho 1 tag = 6. Khi ta =6 thì trigger cho Action shut down PC.

              Comment


              • #22
                Nguyên văn bởi hac_am2003 Xem bài viết
                hộp thoại tương tác cũng có thể viêt = C hoặc VB.
                Ví dụ thì mình viết VB. Và trong hầu hết các project thì mình kết hợp cả 2 loại VB và C để có tính đa dạng, biến hóa trong ứng dụng mà. Câu lệnh tương ứng trong VB thì mình chưa tìm hiểu. Bạn vẫn có thể shut down PC với câu lệnh C này mà nếu bạn cho Action này xảy ra khi điều kiện ấn Yes xảy ra. Khi ấn Yes thì bạn cho 1 tag = 6. Khi ta =6 thì trigger cho Action shut down PC.
                Em có lên mạng Search được đoạn code Shutdown máy tính bằng VB6 , nhưng khi COPY vào thì báo lỗi cú pháp tùm lum ( Cũng tại VB gà quá nên chưa sửa được ) .

                SHUT DOWN AND RESTART IN VB6
                Const EWX_LogOff As Long = 0
                Const EWX_SHUTDOWN As Long = 1
                Const EWX_REBOOT As Long = 2
                Const EWX_FORCE As Long = 4
                Private Declare Function ExitWindows _
                Lib "User32" Alias "ExitWindowsEx" _
                (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

                Private Sub Command1_Click()

                'Shut down windows
                ExitWindows EWX_SHUTDOWN, &HFFFFFFFF


                End Sub

                Private Sub Command2_Click()


                ExitWindows EWX_REBOOT, &HFFFFFFFF


                End Sub


                Chắc đành phải làm theo cách của pác thôi !
                |

                Comment


                • #23
                  Nguyên văn bởi Manhho86 Xem bài viết
                  Em có lên mạng Search được đoạn code Shutdown máy tính bằng VB6 , nhưng khi COPY vào thì báo lỗi cú pháp tùm lum ( Cũng tại VB gà quá nên chưa sửa được ) .

                  SHUT DOWN AND RESTART IN VB6
                  Const EWX_LogOff As Long = 0
                  Const EWX_SHUTDOWN As Long = 1
                  Const EWX_REBOOT As Long = 2
                  Const EWX_FORCE As Long = 4
                  Private Declare Function ExitWindows _
                  Lib "User32" Alias "ExitWindowsEx" _
                  (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

                  Private Sub Command1_Click()

                  'Shut down windows
                  ExitWindows EWX_SHUTDOWN, &HFFFFFFFF


                  End Sub

                  Private Sub Command2_Click()


                  ExitWindows EWX_REBOOT, &HFFFFFFFF


                  End Sub


                  Chắc đành phải làm theo cách của pác thôi !
                  Vì WinCC được viết = C nên mình nghĩ nếu tận dụng được C thì nên tận dụng. Bởi vì Wincc viết khá nhiều hàm/ thủ tục hỗ trợ sẵn rồi, chỉ lấy ra dùng thôi. Nhưng biết cả VB thì càng tốt mà. Mấy câu lệnh trên mình mình chưa thử, nhưng chắc phải tìm hiểu xem nó làm việc thế nào -> bổ sung kiến thức mà.

                  Comment


                  • #24
                    Nguyên văn bởi hac_am2003 Xem bài viết
                    Vì WinCC được viết = C nên mình nghĩ nếu tận dụng được C thì nên tận dụng. Bởi vì Wincc viết khá nhiều hàm/ thủ tục hỗ trợ sẵn rồi, chỉ lấy ra dùng thôi. Nhưng biết cả VB thì càng tốt mà. Mấy câu lệnh trên mình mình chưa thử, nhưng chắc phải tìm hiểu xem nó làm việc thế nào -> bổ sung kiến thức mà.
                    Quả này chắc em phải đầu tư học lại C thôi ! Dạo trước năm thứ 3 có học Lập trình C & C++ nhưng "chảy " quá nên giờ mới khó khăn thế này.
                    |

                    Comment


                    • #25
                      Hi pác !
                      Trong Proj của pác em edit cho button EXIT : Khi nhấn vào thì có hộp thoại tương tác , nhấn YES thì thoát Runtime đồng thời Shutdown PC bằng việc kết hợp VB và C
                      Ở đây em khai báo thêm tag : "Trunggian " kiểu Binary Tag
                      Đoạn Code VB :
                      Function Text_Trigger(Byval Item)
                      If ( HMIRuntime.Tags ("so").Read = 6 ) Then
                      HMIRuntime.Tags ("Trunggian").Write = 1
                      End If
                      End Function


                      Đoạn Code viết bằng C :
                      #define Tag"Trunggian"
                      if (Tag== 1)
                      { DMExitWinCCEx (DM_SDMODE_POWEROFF);}

                      Pác Check hộ em xem sai ở chỗ nào thế ? mà em Runtime không OK !
                      |

                      Comment


                      • #26
                        Nguyên văn bởi Manhho86 Xem bài viết
                        Hi pác !
                        Trong Proj của pác em edit cho button EXIT : Khi nhấn vào thì có hộp thoại tương tác , nhấn YES thì thoát Runtime đồng thời Shutdown PC bằng việc kết hợp VB và C
                        Ở đây em khai báo thêm tag : "Trunggian " kiểu Binary Tag
                        Đoạn Code VB :
                        Function Text_Trigger(Byval Item)
                        If ( HMIRuntime.Tags ("so").Read = 6 ) Then
                        HMIRuntime.Tags ("Trunggian").Write = 1
                        End If
                        End Function


                        Đoạn Code viết bằng C :
                        #define Tag"Trunggian"
                        if (Tag== 1)
                        { DMExitWinCCEx (DM_SDMODE_POWEROFF);}

                        Pác Check hộ em xem sai ở chỗ nào thế ? mà em Runtime không OK !
                        if (Tag== 1)
                        { DMExitWinCCEx (DM_SDMODE_POWEROFF);}

                        bạn chú ý là đoạn code này bạn viết ở đâu và khi nào thì nó được thực hiện. Chú ý là khi tag trunggian = 1 thì bạn làm cho 1 sự kiện nào đó xảy ra rùi nhé đoạn code if (Tag== 1)
                        { DMExitWinCCEx (DM_SDMODE_POWEROFF);} vào cho sự kiện đó thì okmen

                        Comment


                        • #27
                          Hi ! Pác hac_am03

                          Hiện tại em làm chỉ có một Master S7 300 điều khiển một số thiết bị chấp hành dưới sự giám sát & điều khiển của PC Station( WinCC) thông qua mạng Profibus DP

                          Nhưng khi em mở rộng hệ thống , có 2 con S7 300 đều làm Master nhưng vẫn dùng một PC Station ( WinCC) để điều khiển và giám sát.

                          Vậy pác cho em hỏi , lúc này 1 PC Station ( WinCC) có thể giám sát và điều khiển cả 2 con S7 300 không ? Nếu được thì phải cấu hình như thế nào trong HW và NetPro ?
                          |

                          Comment


                          • #28
                            Nguyên văn bởi Manhho86 Xem bài viết
                            Hi ! Pác hac_am03

                            Hiện tại em làm chỉ có một Master S7 300 điều khiển một số thiết bị chấp hành dưới sự giám sát & điều khiển của PC Station( WinCC) thông qua mạng Profibus DP

                            Nhưng khi em mở rộng hệ thống , có 2 con S7 300 đều làm Master nhưng vẫn dùng một PC Station ( WinCC) để điều khiển và giám sát.

                            Vậy pác cho em hỏi , lúc này 1 PC Station ( WinCC) có thể giám sát và điều khiển cả 2 con S7 300 không ? Nếu được thì phải cấu hình như thế nào trong HW và NetPro ?
                            Tất nhiên là được rồi. Nó gọi là multiple master system.
                            1) Cấu hình cho PLC : trường hợp này của bạn phải dùng cấu hình con PLC mở rộng là I-Slave. Tức là PLC 1 không truy cập trực tiếp tới IO của con PLC 2 mà thông qua vùng địa chỉ của PLC2.Đọc help về I-Slave nhé. Mà nè, thực chất hệ thống lúc này có 2 master nhé, không phải mà 1 master -> đọc Help sẽ hiểu
                            2) Cấu hình PLC giao tiếp WinCC : có thể bạn đang dùng cáp MPI -> nếu máy của bạn có 2 cổng giao tiếp với cáp MPI (usb í mà) thì trong WinCC bạn tạo thêm 1 kênh PLC nữa, vẫn khai báo với thằng PLC thứ 2 và giám sát -> Cách này hơi tốn kém
                            Cách tốt nhất là giám sát cả 2 con nhưng thông qua vùng địa chi của 1 con
                            PC <-> PLC1 <-> PLC2 (I-Slave) : trong chương trình của 2 thằng PLC này thì luôn có 1 chương trình con chạy theo chu kỳ nhằm múc địch gán các giá trị muốn giám sát và điều khiển cho nhau qua các vùng địa chỉ.

                            Comment


                            • #29
                              "so" = 6 có nghĩa gì vậy Pác Hac_Am?

                              Comment


                              • #30
                                Nguyên văn bởi hac_am2003 Xem bài viết
                                Tất nhiên là được rồi. Nó gọi là multiple master system.
                                1) Cấu hình cho PLC : trường hợp này của bạn phải dùng cấu hình con PLC mở rộng là I-Slave. Tức là PLC 1 không truy cập trực tiếp tới IO của con PLC 2 mà thông qua vùng địa chỉ của PLC2.Đọc help về I-Slave nhé. Mà nè, thực chất hệ thống lúc này có 2 master nhé, không phải mà 1 master -> đọc Help sẽ hiểu
                                2) Cấu hình PLC giao tiếp WinCC : có thể bạn đang dùng cáp MPI -> nếu máy của bạn có 2 cổng giao tiếp với cáp MPI (usb í mà) thì trong WinCC bạn tạo thêm 1 kênh PLC nữa, vẫn khai báo với thằng PLC thứ 2 và giám sát -> Cách này hơi tốn kém
                                Cách tốt nhất là giám sát cả 2 con nhưng thông qua vùng địa chi của 1 con
                                PC <-> PLC1 <-> PLC2 (I-Slave) : trong chương trình của 2 thằng PLC này thì luôn có 1 chương trình con chạy theo chu kỳ nhằm múc địch gán các giá trị muốn giám sát và điều khiển cho nhau qua các vùng địa chỉ.
                                Nghe pác nói hơi khó hiểu ! Để em tiếp tục tìm hiểu thêm đã , có j không rõ em sẽ hỏi pác sau. Mà trong Project của em dùng mạng Profibus DP pác àh !
                                |

                                Comment

                                Về tác giả

                                Collapse

                                hac_am2003 Crazy Chicken Tìm hiểu thêm về hac_am2003

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

                                Collapse

                                Đang tải...
                                X