Vùng đối tợng

Một phần của tài liệu Thiết kế hệ thống điều khiển độ ẩm trong nhà trồng (Trang 29)

Vùng đối tợng đợc sử dụng để lu giữ dữ liệu cho các đối tợng lập trình nh các giá trị tức thời, giá trị đặt trớc của bộ đếm, hay Timer. Dữ liệu kiểu đối t- ợng bao gồm của thanh ghi của Timer, bộ đếm, bộ đếm tốc độ cao, bộ đệm vào/ra tơng tự và các thanh ghi Accumulator [AC].

Kiểu đợc đối tợng bị hạn chế rất nhiều vì các dữ liệu kiểu đối tợng chỉ đ- ợc ghi theo mục đích cần sử dụng của đối tợng đó.

Vùng nhớ đối tợng đợc phân chia nh sau:

15 0 bit Timer (đọc/ghi) T0 T0   T127 T127 Bộ đếm (đọc/ghi) C0 C0   T127 T127 Bộ đệm cổng vào tơng tự (chỉ đọc) C0 C0   T127 T127 Bộ đệm cổng ra tơng tự C0 C0  

(chỉ ghi) T127 T127 Thanh ghi Accumulator

(đọc/ghi)

AC0 (không có khả năng làm con trỏ) AC1 AC2 AC3 Bộ đếm tốc độ cao (đọc/ghi) HSC0 HSC1(chỉ có trong CPU214) HSC2(chỉ có trong CPU214) 2.2.2.4. Mở rộng cổng vào ra.

Có thể mở rộng cổng vào/ra của PLC bằng cách ghép nối thêm vào nó các modul mở rộng về phía bên phải của CPU (CPU 214 nhiều nhất 7 module), làm thành một móc xích. Các module mở rộng tơng tự và số đều có trong S7- 200. Địa chỉ của các vị trí của module đợc xác định bằng kiểu vào/ra và vị trí của module trong móc xích, bao gồm các module có cùng kiểu.

Các module mở rộng số hay rời rạc đều chiếm chỗ trong bộ đếm, tơng ứng với số đầu vào/ra của module.

Cách đặt địa chỉ cho các module mở rộng trên CPU214.

CPU214 Module 0 [4vào/4ra] Module 1 [8vào] Module 2 [3 vào analog/1 ra analog] Module 3 [8 ra] Module 4 [3 vào analog/1 ra analog]

I0.0 Q0.0 I2.0 I3.0 AIW0 Q3.0 AIW8

I0.1 Q0.1 I2.1 I3.1 AIW2 Q3.1 AIW10

I0.2 Q0.2 I2.2 I3.2 AIW4 Q3.2 AIW12

I0.3 Q0.3 I2.3 I3.3 Q3.3

I0.4 Q0.4 I3.4 AQW0 Q3.4 AQW14

I0.5 Q0.5 Q2.0 I3.5 Q3.5

I0.7 Q0.7 Q2.2 I3.7 Q3.7 I1.0 Q1.0 Q2.3 I1.1 Q1.1 I1.2 I1.3 I1.4 I1.5

2.2.3. Thực hiện chơng trình của S7-200 CPU214.

PLC thực hiện chơng trình theo chu kỳ lặp. Mỗi vòng lặp đợc gọi là một vòng quét (Scan). Mỗi vòng quét đợc bắt đầu bằng giai đoạn đọc dữ liệu từ các cổng vào vùng đệm ảo, tiếp theo là giai đoạn thực hiện chơng trình. Trong từng vòng quét, chơng trình đợc thực hiện bằng lệnh đầu tiên và kết thúc bằng lệnh kết thúc (MEND). Sau giai đoạn thực hiện chơng trình là gian đoạn truyền thông nội bộ và kiểm tra lỗi. Vòng quét đợc kết thúc bằng giai đoạn chuyển các nội dung của bộ đệm ảo tới các cổng ra.

1. Nhập dữ liệu từ ngoại vi vào bộ đếm ảo. 2. Thực hiện chƯơng trình. 3. Truyền thông

tự kiểm tra lỗi. 4. Chuyển dữ từ bộ đếm ảo ra ngoại vi.

Hình 2.5. Vòng quét (scan) trong S7-200.

