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