Ki吋m tra tr衣ng thái ho衣t 8瓜ng c栄a PLC Primary

Một phần của tài liệu Nghiên cứu và 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 điện (Trang 48 - 68)

Trong h羽 th嘘ng d詠 phòng b茨ng ph亥n m隠m, vi羽c phát hi羽n 8逢嬰c 8i隠u ki羽n chuy吋n 8鰻i (switch over) là r医t quan tr丑ng. M厩i khi Primary PLC g員p s詠 c嘘 thì không th吋 thông báo cho Standby PLC bi院t r茨ng Primary PLC b鵜 l厩i và không th吋 8i隠u khi吋n các thi院t b鵜. Do 8ó 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 8ó k悦 thu壱t Heatbeat 8吋 bi院t 8逢嬰c CPU c栄a Primary có b鵜 l厩i hay không còn ki吋m tra truy隠n thông 8吋 xác 8鵜nh kh違 n<ng truy隠n thông c栄a Primary PLC.

Trong c医u trúc c栄a h羽 th嘘ng PLC redundancy m厩i PLC có m瓜t module truy隠n thông ETY. Các nút 1 và nút 2 (hình 2.7) th逢運ng là m瓜t 8亥u c栄a dây ethernet n嘘i t噂i t噂i m瓜t hub ho<c switch. Primary PLC và Standby PLC trao 8鰻i d英 li羽u v噂i

nhau c ng nh逢8i隠u khi吋n các thi院t b鵜 nh逢: Twido PLC và các Ethernet module qua 8逢運ng truy隠n thông Ethernet dùng giao th泳c truy隠n thông modbus TCP.

Hình 2.7. CXu trúc hう thぐng PLC redundancy

Gi thuyt 1:

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 8瓜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 8瓜ng thì ta cho m瓜t bi院n nào 8ó c栄a Primary PLC thay 8鰻i theo chu k t<ng lên 10ms ch鰯ng h衣n, ví d映 m瓜t internet word (%MW0) c泳 t<ng lên 1 sau chu k 10ms. Ch逢挨ng trình 荏 PLC Secondary s胤 8丑c giá tr鵜 bi院n 8院m này t瑛 PLC Primary theo chu k 10ms. Sau 100ms ch鰯ng h衣n, giá tr鵜 bi院n 8院m này 荏 PLC Primary không thay 8鰻i ngh a là PLC Primary 8ang b鵜8泳ng ho員c 8ang b鵜 t衣m d瑛ng (Stop mode). Lúc b医y gi運 PLC Secondary s胤8違m nh壱n vai trò 8i隠u khi吋n thay cho PLC Primary. Khi c亥n d瑛ng PLC Primary 8吋 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 8ó, ta có th吋 8逢a PLC Primary v隠 ch院 8瓜 Stop Mode, lúc này h羽 th嘘ng v磯n ho衣t 8瓜ng bình th逢運ng, do 8ã 8逢嬰c 8i隠u khi吋n b荏i PLC Secondary.

Aây là gi違i thu壱t 8挨n gi違n nh逢ng hi羽u qu違 8吋 xác 8鵜nh CPU c栄a Primary có ho衣t 8瓜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 8吋 s穎a ch英a,…. Khi 8ó chuy吋n Primary PLC sang ch院8瓜 Stop mode do 8ó khi standby PLC th医y 8逢嬰c Primary không 8i隠u khi吋n 8逢嬰c h羽 th嘘ng nên stanby PLC s胤 8違m nh壱n quy隠n 8i隠u khi吋n. Cho 8院n khi nâng c医p ch逢挨ng trình cho Primary xong thì Primary PLC 8逢嬰c chuy吋n sang Run mode thì lúc 8ó Primary s胤 thông báo cho standby PLC bi院t r茨ng Primary PLC 8ã tr荏 l衣i 8i隠u khi吋n h羽 th嘘ng và do 8ó Standby PLC chuy吋n v隠 l衣i ch院8瓜 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 8瓜ng liên t映c, qua 8ó nâng cao s違n xu医t.

Hình 2.9. CPU Primary PLC bお lざi hopc không hoTt 8じng

Gi thuyt 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 8ó Primary không th吋8i隠u khi吋n 8逢嬰c h羽 th嘘ng. Aây c ng là 8i隠u ki羽n c亥n 8吋8i羽u ki羽n Switch over x違y ra. Ai隠u ki羽n 8栄8吋 Standby PLC 8違m nh壱n quy隠n

8i隠u khi吋n h羽 th嘘ng Standby PLC ph違i truy隠n thông 8逢嬰c v噂i t医t c違 twido PLC. Khi th臼a mãn hai 8i隠u ki羽n trên Standby PLC s胤 th詠c hi羽n c壱p nh壱t d英 li羽u trong m瓜t chu k c栄a PLC và th詠c hi羽n 8i隠u khi吋n h羽 th嘘ng.