Nh vậy, tại thời điểm thực hiện lệnh vào/ra, thông thờng lệnh không làm việc mà chỉ thông qua bộ đệm ảo của cổng trong vùng nhớ tham số. Việc truyền thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn 1 và 4 do CPU quản lý. Khi gặp lệnh vào/ra ngay lập tức thì hệ thống sẽ cho dừng mọi công việc khác,

ngay cả chơng trình xử lý ngắt, để thực hiện lệnh này một cách trực tiếp với cổng vào/ra.

Nếu sử dụng các chế độ xử lý ngắt, chơng trình con tơng ứng với từng tín hiệu ngắt đợc soạn thảo và cài đặt nh một bộ phận của chơng trình. Chơng trình xử lý ngắt chỉ đợc thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt và có thể xảy ra ở bất cứ điểm nào trong vòng quét.

2.2.4. Cấu trúc chơng trình của S7-200 CPU214.

Có thể lập trình cho S7-200 bằng cách sử dụng một trong những phần

mềm sau đây:

- STEP 7-Micro/DOS.

- STEP 7-Micro/WIN. (adsbygoogle = window.adsbygoogle || []).push({});

Những phần mềm này đều có thể cài đặt đợc trên các máy lập trình họ PG7xx và các máy tính cá nhân (PC).

Các chơng trình cho S7-200 phải có cấu trúc bao gồm chơng trình chính (main program) và sau đó đến các chơng trình con và các chơng trình xử lý ngắt đợc chỉ ra sau đây:

- Chơng trình chính đợc kết thúc bằng lệnh kết thúc chơng trình (MEND). - Chơng trình con là một bộ phận của chơng trình. Các chơng trình con phải đợc

viết sau lệnh kết thúc chơng trình chính, đó là lệnh MEND.

- Các chơng trình xử lý ngắt là một bộ phận của chơng trình. Nếu cần sử dụng chơng trình xử lý ngắt phải viết sau lệnh kết thúc chơng trình chính MEND. Các chơng trình con đợc nhóm lại thành một nhóm ngay sau chơng trình chính. Sau đó đến các chơng trình xử lý ngắt. Bằng cách viết nh vậy, cấu trúc chơng trình đợc rõ ràng và thuận tiện hơn trong việc đọc chơng trình sau này.

Có thể tự do trộn lẫn các chơng trình con và chơng trình xử lý ngắt đằng sau ch- ơng trình chính.

Để tạo ra một chơng trình dạng STL, ngời lập trình cần phải hiểu rõ ph- ơng thức sử dụng 9 bit của ngăn xếp logic của S7-200. Ngăn xếp logic là một khối gồm 9 bit chồng lên nhau. Tất cả các thuật toán liên quan đến ngăn xếp đều chỉ làm việc với bit đầu tiên hoặc với bit đầu tiên và bit thứ hai của ngăn xếp. Giá trị logic mới đều có thể đợc gửi [hoặc đợc nối thêm] vào ngăn xếp. Khi phối hợp hai bit đầu tiên của ngăn xếp, thì ngăn xếp sẽ đợc kéo lên một bit. Main Program

Thực hiện trong một vòng quét

MEND

SBR 0 chơng trình con thứ nhất Thực hiện khi đợc chơng trình chính

gọi  RET SBR 0 chơng trình con thứ n+1  RET INT 0 chơng trình xử lý ngắt thứ nhất

Thực hiện khi có tín hiệu báo ngắt

 RET1 INT 1 chơng trình xử lý ngắt thứ n+1  RET1 2.3. Ngôn ngữ lập trình của S7-200. 2.3.1. Phơng pháp lập trình.

S7-200 biểu diễn một mạch logic cứng bằng một dãy các lệnh lập trình.

lệnh lập trình đầu tiên và kết thúc ở lệnh cuối trong một vòng. Một vòng nh vậy đợc gọi là vòng quét.

Một vòng quét (scan cycle) đợc bắt đầu bằng việc đọc trạng thái của đầu

vào, và sau đó thực hiện chơng trình. Scan cycle kết thúc bằng việc thay đổi trạng thái đầu ra. Trớc khi bắt đầu một vòng quét tiếp theo S7-200 thực thi các nhiệm vụ bên trong và nhiệm vụ truyền thông. Chu trình thực hiện chơng trình là chu trình lặp.

Cách lập trình cho S7-200 nói riêng và cho các PLC của Siemens nói chung dựa trên hai phơng pháp lập trình cơ bản: Phơng pháp hình thang (Ladder Logic viết tắt là LAD) và phơng pháp liệt kê lệnh (Statement List viết tắt là STL).

