1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng

72 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Tác giả Phạm Tấn Phát
Người hướng dẫn TS. Trương Đình Châu
Trường học Trường Đại học Bách Khoa, ĐHQG -HCM
Chuyên ngành Kỹ Thuật Điều Khiển Và Tự Động Hóa
Thể loại Luận văn thạc sĩ
Năm xuất bản 2019
Thành phố TP. HCM
Định dạng
Số trang 72
Dung lượng 8,88 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI (11)
    • 1.1. Tổng quan đề tài (11)
      • 1.1.1 Tổng quan hệ thống (11)
      • 1.1.2 Khái quát các giải pháp dự phòng trong hệ thống điều khiển (12)
    • 1.2. Mục tiêu đề tài (14)
    • 1.3. Tổng quan phương pháp xây dựng thư viện dự phòng bằng phần mềm (15)
  • CHƯƠNG 2. TỔ CHỨC VÀ XÂY DỰNG THUẬT TOÁN DỰ PHÒNG (18)
    • 2.1 Các thành phần liên quan (18)
      • 2.1.1. Bộ điều khiển S7-1200 (18)
      • 2.1.2. S7 Communication protocol (18)
    • 2.2 Xây dựng giải thuật dự phòng ở cấp điều khiển (19)
      • 2.2.1 Hệ thống phần cứng có cấu trúc như sau (19)
      • 2.2.2 Cấu trúc phần mềm (21)
    • 2.3 Kiểm tra trạng thái hoạt động của PLC Primary (24)
    • 2.4 Đồng bộ dữ liệu giữa Primary và Standby PLC (34)
      • 2.4.1 Dãy thuật update dữ liệu (34)
      • 2.4.2 Đồng bộ Timer (36)
      • 2.4.3 Đồng bộ Counter (38)
      • 2.4.4 Đồng bộ dữ liệu (40)
    • 2.5 Cấu hình HMI (46)
  • CHƯƠNG 3. ÁP DỤNG THƯ VIỆN REDUNDACY VÀO THIẾT KẾ DỰ ÁN (52)
    • 3.1 Cấu trúc chương trình của Master và Standby CPU (52)
    • 3.2 Mô hình kiểm tra thực tế (52)
    • 3.3 Các bước cấu hình đồng bộ dữ liệu trên PLC (52)
    • 3.4 Cấu hình HMI (62)
  • CHƯƠNG 4. PHÂN TÍCH KẾT QUẢ ĐẠT ĐƯỢC TỪ ĐỀ TÀI (67)
    • 4.1 Kết quả đạt được (67)
    • 4.2 Hướng phát triển đề tài (69)
  • TÀI LIỆU THAM KHẢO (71)

Nội dung

Vì vậy, nghiên cứu xây dựng giải thuật thu thập dữ liệu và điều khiển dự phòng hệ thống là rất cần thiết nhằm đem lại một hệ thống điều khiển hoàn chỉnh, hoạt động ổn định, giảm thiểu th

TỔNG QUAN VỀ ĐỀ TÀI

Tổng quan đề tài

Hiện nay, các hệ thống tự động hóa trong công nghiệp phát triển và được ứng dụng rộng rãi trong các hoạt động sản xuất, quản lý trên toàn thế giới Các hệ thống điều khiển với các tính năng nổi bật giám sát và thu thập dữ liệu (SCADA) đang được áp dụng trong các nhà máy, xí nghiệp trên các dây chuyền công nghệ hiện đại, trên các dây chuyền sản xuất đa dạng, linh hoạt, đem lại hiệu quả kinh tế cao Nói chung, các hệ thống SCADA có độ tin cậy cao nhưng yêu cầu về chất lượng, hoạt động của hệ thống phải ổn định Do vậy, khi thiết kế cần chú ý đến đặc điểm kỹ thuật Redundancy (Dự phòng) khi hệ thống bị hư hỏng

Thuật ngữ Redundancy chỉ hai thiết bị (PLC, computer, ) được nối mạng với nhau, cả hai có nhiệm vụ điều khiển toàn bộ hoạt động của hệ thống

Trong đó một thiết bị sẽ ở chế độ chờ Standby Khi PLC Primary đang hoạt động bị hỏng, PLC Standby này sẽ chuyển từ chế độ Standby sang Active và thay thế cho PLC hỏng tiếp tục hoạt động điều khiển hệ thống Khi đó hoạt động của hệ thống không bị gián đoạn

Hầu hết các máy tính, các bộ điều khiển được thiết kế đáng tin cậy nhưng hư hỏng vẫn xảy ra, đặc biệt khi chúng được sử dụng trong môi trường khắc nghiệt Khi sự cố xảy ra làm gián đoạn hoạt động sản xuất, thời gian chờ sửa chữa lâu dẫn đến chi phí cao, có khi ảnh hưởng đến hoạt động xã hội, thiệt hại lớn về kinh tế, vật chất vì vậy tính năng redundancy cần thiết phải được tích hợp vào hệ thống để loại trừ sự cố thiết bị hư hỏng

Giải pháp dự phòng trong công nghiệp được thiết kế đối với những hệ thống có yêu cầu về tính ổn định, độ tin cậy để đảm bảo hệ thống vẫn hoạt động liên tục trong trường hợp bộ điều khiển bị lỗi Giải pháp này gần như đã trở

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát thành một điều tất yếu đối với các hệ thống tự động trong các nhà máy sản xuất

1.1.2 Khái quát các giải pháp dự phòng trong hệ thống điều khiển Tùy theo chất lượng và thời gian đáp ứng của hệ thống dự phòng có thể chia hệ thống thành 03 cấp độ với tính chất khác nhau như sau:

- Dự phòng lạnh Định nghĩa: Hệ thống dự phòng mà thời gian đáp ứng được quan tâm tối thiểu và có thể cần sự can thiệp của người vận hành

Cơ chế: Thiết kế hoặc chế tạo sẵn một mô đun (tạm gọi là phụ tùng thay thế) hay một hệ thống tương tự với hệ thống đang vận hành Nếu có sự cố hoặc cần sửa chữa, bảo trì thì người vận hành kỹ thuật lập tức thay thế cái mới, do đó không tốn nhiều thời gian phải chờ đợi

Hình 1.1 Công đoạn vận chuyển sản phẩm Ưu/khuyết điểm: Phương án dự phòng này chỉ áp dụng đối với những hệ thống mà khi có sự cố xảy ra không ảnh hưởng nhiều đến tính nguy hiểm, tính an toàn, sản phẩm không bị hư hỏng khi phải chờ một thời gian để bảo trì và thay thế

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

- Dự phòng ấm Định nghĩa: Dự phòng ấm được sử dụng khi thời gian chờ là quan trọng nhưng phải mất một thời gian tạm thời thì vẫn còn chấp nhận được