Tr⇔ぜng hぢp 1: Module ETY cてa Primary PLC bお lざi

Hình 2.10. Module ETY cてa Primary PLC bお lざi

Tr⇔ぜng hぢp 2: Ethernet cabble n嘘i gi英a node1 8院n module ETY b鵜 l厩i, thông th逢運ng hi羽n t逢嬰ng x違y ra do s詠 ti院p xúc gi英a 8亥u cable và Hub t衣i node 1 ho員c gi英a 8亥u RJ45 và 8亥u Ethernet t衣i module ETY không t嘘t.

K院t h嬰p các gi違 thuy院t trên, ta có gi違i thu壱t trên

Hình 2.12. GiVi thuft Switch over

Gi違i thu壱t ki吋m tra tr衣ng thái CPU c栄a Primary PLC 8ang 荏 ch院 8瓜 Stop mode hay không:

Hình 2.13. GiVi thuft Heartbeat

Trong 8ó gi違i thu壱t ki吋m tra truy隠n thông khi giao ti院p hai thi院t b鵜 s穎 d映ng modbus TCP nh逢 sau:

Theo quy 8鵜nh c栄a giao th泳c Modbus TCP/IP, khi th詠c hi羽n m瓜t giao d鵜ch, trong b違ng qu違n lý các tham s嘘 truy隠n thông mà ta 8ã 8隠 c壱p 荏 ph亥n tr逢噂c, có m瓜t bit g丑i Activity bit. Khi giao d鵜ch b逸t 8亥u 8逢嬰c th詠c hi羽n, bit này s胤8逢嬰c set giá tr鵜 b茨ng 1. Khi giao d鵜ch th詠c hi羽n thành công thì bit này 8逢嬰c tr違 v隠 giá tr鵜 0. Ho員c n院u giao d鵜ch kéo dài v逢嬰t quá th運i gian cho phép (Time out) thì bit này c ng s胤 8逢嬰c tr違 v隠 giá tr鵜 b茨ng 0. Ngoài ra trong khi xu医t hi羽n xung xu嘘ng (Chuy吋n t瑛 1 xu嘘ng 0) 荏 bit Activity thì k院t qu違 giao d鵜ch s胤 8逢嬰c tr違 v隠 trong thanh ghi Communication Report Register. N院u giao d鵜ch thành công, giá tr鵜 thanh ghi này là 16#00, ng逢嬰c l衣i có ngh a là giao d鵜ch không thành công. K院t h嬰p gi英a k院t qu違 tr違

v隠 trong thanh ghi Communication Report Register và bit Activity, ta vi院t hàm Com_Checking b茨ng ngôn ng英 FB (Function Block) 8吋 ki吋m tra kh違 n<ng truy隠n thông c栄a PLC Primary. Giài thu壱t 8吋 ki吋m tra nh逢 sau:

Hình 2.14. GiVi thuft kiあm tra truyzn thông

b. Bài toán 2: Aげng b d liu gia Primary và Standby PLC

A嘘i v噂i gi違i pháp d詠 phòng PLC b茨ng ph逢挨ng pháp ph亥n c泳ng, vi羽c 8欝ng b瓜 d英 li羽u 8逢嬰c th詠c hi羽n b茨ng m瓜t module riêng bi羽t. A嘘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 8欝ng b瓜 d英 li羽u thì vi羽c 8欝ng

b瓜 d英 li羽u ch雨 có th吋 th詠c hi羽n b茨ng cách vi院t các hàm trao 8鰻i d英 li羽u trong ch逢挨ng trình. T瑛 hình v胤 ta th医y khi Primary PLC 8ang ho衣t 8瓜ng t嘘t và 8i隠u khi吋n h羽 th嘘ng, Primary PLC s胤 truy隠n t医t c違 các d英 li羽u c亥n thi院t nh逢: %M, %MW, counter, timer, realtime clock sang Standby PLC 荏 cu嘘i chu k master task. Quá trình c ng di宇n ra t逢挨ng t詠8嘘i v噂i Standby PLC khi Primary PLC b鵜 l厩i.

Hình 2.15. CXu trúc trong master task

A嘘i v噂i d英 li羽u thông th逢運ng nh逢 %M, %MW thì d宇 dàng 8吋 truy隠n d英 li羽u gi英a Primary PLC và Standby PLC b茨ng các l羽nh Write_Var ho員c Read_Var. Tuy nhiên vi羽c 8欝ng b瓜 Timer và Counter thì 8ây là m瓜t bài toán khó b荏i:

