THUẬT TOÁN VÀ CHƯƠNG TRÌNH HEARTBEAT

Một phần của tài liệu Nghiên cứu và phát triển giải thuật cho hệ thống plc và scada dự phòng (Trang 32 - 38)

Trong hệ thống dự phòng bằng phần mềm, việc phát hiện được điều kiện SwitchOver là rất quan trọng. Mỗi khi PRIMARY PLC gặp sự cố thì Primary không thể thông báo ngay 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 Heartbeat để biết được CPU của Primary có bị 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.

Trước tiên, chúng ta xem xét một cấu trúc tổng quát đơn giản của hệ thống dự phòng PLC. Hai node 1 và node 2 là đầu dây cùa Ethernet nối từ 2 Redundant PLC tới một Hub hoặc Switch. Hai PLC trao đổi dữ liệu cũng như đọc ghi dữ liệu từ các Twido, REMOTE I/O thông qua LAN network Ethernet dùng giao thức Modbus TCP.

LUẬN VĂN CAO HỌC Primary

PLC CPU ETY Standby

PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

Hình 3. 7: Cấu trúc hệ thống dự phòng PLC

Giả thiết 1: CPU của Primary bị lỗi do CPU bị hỏng hoặc bị treo nhưng module ETY 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 nghĩa là khi CPU PRIMARY PLC hoạt động bình thường thì ta sẽ cộng dồn một ô nhớ nào đó như %MW0 chẳng hạn, cứ sau chu kỳ 10ms sẽ cho tăng giá trị lên 1, đồng thời truyền giá trị đó sang STANDBY PLC. Tại STANDBY PLC thì sau 10ms sẽ đọc giá trị này một lần, sau 100ms sẽ kiểm tra giá trị vừa đọc về với giá trị đã lưu trước đó và so sánh. Nếu hai giá trị so sánh khác nhau tức CPU PRIMARY PLC vẫn đang hoạt động tốt thì STANDBY PLC tiếp tục ở mode Standby. Nếu như bằng nhau tức CPU Primary gặp sự cố thì STANDBY PLC sẽ đảm nhận vai trò thay thế, điều khiển hệ thống. Khi Primary được khắc phục lỗi và đưa vào hệ thống hoạt động trở lại sẽ tiếp nhận quyền điều khiển, còn STANDBY PLC sẽ trở về mode Standby.

Một số ý kiến cho rằng Standby sẽ chỉ cần đọc các status bit của Primary để biết được tình trạng của CPU Primary. Tuy nhiên, cách này không tổng quát cũng như kém hiệu quả vì không phải dòng PLC nào cũng có thể trả về trạng thái khi bị rơi vào trường hợp bị lỗi.

Từ đây, ta có thể thấy kỹ thuật Heartbeat tuy đơn giản nhưng lại 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,…. sẽ chuyển PRIMARY PLC

LUẬN VĂN CAO HỌC

sang chế độ Stop mode, 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. Sau 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à STANDBY PLC sẽ chuyển về lại chế độ Standby mode.

Nhờ vậy mà trong thời gian chỉnh sửa nâng cấp, khắc phục sự cố của PRIMARY PLC thì hệ thống vẫn hoạt động liên tục, không bị gián đoạn.

REMOTE I/O 1 REMOTE I/O 2 Primary

PLC CPU ETY Standby

PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

192.168.1.54 192.168.1.55 Data

Primary

PLC CPU ETY Standb

y PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

Data Primary CPU

fails

Primary CPU comes back HMI

192.168.1.53

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

Hình 3. 8: CPU Primary khi bị lỗi và khi trở lại hệ thống

Giả thuyết 2: CPU của Primary không bị lỗi nhưng do module truyền thông của PRIMARY PLC bị lỗi hoặc Ethernet Cable nối từ node 1 tới ETY module của PRIMARY PLC bị lỗi và vì thế PRIMARY PLC không thể điều khiển được hệ thống.

LUẬN VĂN CAO HỌC

Đây cũng là điều kiện SwtichOver xảy ra. Điều kiện đủ để STANDBY PLC đảm nhận quyền điều khiển hệ thống là STANDBY PLC phải truyền thông được với các Twido và REMOTE I/O. Khi thỏa mãn hai điều kiện trên STANDBY PLC sẽ thực hiện update data trong một chu kỳ Master Task của PLC và thực hiện điều khiển hệ thống.

Trường hợp 1: Module ETY của PRIMARY PLC bị lỗi

Primary

PLC CPU ETY Standby

PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

Data

Primary

PLC CPU ETY Standb

y PLC CPU ETY

LAN Network

1 2

192.168.1.31 192.168.1.11

Data Primary ETY module fails

Primary ETY module comes

back

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

Hình 3. 9: Module ETY của PRIMARY PLC bị lỗi

LUẬN VĂN CAO HỌC

Trường hợp 2: Ethernet cable nối giữa node 1 đến module ETY bị lỗi.

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 tại module ETY không tốt.

Primary

PLC CPU ETY Standby

PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

Data

Primary

PLC CPU ETY Standb

y PLC CPU ETY

LAN Network

1 2

192.168.1.11 192.168.1.12

Data Primary cable

fails Primary cable

comes back

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

192.168.1.54 192.168.1.55 HMI

192.168.1.53

REMOTE I/O 1 REMOTE I/O 2

Hình 3. 10: Ethernet cable của PRIMARY PLC bị lỗi

LUẬN VĂN CAO HỌC

Sơ đồ điều kiện SwitchOver [6]:

Start

Mode := Run

IS PRIMARY ?

Read input from Remote I/O, HMI

Write output signal to Remote I/O, HMI

Transfer data to Standby PLC Primary PLC communicate to

Remote I/O, HMI

N

N Y

Y

Start

Mode := Stop

IS STANDBY?

Standby PLC communicate to Primary PLC

Primary PLC in STOP Mode?

Read input from Remote I/O, HMI

Execute Application section

Write output signal to Remote I/O, HMI

Transfer data to Primary PLC

Update data From Primary PLC

PRIMARY PLC STANDBY PLC

Y

N Y

Y

Standby communicate to Remote I/O, HMI Execute Application

section

N N

N

Y Y

Hình 3. 11: Giải thuật SwitchOver

LUẬN VĂN CAO HỌC

Giải thuật kiểm tra trạng thái PRIMARY PLC trên STANDBY PLC [6]:

PRIMARY PLC

10ms Start

Mode:= Run

Standby has stop = 1?

Execute Applicatipn section N

Y

Heartbeat:=Heartbeat + 1

STANDBY PLC

Start

Mode:= Stop

Recive Heatbeat :=

Heatbeat

Recive Heatbeat = Heatbeat?

Event Couter := Event Couter+1

Event Couter = 2?

Mode:= Run

Recive Heatbeat :=

Heatbeat 100ms

Execute Applicatipn section

N

N Y

Y

Y

Y

Standby has stop := 0

Standby has stop := 1

Recive Standby has stop

Hình 3. 12: Giải thuật Heartbeat

Một phần của tài liệu Nghiên cứu và phát triển giải thuật cho hệ thống plc và scada dự phòng (Trang 32 - 38)

Tải bản đầy đủ (PDF)

(89 trang)