Cơ chế: Hệ thống dự phòng ấm thường có hai bộ vi xử lý kết nối trong một cấu hình chính và dự phòng Bộ xử lý chính của hệ thống điều khiển các tín hiệu ngõ vào và ngõ ra, trong khi bộ xử lý phụ được cấp nguồn và chờ cho bộ xử lý chính không điều khiển quá trình Khi xảy ra sự cố, bộ xử lý phụ đảm nhận điều khiển các tín hiệu ngõ vào hoặc ngõ ra và trở thành bộ xử lý chính, cho phép bộ xử lý chính thành bộ xử lý thứ cấp và có thể được bảo trì mà không mất quyền kiểm soát quá trình

Hình 1.2 Trạm bơm công nghiệp - Dự phòng nóng Định nghĩa: Dự phòng nóng được dùng khi quá trình vận hành không được dừng dưới bất kỳ trường hợp nào Có những ứng dụng có thể không yêu cầu dự phòng nóng nhưng để có tính liên tục cao thì dự phòng nóng là rất cần thiết

Cơ chế: Như đã nêu ở trên, việc bố trí hệ thống dự phòng nóng thì hầu như giống với hệ thống dự phòng ấm Tuy nhiên, hệ thống dự phòng nóng cung

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát cấp chuyển đổi liên tục của các tín hiệu I/O trong suốt quá trình chuyển đổi từ bộ xử lý chính sang phụ

Hình 1.3 Điều khiển các van lưu lượng Ưu/khuyết điểm: Dự phòng nóng được áp dụng đối với những hệ thống cần phản ứng nhanh đối với các sự cố Tuy nhiên, mức độ đầu tư ban đầu sẽ tốn chi phí nhiều hơn Sử dụng phương án dự phòng này cho những hệ thống cần sự ổn định, xác suất sự cố xảy ra được giảm đến mức thấp nhất, đem lại sự an toàn và đảm bảo liên tục cho người sử dụng.

Mục tiêu đề tài

Định hướng giải quyết vấn đề của đề tài như sau:

 Nghiên cứu tổng quát và xây dựng giải pháp các cơ chế và cấu trúc redundancy trong hệ thống điều khiển

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Thiết lập cấu hình Hot/Standby cho hệ thống điều khiển

 Xây dựng giải pháp Redundancy cho cấp điều khiển

 Đồng bộ Datablock trong đồng bộ dữ liệu cấp điều khiển

 Kết nối Scada với hệ thống điều khiển dự phòng.

Tổng quan phương pháp xây dựng thư viện dự phòng bằng phần mềm

Tổng quan về các phương pháp thiết kế hệ thống: hướng cấu trúc và hướng đối tượng

Phương pháp Thiết kế theo hướng cấu trúc Thiết kế theo hướng đối tượng

Cách tiếp cận - Phương pháp lập trình hướng cấu trúc thiết kế theo hướng phân chia chương trình thành nhiều chương trình con hướng tới thực hiện một công việc xác định (phân rã chương trình theo các chức năng cần đáp ứng và dữ liệu cho các chức năng đó)

- Cách thực hiện theo hướng từ cao đến thấp Phương pháp này tiến hành phân tách các vấn đề

- Phương pháp lập trình theo hướng đối tượng thiết kế theo hướng phản ánh chân thực từng vấn đề trong hệ thống theo các yêu cầu thực tế Với cách tiếp cận này, một hệ thống được phân chia thành các phần nhỏ gọi là các đối tượng Mỗi đối tượng bao gồm đầy đủ cả dữ liệu và chức năng liên quan đến đối tượng đó Các đối tượng trong hệ thống độc lập với nhau và phần mềm được xây dựng bằng cách kết hợp các đối tượng đó lại thông qua các mối liên hệ và tương quan giữa chúng

- Phương pháp này được tiến hành từ thấp lên cao, bắt đầu từ những thuộc tính cụ thể của từng

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát từ lớn thành những vấn đề nhỏ hơn cho đến khi giải quyết được vấn đề đối tượng, sau đó tiến hành trừu tượng hóa thành các lớp của đối tượng Ưu điểm - Tư duy phân tích, thiết kế rõ ràng

- Chương trình rõ ràng, dễ hiểu

- Phân tích được đầy đủ các chức năng của hệ thống

- Dễ dàng, thuận lợi trong việc quản lý dữ liệu

- Gần gũi với thực tế

- Có tính kế thừa và thuận lợi trong nâng cấp hệ thống

- Độ tin cậy và bảo mật cao

- Xây dựng được những hệ thống phức tạp

Nhược điểm - Không hỗ trợ và không có tính kế thừa Các phương trình, giải thuật hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể, do đó không thể dùng lại các module nào của phần mềm này cho phần mềm khác với các yêu cầu kỹ thuật khác

- Không phù hợp cho phát triển các phần mềm lớn

- Khó khăn trong việc quản lý mối quan hệ giữa các module và dễ gây ra lỗi trong phân tích cũng như trong kiểm tra và bảo trì hệ thống

- Phương pháp này khá phức tạp, khó theo dõi và quản lý dữ liệu ở đầu vào

Lĩnh vực áp - Phương pháp này thường phù - Phương pháp này thường được

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát dụng hợp với các bài toán nhỏ, có luồng dữ liệu rõ ràng Người lập trình cần có tư duy phân tích và quản lý được các dữ liệu truy cập của hệ thống áp dụng cho các bài toán lớn, phức tạp, hoặc có nhiều luồn dữ liệu khác nhau mà phương pháp hướng cấu trúc không quản lý được Khi đó phương pháp hướng đối tượng được sử dụng

Trên thực tế đề tài điều khiển dự phòng bằng phần mềm không phải là đề tài mới Trước đó đã có một số đề tài nghiên cứu về giải pháp điều khiền dự phòng bằng phần mềm Tuy nhiên qua khảo sát có thể thấy phần lớn các đề tài đều mới tập trung vào nguyên lý dự phòng và sử dụng phương pháp hướng cấu trúc trong thực hiện các ứng dụng kiểm chứng dãy thuật dự phòng

Qua phân tích ở trên ta thấy phướng pháp thiết kế theo hướng cấu trúc rất khó để ứng dụng đề tài vào thực tế vì nó yêu cầu người kỹ sư thiết kế cũng phải nắm vững về nguyên lý, dãy thuật của hệ thống điều khiển dự phòng Cũng như khó phát triển ứng dụng lớn Từ đó luận văn đi sâu vào việc xây dựng ứng dụng, thiết kế theo hướng đối tượng, với mục đích đơn giản hóa quá trình thiết kế, đưa đề tài nghiên cứu vào thực tiễn quá thiết kế hệ thống một cách dễ dàng

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

TỔ CHỨC VÀ XÂY DỰNG THUẬT TOÁN DỰ PHÒNG