Timer và counter ho衣t 8瓜ng d詠a trên ph亥n c泳ng, giá tr鵜 ET (External Timer) và CV (Current Value) ch雨8丑c mà không th吋 ghi 8逢嬰c.

Gi違 s穎 ta có Primary PLC 8ang 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 8隠 8員t ra là n院u Primary PLC b鵜 l厩 thì sau khi nh壱n quy隠n 8i隠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 8i吋m x違y ra l厩i 荏 Primary, có ngh a là giá tr鵜 ET c栄a timer này c ng b逸t 8亥u t瑛 8s300ms và ti院p t映c 8院m lên n院u 8i隠u ki羽n ngõ vào IN còn cho phép. Aây là yêu c亥u b逸t bu瓜c n院u m瓜t h羽 th嘘ng 8逢嬰c g丑i là redundancy. Tuy nhiên th詠c t院 thì khó 8吋 8áp 泳ng m瓜t cách hoàn toàn chính xác v医n 8隠 trên. Do 8ó tiêu chu育n 8員t ra 荏8ây là sai s嘘 cho phép kho違ng 100 8院n 200ms. Aa 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 8逢嬰c.

A嘘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 8嘘i v噂i giá tr鵜 ET thì PLC không cho phép 8i隠u này.

d英 li羽u thì gi英a Primary PLC và Standby PLC thì ch雨 có th吋 truy隠n 8逢嬰c các ki吋u d英 li羽u nh逢 %M, %MW, trong khi 8ó không th吋 truy隠n tr詠c ti院p các giá tr鵜 nh逢 ET (external timer), PT (Preset timer) gi英a Primary và standby PLC 8逢嬰c do 8ó c亥n ph違i gán m厩i giá tr鵜 c栄a PT c ng nh逢 ET vào %MW tr逢噂c khi truy隠n sang PLC

V医n 8隠8欝ng b瓜 th運i gian th詠c, ta xét tr逢運ng h嬰p PLC ch衣y ch逢挨ng trình và trong 8ó có s穎 d映ng th運i gian th詠c nh逢8i隠u khi吋n b壱t máy b挨m lúc 18:00:00 và t逸t máy b挨m lúc 18:30:00 vào các ngày trong tu亥n. Nh逢 v壱y khi Primary m医t quy隠n 8i隠u khi吋n lúc 12:00:00 thì standby PLC c ng ph違i c壱p nh壱t th運i gian th詠c khi 8ó h羽 th嘘ng ho衣t 8瓜ng xuyên su嘘t. Các giá tr鵜 th運i gian th詠c c ng 8逢嬰c 8逢a vào các internal word tr逢噂c khi g穎i qua modbus TCP.

Nh逢 v壱y t医t c違 các d英 li羽u c栄a ch逢挨ng trình 8隠u 8逢嬰c ánh x衣 vào các ô nh噂 %MW, và %M và 8逢嬰c 8欝ng b瓜 theo m厩i chu k quét c栄a PLC. Do 8ó 8吋 8欝ng b瓜 d英 li羽u chính xác thì 8違m b違o truy隠n thông gi英a các PLC 8ang ho衣t 8瓜ng t嘘t. N院u Primary b鵜 l厩i và 8逢嬰c ph映c h欝i tr荏 l衣i và chuy吋n sang ch院 8瓜 run mode, Primary PLC s胤 update d英 li羽u trong m瓜t chu k master task tr逢噂c khi th詠c hi羽n 8i隠u khi吋n h羽 th嘘ng. A欝ng th運i trong m瓜t chu k 8亥u tiên thì Primary s胤 thông báo v噂i Stanby PLC v隠 s詠 có m員t c栄a nó và Standby PLC s胤 k院t thúc vi羽c 8i隠u khi吋n và quay v隠 v噂i ch院8瓜 ch運 ban 8亥u.

8瓜ng nh違y vào thay th院 8i隠u khi吋n các thi院t b鵜, 8吋 8違m b違o h羽 th嘘ng ho衣t 8瓜ng chính xác thì ph違i 8吋 PLC Stanby th詠c hi羽n m瓜t chu k update d英 li羽u %M, %MW, Counter, Timer, Real Time Clock, c ng nh逢 các d英 li羽u ngõ vào t瑛 các thi院t b鵜 bên ngoài mà không th詠c hi羽n ch逢挨ng trình 泳ng d映ng. Sau khi th詠c hi羽n xong vi羽c update d英 li羽u thì 荏 chu k sau PLC Stanby m噂i th詠c hi羽n các 泳ng d映ng. A吋 lý gi違i 8i隠u này, ta l医y m瓜t ví d映 sau:

