Vấn đề đồng bộ Timer, Couter

Một phần của tài liệu Phương pháp tính toán, nâng cao và đánh giá sil cho hệ thống điều khiển (Trang 63 - 70)

CHƯƠNG 4 TỔ CHỨC XÂY DỰNG HỆ THỐNG KIỂM CHỨNG LÝ THUYẾT39

B. Vấn đề đồng bộ Timer, Couter

Quay trở lại vấn đề đồng bộ dữ liệu giữa hai PLC. Việc đồng bộ data ô nhớ

%M và %MW thì khá dễ dàng, tuy nhiên đồng bộ Timer, Counter là một bài toán khó bởi một số vấn đề:

Timer và Counter hoạt động dựa trên phần cứng, ngõ ra ET của Timer và ngõ ra CV của Counter chỉ đọc chứ không ghi được. Ví dụ: Primary đang chạy Timer_ON với preset time là 20s nhưng ngõ ra chỉ mới 8s200ms thì lại bị SwitchOver và thế là Standby PLC phải cập nhật và bắt đầu đếm lên từ gía trị ET ngõ ra của Primary tức là đếm từ 8s200ms.

Hình 4.10 Timer ON redundancy

Đây là yêu cầu của bài toán Redundancy cần phải thỏa mãn nhưng trong thực tế để đáp ứng chính xác như thế là điều không thể. Tuy vậy hệ thống vẫn cho phép sai số giá trị thay đổi khi cập nhật ngõ ra của Timer. Đây là con số chấp nhận được với các hệ thống không đòi hỏi khắt khe thời gian. Tương tự Timer thì Counter cũng sẽ phải thỏa yêu cầu của hệ thống Redundancy là khi SwitchOver xảy ra thì Controller nào đảm nhận việc điều khiển tiếp theo sẽ phải cập nhật và đếm từ giá trị ngõ ra Counter của PLC trước đó. Đối với PT và PV thì ta hoàn toàn có thể làm được việc đồng bộ bằng hàm truyền thông một cách bình thường nhờ vùng nhớ

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

%MW. Tuy nhiên giá trị ET và CV cần phải có giải thuật người dùng tự viết cho quá trình đồng bộ trong giới hạn sai số cho phép.

Khi truyền thông profinet giữa Primary và Standby PLC chỉ truyền các kiểu

%M và %MW mà không truyền được các kiểu Time như ET và PT của Timer. Vì thế cần định địa chỉ cho các giá trị ET và PT là %MW hoặc sẽ gán vào ô nhớ %MW trước khi truyền và bên nhận sẽ phải chuyển ngược lại để đưa vào Timer tiếp túc hoạt động. Ở vấn đề này cần lưu ý một điểm khá quan trọng là với các biến thời gian như PT hay ET thì khi gán vào các ô nhớ %MW thì phải chiếm ít nhất là hai ô nhớ. Nếu ta gán PT hoặc ET vào ô %MW0 thì ít nhất ô %MW1 cũng dành cho chỉ riêng biến đó.

%M

%MW Realtime

Timer Data Counter Data

Realtime Timer Data Counter Data

%M

%MW

PROFI NET

Primary PLC Standby PLC

Hình 4.11: Đồng bộ dữ liệu Realtime, Timer, Counter, Internal Memory Việc đồng bộ Timer có thể hiểu như sau: khi Primary PLC đang run Timer và Counter đều có những giá trị hiện tại là ET và CV của Timer và Counter. Khi SwitchOver xảy ra thì giá trị ET và CV của Primary cần được truyền sang Standby PLC để Standby PLC có thể tiếp tục Timer và Counter với đầu vào là giá trị PT và PV kèm theo đó là các giá trị ET và CV ngõ ra đều phải được bắt đầu đếm từ giá trị ET và CV nhận được từ Primary PLC khi SwitchOver xảy ra.

Xây dựng các hàm đồng bộ Timer, Counter:

Hàm UPDATE_TON:

Hàm RTON xây dựng với mục đích có chức năng cũng như các ngõ vào ra tương tự hàm TON của nhà sản xuất và đảm bảo thêm vấn đề update và đồng bộ dữ

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

liệu timer trong bài toán đồng bộ dữ liệu của PLC redundancy. Cũng như Timer ON bình thường thì cũng sẽ có ngõ vào PT và IN và ngõ ra Q sẽ set lên 1 khi giá trị ET đạt tới giá trị PT ngõ vào và ngõ ra ET_OUT để hiển thị giá trị hiện tại của Timer.