Các thành phần liên quan

Là một giải pháp mới của SIEMENS cho các nhiệm vụ tự động hóa đơn giản nhưng chính xác cao SIMATIC S7-1200 PLC được thiết kế dạng module nhỏ gọn, linh hoạt, một sự đầu tư an toàn mạnh mẽ phù hợp cho một loạt các ứng dụng PLC S7-1200 có một giao diện truyền thông đáp ứng tiêu chuẩn cao nhất của truyền thông công nghiệp và đầy đủ các tính năng công nghệ mạnh mẽ được tích hợp sẵn làm cho nó trở thành một giải pháp tự động hóa hoàn chỉnh và toàn diện Ứng dụng: Sử dụng trong công nghiệp và dân dụng như hệ thống băng tải, hệ thống đèn chiếu sáng, điều khiển bơm cao áp, máy đóng gói, máy in, máy dệt, máy trộn, …

2.1.2 S7 Communication protocol Cho phép trao đổi dữ liệu giữa các PLC của dòng S7 1200 thông qua 2 hàm truyền thông chính là PUT và GET S7 communication protocol là giao thức truyền thông được sử dụng trong đề tài, đây là giao thức được phát triển bởi Siemens, dùng để giao tiếp giữa các PLC S7 1200 Điều quan trọng nhất là giao thức này truyền thông trên nền Ethernet nên bản chất cấu trúc của nó là

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Client - Server Vì cấu trúc này mà chúng ta dễ dàng thực hiện việc trao đổi dữ liệu giữa các phần tử với nhau Với cấu trúc này, Primary PLC cũng như Standby PLC có thể vừa là Client, vừa là Server Do đó Primary PLC có thể yêu cầu đọc hoặc ghi dữ liệu từ Standby PLC cũng như Standby PLC có thể yêu cầu đọc hoặc ghi dữ liệu từ Primary PLC Chính vì lý do này mà giúp người lập trình rất thuận tiện trong việc lựa chọn giải pháp đồng bộ dữ liệu giữa Primary PLC và Standby PLC

Hình 2.2 Cấu trúc Client – Server khi sử dụng PUT/GET

Xây dựng giải thuật dự phòng ở cấp điều khiển

Hai PLC S7-1200 đóng vai trò là thiết bị điều khiển trong đó một Primary PLC và một PLC là Standby PLC PLC S7-1200 còn lại đóng vai trò là remote I/O Khi hệ thống làm việc bình thường Cả Primary PLC và Standby PLC sẽ thực hiện đọc tín hiệu cảm biến qua remote I/O Primary PLC sẽ thực hiện chương trình ứng dụng, đồng bộ dữ liệu theo chu kỳ cho Standby PLC và xuất tín hiệu điều khiển cho remote I/O Standby PLC trong chế độ làm việc bình thường sau khi đọc tín hiệu cảm biến từ remote I/O sẽ kiểm tra trạng thái làm

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát việc của PLC Primary, đồng thời nhận tín hiệu dữ liệu đồng bộ từ PLC Primary

Khi PLC Primary bị sự cố thì PLC Stanby sẽ đảm nhận vai trò điều khiển của PLC Primary, sau khi đã khắc phục xong sự cố thì PLC Primary sẽ đảm nhận trở lại vai trò điều khiển và PLC Standby sẽ tiếp tục đóng vai trò dự phòng

Hình 2.3 Cấu trúc phần cứng hệ thống redundancy

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

2.2.2 Cấu trúc phần mềm SwitchOver là thuật ngữ chỉ sự chuyển đổi vai trò điều khiển hoạt động trong hệ thống khi có sự cố xảy ra của mạng truyền thông, kết nối, thiết bị không hoạt động, bị hư hỏng Điều kiện SwitchOver: Phát hiện khi có sự cố xảy ra đối với Primary controller, Standby controller sẽ nhảy vào thay thế Vấn đề đặt ra:

 Kiểm tra khi nào thì xảy ra điều kiện SwitchOver?

 Vấn đề đồng bộ hóa dữ liệu giữa 2 PLC Primary và Secondary Sau mỗi chu kỳ quét của PLC Primary thì PLC Primary sẽ thực hiện việc chuyển dữ liệu cho PLC Standby

Vai trò của Primary PLC:

 Primary PLC mang đầy đủ các chức năng như khi nó đứng một mình trong hệ thống Standalone (single controller) Điều này có nghĩa là khi Primary PLC hoạt động bình thường nó sẽ thực hiện điều khiển các thiết bị cấp trường, các module Ethernet…vv

 Ngoài ra Primary PLC còn có nhiệm vụ liên tục kết nối tới Standby PLC để truyền dữ liệu đảm bảo cho Standby PLC luôn cập nhật đầy đủ và đảm bảo tính dự phòng trong trường hợp Primary PLC bị lỗi và không thể điều khiển được thiết bị

 Khi Primary PLC khắc phục sự cố trở lại điều khiển nó sẽ trở lại điều khiển hệ thống

Vai trò của Standby PLC:

 Standby PLC sẽ liên tục cập nhật dữ liệu từ cảm biến qua remote I/O, trạng thái và dữ liệu đồng bộ từ Primary PLC và sẵn sàng trở thành Primary PLC nếu có sự cố xảy ra đối với Primary PLC Lúc này Standby PLC trở thành Primary PLC

 Khi Primary PLC được khắc phục xong, nó sẽ trở lại chế độ Standby

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.4 Hoạt động của hệ thống khi Primary PLC bình thường

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.5 Hoạt động của hệ thống khi Primary PLC bị lỗi

Hình 2.6 Hoạt động của hệ thống khi Primary PLC phục hồi Để giải quyết bài toán dự phòng PLC bằng phần mềm thì cần phải xây dựng cấu trúc chương trình điều khiển của Primary PLC cũng như Standby PLC

Trong luận văn này, sử dụng PLC S7-1200 của hãng Siemens và phần mềm lập

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát trình TIA Portal V14 nên cấu trúc chương trình cho hai PLC đều được xây dựng trên phần mềm này Nguyên lý dự phòng bằng phần mềm như sau:

Hình 2.7 Nguyên lý dự phòng bằng phần mềm

Kiểm tra trạng thái hoạt động của PLC Primary

 Kiểm tra điều kiện Switch over Trong hệ thống dự phòng bằng phần mềm, việc phát hiện được điều kiện switch over là rất quan trọng Mỗi khi Primary PLC gặp sự cố thì Primary không thể thông báo cho Standby PLC biết rằng Primary PLC bị lỗi và không thể điều khiển các thiết bị cấp trường Do đó Standby PLC phải thường xuyên cập nhật trạng thái của Primary PLC thông qua kiểm tra truyền thông và kỹ thuật nhịp tim (heatbeat) Trong đó kỹ thuật Heatbeat để biết được CPU của Primary có bị

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát lỗi hay không còn kiểm tra truyền thông để xác định khả năng truyền thông của Primary PLC