Aây là m瓜t câu l羽nh trong ch逢挨ng trình 泳ng d映ng 8ang ch衣y trong PLC Primary. Khi giá tr鵜 Temp = 1 (Bi院n ngõ vào ) thì t<ng T lên 1. Gi違 s穎 sau m瓜t h欝i ch逢挨ng trình ch衣y, giá tr鵜 c栄a T là 5. PLC Primary s胤 th詠c hi羽n Update d英 li羽u t瑛 PLC Primary sang Stanby: Temp =1,T=5. X違y ra 1 lý do nào 8ó mà PLC không truy隠n thông 8逢嬰c v噂i thi院t b鵜 và PLC Stanby 8違m nh壱n vai trò 8i隠u khi吋n, n院u lúc này không th詠c hi羽n vi羽c Update d英 li羽u 8吋 ki吋m tra xem giá tr鵜 Temp = 1 hay 0 mà ch衣y luôn ch逢挨ng trình 泳ng d映ng thì giá tr鵜 T s胤 t<ng lên 1, t泳c b茨ng 6. Ai隠u này là không chính xác. Do v壱y, PLC Stanby b逸t bu瓜c ph違i Update d英 li羽u trong chu k quét 8亥u tiên, tr逢噂c khi th詠c hi羽n các thu壱t toán 8i隠u khi吋n ch逢挨ng trình. Khi 8i隠u ki羽n Switch Over x違y ra, thì bit Update ngay l壱p t泳c s胤8逢嬰c set lên 1 nh運 v壱y ti院p 8i吋m c栄a nó h荏 ra, làm cho ch逢挨ng trình 泳ng d映ng không th詠c hi羽n 8逢嬰c. Sau khi Update d英 li羽u xong, bit này s胤 tr荏 v隠 0 và ch逢挨ng trình 泳ng d映ng (Application) m噂i 8逢嬰c th詠c hi羽n. Khi 8i隠u ki羽n switch over x違y ra, bit Update ngay l壱p t泳c s胤 8逢嬰c set lên 1 trong m瓜t chu k c栄a Primary PLC do 8ó m員c dù application section s胤 8逢嬰c quét qua trong chu k này nh逢ng các phép toán không th詠c hi羽n do 8ó k院t qu違 h羽 th嘘ng s胤 không có sai s嘘 trong th運i gian này.

Gi違i thu壱t 8欝ng b瓜 Real time clock

Ao衣n ch逢挨ng trình dùng 8吋 th詠c hi羽n gi違i thu壱t 8欝ng b瓜 hóa Real Time Clock:

if TransDataToStandbyperiod then (* Transfer real time clock data*)

ControllerStatus.RealtimeClock[0]:=%SW50; (* ss*) ControllerStatus.RealtimeClock[1]:=%SW51; (* hhmm*) ControllerStatus.RealtimeClock[2]:=%SW52; (* mmdd*) ControllerStatus.RealtimeClock[3]:=%SW53; (* yyyy*) WRITE_VAR (ADR := PComPar.Address,

OBJ := '%MW', NUM := 4, NB := 4,

EMIS := ControllerStatus.RealtimeClock, GEST := PComPar.RTCSync);

Gi違i thu壱t 8欝ng b瓜 Timer ON delay: RTON

̇ Hàm RTOF (Redundant OFF Delay): A逢嬰c xây d詠ng v噂i ch泳c n<ng t逢挨ng t詠 hàm TOF trong th逢 vi羽n chu育n c栄a Unity. A員c thù c栄a hàm RTOF là bên c衣nh vi羽c th詠c hi羽n các ch泳c n<ng c栄a 1 b瓜 Timer Off Delay, nó còn 8違m b違o vi羽c 8欝ng b瓜 hóa d英 li羽u c栄a b瓜 Timer này gi英a 2 PLC Primary và Secondary khi x違y ra 8i隠u ki羽n Switch Over.

Hàm RTOF có các 8員c thù sau:

- M厩i hàm RTOF có m瓜t bi院n ngõ vào RE, giá tr鵜 này 8逢嬰c Set lên 1 ngay chu k 8亥u tiên khi x違y ra 8i隠u ki羽n Switch Over.

- Các giá tr鵜 khác c栄a b瓜 RTOF nh逢 PT (Preset Timer), ET (Internal Time), Q (Output) c亥n 8逢嬰c l逢u vào các ô nh噂 %MW và %MW.X và ph違i 8逢嬰c PLC Primary c壱p nh壱t cho PLC Stanby vào cu嘘i m厩i chu k quét.

Hình 2.20. GiVi thuft 8げng bじ Timer OF

Một phần của tài liệu Nghiên cứu và 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 điện (Trang 48 - 68)