Giáo trình PLC S7-300: Lý thuyết và ứng dụng - Chương 2: Ngôn ngữ lập trình STL
? STA (Status bit) : Bit trạng thái này luôn có giá trị logic của tiếp điểm được
chỉ định trong lệnh. Ví dụ cả hai lệnh:
A I 0.3
AN I0.3
đều gán cho bit STA cùng một giá trị là nội dung của cổng vào số I 0.3.
? OR: Ghi lại giá trị của phép tính logic ? cuối cùng được thực hiện để phụ
giúp cho việc thực hiện phép toán ? sau đó. Điều này là cần thiết vì trong
một biểu thức hàm hai trị, phép tính ? bao giờ cũng phải được thực hiện
trước các phép tính ? .
? OS (Store overflow bit): Ghi lại giá trị bit bị tràn ra ngoài mảng ô nhớ.
? OV (Overflow bit): Bit báo kết quả phép tính bị tràn ra ngoái mảng ô nhớ.
? CC0 và CC1(Condition code): Hai bit báo trạng thái của kết quả phép tính vơi
số nguyên, số thực, phép dịch chuyển hoặc phép tính logic trong ACCU
p tính OR giữa RLO với toán hạng và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): BR CC1 CC0 OV OS OR STA RLO FC - - - - - x x x 1 Ví dụ Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 25 e. Lệnh OR NOT Cú pháp ON Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ I, Q, M, L, D, T, C. Nếu FC = 0 lệnh sẽ gán giá trị logic của toán hạng vào RLO. Ngược lại khi FC = 1 nó sẽ thực hiện phép tính OR giữa RLO với NOT toán hạng và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): Ví dụ f. Lệnh thực hiện phép tính AND với một biểu thức Cú pháp A( Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO. Ngược lại khi FC = 1 nó sẽ thực hiện phép tính AND giữa RLO với giá trị logic của biểu trong dấu ngoặc sau nó và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): Ví du Q0.4 = (( I0.0 OR M10.0) AND (I0.2 OR M10.3)) AND (M10.1) Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 26 g. Lệnh thực hiện phép tính AND với giá trị nghịch đảo của một biểu thức Cú pháp AN( Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO. Ngược lại khi FC = 1 nó sẽ thực hiện phép tính AND giữa RLO với giá trị nghịch đảo logic của biểu trong dấu ngoặc sau nó và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): h. Lệnh thực hiện phép tính OR với gia 1trị một biểu thức Cú pháp O( Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO. Ngược lại khi FC = 1 nó sẽ thực hiện phép tính OR giữa RLO với giá trị logic của biểu trong dấu ngoặc sau nó và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): i. Lệnh thực hiện phép tính OR với nghịch đảo giá trị một biểu thức Cú pháp ON( Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO. Ngược lại khi FC = 1 nó sẽ thực hiện phép tính OR giữa RLO với giá trị nghịch đảo logic của biểu trong dấu ngoặc sau nó và ghi lại kết quả vào RLO. Lệnh tác động vào thanh ghi trạng thái ( Status word) như sau (kí hiệu – chỉ nội dung bit không bị thay đổi, x là bị thay đổi theo lệnh): Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 27 j. Lệnh ghi giá trị logic 1 vào RLO Cú pháp SET Lệnh không có toán hạng và có tác dụng ghi 1 vào RLO Lêïnh tác động vào thanh ghi trạng thái (Status word) như sau: BR CC1 CC0 OV OS OR STA RLO FC - - - - - - 1 1 0 k. Lệnh gán có điều kiện giá trị logic 1 vào ô nhớ Cú pháp S Toán hạng là địa chỉ bit I, Q, M, L, D. Nếu RLO = 1, lệnh sẽ ghi giá trị 1 vào ô nhớ có địa chỉ cho trong toán hạng. Lệnh tác động vào thanh ghi trạng thái (Status word) như sau: BR CC1 CC0 OV OS OR STA RLO FC - - - - - 0 x - 0 l. Lệnh gán có điều kiện giá trị logic 0 vào ô nhớ Cú pháp R Toán hạng là địa chỉ bit I, Q, M, L, D. Nếu RLO = 1, lệnh sẽ ghi giá trị 0 vào ô nhớ có địa chỉ cho trong toán hạng. Lệnh tác động vào thanh ghi trạng thái (Status word) như sau: BR CC1 CC0 OV OS OR STA RLO FC - - - - - 0 x - 0 m. Lệnh phát hiện sườn lên Cú pháp FP Toán hạng là địa chỉ bit I, Q, M, L, D và được sử dụng như một biến cờ để ghi nhận lại giá trị của RLO tại vị trí này trong chương trình, nhưng của vòng quét trước. Tại mỗi vòng lệnh sẽ kiểm tra: nếu biến cờ (toán hạng) có giá trị 0 và Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 28 RLO có giá trị 1 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồng thời chuyển nội dung của RLO vào lại biến cờ. Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn lên trong RLO. Ví dụ: Lệnh phát hiện sườn lên. A I0.0 FP M10.0 = Q4.5 Sẽ tương đương với đoạn chương trình sau A I0.0 AN M10.0 = Q4.5 A I0.0 = M10.0 Lệnh tác động vào thanh ghi trạng thái (Status word) như sau: BR CC1 CC0 OV OS OR STA RLO FC - - - - - 0 x x 1 n. Lệnh phát hiện sườn xuống Cú pháp FN Toán hạng là địa chỉ bit I, Q, M, L, D và được sử dụng như một biến cờ để ghi nhận lại giá trị của RLO tại vị trí này trong chương trình, nhưng của vòng quét trước. Tại mỗi vòng lệnh sẽ kiểm tra: nếu biến cờ (toán hạng) có giá trị 1 và RLO có giá trị 0 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồøng thời chuyển nội dung của RLO vào lại biến cờ. Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn xuống trong RLO.Lệnh tác động vào thanh ghi trạng thái (Status word) như sau: BR CC1 CC0 OV OS OR STA RLO FC - - - - - 0 x x 1 2.2.2 Lệnh đọc, ghi trong ACCU Các CPU của S7_300 thường có hai thanh ghi Accunulator (ACCU) kí hiệu là ACCU1 và ACCU2. Hai thanh ghi ACCU có cùng kích thước 32 bits (1 từ kép). Mọi phép tính toán trên số thực, số nguyên, các phép tính logic với mảng Giá trị RLO tại vòng quét hiện thời Giá trị RLO tại vòng quét trước được nhớ vào M10.0 Hình 2.1. Hình mô tả lệnh FP Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 29 nhiều bits đều được thực hiện trên hai thanh ghi này. Chúng có cấu trúc như sau: 31 24 23 16 15 8 7 0 ACCU1 ACCU2 Từ cao Từ thấp a. Lệnh đọc vào ACCU Cú pháp L Toán hạng là dữ liệu (số nguyên, thực, nhị phân) hoặc địa chỉ. Nếu là địa chỉ thì - Byte IB, QB, PIB, MB, LB, DBB, DIB trong khoảng 0 – 65535 - TưØ IW, QW, PIW, MW, LW, DBW, DIW trong khoảng 0 – 65534 - Từ kép ID, QD, PID, MD, LD, DBD, DID trong khoảng từ 0 – 65534 Nếu là dữ liệu thì các dạng dữ liệu hợp lệ của toán hạng cho trong bảng sau Byte cao Byte thấp Byte cao Byte thấp Byte cao Byte thấp Byte cao Byte thấp Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 30 Bảng 2.1: Các dạng dữ liệu hợp lệ của toán hạng Lệnh L có tác dụng chuyển dữ liệu hoặc nội dung của ô nhớ có địa chỉ là toán hạng vào thanh ghi ACCU1. Nội dung cũ của ACCU1 được chuyển vào ACCU2. Trong trường hợp giá trị chuyển vào có kích thước nhỏ hơn từ kép thì chúng sẽ được ghi vào theo thứ tự byte thấp của từ thấp, byte cao của từ thấp, byte thấp của từ cao, byte cao của từ cao. Những bit còn trống trong ACCU1 được ghi 0. Ví dụ1 L IB0 sẽ chuyển nội dung của IB0 vào ACCU1 như sau 31 24 23 16 15 8 7 0 ACCU1 Ví dụ 2 L MW20 //sẽ chuyển nội dung của MW20 gồm 2 bytes MB20, MB21 vào ACCU1 theo thứ tự 31 24 23 16 15 8 7 0 Dữ liệu Ví dụ Giải thích L +5 Ghi 5 vào từ thấp của ACCU1 B#(,) L B#(1,8) Ghi 1 vào byte cao của từ thấp và 8 vào byte thấp của từ thấp trong ACCU L# L L#5 Ghi 5 vào ACCU1(số nguyê 32 bits) 16# L B#16#2E L W#A2EB L DW#2C1E_A2EB Dữ liệu dạng cơ số 16 2# L 2#11001101 Dữ liệu dạng cơ số 2 ‘’ L ‘AB’ L ‘ABCD’ Dữ liệu dạng kí tự C# L C#1000 Dữ liệu là giá trị đặt trước cho bộ đếm S5TIME# L S5TIME#2S Dữ liệu là giá trị đặt trước cho Timer (PV) P# L P#M10.2 Dữ liệu là địa chỉ ô nhớ(dùng cho con trỏ) D# L D#2000-6-20 Dữ liệu là giá trị về ngày/tháng/năm(16bits) T# L T#0H_1M_10S Dữ liệu về thời gian giờ/phút/giây(32bits) 0 0 0 IB 0 Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 31 ACCU1 Lệnh không sửa đổi thanh ghi trạng thái (Status word). Ví dụ 3 L 100 // ACCU1 =100 L 200 // ACCU1 =200, ACCU2=100 b. Lệnh chuyển nội dung của ACCU1 tới ô nhớ. Cú pháp T Toán hạng là đại chỉ: - Byte IB, QB, PIB, MB, LB, DBB, DIB trong khoảng 0 – 65535 - TưØ IW, QW, PIW, MW, LW, DBW, DIW trong khoảng 0 – 65534 - Từ kép ID, QD, PID, MD, LD, DBD, DID trong khoảng từ 0 - 65534 Lệnh chuyển nội dung của ACCU1 vào ô nhớ có địa chỉ là toán hạng. Lệnh không thay đổi nội dung của ACCU2.Trong trường hợp ô nhớ có kích thước nhỏ hơn từ kép thì nội dung của ACCU1 được chuyển ra theo thứ tự byte thấp của từ thấp, byte cao của từ thấp, byte thấp của từ cao, byte cao của từ cao. Ví dụ T QB0 sẽ chỉ chuyển nội dung của byte thấp của từ thấp trong ACCU1 vào IB0 và lệnh T MW20 sẽ chỉ chuyển byte cao của từ thấp vào MW20, byte thấp của từø thấp vào MW21. Lệnh không sửa đổi thanh ghi trạng thái (Status word). 0 0 MB20 MB21 Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M
File đính kèm:
- giao_trinh_plc_s7_300_ly_thuyet_va_ung_dung_chuong_2_ngon_ng.pdf