Hình 2.8 Cấu trúc hệ thống PLC redundancy

CPU Primary PLC bị lỗi do CPU bị hỏng hoặc CPU tạm thời bị treo nhưng module truyền thông của Primary PLC vẫn hoạt động tốt

Trong trường hợp này cách tốt nhất là dùng kỹ thuật Heartbeat Tức là khi CPU của Primary PLC hoạt động thì ta cho một biến của Primary PLC thay đổi theo chu kỳ tăng lên 10ms, ví dụ một Heartbit (int) cứ tăng lên 1 sau chu kỳ 10ms Chương trình ở PLC Secondary sẽ đọc giá trị biến đếm này từ PLC Primary theo chu kỳ 10ms Sau 200ms, giá trị biến đếm này ở PLC Primary không thay đổi nghĩa là PLC Primary đang bị đứng hoặc đang bị tạm dừng (Stop mode) Lúc bấy giờ PLC Secondary sẽ đảm nhận vai trò điều khiển thay cho PLC Primary Khi cần dừng PLC Primary để thực hiện bảo dưỡng, nâng cấp chương trình… hoặc thay thế một Module nào đó, ta có thể đưa PLC Primary về chế độ Stop Mode, lúc này hệ thống vẫn hoạt động bình thường, do đã được điều khiển bởi PLC Secondary

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát Đây là giải thuật đơn giản nhưng hiệu quả để xác định CPU của Primary có hoạt động tốt hay không Ngoài ra có một trường hợp nữa không nằm trong giả thuyết này ví dụ như trường hợp muốn tạm thời dừng chương trình của Primary PLC để sửa chữa,… Khi đó chuyển Primary PLC sang chế độ Stop mode do đó khi standby PLC thấy được Primary không điều khiển được hệ thống nên stanby PLC sẽ đảm nhận quyền điều khiển cho đến khi nâng cấp chương trình cho Primary xong thì Primary PLC được chuyển sang Run mode thì lúc đó Primary sẽ thông báo cho standby PLC biết rằng Primary PLC đã trở lại điều khiển hệ thống và do đó Standby PLC chuyển về lại chế độ Standby mode Nhờ vậy mà thời gian chỉnh sửa, nâng cấp cho Primary PLC thì hệ thống vẫn tạm thời hoạt động liên tục, qua đó nâng cao sản xuất

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.10 CPU Primary PLC bị lỗi hoặc không hoạt động

 Giả thuyết 2 CPU của Primary không bị lỗi nhưng do module truyền thông của Pimary PLC bị lỗi hoặc Ethernet cable kết nối từ node 1 tới ETY module của Primary PLC bị lỗi và do đó Primary không thể điều khiển được hệ thống Đây cũng là điều kiện cần để điệu kiện Switch over xảy ra Điều kiện đủ để Standby PLC đảm nhận quyền điều khiển hệ thống Standby PLC phải truyền thông được với tất cả device PLC Khi thỏa mãn hai điều kiện trên Standby PLC sẽ thực hiện Update trong một chu kỳ của PLC và thục hiện điều khiển hệ thống

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Trường hợp 1: Module truyền thông của Primary PLC bị lỗi

Hình 2.11 Module truyền thông của Primary PLC bị lỗi

Trường hợp 2: Ethernet cabble nối giữa node1 đến module ETY Thông thường hiện tượng này xảy ra do tiếp xúc giữa đầu cable RJ45 và Hub tại node 1 hoặc tại giữa đầu RJ45 và đầu Ethernet của PLC không tốt

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.12 Ethernet cable của Primary PLC bị lỗi

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Kết hợp các giả thuyết trên, ta có giải thuật Switch over như sau:

Redunnancy ST5 PLC become Primary

PLC Note: when Primary PLC is erro, Standby PLC will become Primary PLC

Hình 2.13 Giải thuật Heart beat

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.14 Giải thuật Switch over cho CPU Standby

Chương trình Switch over cho CPU Standby

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Chương trình Switch over cho CPU Master

Hình 2.15 Giải thuật Switch over cho CPU Master

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Đồng bộ dữ liệu giữa Primary và Standby PLC

2.4.1 Dãy thuật update dữ liệu Đối với giải pháp PLC Redundancy bằng phần cứng, việc đồng bộ dữ liệu thực hiện bằng một module riêng biệt Đối với PLC không hỗ trợ giải pháp bằng phần cứng cũng như không hỗ trợ module đồng bộ dữ liệu thì việc đồng bộ dữ liệu được thực hiện bằng cách viết các hàm trao đổi dữ liệu trong chương trình

Tùy mỗi loại PLC, tùy mỗi giao thức truyền thông thì có mỗi hàm truyền thông riêng biệt Hình bên dưới thể hiện cấu trúc chương trình trong Primary và Standby PLC

Hình 2.16 Cấu trúc trong đồng bộ dữ liệu

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Từ hình vẽ ta thấy, khi Primary PLC đang hoạt động tốt và điều khiển hệ thống, Primary PLC sẽ truyền tất cả các data cần thiết như: %M, %MW, giá trị timer, counter, sang Standby PLC ở cuối chu kỳ master task Ngược lại khi Primary bị lỗi, thì quá trình truyền ngược lại cũng được thực hiện từ Standby sang Primary Việc truyền thông thực hiện thông qua các hàm có trong chương trình TIA Portal và Function Block Diagram xây dựng

Dãy thuật Update dữ liệu khi Standby PLC chuyển trạng thái

Hình 2.17 Dãy thuật Update dữ liệu Chương trình cập nhật dữ liệu

Status Funtion ST1 No Update ST2 Ready Update ST3 Update

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

2.4.2 Đồng bộ Timer Timer hoạt động dựa trên phần cứng, giá trị ET (External Timer) chỉ đọc mà không thể ghi được

Giả sử ta có Primary PLC đang chạy chương trình ứng dụng và có một Timer có giá trị như sau: PT (20s), ET (8s300ms) Vấn đề đặt ra là nếu Primary PLC bị lỗ thì sau khi nhận quyền điều khiển, một timer tương ứng trong chương trình ứng dụng của Standby PLC phải tiếp tục chương trình tại thời điểm xảy ra lỗi ở Primary, có nghĩa là giá trị ET của timer này cũng bắt đầu từ 8s300ms và tiếp tục đếm lên nếu điều kiện ngõ vào IN còn cho phép Đây là yêu cầu bắt buộc nếu một hệ thống được gọi là redundancy Tuy nhiên thục tế thì khó để đáp ứng một cách hoàn toàn chính xác vấn đề trên Do đó tiêu chuẩn đặt ra ở đây là sai số cho phép khoảng 100 đến 200ms Đa số các hệ thống trong công nghiệp không yêu cầu khắc khe về thời gian thì sai số này hoàn toàn có thể chấp nhận được Đối với PT (Preset Value) thì hoàn toàn có thể update giá trị PT của timer bằng cách gán PT của Standby PLC bằng giá trị PT của Primary PLC Tuy nhiên đối với giá trị ET thì PLC không cho phép điều này

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Giải thuật đồng bộ Timer ON delay: TON