Tuy nhiên, chúng ta cần phải lưu ý là UPDATE_TIME_ON sẽ thêm ngõ vào là ET update từ Primary PLC để ngõ ra ET_OUT bằng giải thuật của người lập trình sẽ bắt đầu từ giá trị ET được update. Sau chu kỳ đầu tiên đó, thì ET_OUT phải được bắt đầu lại từ 0 nếu đếm tiếp lần thứ hai trở đi.

Khi sử dụng hàm RTON chỉ quan tâm đến vấn đề sau:

 Khai báo giá trị các biến PT, ET và mỗi biến kiểu time cần được chứa trong 2 ô nhớ %MWn và %MWn+1 . Mục tiêu là sau này cần phải update giá trị của PT, ET và giá trị của PT, ET phải luôn được đồng bộ giữa Primary PLC và Standby PLC.

Khai báo biến Q được chứa trong %M hay trong %MWn.x (x: 0 - 15) và được đồng bộ giữa Primary PLC và Standby PLC.

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

UPDATE TIME: = 1 START

ET_TEMP:=

ET_IN Y

IN=1 & Q=1 N

ET_TEMP:=0

PT_T:= PT- ET_TEMP ET:= ET_TEMP+ ET_T

Y

N

RUN TON

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

Hàm UPDATE_TOF:

Cũng như Timer OF bình thường thì cũng sẽ có ngõ vào PT và IN và ngõ ra Q sẽ reset về 0 khi giá trị ET đạt tới giá trị PT ngõ vào và ngõ ra ET_OUT để hiển thị giá trị hiện tại của Timer. Tuy nhiên, chúng ta cần phải lưu ý là UPDATE_TIME_OF sẽ thêm ngõ vào là ET update từ Primary PLC để ngõ ra ET_OUT bằng giải thuật của người lập trình sẽ bắt đầu từ giá trị ET được update. Sau chu kỳ đầu tiên đó, thì ET_OUT phải được bắt đầu lại từ 0 nếu đếm tiếp lần thứ hai trở đi.

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

UPDATE TIME: = 1 START

ET_TEMP:=

ET_IN N

IN=0 Q=0 N

ET_TEMP:=0

PT_T:= PT- ET_TEMP ET:= ET_TEMP+ ET_T

Y

N

RUN TOF N

Hình 4.13: Giải thuật đồng bộ Timer OF

Hàm UPDATE_CU:

Cũng như một Counter Up bình thường là dùng để đếm lên và ngõ ra Q sẽ set lên 1 khi giá trị CV_OUT lớn hơn hoặc bằng PV vào. Và cũng theo cách giống như đồng bộ Timer thì ngõ ra của Counter UP cũng phải được bắt đầu từ giá trị CV mà được cập nhật từ giá trị CV của Counter bên Primary khi SwitchOver xảy ra. Và từ lượt chạy thứ hai của Counter trong Standby thì ngõ ra CV_OUT cũng được chạy từ giá trị 0 chứ không còn chạy từ giá trị CV update nữa.

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

UPDATE : = 1 START

PV_TEMP:=CV_IN N

N

PV_TEMP:=0

PV:= PV_IN- PV_TEMP N

RUN CU

RISING CU_IN Y CV_IN:= PV_TEMP + CV_T

RISING R_IN

PV_T:= PV_IN PV_TEMP:=0

CV_IN:=0 Y

N N

Hình 4.14: Đồng bộ Counter UP

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

Hàm UPDATE_CD:

Tương tự như đồng bộ CTU nhưng ngõ ra Q sẽ được set theo cách giống CTD bình thường là sẽ set lên 1 nếu CV_OUT nhỏ hơn bằng 0.

UPDATE : = 1 START

PV:= CV_IN

PV := PV_IN

Y

N

RUN CD

Hình 4.15: Đồng bộ Counter DOWN

GVHD : TS. Trương Đình Châu

HV : Phan Thanh Hải – MS 13153062 & Hoàng Anh Tú – MS 13153069

Hàm UPDATE_CUD:

Hàm R_CUD có chức năng tương tự như hàm CTUD. Các ngõ vào, ngõ ra như ta đã biết hàm CUD là kết hợp giữa CTU và CTD do đó khi xây dựng RCUD ta thấy giải thuật tương tự như xây dựng hàm RCTD nên tương đối gọn hơn.

START

R_CU KẾT HỢP R_CD

Hình 4.16: Đồng bộ Counter UP_DOWN

Một phần của tài liệu Phương pháp tính toán, nâng cao và đánh giá sil cho hệ thống điều khiển (Trang 63 - 70)

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

(109 trang)