Nếu chơng trình đợc viết theo kiểu LAD, thiết bị lập trình sẽ tự tạo ra một chơng trình theo kiểu STL tơng ứng. Nhng ngợc lại không phải mọi chơng trình đợc viết theo kiểu STL cũng có thể chuyển đợc sang LAD.

2.3.1.1. Định nghĩa về LAD

LAD là một ngôn ngữ lập trình bằng đồ họa. Những thành phần cơ bản dừng trong LAD tơng ứng với các thành phần của bảng điều khiển bằng rơle. Trong ch- ơng trình LAD các phần tử cơ bản dùng để biểu diễn lệnh logic nh sau:

- Tiếp điểm: là biểu tợng (symbol) mô tả các tiếp điểm của rơle. Các tiếp

điểm đó có thể là thờng mở | | hoặc thờng đóng |⁄ |

- Cuộn dây (coil): là biểu tợng ( ) mô tả các rơle đợc mắc theo chiều dòng điện cung cấp cho rơle.

- Hộp (box): là biểu tợng mô tả các hàm khác nhau nó làm việc khi có dòng điện chạy đến hộp. Những dạng hàm thờng đợc biểu diễn bằng hộp là các bộ định thời gian (Timer), bộ đếm (Counter) và các hàm toán học. Cuộn dây và các hộp phải đợc mắc đúng chiều dòng điện.

Mạng LAD: là đờng nối các phần tử thành một mạch hoàn thiện, đi từ đ- ờng nguồn bên trái sang đờng nguồn bên phải. Đờng nguồn bên trái là dây nóng, đờng nguồn bên phải là dây trung hòa hay là đờng trở về nguồn cung cấp (đờng nguồn bên phải thờng không đợc thể hiện khi dùng chơng trình tiện dụng STEP7-Micro/DOS hoặc STEP7-Micro/WIN). Dòng điện chạy từ bên trái qua các tiếp điểm đến các cuộn dây hoặc các hộp trở về bên phải nguồn.

2.3.1.2. Định nghĩa về ngăn xếp logic (logic stack).

Để tạo ra một chơng trình dạng STL, ngời lập trình cần phải hiểu rõ ph- ơng thức sử dụng 9 bit ngăn xếp logic của S7-200. Ngăn xếp là một khối gồm 9 bit chồng lên nhau. Tất cả các thuật toán liên quan đến ngăn xếp chỉ làm việc với bit đầu tiên hoặc bit thứ hai của ngăn xếp. Giá trị logic mới có thể đợc gửi vào ngăn xếp. Khi kết hợp hai bit đầu tiên của ngăn xếp thì ngăn xếp sẽ đợc kéo lên một bit.

S0 Stack 0 – Bit đầu tiên hay bit trên cùng của ngăn xếp (adsbygoogle = window.adsbygoogle || []).push({});

S1 Stack 1 – Bit thứ hai của ngăn xếp

S2 Stack 2 – Bit thứ ba của ngăn xếp

S3 Stack 3 – Bit thứ t của ngăn xếp

S4 Stack 4 – Bit thứ năm của ngăn xếp

S5 Stack 5 – Bit thứ sáu của ngăn xếp

S6 Stack 6 – Bit thứ bảy của ngăn xếp

S7 Stack 7 – Bit thứ tám của ngăn xếp

S8 Stack 8 – Bit thứ chín của ngăn xếp

2.3.2. Tập lệnh của S7-200.

2.3.2.1. Lệnh vào ra.

Load (LD): Lệnh LD nạp giá trị logic của một tiếp điểm vào trong bit đầu

Load (LDN): Lệnh LDN nạp giá trị logic nghịch đảo của một tiếp điểm vào trong bit đầu tiên của ngăn xếp , các giá trị cũ còn lại trong ngăn xếp bị đẩy lùi xuống một bit.

OUTPUT (=): Lệnh sao chép nội dung của bit đầu tiên trong ngăn xếp

vào bit đợc chỉ định trong lệnh. Nội dung của ngăn xếp không bị thay đổi.

2.3.2.2. Toán hạng và giới hạn cho phép.

Bảng 2.1. Giới hạn toán hạng của S7-200.

