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