CHƯƠNG II: TỔNG QUAN VỀ PLC S7-200
2.2 T ÌM HIỂU VỀ HỌ PLC S7-200
2.2.4 Phát xung trên PLC S7-200
Trong PLC S7-200 có hỗ trợ chúng ta phát xung tốc độ cao tại 2 chân Q0.0 và Q0.1.Ta dùng instruction PLS để thực hiện phát xung trên PLC S7-200. Chú ý rằng instruction này được chia ra 2 chức năng là phát xung PTO và điều rộng xung PWM:
- PTO (Pulse Train Output) là 1 chuỗi xung ngõ ra với độ rộng xung ON là 50%
của chu kì.
- PWM (Pulse Width Modulation) là 1 chuỗi xung ngõ ra mà ta có thể thay đổi được độ rông xung ON.
Vậy ta thấy rằng PTO chính là 1 trường hợp đặc biệt của PWM, trong nội dung đồ án này ,nhóm chúng em sử dụng chức năng phát xung PTO nên sẽ nói kĩ về phần PTO.
Khi ta sử dụng chức năng phát xung tại các chân Q0.0 và Q0.1 thì các lệnh xử lý tại các chân này đều được bỏ qua và chú ý rằng trước khi sử dụng phát xung trên 2 chân này ta phải reset chúng về 0 trước.
Khi ta sử dụng cũng như thiết kế phát xung tốc độ cao trong PLC S7-200 sẽ có 1 vùng nhớ đặc biệt SM để điều khiển chúng gồm 1 thanh ghi 8 bit cho điều khiển, 1 thanh ghi 32 bit không dấu dành cho giá trị xung đếm, 1 thanh ghi không dấu 16 bit cho thời gian 1 chu kì và 1 thanh ghi 16 bit không dấu cho độ rộng xung.
2.2.4.2.Các thanh ghi điều khiển và trạng thái trong PTO của PLC S7-200 Bảng 2: Cách thanh ghi và trạng thái trong PTO
Ta đi vào giải thích từng bit cụ thể như sau:
- SM66.4 & SM76.4 : Trong chế độ phát xung multiple segment nếu ta gán 1 giá trị không hợp lệ vào delta cycle time thì bit này sẽ set lên 1 và kết thúc chức năng phát xung ngay lập tức, ngõ ra sẽ khôi phục lại giá trị 0.
- SM66.5 & SM76.5: Trong chế độ phát xung multiple segment mà trong chương trình nếu ta hủy PTO profile thì bit này sẽ set lên 1.
- SM66.6 & SM76.6: Trong chế độ phát xung single segment nếu ta ghi 2 thông số kỹ thuật của 2 đoạn xung có cycle time khác nhau cùng 1 thời điểm vào thanh ghi điều khiển thì bit này sẽ set lên 1 (báo tràn).
- SM66.7 & SM76.7: Đây là bit trạng thái set lên 1 khi công việc phát xung PTO đã hoàn thành.
- SM67.0 & SM77.0: Nếu trong chương trình ta muốn thay đổi thời gian 1 chu kì (cycle time) thì set bit này lên 1.
- SM67.1 & SM77.1: Cho phép thay đổi rộ rộng xung ON hay không, nếu có thì set bit này lên 1 (chỉ dùng cho PWM).
- SM67.2 & SM77.2: Nếu trong chương trình ta muốn thay đổi số xung cần phát thì set bit này lên 1.
- SM67.3 & SM77.3: Bit này cho phép ta chọn đơn vị thời gian của cycle time là ms hay us (=0 là us và =1 là ms).
- SM67.4 & SM77.4: Bit này dành cho điều khiển PWM.
- SM67.5 & SM77.5: Bit này chọn chế độ phát xung single segment hay multiple segment (0 là single còn 1 là multiple).
- SM67.6 & SM77.6: Bit này chọn ngõ ra hoạt động theoPWM hay PTO (0 là PTO và 1 là PWM).
- SM67.7 & SM77.7: Bit này cho phép ngõ ra hoạt động ở chế độ phát xung.
Phải set lên 1 thì PLS trong PLC S7-200 mới hoạt động được.
- SMW68 & SMW78: Đây là 2 thanh ghi 16 bit chứa giá trị thời gian của 1 chu kì (cycle time).
- SMW70 & SMW80: Đây là 2 thanh ghi 16 bit chứa giá trị của độ rộng xung (chỉ dùng cho PWM).
- SMD72 & SMD82: Đây là 2 thanh ghi 32 bit chứa giá trị xung cần phát dùng cho chế độ phát xung PTO.
- SMB166 & SMB176: Đây là 2 thanh ghi chứa số đoạn segment cần phát trong 1 profile (dùng cho chế độ multiple segment).
- SMW168 & SMW178: Như đã đề cập ở trên khi phát xung PTO chế độ multiple segment ta cần 1 vùng nhớ V để lưu những đặc tính kỹ thuật của từng segment vào 1 bảng gọi là profile table. Vậy thanh ghi này chứa giá trị offset của vùng nhớ V tức là vùng nhớ V bắt đầu để lưu trữ profile. Cụ thể nếu ta nhập 1000 tại đây thì vùng nhớ V bắt đầu lưu trữ profile là VB1000 (thanh ghi này chỉ dùng cho chế độ PTO mutilple segment).
Bảng 3:Giá trị của thanh ghi điều khiển thường sử dụng :
Ví dụ như load giá trị 16#81 vào thanh ghi SMB77 (10000001) thì có nghĩa là (enable chức năng PLS cho chân Q0.1 chọn chức năng phát xung PTO chế độ single segment, đơn vị thời gian là us, không thay đổi giá trị xung phát ra và cho phép thay đổi giá trị thời gian 1 chu kỳ). Các trường hợp khác phân tích tương tự.
2.2.5 Phát xung PTO trên PLC S7-200
Như đã nói ở trên PTO trong PLC S7-200 là 1 chuỗi xung vuông với độ rộng xung là 50% của chu kì. Vì vậy ta nên chọn thời gian của 1 chu kì là 1 số chẵn để đảm bảo hình dạng xung ngõ ra của chúng ta không bị méo mó biến dạng.
Hình 2.15: Chu kì phát xung
Ta có thể phát liên tục từ 1 đến 4,294,967,295 xung. Thời gian 1 chu kì có thể chọn đơn vị là ms hoặc us dựa vào các bit điều khiển, cycle time (thời gian 1 chu kì) phải nằm trong giới hạn sau:
- 50 às to 65,535 às (nếu chọn đơn vị thời gian là us).
- 2 ms to 65,535 ms (nếu chọn đơn vị thời gian là ms).
Chú ý những trường hợp đặc biệt sau:
- Nếu ta chọn thời gian của 1 chu kì (cycle time) < 2 lần đơn vị thời gian thì PLC sẽ hiểu cycle time là 2 lần đơn vị.
- Nếu ta chọn số xung phát ra là 0 thì mặc định PLC sẽ phát ra 1 xung.
Trong PLC S7-200 có 2 chế độ phát xung PTO là single segment và multiple segment cụ thể ta tìm hiểu 2 chế độ này như sau:
Single segment: Là chế độ mà mỗi lần muốn phát xung ta phải thực thi instruciton PLS 1 lần, nếu muốn phát thêm xung có độ rộng hay tần số khác thì ta phải thữ thi instruciton PLS thêm 1 lần nữa. Giả sử ta muỗn phát 1 chuỗi xung với 4 xung có thời gian của 1 chu kì là 500ms thì đầu tiên ta phải load giá trị phù hợp vào các thanh ghi điều khiển sau đó thực thi instruciton PLS lúc này PLC sẽ bắt đầu phát xung. Nếu như trong chương trình của chúng ta, ta muốn sau khi phát xong 4 xung đó phát thêm 4 xung nữa với cycle time khác là 1000ms chẳng hạn thì ngay sau đó ta phải load giá trị phù hợp vào các thanh ghi điều khiển trước, sau khi phát 4 xung đầu tiên xong ta sẽ thực hiện gọi instruction PLS lần nữa để phát thêm 4 xung với cycle time là 1000ms. Tại 1 thời điểm thì PLC chỉ nhận lưu 1 giá trị thông số kỹ thuật của 1 chuỗi xung kế tiếp.
Hình 2.16: Chế độ phát xung Single segment
Multiple segment: Là chế độcó thể phát 1 chuỗi xung ngõ ra với thời gian cycle time có thể thay đổi được chỉ với 1 lần gọi instruction PLS (tức là trong 1 chuỗi xung sẽ có nhiều đoạn xung với cycle time thay đổi). Mỗi 1 thông số kỹ thuật của 1 chuỗi xung gồm nhiều đoạn thì được lưu vào 1 vùng nhớ biến V gọi là "profile table". Ta cũng có thể thay đổi thông số đơn vị thời gian (base time) trong chương trình nhưng 1 profile chỉ được áp dụng 1 base time mà thôi.Mỗi 1đoạn xung trong 1 profile table có 1 độ dài gồm 8 bytes điều khiển gồm thanh ghi 16 bit cho cycle time, thanh ghi 16 bit cho cycle time delta và 1 thanh ghi 32 bit dành cho số xung cần phát.
Ở đây khái niệm cycle time delta là tự động thay đổi bù thời gian cycle time. Mỗi 1 giá trị dương của cycle time delta thì cycle time sẽ tăng dần lên mỗi xung sau đó và mỗi giá trị âm của cycle time delta thì cycle time của chúng ta sẽ giảm dần xuống mỗi xung sau đó.
Bảng 4: Các giá trị tương ứng của vùng nhớ V
Bảng trên cho ta thấy được các giá trị tương ứng của vùng nhớ V trong 1 bảng profile:
BYTE đầu tiên chứa số đoạn cần phát trong profile.
BYTE 1 và BYTE 2 chứa giá trị thời gian 1 chu kì (cycle time).
BYTE 3 và BYTE 4 chứa giá trị bù cycle time delta.
BYTE 5-8 chứa giá trị xung cần phát trong đoạn segment này của profile và cứ như thế phân bổ 8 bytes tiếp theo cho đoạn segment thứ 2 của profile.