Phơng pháp truy nhập Giới hạn cho phép toán hạng của CPU214

Truy nhập bit (địa chỉ byte chỉ số bit). V (0.0 đến 4095.7) I (0.0 đến 7.7) Q (0.0 đến 7.7) M (0.0 đến 31.7) SM (0.0 đến 85.7) T (0 đến 127) C (0 đến 127) Truy nhập byte VB (0 đến 4095) IB (0 đến 7) MB (0 đến 31) SMB (0 đến 85) AC (0 đến 3) Hằng số

Truy nhập từ đơn (địa chỉ byte cao). VW (0 đến 4094) T (0 đến 127) C (0 đến 127) IW (0 đến 6) QW (0 đến 6) MW (0 đến 30) SMW (0 đến 84) AC (0 đến 3) AIW (0 đến 30) AQW (0 đến 30) Hằng số Truy nhập từ kép (địa chỉ byte

cao).

VD (0 đến 4092)

ID (0 đến 4)

QD (0 đến 4)

SMD (0 đến 82)

AC (0 đến 3)

HC (0 đến 2)

Hằng số

2.3.2.3. Các lệnh ghi/xóa giá trị cho tiếp điểm.

SET (S), RESET (R): Lệnh dùng để đóng và ngắt các điểm gián đoạn đã đợc thiết kế. Trong LAD, logic điều khiển dòng điện đóng hoặc ngắt các cuộn dây đầu ra. Khi dòng điều khiển đến các cuộn dây thì các cuộn dây đóng hoặc mở các tiếp điểm (hoặc một dãy các tiếp điểm).

2.3.2.4. Các lệnh logic đại số Boolean. (adsbygoogle = window.adsbygoogle || []).push({});

Các lệnh tiếp điểm đại số Boolean cho phép tạo lập đợc các mạch logic [không có nhớ]. Trong LAD các lệnh này đợc biểu diễn thông qua cấu trúc mạch, mắc nối tiếp hay song song các tiếp điểm thờng đóng và các tiếp điểm thờng mở. STL có thể sử dụng các lệnh A (And) và O (Or) cho các hàm hở hoặc các lệnh AN (And Not), ON (Or Not) cho các hàm kín. Giá trị của ngăn xếp thay đổi phụ thuộc vào từng lệnh.

2.3.2.5. Các lệnh tiếp điểm đặc biệt.

Có thể dùng các lệnh tiếp điểm đặc biệt để phát hiện sự chuyển trạng thái của xung (sờn xung) và đảo trạng thái của dòng cung cấp. LAD sử dụng các tiếp điểm đặc biệt để tác động vào dòng cung cấp (giá trị của đỉnh ngăn xếp). Các tiếp điểm đặc biệt không có toán hạng riêng của chính chúng và vì thế phải đặt chúng vào vị trí phía trớc của cuộn dây hoặc hộp đầu ra. Tiếp điểm chuyển tiếp dơng/ âm (các lệnh sờn trớc và sờn sau) có nhu cầu về bộ nhớ bởi vậy đối với CPU 212 chỉ có thể sử dụng nhiều nhất 128 lệnh và CPU 214 là 256 lệnh.

2.3.2.6. Các lệnh so sánh.

Khi lập trình, nếu các quyết định về điều khiển đợc thực hiện dựa trên kết quả của việc so sánh thì có thể sử dụng lệnh so sánh theo byte, từ hay từ kép của S7-200.

LAD sử dụng lệnh so sánh các giá trị của byte, từ và từ kép (giá trị thực hoặc nguyên). Những giá trị so sánh thờng là: so sánh nhỏ hơn hoặc bằng (<=), so sánh bằng (=) và so sánh lớn hơn hoặc bằng (>=).

2.3.2.7. Lệnh nhảy và lệnh gọi chơng trình con.

Các lệnh của chơng trình, nếu không có những lệnh điều khiển riêng, sẽ đợc thực hiện theo thứ tự từ trên xuống dới trong một vòng quét. Lệnh điều khiển chơng trình cho phép thay đổi thứ tự thực hiện lệnh. Chúng cho phép chuyển thứ tự thực hiện, đáng lẽ ra là tiếp theo, tới một lệnh bất cứ nào khác của chơng trình, trong đó nơi điều khiển chuyển đến phải đợc đánh dấu trớc bằng một nhãn chỉ đích. Thuộc nhóm lệnh điều khiển trong chơng trình gồm: lệnh nhảy, lệnh gọi chơng trình con. Nhãn chỉ đích, hay gọi đơn giản là nhãn, phải đợc đánh dấu trớc khi thực hiện lệnh nhảy hay lệnh gọi chơng trình con.

