b) Những khốiOB đặc biệt
2.2. Tập lệnh cơ bản của SIMATIC S7-300 và ứng dụng
2.2.1. Nhĩm lệnh bit logic
2.2.1.1. Lệnh AND
Tốn hạng là kiểu dữ liệu BOOL hay địa chỉ bit I,Q, M, T, C, D, L
FBD LAD STL
Hình 2-5: Cách khai báo hàm AND Tín hiệu ra Q4.0 sẽ bằng 1 khi đồng thời tín hiệu I0.0=1 và I0.1=1. Dữ liệu vào và ra :
Vào: I0.0, I0.1: BOOL Ra : Q4.0 : BOOL
2.2.1.2. Lệnh OR
Tốn hạng là kiểu dữ liệu BOOL hay địa chỉ bit I,Q, M, T, C, D, L.
FBD LAD STL
Hình 2-6: Khai báo hàm OR Tín hiệu ra sẽ bằng 1 khi ít nhất cĩ một tín hiệu vào bằng 1. Dữ liệu vào và ra:
Vào : I0.0, I0.1: BOOL Ra : Q4.0: BOOL 2.2.1.3. lệnh NOT
FBD LAD STL
Hình 2-7: Khai báo hàm thực hiện chức năng phủ định. Tín hiệu ra sẽ là nghich đảo của tín hiệu vào.
Dữ liệu vào và ra:
Vào : I0.0 : BOOL Ra : Q4.0 : BOOL 2.2.1.4. Lệnh XOR
Tốn hạng là kiểu dữ liệu BOOL hay địa chỉ bit I, Q, M, T, C, D, L.
FBD LAD STL
Hình 2-8: Khối thực hiện chức năng XOR. Tín hiệu ra Q4.0= 1 khi I0.0 khác I0.2
Dữ liệu vào và ra:
Vào: I0.0, I0.1 : BOOL
2.2.1.5. Lệnh xố RESET
Tốn hạng là địa chỉ bit I, Q, M, T, C, D, L.
FBD LAD STL
Hình 2-9: Khối thực hiện chức năng RESET Tín hiệu ra Q4.0 = 0 (Q4.0 sẽ được xố) khi I0.0 = 1 .
Dữ liệu vào và ra:
Vào: I0.0 : BOOL Ra : Q4.0 : BOOL 2.2.1.6. Lệnh SET
Tốn hạng là địa chỉ bit I, Q, M, T, C, D, L.
FBD LAD STL
Hình 2-10: Khối thực hiện chức năng SET. Tín hiệu ra Q4.0 = 1 (Q4.0 sẽ được thiết lập ) khi I0.0 =1. Dữ liệu vào và ra:
Vào I0.0 : BOOL Ra Q4.0 : BOOL 2.2.1.7. Bộ nhớ RS
Tốn hạng là địa chỉ bit I, Q, M, D, L.
FBD LAD STL
Khi I0.0 = 1 và I0.1 =0 Merker M0.0 bị Reset và đầu ra Q4.0 là "0". Nếu I0.0 = 0 và I0.1 = 1 thì Set cho M0.0 và đầu ra Q4.0 là "1".
Khi cả hai đầu vào Set va Reset cùng đồng thời =1 thì M0.0 và Q4.0 cĩ giá trị là "1".
Dữ liệu vào và ra:
Vào I0.0, I0.1 : BOOL Ra Q4.0 : BOOL 2.2.1.8. Bộ nhớ SR
Tốn hạng là địa chỉ bit I, Q, M, D, L.
FBD LAD STL
Hình 2-12: Khối thực hiện chức năng SR
Khi I0.0 = 1 và I0.1 =0 thì Set cho Merker M0.0 và đầu ra Q4.0 là "1". Nếu I0.0 = 0 và I0.0 = 1 thì M0.0 bị Reset và đầu ra Q4.0 là "0".
Khi cả hai đầu vào Set va Reset cùng đồng thời =1 thì M0.0 và Q4.0 cĩ giá trị là "0".
Dữ liệu vào và ra:
Vào I0.0, I0.1 : BOOL Ra Q4.0 : BOOL
Chú ý: Trong kỹ thuật số trạng thái của trigơ RS sẽ bị cấm khi R=1 và S=1. Nên ở đây cĩ hai loại bộ nhớ RS và SR là loại Trigơ ưu tiên R hay ưu tiên S.
2.2.2. Nhĩm lệnh so sánh
2.2.2.1. Nhĩm lệnh so sánh số nguyên 16 bit (Integer)
FBD LAD STL
Cĩ các dạng so sánh hai số nguyên 16 bít như sau :
- Hàm so sánh bằng nhau giữa hai số nguyên 16 bít: == - Hàm so sánh khác nhau giữa hai số nguyên 16 bít: <> - Hàm so sánh lớn hơn giữa hai số nguyên 16 bít: > - Hàm so sánh nhỏ hơn giữa hai số nguyên 16 bít: <
- Hàm so sánh lớn hơn hoặc bằng nhau giữa hai số nguyên 16 bít: >= - Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số nguyên 16 bít: <= Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MW0 = MW1.
2.2.2.2. Nhĩm lệnh so sánh hai số nguyên 32 bít
FBD LAD STL
Hình 2-14: Khối thực hiện chức năng so sánh Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MD0 = MD4.
- Hàm so sánh bằng nhau giữa hai số nguyên 32 bít: == - Hàm so sánh khác nhau giữa hai số nguyên 32 bít: <> - Hàm so sánh lớn hơn giữa hai số nguyên 32 bít: > - Hàm so sánh nhỏ hơn giữa hai số nguyên 32 bít: <
- Hàm so sánh lớn hơn hoặc bằng nhau giữa hai số nguyên 32 bít: >= - Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số nguyên 32 bít: <= 2.2.2.3. Nhĩm lệnh so sánh các số thực 32 bít
FBD LAD STL
Hình 2-15: Khối thực hiện chức năng so sánh hai số thực. Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MD0 < MD1 .
Các dạng so sánh hai số thực 32 bít như sau :
- Hàm so sánh bằng nhau giữa hai số thực 32 bít: == - Hàm so sánh khác nhau giữa hai số thực 32 bít: <>
- Hàm so sánh lớn hơn giữa hai số thực 32 bít: > - Hàm so sánh nhỏ hơn giữa hai số thực 32 bít: <
- Hàm so sánh lớn hơn hoặc bằng nhau giữa hai số thực 32 bít: >= - Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số thực 32bít: <= 2.2.3. Nhĩm lệnh đổi kiểu dữ liệu
Trong ngơn ngữ lập trình của S7-300 cĩ một số kiểu dữ liệu khác nhau như: - Số nguyên 16 bít (Interger)
- Số nguyên 32 bít (DI) - Số nguyên dạng BCD. - Số thực REAL
- và một số dạng dữ liệu khác .
Khi làm việc với nhiều dạng dữ liệu khác nhau cho ta vấn đề cần phải chuyển đổi chúng. Ví dụ khi đọc tín hiệu từ cổng vào tương tự ta nhận được số liệu dạng nguyên 16 bít mang giá trị tín hiệu tương tự chứ khơng phải bản thân giá trị đĩ, bởi vậy để xử lý tíêp thì cần thiết phải chuyển đổi số nguyên đĩ thành đúng giá trị thực, dấu phảy động của tín hiệu tương tự ở cổng. Ta cĩ một số hàm chuyển đổi các dạng dữ liệu như sau:
2.2.3.1. Lệnh chuyển số BCD thành số số nguyên 16 bít
FBD LAD STL
Hình 2-16: Chuyển đổi số BCD sang dạng số nguyên 16 bít. Dữ liệu vào và ra:
EN: BOOL IN: WORD
OUT: INT ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiện chức năng chuyển số BCD (MW10) sang số nguyên rồi cất vào MW12.
Khi tin hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm khơng thực hiện chức năng chuyển đổi.
2.2.3.1. Hàm chuyển đổi số nguyên 16 bít sang dạng BCD
FBD LAD STL
Hình 2-17: Chuyển đổi số nguyên sang số BCD. Dữ liệu vào và ra:
EN: BOOL IN: INT
OUT: BCD ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiện chức năng chuyển số nguyên 16 bít (MW10) sang số BCD rồi cất vào MW12.
Khi tin hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm khơng thực hiên chức năng chuyển đổi.
2.2.3.2. Hàm chuyển đổi số nguyên 16 bít sang số nguyên 32 bít
FBD LAD STL
Hình 2-18: Chuyển đổi số nguyên 16 bít sang số nguyên 32 bít. Dữ liệu vào và ra:
EN: BOOL IN: INT
OUT: DINT ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số nguyên 16 bít (MW10) sang số nguyên 32 bít rồi cất vào MW12.
Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm khơng thực hiên chức năng chuyển đổi.
2.2.3.4. Chuyển đổi số BCD sang số nguyên 32 bít
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số BCD (MW10) sang số nguyên 32 bít rồi cất vào MW12.
Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm khơng thực hiện chức năng chuyển đổi.
FBD LAD STL
Hình 2-19: Chuyển số BCD sang số nguyên 32 bít - Kiểu dữ liệu vào/ra:
EN: BOOL IN: DWORD
OUT: DINT ENO: BOOL.
2.2.4. Nhĩm lệnh thực hiện chức năng làm trịn (đổi kiểu dữ liệu)
Hình 2-20: Nhĩm lệnh chuyển đổi
- Hàm ROUND: (chuyển số thực thành số nguyên gần nhất) thực hiện làm trịn như sau: nếu phần lẻ < 0,5 thì làm trịn xuống. Nếu phần lẻ > 0,5 thì làm trịn lên. Ví dụ: 1,2 -> 1 ; 1,6 -> 2.
-1,2 -> -1 ; -1,6 -> -2.
- Hàm TRUNC: (Lấy phần nguyên cắt bỏ phần lẻ) thực hiện làm trịn xuống giá trị trịn nhỏ.
Ví dụ: Dữ liệu vào từ 1,1 đến 1,9 -> 1. - Hàm CEIL: thực hiện làm trịn lên.
Ví dụ: Dữ liệu vào từ 1,1 đến 1,9 -> 2. - Hàm FLOOR: thực hiện làm trịn xuống.
Ví dụ: +1,7 -> 1 ; - 1,7 -> -2 2.2.5.Nhĩm lệnh tốn học
2.2.5.1. Nhĩm lệnh làm việc với số nguyên 16 bít a) Cộng hai số nguyên 16 bít a) Cộng hai số nguyên 16 bít
FBD LAD STL
Dữ liệu vào và ra:
EN: BOOL IN1: INT
IN2: INT OUT: INT ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện cộng hai số nguyên 16 bít MW0 với MW2. Kết quả được cất vào MW10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
b) Trừ hai số nguyên 16 bít
FBD LAD STL
Hình 2-22: Khối thực hiện chức năng trừ hai số nguyên 16 bít Dữ liệu vào và ra:
EN : BOOL IN1: INT
IN2: INT OUT: INT ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số nguyên 16 bít MW0 với MW2. Kết quả được cất vào MW10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
c) Nhân hai số nguyên 16 bit
FBD LAD STL
Dữ liệu vào và ra:
EN: BOOL IN1: INT
IN2: INT OUT: IN ENO: BOOL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số nguyên 16 bít MW0 với MW2. Kết quả được cất vào MW10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
d) Chia hai số nguyên 16 bít
FBD LAD STL
Hình 2-24: Khối thực hiện chức năng chia hai số nguyên 16 bít
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số nguyên 16 bít MW0 với MW2. Kết quả được cất vào MW10. Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng. 2.2.5.2. Nhĩm hàm làm việc với số nguyên 32 bít
a) Cộng hai số nguyên 32 bít Dữ liệu vào và ra:
EN: BOOL IN1: DINT
IN2: DINT OUT: DINT ENO: BOOL
FBD LAD STL
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện cơng hai số nguyên 32 bít MD0 với MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
b) Trừ hai số nguyên 32 bít
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số nguyên 32 bít MD0 với MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-26: Khối thực hiện chức năng trừ hai số nguyên 32 bít Dữ liệu vào và ra:
EN: BOOL IN1: DINT
IN2: DIN OUT: DINT ENO: BOOL
c) Nhân hai số nguyên 32 bít
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số nguyên 32 bít MD0 với MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-27: Khối thực hiện chức năng nhân hai số nguyên 32 bit Dữ liệu vào và ra:
EN: BOOL IN1: DINT
d) Chia hai số nguyên 32 bít
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số nguyên 32 bít MD0 với MD4. Kết quả được cất vào MD10. Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
Dữ liệu vào và ra:
EN: BOOL IN1: DINT
IN2: DINT OUT: DINT ENO: BOOL
FBD LAD STL
Hình 2-28: Khối thực hiện chức năng chia hai số nguyên 32 bít 2.2.5.3. Nhĩm hàm làm việc với số thực
a) Cộng hai số thực
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện cộng hai số thực MD0 + MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 4-29: Khối thực hiện chức năng cộng hai số thực Dữ liệu vào và ra:
EN: BOOL IN1: REAL
b) Hàm trừ hai số thực
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số thực MD0 - MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-30: Khối thực hiện chức năng trừ hai số thực. Dữ liệu vào và ra:
EN: BOOL IN1: REAL
IN2: REAL OUT: REAL ENO: BOOL
c) Nhân hai số thực
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số thực MD0 . MD4. Kết quả được cất vào MD10.
FBD LAD STL
Hình 2-31: Khối thực hiện chức năng nhân hai số thực.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
Dữ liệu vào và ra:
EN: BOOL IN1: REAL
d) Chia hai số thực
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số thực MD0 : MD4. Kết quả được cất vào MD10.
Trong trường hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-32: Khối thực hiện chức năng nhân hai số thực Dữ liệu vào và ra:
EN: BOOL IN1: REAL
IN2: REAL OUT: REAL
ENO: BOOL
e) Hàm lấy giá trị tuyệt đối : ABS
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiên chức năng lấy gía trị tuyệt đối của MD8 rồi cất vào MD12
Khi tín hiệu vao I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-33: Khối thực hiện chức năng lấy giá trị thuyệt đối. Dữ liệu vào và ra:
EN: BOOL IN: REAL
OUT: REAL ENO: BOOL
Ví dụ: MD8= -6,234 x 10-3 thi sau khi thực hiên chức năng ABS giá trị MD12 = 6,234 x 10-3.
f) Hàm SIN, COS, TAN, ASIN, ACOS, ATAN
Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiên chức năng tinh SIN, COS, TAN, ASIN, ACOS, ATAN của MD0 rồi cất vào MD10.
Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ khơng thực hiện chức năng.
FBD LAD STL
Hình 2-34: Khối thực hiện chức năng tính hàm Sin. Dữ liệu vào và ra:
EN: BOOL IN: REAL
OUT: REAL ENO: BOOL
2.2.6. Nhĩm lệnh đảo giá trị các bít
2.2.6.1. Lệnh đảo số nguyên cĩ độ dài 16 bít
Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng chuyển đổi giá trị các bít trong MW8 rồi cất vào MW10 khi tín hiệu I0.0 =1. Đồng thời giá trị Q4.0 = 1. Khi I0.0 = 0, giá trị Q4.0 = 0
-Kiểu dữ liệu vào/ra:
EN: BOOL IN: INT
OUT: INT ENO: BOOL
FBD LAD STL
-Ví dụ:
Trước khi thực hiện Sau khi thực hiện
2.2.6.2. Lệnh đảo số nguyên cĩ độ dài 32 bít
FBD LAD STL
Hình 2-36: Hàm thực hiện chức năng đảo giá trị các bít.
-Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng chuyển đổi giá trị các bít trong MD8 rồi cất vào MD12 khi tín hiệu I0.0 =1. Đồng thời giá trị Q4.0 = 1 . Khi I0.0 = 0, giá trị Q4.0 = 0
-Kiểu dữ liệu vào/ra:
EN: BOOL IN: DINT
OUT: DINT ENO: BOOL
- Ví dụ: Trước khi thực hiện: MD8 = F0FF FFF0 Sau khi thực hiện : MD12 = 0F00 000F 2.2.7. Nhĩm lệnh đổi dấu
Hàm sẽ thực hiện chức năng đổi dấu dữ liệu vào . Nhĩm lệnh đổi dấu như đổi dấu số thực độ dài 16bít ( I ), 32 bít ( DI ) hay số nguyên ( R ).
FBD LAD STL
Dạng dữ liệu vào:
NEG_I NEG_DI NEG_R
EN BOOL BOOL BOOL
IN INT DI REAL
OUT INT DI REAL
ENO BOOL BOOL BOOL
Ví dụ: Trước khi thực hiện MW8 = +10, sau khi thực hiện MW10 = -10. 2.2.8. Nhĩm lệnh làm việc với Bộ thời gian: (Timer)
2.2.8.1. Nguyên lý làm việc chung của bộ Timer