Hình 2.19 Giải thuật đồng bộ Timer ON

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hàm Timer TON chỉ thực hiện dãy thuật tính toán mà không thực hiện đồng bộ dữ liệu Dữ liệu được cập nhật thông qua một Datablock vai trò như một server:

Chương trình thực hiện TON

IF "Hearbeat_DB".RUN THEN IF "Hearbeat_DB".Update THEN RESET_TIMER(#IEC_Timer_0_Instance);

IF NOT #IN THEN #TON.updaET := T#0ms;

#IEC_Timer_0_Instance(IN := #IN, PT := #PT - #TON.updaET, Q => #Q,

#ET := #ET_temp + #TON.updaET;

2.4.3 Đồng bộ Counter Counter có nhiều loại: Counter up (CTU), Counter down (CTD), Counter up down (CTUD) Nhưng về bản chất thì hàm Counter có chung một cấu trúc

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

CU Input Ngõ vào đếm lên

CD Input Ngõ vào đếm xuống

LD Input Cập nhật biến đếm

PV Input Giá trị đặt cho bộ đếm

QU Output Trạng thái bộ đếm lên

QD Output Trạng thái bộ đếm xuống

CV Output Giá trị hiện tại của bộ đếm

Bảng 2.1 Ý nghĩa các thông số Counter Khác với đồng bộ Timer giá trị CV của Counter là giá trị có thể thay đổi trong chương trình, tức là việc đồng bộ Counter chỉ đơn giản là đồng bộ giá trị giá trị tức thời (CV) của Primary Counter với giá trị tức thời (CV) của Standby

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Counter Do đó không cần xây dựng thuật toán đồng bộ Counter mà chỉ cần đồng bộ dữ liệu CV của Counter thông qua hàm đồng bộ Datablock trình bày ở phần sau

Khi không xảy ra điều kiện Switch Over, hàm CU, CD,CUD của hãng sẽ làm việc bình thường Tuy nhiên, khi PLC Primary bị lỗi, Bit Update = 1 giá trị ET của Counter sẽ được cập nhật với giá trị đồng bộ tự Primary gửi sang để đảm bảo các bộ đếm lên trong Application ở PLC Primary khi chuyển sang thực thi ở Secondary PLC được diễn ra chính xác

Như vậy khi muốn đồng bộ counter trong chương trình thì sử dụng chính hàm counter chuẩn nhà sản xuất cung cấp và cung cấp datablock của counter muốn đồng bộ vào ngõ vào của khối đồng bộ datablock Khi đó dữ liệu counter từ Primary PLC sẽ được cập nhật đến Standby PLC

Hình 2.21 Hoạt động của hệ thống redundancy Standard IEC timers và counter của CPU không thể tự đồng bộ Người dùng cần sử dụng Timer/Counter trong thư viện để thực hiện chương trình

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.22 Vùng dữ liệu đồng bộ Timer cho hệ thống Redundancy

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 2.23 Khối Funtion đồng bộ Datablock Chương trình đồng bộ Datablock

#IEC_Timer_0_Instance(IN:=NOT #IEC_Timer_0_Instance_1.Q, PT:=T#5ms);

#IEC_Timer_0_Instance_1(IN:=#IEC_Timer_0_Instance.Q, PT:=T#5ms);

#R_TRIG_Instance(CLK:=#IEC_Timer_0_Instance.Q, Q=>#T10ms);

IF "Hearbeat_DB".RUN THEN //**synal DB stan PLC**//

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát CASE #i OF 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96:

"redunDB".priTimer[#i].ET := #TON_1.ET;

"redunDB".priCU[#i].CV := #CT_1.CV;

"redunDB".priTimer[#i].ET := #TON_2.ET;

"redunDB".priCU[#i].CV := #CT_2.CV;

"redunDB".priTimer[#i].ET := #TON_3.ET;

"redunDB".priCU[#i].CV := #CT_3.CV;

"redunDB".priTimer[#i].ET := #TON_4.ET;

"redunDB".priCU[#i].CV := #CT_4.CV;

"redunDB".priTimer[#i].ET := #TON_5.ET;

"redunDB".priCU[#i].CV := #CT_5.CV;

CASE #N OF 1, 2, 3, 4, 5: // Statement section case 1 #PUT_Instance(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX0.0 byte 100, SD_1 := P#DB100.DBX0.0 byte 100);

#PUT_Instance_4(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX400.0 byte 50, SD_1 := P#DB100.DBX400.0 byte 50);

6 10: // Statement section case 2 to 4 #PUT_Instance_1(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX100.0 byte 100, SD_1 := P#DB100.DBX100.0 byte 100);

#PUT_Instance_5(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX450.0 byte 50, SD_1 := P#DB100.DBX450.0 byte 50);

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát 11 15:

#PUT_Instance_2(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX200.0 byte 100, SD_1 := P#DB100.DBX200.0 byte 100);

#PUT_Instance_6(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX500.0 byte 50, SD_1 := P#DB100.DBX500.0 byte 50);

#PUT_Instance_3(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX300.0 byte 100, SD_1 := P#DB100.DBX300.0 byte 100);

#PUT_Instance_7(REQ := #T10ms, ID := W#16#103,

ADDR_1 := P#DB100.DBX550.0 byte 50, SD_1 := P#DB100.DBX550.0 byte 50);

ELSE // Statement section ELSE END_CASE;

//**update DB for pri PLC**//

IF "Hearbeat_DB".Update THEN FOR #j := #N * 5 - 4 TO #N * 5 DO CASE #j OF

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát #updaCV_5 := "redunDB".stanCU[#j].CV;

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Cấu hình HMI

Đối với HMI điều quan tâm là kết nối giữa HMI với hệ thống dự phòng để đọc thông tin từ CPU bất kể hệ thống đang ở trạng thái nào Chúng ta sử dụng Wincc Comfort/ Advanced để truy cập cả hai CPU và thông tin của chúng

Hình 2.24 Sơ đồ kết nối HMI với hệ thống redundancy

HMI sẽ kiểm tra trạng thái kết nối với 2 CPU master và standby và quyết định kết nối tới PLC nào đang thực hiện chương trình User program Để kiểm tra trạng thái CPU, HMI sẽ tạo một biến “HMI_master_sync” và một biến “HMI_standby_sync” lần lượt kết nối với CPU master và standby Các biến có giá trị luân phiên thay đổi 1 và 2, cứ mỗi phút gửi xuống CPU tương ứng Ứng với giá trị nhận được từ HMI, CPU master và standby sẽ có phản hồi tương ứng với giá trị nhận được từ “HMI_master_sync” và

“HMI_standby_sync” HMI sẽ kiểm tra giá trị phản hồi từ CPU master và standby để biết trạng thái kết nối giữa CPU và HMI

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Lưu đồ dãy thuật kiểm tra trạng thái kết nối HMI với CPU Master và Standby

”Master” mst_sync_stat=true HMI_master_sync=2

HMI_master _sync =2 mst_sync_stat=true HMI_master_sync=1 HMI_master_fb=

"MASTER_SYNC" mst_sync_statse

Hình 2.25 Dãy thuật kiểm tra kết nối HMI với hệ thống redundancy

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Lưu đồ lựa chọn kết nối HMI với PLC đang thực hiện chương trình User program

Lưu đồ dãy thuật Switchover:

Check connect HMI with CPU

Hình 2.26 Dãy thuật Switch Over giữa HMI với hệ thống redundancy

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Chương trình VB Scrip Handle_connection thực hiện kết nối HMI với hệ thống redudancy

Dim HMI_master_sync, HMI_master_fb, mst_sync_stat, mst_actv, connect_mst

Dim HMI_standby_sync, HMI_standby_fb, sby_sync_stat, connect_sby Dim HMI_current_conn

HMI_master_sync = SmartTags("HMI_master_sync_stage") HMI_standby_sync = SmartTags("HMI_standby_sync_stage") HMI_master_fb = SmartTags("active_connection_mst") HMI_standby_fb = SmartTags("active_connection_sby") HMI_current_conn = SmartTags ("HMI_active_connection_id") mst_actv = SmartTags ("master_active")

If HMI_master_sync = 0 Then HMI_master_sync = 1 mst_sync_stat = True ElseIf HMI_master_sync = 1 Then If HMI_master_fb = "MASTER" Then mst_sync_stat = True

HMI_master_sync = 2 ElseIf HMI_master_fb = "MASTER_SYNC" Then mst_sync_stat = False

End If ElseIf HMI_master_sync = 2 Then If HMI_master_fb = "MASTER_SYNC" Then mst_sync_stat = True

HMI_master_sync = 1 ElseIf HMI_master_fb = "MASTER" Then

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát mst_sync_stat = False End If

End If ' STANDBY SYNC CHECK If HMI_standby_sync = 0 Then

HMI_standby_sync = 1 sby_sync_stat = True

ElseIf HMI_standby_sync = 1 Then If HMI_standby_fb = "STANDBY" Then sby_sync_stat = True

ElseIf HMI_standby_fb = "STANDBY_SYNC" Then sby_sync_stat = False

ElseIf HMI_standby_sync = 2 Then If HMI_standby_fb = "STANDBY_SYNC" Then sby_sync_stat = True

ElseIf HMI_standby_fb = "STANDBY" Then sby_sync_stat = False

End If ' CODE FOR SWITCHING CONNECTIONS If mst_sync_stat = True Then connect_mst = True 'CONNECT TO MASTER connect_sby = False

End If If mst_sync_stat = False Then

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

If sby_sync_stat = True Then connect_sby = True connect_mst = False Else connect_mst = True connect_sby = False End If

End If If connect_mst = True Then If HMI_current_conn 11 Then ChangeConnection

"dummyConnection",MASTER_IP,MASTER_SLOT,MASTER_RACK End If

End If If connect_sby = True Then If HMI_current_conn 22 Then ChangeConnection dummyConnection",STANDBY_IP,STANDBY_SLOT,STANDBY_RACK

End If End If 'WRITE TO INTERNAL TAGS:

SmartTags ("HMI_master_sync_stage") = HMI_master_sync SmartTags ("HMI_standby_sync_stage") = HMI_standby_sync SmartTags ("HMI_master_sync") = mst_sync_stat

SmartTags ("HMI_standby_sync") = sby_sync_stat End Sub

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

ÁP DỤNG THƯ VIỆN REDUNDACY VÀO THIẾT KẾ DỰ ÁN

Cấu trúc chương trình của Master và Standby CPU

Không giống cấu trúc chương trình của CPU chuẩn, chương trình Redundancy OB1 không trực tiếp thực hiện chương trình ứng dụng của người sử dụng

Chương trình Redundancy được định nghĩa trong Funtion

“USER_PROGRAM” Tại đây chương trình ứng dụng được thực hiện

Khối này vẫn thực hiện từ OB1 nhưng chỉ thực hiện khi trạng thái Bit RunRedundancy = 1

Khối OB123 Redundancy sẽ thực hiện kiểm tra trạng thái PLC và đồng bộ dữ liệu.

Mô hình kiểm tra thực tế

Hình 3.1 Mô hình kiểm tra hoạt động hệ thống redundancy

Các bước cấu hình đồng bộ dữ liệu trên PLC

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Chọn 3 PLC S7 1200 CPU: đổi tên con thứ nhất là Master, con thứ 2 là Standby, con thứ 3 là Device

Hình 3.2 Chọn thiết bị cho hệ thống redundancy

 Cấu hình địa chỉ IP của Profinet interface_1 cho Master, Standby, Device CPU Trong ví dụ: Master có địa chỉ IP là 192.168.0.1, Standby có địa chỉ IP là 192.168.0.2, Device có địa chỉ IP là 192.168.0.5 Địa chỉ IP có thể chọn khác nhưng phải cùng một mạng con

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.3 Cấu hình địa chỉ IP cho CPU Master

Hình 3.4 Cấu hình địa chỉ IP cho CPU Standby

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.5 Cấu hình địa chỉ IP cho CPU Device

 Trên chương trình của CPU Master tạo một Organization block để cấu hình Redundancy cho chương trình: trong block này sẽ bao gồm các hàm chức năng thực hiện việc kiểm tra trạng thái các CPU được kết nối và thực hiện đồng bộ dữ liệu với CPU còn lại trong hệ thống Redundancy

Hình 3.6 Tạo OB riêng cấu hình redundancy cho hệ thống

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Funtion Heartbit có nhiệm vụ tạo ra xung nhịp khi PLC hoạt động bình thường, đồng thời gửi xung đó đến PLC dự phòng Funtion Heartbit còn có nhiệm vụ kiểm tra trạng thái làm việc của PLC dự phòng và PLC device

Hình 3.7 Các biến chức năng trong khối Heartbit - Các biến ngõ vào, ra khối Hearbeat o TransHeart : cho phép truyền xung hearbeat của CPU master tới CPU standby và CPU device o Stand_Err: trạng thái của CPU Standby o Device_Err: trạng thái của CPU device

 Kéo Funtion Heartbit trong thư viện vào OB123 Redundancy: Cấu hình ngõ vào và ngõ ra như hình dưới

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.8 Cấu hình thông số cho khối Heartbit - Các biến (1), (2), (3) được lấy từ Datablock của khối SwOver

 Hàm Funtion SwOver: Dựa trên trạng thái của PLC dự phòng và PLC device để ra quyết định có thực hiện chương trình User_program, và thông báo trạng thái làm việc cho PLC dự phòng, PLC device hay không

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.9 Cấu hình cho khối SwOver - Ngõ vào, ra khối SwOver: o StatusDevice: trạng thái CPU device lấy từ ngõ ra Funtion Hearbit o StatusRedunPLC: trạng thái CPU Standby lấy từ ngõ ra Funtion Datablock Hearbit o RunRedun: Thực hiện chương trình User_program của người dùng o TransHeart: Cho phép truyền Heartbit sang CPU master và CPU standby

 Funtion Update_DB: Thực hiện cập nhật dữ liệu cho PLC khi nó phát hiện master Primay bị lỗi

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.10 Cấu hình cho khối Update

 Chương trình ứng dụng được soạn thảo trong Funtion User_Program và đặt trong OB1:

Hình 3.11Chương trình User_Program

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Funtion User_Program: được viết như chương trình chuẩn thông thường Trong trường hợp cần đồng bộ Timer, hoặc Counter thì sẽ sử dụng Timer, Counter được đặt trong thư viện hỗ trợ:

Ví dụ: Kiểm tra đồng bộ dữ liệu giữa PLC Master và Standby PLC Tạo một chương trình trong User_Program: Điều khiển luân phiên 4 đèn LED là 4 ngõ ra PLC Sử dụng 4 Timer được hỗ trợ đồng bộ dữ liệu

Chương trình PLC được viết bình thường, chỉ khác là không sử dụng Timer chuẩn của nhà sản xuất mà sử dụng Timer được hỗ trợ Redundancy

Hình 3.12 Gọi Timer từ thư viện Timer được gọi từ thư viện Redundancy sẽ tạo ra một block data Để thời gian timer được đồng bộ thì cần thực hiện các bước sau:

Trong OB123 Redundancy tạo ra một khối RedundancyFB có ngõ vào là DBTimer, DBcounter cần đồng bộ dữ liệu:

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.13 Ngõ vào khối redundancy

 Ngõ vào RedundancyFB là vùng DB TON trong Timer T1:

* Làm tương tự các bước trên cho Stanby PLC

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Cấu hình HMI

 Yêu cầu: Hệ thống scada phải sử dụng Wincc advanced/ Comport

 Tạo một máy trạm/HMI bằng cách kéo thả từ danh mục phần cứng

Trong ví dụ ta chọn 1 PC station Không kết nối với PLC bằng địa chỉ tương đối:

Hình 3.15 Chọn cấu hình Scada cho hệ thống

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Mở thư viện MASTER HMI Redundancy blocks, kéo funtion MST_HMI_sync vào khối OB1 chương trình chính

Hình 3.16 Chương trình đồng bộ với HMI trên PLC Làm tương tự với Standby PLC

 Chọn CPU master và Standby/ compile Nếu không có lỗi gì xảy ra thì lưu lại dự án và dowload chương trình xuống thiết bị

 Cấu hình địa chỉ IP trong PROFINET interface[X1]: 192.168.0.11, có thể chọn một đỉa chỉ khác nhưng phải cùng mạng con với CPU Master và Standby

Hình 3.17 Cấu hình địa chỉ IP cho Máy chủ/HMI

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

 Mở mục Connections của PC và thêm vào 3 connection: o MASTER_CONN 192.168.0.1 o STANDBY_CONN 192.168.0.2 o dummyConnection 192.168.0.99 Địa chỉ dummConnection không phải là địa chỉ tồn tại thực trong mạng, có thể chọn khác dummyConnection có vai trò là một kết nối trung gian chuyển đổi liên kết giữa MASTER_CONN và STANDBY_CONN

Hình 3.18 Tạo connection tới PLC

 Trong project của Scada/HMI, chọn Scheduled tasks và tạo ra task mới có tên check_connection Thiết lập thông số chu kỳ quét 1phút Trong tab Events tạo ra một Funtion như hình bên dưới:

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.19 Cấu hình sự kiện Scheduled tasks

* Đến đây ta đã cấu hình đồng bộ dữ liệu cho hệ thống redundancy trên PLC và HMI

 Để tạo ra một tag trên HMI có chức năng chuyển đổi kết nối tới 2 CPU ta làm như sau:

Trong chương trình User_Program ta có đồng bộ 1 counter giữa 2 PLC Master và Standby Trên Scada/HMI muốn theo dõi giá trị của Counter này ta tạo ra 3 tag mỗi tag kết nối với 1 connection đã tạo ở trên: khi hệ thống làm việc tag liên kết với dummyconnection sẽ chuyển đổi liên kết giữa 2 tag liên kết với MASTER_CONN và STANDBY_CONN để lấy dữ liệu từ PLC nào đang thực hiên chương trình User_program

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

Hình 3.20 Tag trong chương trình Scada/HMI

 Chương trình điều khiển tốc độ động cơ hệ thống redundancy: Ta viết chương trình điều khiển động cơ sử dụng PID và giao tiếp với biến tần bằng truyền thông modbus RS485 như bình thường cho PLC Master, PLC Standby Các dữ liệu đồng bộ giữa 2 PLC và giữa PLC với HMI đã được trình bày ở trên

Hình 3.21 Giao diện chương trình điều khiển tốc độ động cơ

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát

PHÂN TÍCH KẾT QUẢ ĐẠT ĐƯỢC TỪ ĐỀ TÀI

Kết quả đạt được

Xây dựng thư viện Redundancy hướng đối tượng kết quả đạt được như sau:

 Giải quyết được một số vấn đề cơ bản trong hệ thống redundancy đó là bài toán về kiểm tra điều kiện switch over và bài toán đồng bộ dữ liệu

 Phương pháp cấu trúc chương trình, phát triển giải thuật phát hiện điều kiện Switch over đảm bảo hệ thống hoạt động ổn định chuyển mạch nhanh khi có sự cố, đồng bộ dữ liệu dưới dạng các datablock hướng đến xây dựng một hệt thống điều khiển dự phòng bằng phần mềm có thể phát triển mở rộng người dùng có thể sử dụng các hàm trong chương trình để viết ứng dụng một cách dễ dàng mà không cần quan tâm đến giải thuật đồng bộ bên trong nhờ đó làm giảm thời gian lập trình của người thiết kế rất nhiều

Hệ thống hoạt động tương đối ổn định và đạt kết quả tốt tuy nhiên một vấn đề là sự phụ thuộc quá nhiều truyền thông đã làm ảnh hưởng đến độ ổn định, sự chính xác của hệ thống redundancy Như đã trình bày ở các phần trước, theo cấu trúc của hệ thống trong luận văn, module Ethernet vừa thực hiện nhiệm vụ đồng bộ dữ liệu đồng thời cũng làm nhiệm vụ trao đổi dữ liệu giữa bộ điều khiển và các thiết bị khác do đó dẫn đến tình trạng quá tải trên đường truyền (high traffic) Trong một vài trường hợp nếu giải sử việc mạng lỗi thường xuyên xảy ra (rút cắm cáp mạng nhiều lần trong thời gian ngắn) thì có thể dẫn đến mạng bị tắt nghẽn và điều khiển sẽ gián đoạn trong một thời gian Mặt khác việc truyền thực hiện nhiều lệnh truyền thông cần phải được sắp xếp một cách hợp lý thì mới đảm bảo truyền thông được bởi vì mỗi module truyền thông đều bị giới hạn bởi một số chức năng như: số giao dịch (transaction) có thể thực hiện được trong cùng một thời gian hoặc bộ đệm của module truyền thông có hạn nên không thể một lúc có thể truyền được một khối lượng dữ liệu lớn được…vv Chính vì điều này làm cho người lập trình

GVHD: TS Trương Đình Châu HVTH: Phạm Tấn Phát phải có giải thuật phức tạp để trao đổi dữ liệu và điều này làm giảm khả năng ứng dụng của hệ thống Điều này cũng chính là nhược điểm lớn nhất của giải pháp I/O device redundancy bằng phần mềm

Là một tiêu chuẩn để đánh giá chất lượng của giải pháp redundancy chính là thời gian Standby PLC đảm nhận nhiệm vụ điều khiển sau khi Primary PLC gặp sự cố Đối với các giải pháp bằng phần cứng của nhà sản xuất, tính Time Critical đạt được là rất tốt đối với cấp rendundant controller, thời gian switch over khoảng dưới 100ms, với thời gian này các giải pháp redundancy ở cấp điều khiển được gọi là Hot Standby hay còn gọi là Hot redundancy Đối với giải pháp controller redundancy được đưa ra trong luận văn, thời gian switch over hay còn được xem như Time Critical được theo tính toán sau:

TSwitchover

Ngày đăng: 08/09/2024, 21:17

HÌNH ẢNH LIÊN QUAN

Hình 1.2 Trạm bơm công nghiệp -  Dự phòng nóng - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 1.2 Trạm bơm công nghiệp - Dự phòng nóng (Trang 13)
Hình 2.3 Cấu trúc phần cứng hệ thống redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.3 Cấu trúc phần cứng hệ thống redundancy (Trang 20)
Hình 2.4 Hoạt động của hệ thống khi Primary PLC bình thường - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.4 Hoạt động của hệ thống khi Primary PLC bình thường (Trang 22)
Hình 2.7 Nguyên lý dự phòng bằng phần mềm - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.7 Nguyên lý dự phòng bằng phần mềm (Trang 24)
Hình 2.10 CPU Primary PLC bị lỗi hoặc không hoạt động - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.10 CPU Primary PLC bị lỗi hoặc không hoạt động (Trang 28)
Hình 2.13 Giải thuật Heart beat - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.13 Giải thuật Heart beat (Trang 31)
Hình 2.14 Giải thuật Switch over cho CPU Standby - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.14 Giải thuật Switch over cho CPU Standby (Trang 32)
Hình 2.16 Cấu trúc trong đồng bộ dữ liệu - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.16 Cấu trúc trong đồng bộ dữ liệu (Trang 34)
Hình 2.19 Giải thuật đồng bộ Timer ON - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.19 Giải thuật đồng bộ Timer ON (Trang 37)
Hình 2.20 Datablock Counter - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.20 Datablock Counter (Trang 39)
Hình 2.23 Khối Funtion đồng bộ Datablock  Chương trình đồng bộ Datablock - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.23 Khối Funtion đồng bộ Datablock Chương trình đồng bộ Datablock (Trang 42)
Hình 2.25 Dãy thuật kiểm tra kết nối HMI với hệ thống redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.25 Dãy thuật kiểm tra kết nối HMI với hệ thống redundancy (Trang 47)
Hình 2.26 Dãy thuật Switch Over giữa HMI với hệ thống redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 2.26 Dãy thuật Switch Over giữa HMI với hệ thống redundancy (Trang 48)
Hình 3.1 Mô hình kiểm tra hoạt động hệ thống redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.1 Mô hình kiểm tra hoạt động hệ thống redundancy (Trang 52)
Hình 3.2 Chọn thiết bị cho hệ thống redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.2 Chọn thiết bị cho hệ thống redundancy (Trang 53)
Hình 3.3 Cấu hình địa chỉ IP cho CPU Master - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.3 Cấu hình địa chỉ IP cho CPU Master (Trang 54)
Hình 3.4 Cấu hình địa chỉ IP cho CPU Standby - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.4 Cấu hình địa chỉ IP cho CPU Standby (Trang 54)
Hình 3.5 Cấu hình địa chỉ IP cho CPU Device - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.5 Cấu hình địa chỉ IP cho CPU Device (Trang 55)
Hình 3.6 Tạo OB riêng cấu hình redundancy cho hệ thống - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.6 Tạo OB riêng cấu hình redundancy cho hệ thống (Trang 55)
Hình 3.8 Cấu hình thông số cho khối Heartbit  -  Các biến (1), (2), (3) được lấy từ Datablock của khối SwOver - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.8 Cấu hình thông số cho khối Heartbit - Các biến (1), (2), (3) được lấy từ Datablock của khối SwOver (Trang 57)
Hình 3.9 Cấu hình cho khối SwOver  -  Ngõ vào, ra khối SwOver: - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.9 Cấu hình cho khối SwOver - Ngõ vào, ra khối SwOver: (Trang 58)
Hình 3.10 Cấu hình cho khối Update - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.10 Cấu hình cho khối Update (Trang 59)
Hình 3.13 Ngõ vào khối redundancy - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.13 Ngõ vào khối redundancy (Trang 61)
Hình 3.15 Chọn cấu hình Scada cho hệ thống - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.15 Chọn cấu hình Scada cho hệ thống (Trang 62)
Hình 3.19 Cấu hình sự kiện Scheduled tasks - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.19 Cấu hình sự kiện Scheduled tasks (Trang 65)
Hình 3.21 Giao diện chương trình điều khiển tốc độ động cơ - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.21 Giao diện chương trình điều khiển tốc độ động cơ (Trang 66)
Hình 3.20 Tag trong chương trình Scada/HMI - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển giải thuật cho hệ thống điều khiển dự phòng
Hình 3.20 Tag trong chương trình Scada/HMI (Trang 66)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w