2.4 Cấu trúc cơ bản của PLC và đặc tính kỹ thuật của PLC:
2.4.5 Các phần nhập và xuất
Là nơi bộ xử lý nhận các thông tin từ các thiết bị ngoại vi và truyền thông tin đến các thiết bị bên ngồi. Tín hiệu nhập có thể đến từ các cơng tắc hoặc từ các bộ cảm biến, vv… Các thiết bị xuất có thể đến các cuộn dây của bộ khởi động động cơ, các van solenoid, vv…
Các thiết bị này đƣợc liên kết với nhau qua các Bus. Về mặt kỹ thuật, một bus mà chỉ có hai thiết bị nối trên đó thƣờng đƣợc coi nhƣ một “cổng” (port) thay vì một bus.
Bus là các đƣờng dẫn dùng để truyền thông bên trong PLC. Thông tin đƣợc truyền theo dạng nhị phân, theo nhóm bit, mỗi bit là một số nhị phân 1 hoặc 0, tƣơng tự các trạng thái ON OFF của tín hiệu nào đó.
Hệ thống PLC có 4 loại bus:
+ Bus dữ liệu: tải dữ liệu đƣợc sử dụng trong quá trình xử lý của CPU. Bộ xử lý 8- bit có 1 bus dữ liệu nội có thể thao tác các số 8- bit, có thể thực hiện các phép toán giữa các số 8- bit và phân phối các kết quả theo giá trị 8- bit.
+ Bus địa chỉ: đƣợc sử dụng để tải các địa chỉ và các vị trí trong bộ nhớ. Nhƣ vậy mỗi từ có thể đƣợc định vị trong bộ nhớ, mỗi vị trí nhớ đƣợc gán một địa chỉ duy nhất. Mỗi vị trí từ đƣợc gán một địa chỉ sao cho dữ liệu đƣợc lƣu trữ ở vị trí nhất định. Để CPU có thể đọc hoặc ghi ở đó bus địa chỉ mang thơng tin cho biết địa chỉ sẽ đƣợc truy cập. Nếu bus địa chỉ gồm 8 đƣờng, số lƣợng từ 8-bit, hoặc số lƣợng địa chỉ phân biệt là 28
= 256. Với bus địa chỉ 16 đƣờng số lƣợng địa chỉ khả dụng là 256 15 16 = 65536.
+ Bus điều khiển: bus điều khiển mang các tín hiệu đƣợc CPU sử dụng để điều khiển. Ví dụ để thơng báo cho các thiết bị nhớ nhận dữ liệu từ thiết bị nhập hoặc xuất dữ liệu và tải các tín hiệu chuẩn thời gian đƣợc dùng để đồng bộ hoá các hoạt động.
+ Bus hệ thống: đƣợc dùng để truyền thông giữa các cổng nhập xuất và các thiết bị nhập xuất.
2.5 Các lệnh cơ bản PLC.
2.5.1 ảng lệnh của 7-200.
* Phƣơng pháp lập trình PLC với phần mềm STEP7 MicroWIN:
- Cách lập trình cho S7-200 dựa trên hai phƣơng pháp cơ bản: phƣơng pháp hình
thang (Ladder Diagram – viết tắt là LAD), phƣơng pháp liệt kê lệnh (Statement List viết tắt là STL) và phƣơng pháp thứ 3 mà không đƣợc dùng thông dụng là phƣơng pháp sơ đồ khối chức năng (Funtion Block Diagram viết tắt là FBD).
- Chƣơng trình đƣợc viết theo kiểu LAD thiết bị lập trình sẽ tạo ra một chƣơng trình theo kiểu STL tƣơng ứng. Nhƣng ngƣợc lại khơng phải tất cả các chƣơng trình viết theo kiểu STL đều có thể chuyển sang dạng LAD.
* Phương pháp LAD: LAD là ngơn ngữ lập trình đồ 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 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 rơle các tiếp điểm có thể thƣờng đóng hoặc thƣờng mở.
- Cuộn dây (coil): là biểu tƣợng -(Q 0.0) mô tả rơle 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 thƣờng là các bộ thời gian (Timer), bộ đếm (Counter) và các hàm tốn học:
Hình 2.6: Bộ đếm Timer, Counter
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 nguồn bên phải dòng điện chạy từ trái qua 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.
* Phương pháp liệt kê lệnh STL: phƣơng pháp liệt kê (STL) là phƣơng pháp thực 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.
- Để 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 của ngăn xếp logic của S7-200 (từ S0 tới S8).
- Ngăn xếp lôgic 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 và bit thứ hai của ngăn xếp (từ S0 tới S8) giá trị logic mới đều có thể đƣợc gửi vào ngăn xếp.
2.5.2 Cú pháp lệnh cơ bản trong PLC S7-200
Hệ lệnh của S7-200 đƣợc chia làm 3 nhóm:
- Nhóm lệnh khơng điều kiện: 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.
- Nhóm lệnh có điều kiện: các lệnh chỉ thực hiện đƣợc khi bit đầu tiên của ngăn xếp có giá trị logic bằng 1.
- Nhóm lệnh đặt nhãn: các nhón lệnh đánh dấu vị trí trong tập lệnh.
Trong các bảng lệnh cịn 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ả hai phƣơng pháp LAD và STL đều sử dụng ký hiệu I để chỉ việc thực hiện tức thời (Immediately) tức là giá trị đƣợc chỉ dẫn trong lệnh vừa đƣợc chuyển vào thanh ghi ảo vừa đồng thời đƣợc chuyển đến 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 qt. Điều đó khác vớ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.
ảng 2.2: Một số lệnh của S7-200 thuộc nhóm lệnh thực hiện vơ điều kiện.
Tên lệnh M tả
ALD
Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của bit thứ 2 ngăn xếp. Kết quả đƣợc ghi lại vào bit đầu tiên của ngăn xếp. Các giá trị còn lại trong ngăn xếp đƣợc kéo lên một bit.
CTU Cxx, Pv
Khởi động bộ đếm tiến theo sƣờn lên của tín hiệ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 (có mức logic 1).
CTUD Cxx,Pv đếm lùi theo sƣờn lên của tín hiệu đầu vào thứ hai. Bộ đếm đƣợc reset lại nếu đầu vào R của bộ đếm đƣợc kích (có mức logic 1).
ED Đặt giá trị logic 1 vào bit đầu tiên của ngăn xếp khi xuất hiện sƣờn xuống của tín hiệu.
DU Đặt giá trị logic 1 vào bit đầu tiên 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 bit đầu tiên của ngăn xếp. Các giá trong ngăn xếp đƣợc đẩy xuống một bit.
LDN n Nạp giá trị logic nghịch đảo của điểm n chỉ dẫn trong lệnh vào bit đầu tiên của ngăn xếp. Các giá trong ngăn xếp đƣợc đẩy xuống một bit. LDW <=n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1
và n2 thoả mãn n1 ≤ n2.
LDW = n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1 và n2 thoả mãn n1 = n2.
LDW >=n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1 và n2 thoả mãn n1 ≥ n2.
LPP
Kéo nội dung ngăn xếp lên một bit, giá trị mới của bit trên là giá trị cũ của bit dƣới, độ sâu ngăn xếp giảm đi một bit (giá trị của bit đầu tiên bị đẩy ra khỏi ngăn xếp – xóa).
LRD Sao chép giá trị của bit thứ hai vào bit thứ hai của ngăn xếp. các giá trị còn lại từ bit thứ hai trở đi đƣợc giữ nguyên vị trí.
MEND Kết thúc phần chƣơng trình chính trong một vùng qt. NOT Đảo giá trị logic của bit đầu tiên ngăn xếp.
OLD
Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của bit thứ hai ngăn xếp. Kết quả đƣợc ghi lại vào bit đầu tiên của ngăn xếp. Các giá trị còn lại trong ngăn xếp đƣợc kéo lên một bit.
RET Lệnh thoát khỏi chƣơng trình con và trả điều khiển về chƣơng trình chính đó gọi nó.
RETI Lệnh thốt khỏi chƣơng trình xử lý ngắt (Interrupt) và trả điều khiển về chƣơng trình chính.
có giá trị logic 1):
Tên lệnh M tả
D IN1, IN2 Thực hiện hai phép cộng hai số nguyên kiểu từ kép IN1 và IN2. Kết quả đƣợc ghi lại vào IN2
+I IN1, IN2 Thực hiện hai 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 hai phép trừ hai số nguyên kiểu từ kép IN1 và IN2. kết quả đƣợc ghi lại vào IN2.
-I IN1, IN2 Thực hiện hai phép trừ hai số nguyên kiểu từ IN1 và IN2. Kết quả đƣợc ghi lại vào IN2.
+R IN1, IN2 Thực hiện hai phép cộng hai số thực (32 bit) IN1 và IN2. Kết quả đƣợc ghi lại vào IN2.
-RIN1, IN2 Thực hiện hai phép trừ hai số thực (32 bit) IN1 và IN2. Kết quả đƣợc ghi lại vào IN2.
*R IN1, IN2 Thực hiện hai phép nhân hai số thực (32 bit) IN1 và IN2. Kết quả đƣợc ghi lại vào IN2.
R IN1, IN2 Thực hiện hai phép chia hai số thực (32 bit) IN1 và IN2. Kết quả đƣợc ghi lại vào IN2.
ANDD IN1, IN2
Thực hiện toán logic 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.
ANDW IN1, IN2
Thực hiện toán logic 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.
CALL n Gọi chƣơng trình con đƣợc đánh nhãn n.
CRET Kết thúc một chƣơng trình con và trả lại kiểu điều khiển về chƣơng trình gọi nó.
CRTI 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.
MOVB
IN.OUT Sao giá trị của Byte OUT MOVB
IN, OUT Sao giá trị của từ kép IN sang từ kép OUT. MOVR
IN, OUT Sao số thực IN sang OUT. MOVW
IN1, IN2 vào IN2. ORW
IN1, IN2
Thực hiện toán tử OR cho hai từ IN1 và IN2. Kết quả đƣợc ghi lại vào IN2
PLS x Đƣa bộ phát xung nhanh đó đƣợc định nghĩa trong bộ nhớ đặc biệt vào trạng thái tích cực. Xung đƣa ra đƣợc đƣa ra cổng Q 0.x
RLD IN, n Quay tròn từ kép IN sang trái n bit RLW Quay tròn từ IN sang trái n bit RRD IN, n Quay tròn từ képIN sang phải n bit RRW IN, n Quay tròn từ IN sang phải n bit SLD Dịch từ kép IN sang trái n bit SLW IN, n Dịch từ IN sang trái n bit SQRT
IN, OUT
Lấy căn bậc hai của một số thực 32 bit IN và ghi kết quả vào OUT (32 bit)
SRD Dịch từ kép IN sang phải n bit SRW IN, n Dịch từ IN sang phải n bit
STOP Dừng “mềm” chƣơng trình
SWAP IN Đổi bộ hai bit đầu tiên và cuối cùng của byte IN cho nhau
ảng 2.4: Các lệnh đặt nhãn (label):
Tên lệnh M tả
(i) INT Nn Khai báo nhãn n cho chƣơng trình xử lý ngắt
LBL xx Đặt nhãn xx trong chƣơng trình, định hƣớng cho lệnh nhảy JMP NEXT Lệnh kết thúc vòng lặp FOR….NEXT
NOP Lệnh rỗng (No operation)
SBR n Khai báo nhãn n cho chƣơng trình con
* Các lệnh Timer, Counter:
+ Timer:
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 thƣờng đƣợc gọi là khâu trễ. Nếu ký hiệu tín hiệu (logic) vào là x (1) và thời gian trễ là t thì tín hiệu đầu ra của timer là x (l-t).
Trong S7-200 có hai loại Timer khác nhau:
- Timer tạo thời gian trễ khơng có nhớ (On-Delay Timer), ký hiệu là TON. - Timer tạo thời gian trễ có nhớ (Retentive On-Delay Timer), ký hiệu là TONR.
Hai loại timer này phân biệt nhau bởi phản ứng của chúng đối với tín hiệu vào. Cả hai loại đều bắt đầu tạo thời gian trễ từ thời điểm có sƣờn lên của tín hiệu vào. Nhƣng TON sẽ tự Reset khi đầu vào có mức logic 0, cịn TONR thì khơng tự Reset khi mất tín hiệu vào. TON đƣợc dùng để tạo thời gian trễ trong một khoảng thời gian, còn TONR thời gian trễ đƣợc tạo ra trong nhiều khoảng khác nhau. Trong phần này chúng ta chỉ nghiên cứu loại Timer TON.
ảng 2.5: Các giá trị của Timer:
Lệnh Độ phân giải Giá trị cực đại CPU212 CPU214
TON, TOF 1 ms 32,767 s T32 T32, T96 10 ms 327,67 s T33 - T36 T33 - T36, T97 - T100 100 ms 3276,7 s T37 - T63 T37 - T63, T101 - T127 TONR 1 ms 32,767 s T0 T0, T64 10 ms 327,67 s T1 - T4 T1-T4, T65-T68 100 ms 3276,7 s T5 - T31 T5-T31, T69-T95
ảng 2.6: C pháp khai báo Timer trong LAD và STL:
LAD STL M tả Toán hạng Txx IN TON PT TON Txx + n
Khai báo Timer số hiệu xx kiểu TON để tạo thời gian trễ tính từ khi đầu vào IN đƣợc kích (có mức 1).
Nếu nhƣ giá trị đếm tức thời lớn hơn hoặc bằng giá trị đạt đƣợc PT thì T-bit có giá trị logic băng 1. có thể Reset Timer kiểu TON bằng lệnh R hoặc bằng giá trị Logic 0 ở đầu vào IN.
Txx (word): CPU 212: 32-63 CPU214: 32-63 và 96-127 PT (wort): VW, IW, QW, MW, AIW, T, C, AC,…. n= 1 – 32762 (số nguyên)
thời gian trễ T= PT3 độ phân giải
+ Counter:
Couner là bộ đếm thực hiện chức năng đếm sƣờn lên của xung. S7-200 có hai loại bộ đếm: bộ đếm tiến (CTU) và bộ đếm tiến lùi (CTUD). Bộ đếm tiến đếm số sƣờn của xung 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 ghi vào thanh ghi 2 byte của bộ đếm gọi là thanh ghi C-word.
Nội dung của C-word, đƣợc gọi là giá trị tức thời của bộ đếm, luôn đƣợc so sánh với giá trị đặt trƣớc của bộ đếm., ký hiệu là PV. Khi giá trị đếm tức thời bằng hoặc lớn hơn giá trị đặt trƣớc thì bộ đếm báo ra ngồi bằng cách đặt giá trị logic 1 vào bit đặc biệt của nó, đƣợc gọi là C-bit. Trƣờng hợp giá trị đếm cịn nhỏ hơn giá trị đặt trƣớc thì C-bit có giá trị logic 0. Khác với các Timer, các Counter đều có chân nối với tín hiệu điều khiển xố để thực hiện đặt lại chế độ khởi phát ban đầu (Reset) cho bộ đếm, đƣợc ký hiệu bằng chữ cái r trong
Reset khi tín hiệu xố này có mức 1 hoặc khi lệnh R(reset) đƣợc thực hiện với C-bit. khi bộ đếm Reset thì cả C-word và C-bit đều nhận giá trị 0.
Bộ đếm tiến lùi CTUD thực hiện đếm tiến khi gặp sƣờn lên của xung vào cổng đếm tiến, ký hiệu là CU trong LAD hoặc bit thứ 3 ngăn xếp trong STL, và đếm lùi khi gặp sƣờn lên của xung vào cổng đếm lùi, ký hiệu là CD trong LAD hoặc bit thứ 2 ngăn xếp trong STL. Việc xố bộ đếm CTUD cũng có hai cách tƣơng tự nhƣ bộ đếm CTU.
ảng 2.7: C pháp khai báo Counter LAD và STL.
LAD STL M tả Toán hạng Cxx CU CTU R PV CTU Cxx, +n
Khai báo bộ đếm tiến theo sƣờn lên của tín hiệu vào cổng CU số hiệu xx kiểu CTU. khi giỏ trị đếm tức thời C-word của Cxx lớn hơn hoặc bằng giá trị đặt trƣớc PV, C-bit (Cxx) có giá trị logic bằng 1. bộ đếm ngừng đếm khi C-word Cxx đạt giá trị cực đại 32767. Cxx (word): CPU 212: 0 – 47 CPU 214: 0 – 47 và 80 – 127 PV(word): VW, T, C, IW, n=1 – 32767 (số nguyên) Cxx CU CTUD CD R PV CTUD Cxx, + n
Khai báo bộ đếm tiến lùi, đếm tiến theo sƣờn lên của tín hiệu đến CU và đếm lùi theo sƣờn lên của tín hiệu đến CD.. Khi giá trị tức thời C- word của Cxx lớn hơn hoặc bằng giá trị đặt trƣớc PV, C- bit (Cxx) có giá trị logic bằng 1. Bộ đếm đƣợc Reset khi đầu vào R cú giá trị logic 1. Bộ đếm ngừng đếm tiến khi C- word Cxx đạt giá trị cực đại 32767 và ngừng đếm lùi khi C- word Cxx đạt giá trị cực tiểu là - 32767. Cxx (word): CPU 212: 48 – 63