Việc đặt nhãn cho lệnh nhảy phải nằm trong chơng trình. Nhãn của chơng trình con, hoặc của chơng trình xử lý ngắt đợc khai báo ở đầu chơng trình. Không thể dùng lệnh nhảy JMP để chuyển điều khiển từ chơng trình chính vào một nhãn bất kỳ trong chơng trình con hoặc chơng trình xử lý ngắt. Tơng tự nh vậy cũng không thể từ một chơng trình con hay chơng trình xử lý ngắt vào bất cứ một nhãn nào nằm ngoài các chơng trình đó.

Lệnh gọi chơng trình con là lệnh chuyển điều khiển đến chơng trình con. Khi chơng trình con thực hiện xong các phép tính của mình thì việc điều khiển lại đợc chuyển về lệnh tiếp theo trong chơng trình chính nằm ngay sau lệnh gọi chơng trình con. Từ một chơng trình con có thể gọi đợc một chơng trình con khác trong nó, có thể gọi nh vậy nhiều nhất 8 lần trong S7-200. Đệ quy (trong một chơng trình con có lệnh gọi đến chơng trình chính nó) về nguyên tắc không bị cấm song phải để ý đến giới hạn trên.

MEND, END, STOP, NOP, WDR: Các lệnh này đợc dùng để kết thúc chơng trình đang thực hiện, và kéo dài khoảng thời gian dài của một vòng quét.

Trong LAD và STL chơng trình phải đợc kết thúc bằng lệnh kết thúc không điều kiện MEND. Có thể sử dụng lệnh kết thúc có điều kiện END trớc lệnh kết thúc không điều kiện.

Lệnh STOP kết thúc chơng trình, nó chuyển điều khiển chơng trình đến chế độ STOP. Nếu nh gặp lệnh STOP trong chơng trình chính

2.3.2.9. Các lệnh can thiệp vào thời gian vòng quét.

Timer là bộ tạo thời gian trễ giữa tín hiệu vào và tín hiệu ra nên trong điều khiển vẫn thờng gọi là khâu trễ. Nếu ký hiệu tín hiệu vào là x(t) và thời gian trễ đợc tạo ra bằng Timer là τ thì tín hiệu đầu ra của Timer đó là x(t-τ).

S7-200 có 64 Timer đối với CPU212 và 128 đối với CPU214 đợc chia làm hai loại khác nhau:

- Timer tạo thời gian trễ không nhớ (TON). - Timer tạo thời gian trễ có nhớ (TONR).

Các loại Timer của S7-200 (đối với CPU 214) chia theo TON, TONR và độ phân giải bao gồm:

Bảng 2.2. Độ phân giải của các Timer

Lệnh Độ phân giải Giá trị cực đại CPU212 CPU214

TON 1ms 32,767 T32 T32, T96 10ms 327,67 T33ữT36 T33ữT36, T97ữT100 100ms 3276,7 T37ữT63 T37ữT63, T101ữT127 TONR 1ms 32,767 T0 T0, T62 10ms 327,67 T1ữT4 T1ữT4, T65ữT68 100ms 3276,7 T5ữT31 T5ữT31, T69ữT95

2.3.2.10. Các lệnh điều khiển Counter.

của S7-2000 đợc chia ra làm 2 loại: bộ đếm tiến (CTU) và bộ đếm tiến/lùi (CTUD). Bộ đếm tiến CTU đếm số sờn lên của tín hiệu logic đầu vào, tức là đếm số lần thay đổi trạng thái logic từ 0 lên 1 của tín hiệu. Số sờn xung đếm đợc, đợc ghi vào thanh

ghi 2 byte của bộ đếm, gọi là thanh ghi C-word.

Bộ đếm tiến/lùi CTUD đếm tiến khi gặp sờn lên của xung vào cổng đếm, ký hiệu là CU trong LAD hoặc bit thứ 3 của ngăn xếp trong STL, và đếm lùi khi gặp sờn của xung vào

Một phần của tài liệu Thiết kế hệ thống điều khiển độ ẩm trong nhà trồng (Trang 29)