2. Tìm hiểu về một số thiết bị, bộ điều khiển
3.6.10. Những vấn đề cần hiểu khi lập trình với S7-200:
- Bộ nhớ - Các kiểu dữ liệu - Các phép toán logic - Các phép toán so sánh .... 1. Bộ nhớ - Bộ nhớ RAM: Ký hiệu là vùng nhớ M (ví dụ: M0.0,MB0, MW0, MD0): là những loại bộ nhớ mà khi mất điện thì giá trị của chúng bằng 0.
- Bộ nhớ ROM: Ký hiệu là vùng nhớ V (ví dụ: VB0.0, VB0, VW0, VD0): là những loại bộ nhớ mà khi mất điện giá trị của chúng không đổi.
- Bộ nhớ đặc biệt: Ký hiệu là vùng nhớ SM ( ví dụ SM0.0, SM0.1…) là những vùng nhớ đặc biệt. Ví dụ SM0.0 luôn bằng 1, SM0.1 có giá trị bằng 1 với vòng quét đầu tiên của PLC dùng để khởi tạo tham số cho quá trình điều khiển.
2. Các kiểu dữ liệu
- Kiểu logic(Kiểu Boolean) : Có giá trị 0 và 1. Lưu trữ bằng 1 bit .Ví dụ M0.0, M0.1,VB0.0, SM0.0…
- Kiểu Integer: Có giá trị từ -32768 đến 32768, Lưu trữ bằng ô nhớ 16Bit. Ví dụ MW0, MW2, VW0, AIW0, AQW0…
- Kiểu Double Integer: Có giá trị từ -65536 đến 65536, Lưu trữ bằng ô nhớ 32Bit. Ví dụ MD0, MD4, VD0.
- Kiểu Real( Số thực): Lưu trữ bằng 32Bit,ví dụ MD0, MD4, VD0… - Kiểu BCD: Lưu trữ bằng 1Byte, ví dụ MB0,VB0,VB1,…
4. Timer
- S7-200 CPU 224 có 256 Timer gồm các loại sau:
- TON: Bộ tạo thời gian trễ không có nhớ (On DelayTimer) - TONR: Bộ tạo thời gian trễ có nhớ (Retentive On DelayTimer) - TOF: (Of Delay Timer)
Chú ý: Vì TON và TOF sử dụng cùng số Timer, nên không thể đặt cho cả hai có cùng số Timer. Ví dụ đã đặt TON là T37 thì không được đặt TOF là T37
Qua giản đồ trên ta nhận thấy để timer TON đóng trễ được hết thời gian đặt trước (ví dụ 10s) thì trạng thái tín hiệu tại cổng vào IN cần được duy trì ở mức 1 trong suốt khoảng thời gian này. Nếu sau 10s mà cổng vào IN vẫn duy trì ở mức 1 thì giá trị hằng số thời gian trong timer sẽ tiếp tục tăng cho tới khi đạt giá trị tối đa là 32767. Để xóa Timer, có thể sử dụng lệnh Reset (R). Lệnh Reset sẽ làm cho Timer Bit ở mức logic “0” và giá trị hiện hành của Timer (Timer Current) =0.
• Timer TOFF
- Giá trị của bộ đếm 0 - 32767 kiểu integer
- Sử dụng timer này khi cần trễ thêm một khoảng thời gian rồi mới tắt cổng ra kể từ khi tín hiệu cổng vào IN xuống “0”. Timer TOF chỉ thực hiện đếm thời gian khi IN chuyển từ “1” xuống “0”. Khi cổng vào IN của Off-Delay Timer (TOF) ở logic “1”, thì Timer Bit ngay lập tức được đặt lên mức logic “1” và giá trị hiện hành được xóa về 0. Khi cổng vào IN xuống “0”, thì timer đếm cho đến khi thời gian trôi qua đạt đến giá trị thời gian đặt trước. Khi đạt đến giá trị đặt trước, Timer Bit được đặt về “0” và giá trị hiện hành dừng đếm. Nếu cổng vào IN ở “0” trong khoảng thời gian ngắn hơn giá trị đặt trước, thì Timer Bit giữ ở “1”.
5. Counter
- Ứng dụng: Đếm sườn xung của các tín hiệu đầu vào
- S7-200 có 256 counter: C0 đến C255
- Phân loại:
- CTU (Up Counter): Bộ đếm tăng dần - CTD (Down Counter): Bộ đếm giảm dần
- CTUD (Up/Down Counter): Bộ đếm tăng dần và bộ đếm giảm dần - HSC: Bộ đếm tốc độ cao đếm tín hiệu xung đến 30KHZ
Mỗi khi tín hiệu tại CU từ mức “0” lên “1” thì bộ đếm sẽ tăng giá trị hiện hành của nó lên 1 đơn vị. Khi giá trị hiện hành của bộ đếm (Cxxx) lớn hơn hoặc bằng giá trị đặt trước tại cổng vào PV (Preset Value) thì cổng ra bit của counter (counter bit) sẽ lên mức “1”. Giá trị đếm lên tối đa là 32.767. Bộ đếm sẽ bị xóa về 0 khi cổng vào Reset (R) lên mức “1”, hoặc khi sử dụng lệnh Reset để xóa bộ đếm.
Bộ đếm giảm dần CTD
Giá trị của bộ đếm 0 - 32767 kiểu integer
Mỗi khi tín hiệu tại CD từ mức “0” lên “1” thì bộ đếm sẽ giảm giá trị hiện hành của nó xuống 1 đơn vị. Khi giá trị hiện hành của bộ đếm (Cxxx) bằng 0, thì
Counter Bit Cxxx lên “1”. Bộ đếm xóa Counter Bit Cxxx và nạp giá trị đặt trước ở PV khi cổng vào LD (load) lên mức “1”. Bộ đếm sẽ dừng đếm khi giá trị hiện hành bằng 0 và counter bit Cxxx lên “1”.
Khi xóa bộ đếm bằng lệnh Reset, counter bit bị xóa và giá trị hiện hành được đặt về 0.