I. Giới thiệu kết cấu phần cứng của cpu
c. Vùng đối tợng.
c. Vùng đối tợng.
Vùng đối tợng đợc sử dụng để lu giữ dữ liệu cho các đối tợng lập trình với 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 thanh ghi của timer, bộ đếm, các bộ đếm tốc độ cao, bộ đệm vào/ ra t- ơng tự và các thanh ghi Acumulator (AC).
Kiểu dữ liệu 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 đối tợng đó.
Vùng đối tợng đợc phân chia nh sau: Timer (đọc/ ghi) T0 T127 Bộ đếm (đọc/ ghi) C0 C127 Bộ đếm cổng vào tơng tự (chỉ đọc) C0 C127 Bộ đếm cổng ra tơng tự (chỉ ghi) AW0 AW127
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 HSC! HSC2 6. Mở rộng cổng vào ra và cách tính địa chỉ :
CPU 224 có 7 modul mở rộng cả tơng tự và số.
Có thể mở rộng cổng vào, ra của PLC bằng cách nối thêm vào nó các modul mở rộng về phía bên phải của CPU làm thành một móc xích địa chỉ của các vị trí, các modul đợc xác định bằng kiểu vào/ ra và vị trí của modul trong móc xích bao gồm các modul có cùng kiểu VD nh modul cổng ra không thể gán cho modul cổng vào cũng nh modul tơng tự không thể gán cho modul số và ngợc lại.
Các modul 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 modul.
Sau đây là một VD về cách đặt địa chỉ cho các modul mở rộng trên CPU 224. CPU 224: CPU 224 Modul 0 4vào/ 4 ra Modul1 8 vào Modul2 3vào analog/ 1ra analog Modul1 8 vào Modul4 3vào analog/ 1ra analog I0.0 Q0.0 I0.1 Q0.1 I0.2 Q0.2 I0.3 Q0.3 I0.4 Q0.4 I0.5 Q0.5 I0.6 Q0.6 I0.7 Q0.7 I1.0 Q1.0 I2.0 I2.1 I2.2 I2.3 Q2.0 Q2.1 Q2.2 Q2.3 I3.0 I3.1 I3.2 I3.3 I3.4 I3.5 I3.6 I3.7 AIW0 AIW2 AIW4 AQW0 Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 Q0.7 AIW8 AIW10 AIW12 AQW4
I1.1 Q1.1 I1.2 I1.3 I1.4 I1.5 7. Ngôn ngữ lập trình của PLC S 7 – 200 : a. Phơng pháp lập trình.
PLC S7 – 200 biểu diễn một nạch logic cứng bằng một dẫy các lệnh lập trình chơng trình bao gồm một tập dẫy các lệnh. PLC S7 – 200 thực hiện ch- ơng trình bắt đầu từ lệnh lập trình đầu tiên và kết thúc ở lệnh lập trình cuối cùng trong một vòng, một vòng nh vậy đợc gọi là một vòng quét (scan).
Một vòng quét đợ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. Kết thúc bằng việc thay đổi đầu ra. Trớc khi bắt đầu một vòng quét tiếp theo PLC S7 – 200 thực hiện 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.
giai đoạn chuyển dữ liệu ra
ngoại vi giai đoạn nhập dữ liệu từ ngoại vi
giai đoạn thực hiện chuơng trình
giai đoạn truyền thông nội bộ và tự kiểm tra lỗi
H4.4 Thực hiện chơng trình theo vòng quét trong PLC S7 – 200. Cách lập trình của PLC S7 – 200 nói chung và của Siemens nói riêng dựa trên 2 phơng pháp cơ bản:
Phơng pháp hình thang (ladder logic viết tắt thành LAD) và phơng pháp liệt kê lệnh (statement lits viết tắt thành 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, ngợc lại một chơng trình đợc viết theo kiểu STL cũng có thể đợc chuyển sang kiểu LAD. Bộ lệnh của STL có một chức năng tơng ứng với các tiếp điểm, các quận dây và các hộp dùng trong LAD. Những lệnh này phải đọc và phối hợp đợc trạng thái của các tiếp điểm để đa ra đợc một quyết định về giá trị trạng thái đầu hoặc giá trị logic cho phép hoặc không cho phép thực hiện chức năng của một (hay nhiều) hộp. Để dễ dàng làm quen với các thành phần cơ bản của LAD hay STL cần phải nắm đợc các định nghĩa cơ bản sau đây.
+ Định nghĩa LAD:
LAD là một ngôn ngữ lập trình bằng đồ hoạ. 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ơ bả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 (┤/├).
- Quận đây (coil) là biểu tợng ▬﴾ ﴿▬ mô tả rơle đợc mắc theo kiểu chiều dòng điện đợc 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 hàm thờng đợc biểu diễn bằng hộp là các bộ 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 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 toàn diện đi từ dò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 hoà 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 STEP 7 – Micro/ dos hoặc STEP 7 – Micro/ win) dòng điện chạy từ trái qua các tiếp điểm đóng trên các cuộn dây hoặc các hộp trở về bên trái nguồn.
+ Định nghĩa về STL:
Phơng pháp liệt kê lệnh (STL) là phơng pháp thể hiện chơng trình dới dạng tập hợp các câu lệnh, mỗi câu lệnh trong chơng trình kể cả những lệnh hiện thực biểu diễn một chức năng của PLC.
Định nghĩa về ngăn xếp logic (logic stack):
S0 Stack0 – bít đầu tiên hay bít trên cùng của ngăn xếp Stack1 – bít thứ 2 của ngăn xếp
S1
S2
Stack2 – bít thứ 3 của ngăn xếp Stack3 – bít thứ 4 của ngăn xếp Stack4 – bít thứ 5 của ngăn xếp Stack5 – bít thứ 6 của ngăn xếp Stack6 – bít thứ 7 của ngăn xếp Stack7 – bít thứ 8 của ngăn xếp Stack8 – bít thứ 9 của ngăn xếp S3 S4 S5 S6 S7 S8
Để tạo 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 bít ngăn xếp logic của PLC S7 - 200. Ngăn xếp logic là một khối gồm 9 bít 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 bít đầu tiên hoặc với bít đầu hoặc bít thứ 2 của ngăn xếp. Giá trị logic đều có thể đợc gửi (hoặc đợc nối thêm ) vào ngăn xếp. Khi phối hợp 2 bít đầu tiên của ngăn xếp, thì ngăn xếp sẽ đợc kéo lên một bít. Ngăn xếp và tên của từng bít đợc biểu diễn nh trong hình 2.2.
VD: về Ladder logic và Statement list:
H 2.3 : mô tả việc thực hiện lệnh LD (viết tắt của từ tiếng anh load) đa giá trị logic của tiếp điểm I0.0 vào trong ngăn xếp theo cách biểu diễn của LAD và STL. LAD STL I0.0 Q1.0 LD I0.0 = Q0.1 H 2.3 Mô tả lệnh bằng LAD và STL b. Bảng lệnh của PLC S7 – 200.
Hệ lệnh của PLC S7 – 200 đợc chia làm 3 nhóm, chia theo các lệnh và xắp xếp chúng theo thứ tự Alphabel:
- Các lệnh mà khi thực hiện thì làm việc độc lập không phụ thuộc vào giá trị logic của ngăn xếp.
- Các lệnh chỉ thực hiện đợc khi bít đầu tiên của ngăn xếp có giá trị bằng 1. - Các nhãn lệnh đặt giá trị trong tập lệnh.
3 bảng sau ứng với các lệnh mô tả sự thay đổi tơng ứng của nội dung ngăn xếp khi lệnh đợc thực hiện.
Cả 2 phơng pháp LAD và STL sử dụng ký hiệu I để chỉ định việc thực hiện tức thời (inmidiately) tức là giá trị chỉ định trong lệnh vừa đợc chuyển vào thanh ghi ảo đồng thời đợc chuyển tới tiếp điểm chỉ dẫn trong lệnh ngay khi lệnh đợc thực hiện chứ không phải chờ đến giai đoạn trao đổi với ngoại vi của vòng quét, điều đó khác với lệnh không thức thời là giá trị đợc chỉ định trong lệnh đợc chuyển vào thanh ghi ảo khi thực hiện lệnh.
Bảng 1: Các lệnh của PLC S7 – 200 đợc thực hiện vô điều kiện.
Tên lệnh Mô tả
N Giá trị của bít đầu tiên trong ngăn xếp đợc sao chép cho sang điểm n chỉ dẫn trong lệnh
…n Giá trị của bít đầu tiên trong ngăn xếp đợc sao chép trực tiếp sang điểm n chỉ dẫn ngay khi lệnh đợc thực hiện
A n Giá trị bít đầu tiên của ngăn xếp đợc thực hiện bằng phép tính AND với điểm n chỉ dẫn trong lệnh. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AB < = n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu giá trị của byte n1 không lớn hơn giá trị của byte n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AB = n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu giá trị của 2 byte n1 và n2 thoả mãn n1 = n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp AB > = n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong
ngăn xếp với giá trị 1 nếu giá trị của 2 byte n1 và n2 thoả mãn n1 ≥ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp AD <= n1n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong
ngăn xếp với giá trị 1 nếu nội dung của 2 từ ghép (4 byte) n1
và n2 thoả mãn n1≤n2. Kết quả đợc ghi vào bít đầu tiên của
ngăn xếp
AD = n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu nội dung của 2 từ ghép n1 và n2
thoả mãn n1 = n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AD >= n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu nội dung của 2 từ ghép n1 và n2
thoả mãn n1 ≥ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AR = n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu nội dung của 2 số thực n1 và n2
thoả mãn n1 = n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AR >= n1 n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu nội dung của 2 số thực n1 và n2
thoả mãn n1 ≥ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
AR <= n1n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị 1 nếu nội dung của 2 số thực n1 và n2
thoả mãn n1 ≤ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
Lệnh AND đợc thực hiện tức thời giữa giá trị của bít đầu tiên của ngăn xếp với điểm n đợc chỉ dẫn . Kết quả đợc ghi vào bít đầu tiên của ngăn xếp
ALD Thực hiện lệnh AND giữa giá trị của bít đầu tiên và bít thứ 2 trong ngăn xếp sau khi ghi lại kết quả vào bít đầu tiên. Các giá trị còn lại trong ngăn xếp đợc kéo lên một bit
AN n Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị nghịch đảo của điểm n trong chỉ dẫn. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp.
ANI n Thực hiện tức thời lệnh AND giữa giá trị của bít đầu tiên trong ngăn xếp với giá trị nghịch đảo của điểm n chỉ dẫn trong lệnh. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp. AW <= n1.n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong
ngăn xếp với giá trị 1 nếu nội dung của 2 từ n1 và n2 thoả mãn n1 ≤ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp AW = n1.n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong
ngăn xếp với giá trị 1 nếu nội dung của 2 từ n1 và n2 thoả mãn n1 = n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp AW >= n1.n2 Thực hiện lệnh AND giữa giá trị của bít đầu tiên trong
ngăn xếp với giá trị 1 nếu nội dung của 2 từ n1 và n2 thoả mãn n1 ≥ n2. Kết quả đợc ghi vào bít đầu tiên của ngăn xếp CTU
Cxx,PV
Khởi động bộ đếm tiến theo sờn lên tín hiệu đầu vào. Bộ đếm đợc đặt lại trạng thái ban đầu (reset) nếu đầu vào của
bộ đếm đợc kích CTUD
Cxx,PV
Khởi động bộ đếm tiến theo sờn lên tín hiệu đầu vào thứ nhất và đếm lùi theo sờn lên tín hiệu đầu vào thứ hai bộ đếm đợc (reset) lại nếu đầu vào R đợc kích
ED Đặt giá trị logic 1 vào bít đầu tiên của ngăn xếp khi suất hiện sờn xuống của tín hiệu
Bảng 2: Các lệnh có điền kiện (chỉ thực hiện khi bít đầu tiên trong ngăn xếp có giá trị logic 1).
Tên lệnh Mô tả
+ D IN1 , IN2 Thực hiện phép cộng 2 số nguyên kiểu từ kép IN1, IN2
kết quả ghi lại vào IN2.
+ I IN1 , IN2 Thực hiện phép cộng 2 số nguyên kiểu từ kép IN1, IN2
kết quả ghi lại vào IN2.
- D IN1 , IN2 Thực hiện phép trừ 2 số nguyên kiểu từ IN1, IN2 kết quả ghi lại vào IN2.
- I IN1 , IN2 Thực hiện phép trừ 2 số nguyên kiểu từ kép IN1, IN2 kết quả ghi lại vào IN2.
+ R IN1 , IN2(5) Thực hiện phép cộng 2 số thực (32 bít) IN1 , IN2 . Kết quả ghi vào IN2.
- R IN1 , IN2(5) Thực hiện phép trừ 2 số thực (32 bít) IN1 , IN2 . Kết quả ghi vào IN2
* R IN1 , IN2(5) Thực hiện phép nhân 2 số thực (32 bít) IN1 , IN2 . Kết quả ghi vào IN2
/ R IN1 , IN2(5) Thực hiện phép chia 2 số thực (32 bít) IN1 , IN2 . Kết quả ghi vào IN2
ANDD IN1, IN2(5)
Thực hiện toán tử lôgic AND giữa các giá trị kiểu từ ghép IN1 , IN2 . Kết quả ghi vào IN2 .
ANDW IN1, IN2
Thực hiện toán tử lôgic AND giữa các giá trị kiểu từ IN1 , IN2 . Kết quả ghi vào IN2 .
ATCH INT, EVENT
Khai báo chơng trình xử lý ngắt theo kiểu EVENT
ATH IN, OUT, LEN
Biến đổi một sâu ký tự từ mã ASCH từ vị trí IN (kiểu byte) với độ dài LEN (kiểu byte) sang mã hexa (cơ số 16) và ghi vào mảng kể từ byte OUT
ATT DATA, TABLE
Nối một giá trị kiểu từ (2 byte) vào mảng TABLE BCDI IN Biến đổi một giá trị từ mã BCD có độ dài 2 byte sang
kiểu nguyên. Kết quả ghi vào IN BMB IN, OUT,
N
Sao chép một mảng gồm N byte kể từ vị trí đầu IN (byte) vào mảng có vị trí đầu OUT (2 byte)
BMW IN, OUT, N
Sao chép một mảng từ (2 byte) với độ dài N (1 byte) và vị trí đầu IN (2byte) vào mảng có vị trí đầu OUT (2 byte) CALL n(6)(1) Gọi chơng trình con đợc đánh nhãn n
CRET (3)(1)(4) Kết thúc chơng trình con và trả điều khiển về chơng trình đã gọi nó
CRETI (3)(2)(4) Kết thúc một chơng trình xử lý ngắt và trả điều khiển về chơng trình chính
DECD IN Giảm giá trị của từ kép IN đi một đơn vị DECO IN,
OUT
Giải mã giá trị của một byte IN sau đó gán giá trị một vào bít của từ OUT (2 byte) có chỉ số là IN
DECW IN Giảm giá trị của từ IN đi một đơn vị DISI (1) Vô hiệu hoá tất cả các ngắt (interrupt) DIV IN1,
IN2
Chia số nguyên 16 bít, đợc xác định là từ thấp của IN2
(kiểu từ kép), cho IN1 kiểu từ. Kết quả đợc ghi lại vào IN2
DTCH EVENT
Vô hiệu hoá một kiểu ngắt EVENT DTC IN,
OUT(5)
Chuyển đổi một số nguyên tố 32 bít IN có dấu sang thành một số thực 32 bít OUT
ENCO IN, OUT
Chuyển đổi chỉ số của bít thấp nhất có giá trị logic 1 trong từ IN sang chuyển thành nột số nguyên tố và ghi vào 4 bít cuối của byte OUT
ENI (1) Đặt tất cả ngắt vào chế độ tích cực FIFO
TABLE, DATA(5)
Lấy giá trị đã đợc cho vài đầu ra khỏi bảng và chuyển