- STEP7 MICR/ DOS STEP7 MICR/ WIN.
4.3 Ngôn ngữ lập trình của S7-
4.3.1 Phương pháp lập trình
S7-200biểu diễn một mạch lôgic 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. 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ếy thúc ở lệnh lập trình cuối 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 (Scan sycle) đượ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 1 vòng quét tiếp theo S7-200 thực thi các nhiệm vụ bểntong và nhiệm vụ truyền thông.
Main progam ... MEND
SBRO chương trình con thứ nhất ... RET SBR n chưongtrình con thứ n + 1 ... RET INTO chương trình xử lý ngắt thứ nhất ... RETI INTO n chương trình sử lý ngắt thứ n + 1 ... RETI
Thực hiện trong một vòng quét
Thưc hiện khi được chương trình chính gọi
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 SIMEN nói chung dựa trên hai 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 (Statemet list viết tắt là STL).
Nếu chương trình được viếy 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 không phải mọi chương trình được viết theo kiểu STL cũng có thể chuyển sang được dạng LAD.
Giai đoạn truyền dữ Giai đoạn nhập dữ liệụ từ ngoạivi
Liệu ngoại vi
Giai đoạn truyền thông Giai đoạn thực hiện Nội bộ và tự kiểm tra hiện chương trình
* Một sốđịnh nghĩa cơ bản:
- Định nghĩa về LAD: LAD là một ngôn ngữ lập trình đồ hoạ. Những thành phần cơ bản dùng trong LAD tương ứngvới các thành phần của bảng đièu khiển của rơle.
Trong chương trình LAD các phần tưr cơ bản dùng để biểu diễn lệnh lôgic 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ả 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 nhau nó làm việc khicó 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ộ 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 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à ( Neutal) hay là đường trở về nguồn cung cấp ( Đường nguồn ben phải thường không được thể hiện khidùng chương trình tiện dụng STEP7- MICRO/ WIN).Dòng điện chạy từ trí qua các tiếp điểm đóng đến các cuộn dây hoặc các hộp trở về bên phả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 hình thức biểu diễn một chức năng của PLC.
43.2 Bảng lệnh của S7-200
- 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 giá trị bít đầu tiên của ngăn xếp có giá trị lôgic bằng một.
- Các nhãn lệnh đánh dấu vị trí trong tập lệnh.
Cả ba bảng lệnh này cùng mô tả sự thay đổi tương ứng của nội đung ngăn xếpkhi lệnh được thực hiện.
Cả hai 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 ( Immeditely), tức là giá trị được chỉ định trong lệnh vừa được chuyển vào thanh ghi ảo đồng thời được chuyển toứi tiếp điểm được chỉ dảntong lệnh ngay khi lệnh được thực hiện chứ khong phải chờ tới giai đoạn trao đổi vớ ngoại vi của vòng quét. Điều dó khácvới lệnh không tức thời là giá trị được chỉ định trong lệnh chỉ được chuyển vào thanh ghi ảo khi thực hiện lệnh.
( Bảng lệnh của S7-200 được thực hiện vô điều kiện: Bảng 1) ( Bảng lệnh của S-7200 được thực hiện có điều kiện: Bảng 2)
Bảng 1. Bảng lệnh của S7-200 đuợc thực hiện vô điều kiện
Tên lệnh ỷ nghĩa
= n Giá trị của bít đầu tiên trong ngăn xếp được sao chép sang điểm n chỉ dẫn trong lệnh
= 1 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ựchiện bằng phép tính AND với điểm n chỉ dẫn trong lệnh. Kết quả đựơc ghi lại vào bít đầu tiên của gă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á tri 1 nếu giá trị byte n1 không lớn hơn giá trị của byte n2. Kết quả được ghi lại vào bít đầu tiên của ngăn xếp AB = 1n 2n 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á tri 1 nếu giá trị của hai byte n1và n2 thoả mãn n1 = n2. Kết quả được ghi lại 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á tri 1 nếu nội dung của 2 byte n1 và n2 thoả mẵn n1> n2. Kết quả được ghi lại 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á tri 1 nếu nội dung của hai từ kép ( 4byte) n1 và n2 thoả mãn n1< n2. Kết quả được ghi lại 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á tri 1 nếu nội dung của hai từ kép n1 và n2 thoả mãn n1= n2. Kết quả được ghi lại 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á tri 1 nếu nội dung của hai từ kép n1 và n2 thoả mãn n1> n2. Kết quả được ghi lại vào bít đầu tiên của ngăn xếp AR = n1, n2(5) 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á tri 1 nếu nội dung hai số thực n1 và n2 thoả mãn n1= n2. Kết quảđược ghi lại vào bít đầu tiên của ngăn xếp AR> = n1,
n2(5)
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á tri 1 nếu nội dung hai số thực n1 và n2 thoả mãn n1> n2. Kết quả được ghi lại vào bít đầu tiên của ngăn xếp AR< = n1,
n2(5)
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á tri 1 nếu nội dung hai số thực n1 và n2 thoả mãn n1< n2. Kết quảđược ghi lại vào bít đầu tiên của ngăn xếp AI n Lệnh AND đượ 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 lại 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à của bít thứ hai trong ngăn xếp, sau đó 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 1 bít
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 lại 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á tri 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 lai 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á tri 1 nếu nội dung của hai từ n1 và n2 thoả mãn n1< n2. Kết quả được ghi lại 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á tri 1 nếu nội dung hai từ n1 và n2 thoả mãn n1= n2. Kết quả được ghi lại 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á tri 1 nếu nội dung hai từ n1 và n2 thoả mãn n1> n2. Kết quả được ghi lại vào bít đầu tiên của ngăn xếp
CTU C x x, 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 R của bộ đếm đựơc kích.
CTUD C xx, 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 của ngăn xếp. Khi xuất hiện sườn xuống của tín hiệu.
ED Đặt giá trị logic 1 vào bít đầu của ngăn xếp. Khi xuất hiện sườn lên của tín hiệu.
LD n Nạp giá trị logic của điểm n chỉ dẫn trong lệnh vào bít đầu tiên của ngăn xếp
byte n1 và n2 thoả mãn n1< = n2.
LDB = n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1 = n2.
LDB> = n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1> = n2.
LDD = n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 từ kép n1 và n2 thoả mãn n1 = n2.
LDD> = n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 từ kép n1 và n2 thoả mãn n1 > = n2.
LDI n Lệnh nạp tức thời giá trị logic của tiếp điểm n chỉ dẫn trong lệnh vào bít đầu tiên trong ngăn xếp
LDN Lệnh nạp giá trị logic nghịch đảo của tiếp điểm n chỉ dẫn trong lệnh vào bít đầu tiên trong ngăn xếp
LDNI n Lệnh nạp tức thời giá trị logic nghịch đảo của tiếp điểm n chỉ dẫn trong lệnh vào bít đầu tiên trong ngăn xếp
LDR = n1,n2 (5) Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung hai số thực n1 và n2 thoả mãn n1 = n2.
LDR>=n1,n2
(5)
Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 số thực n1 và n2 thoả mãn n1 > = n2.
LDR<=n1,n2
(5)
Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 số thực n1 và n2 thoả mãn n1< = n2.
LDW<= n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 từ n1 và n2 thoả mãn n1 < = n2.
LDW = n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 từ n1 và n2 thoả mãn n1 = n2.
LDW> =n1, n2 Bít đầu tiên của ngăn xếp nhận giá trị logic 1 nếu nội dung 2 từ n1 và n2 thoả mãn n1 > = n2.
giá trị cũ của bít dưới, độ sâu của ngăn xếp giảm đi 1 bít
LPS Sao chép giá trị của bít đầu tiên trong ngăn xếp vào bít thứ hai. Nội dung còn lại của ngăn xếp bị đẩy xuống 1 bít
LRD Sao chép giá trị của bít thứ hai vào bít đầu tiên trong ngănxếp. Cácgiá trị còn lại của ngăn xếp giữ nguyên vị trí
MEND (1 ) ( 2
)
Kết thúc phần chương trình chính trong một vòng quét NOT Đảo giá trị logíc của bít đầu tiên của ngăn xếp
O n Thực hiện toán tử OR giữa bít dầu tiên của ngăn xếp với điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OB < = n1, n2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1< = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OB = N1, N2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1= n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OB > = n1,n2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1> = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OD< = n1, n2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1< = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OD = n1, n2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1= n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OD> = n1, n2 Thực hiện toán tử OR giữa bit đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội dung 2 byte n1 và n2 thoả mãn n1> = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OI n Thực hiện tức thời toán tử OR giữa bit đầu tiên của ngăn xếp với điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OLD n Thực hiện toán tử OR giữa bit đầu và bít thứ hai trong ngăn xếp Kết quả được ghi lại vào bít đầu tiên. Các giá trị còn lại của ngăn xếp được chuyển lên một bít.
ON n Thực hiện toán tử OR giữa giá trị logíc của bít đầu tiên trong ngăn xếp với giá trị lôgíc nghịch đảo của điểm n chỉ dẫn trong lệnh Kết quả được ghi lại vào bít đầu trong ngăn xếp
ONI n Thực hiện tức thời toán tử OR giữa giá trị lôgíc của bit đầu tiên trong ngăn xếp với giá trị logíc nghịch đảo của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bít đầu trong ngăn xếp OR = n1, n2 ( 5) Thực hiện toán tử OR giữa giá trị của bit đầu tiên trong ngăn
xếp với giá trị logíc 1 nếu 2 số thực n1 và n2 thoả mãn n1 = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OR> =n1, n2 (5) Thực hiện toán tử OR giữa giá trị lôgíc của bít đầu tiên trong ngăn xếp với giá trị logíc 1 nếu 2 số thực n1 và n2 thoả mãn n1 > = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp OR<=n1, n2 ( 5) Thực hiện toán tử OR giữa giá trị logíc của bit đầu tiên trong
ngăn xếp với giá trị logíc 1 nếu 2 số thực n1 và n2 thoả mãn n1< = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp OW= n1, n2 (5) Thực hiện toán tử OR giữa giá trị lôgíc của bít đầu tiên trong
ngăn xếp với giá trị logíc 1 nếu 2 từ n1 và n2 thoả mãn n1 = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OW<=n1, n2 (5) Thực hiện toán tử OR giữa giá trị lôgíc của bít đầu tiên trong ngăn xếp với giá trị logíc 1 nếu 2 từ n1 và n2 thoả mãn n1< = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp
OW>=n1, n2 (5) Thực hiện toán tử OR giữa giá trị lôgíc của bít đầu tiên của ngăn xếp với giá trị logíc 1 nếu nội 2 từ n1 và n2 thoả mãn
n1> = n2. Kết quả được ghi lại vào bít đầu trong ngăn xếp RET ( 3) (1) (4) Lệnh thóat khỏi chương trình con và trả điều khiển về chương
trình đã gọi nó
RETI (3) (2) (4) Lệnh thoá khỏi chương trình sử lý ngắt (Interrupt) và trả chương trình về chương trình chính
Bảng 2. Bảng lệnh của S7-200 được thực hiện có điều kiện
Tên lệnh Ý nghĩa
+D IN1, IN2 Thực hiện phép cộng hai số nguyên kiểu từ kép IN1và IN2. Kết quả được ghi lại vào IN2
+I IN1, IN2 Thực hiện phép cộng hai số nguyên kiểu từ IN1 và IN2. Kết quả được ghi lại vào IN2
-D IN1, IN2 Thực hiện phép trừ hai số nguyên kiểu từ kép IN1và IN2. Kết quả được ghi lại vào IN2
-I IN1, IN2 Thực hiện phép trừ hai số nguyên kiểu từ IN1và IN2. Kết quả được ghi lại vào IN2
+R IN1, IN2 (5) Thực hiện phép cộng hai số thực (32bít) IN1 và IN2. Kết quả được ghi lại vào IN2
-R IN1, IN2 (5) Thực hiện phép cộng hai số thực (32bít) IN1 và IN2. Kết quả được ghi lại vào IN2
*R IN1, IN2 (5) Thực hiện phép hai số thực (32b ít) IN1và IN2. Kết quả được ghi lại vào IN2
/R IN1, IN2 (5) Thực hiện phép chia hai số thực (32bít) IN1và IN2. Kết quả được ghi lại vào IN2
AND DIN1,IN2 Thực hiện toán tử logíc AND giữa các giá trị kiểu từ kép IN1 và IN2. Kết quả được ghi lại vào IN2
ANDWIN1,IN2 Thực hiện toán tử logíc AND giữa các giá trị kiểu từ IN1 và IN2. Kết quả được ghi lại vào IN2
INT,EVENT ATT
IN,OUT,LEN
Biến đổi một xâu ký tự từ mã ASCII từ vị trí IN (kiểu byte) với độ dài LEN (kiểu byte) sang mã hexa (cơ số