Lập trỡnh điều khiển

Một phần của tài liệu Thiết kế hệ thống điều khiển đèn giao thông sử dụng bộ điều khiển plc (Trang 87)

IV. THIẾT KẾ CHƯƠNG TRèNH ĐIỀU KHIỂN

4.2. Lập trỡnh điều khiển

4.2.1. Ngụn ngữ lập trỡnh

Cỏc loại PLC núi chung thường cú nhiều ngụn ngữ lập trỡnh để phục vụ cỏc đối tượng sử dụng khỏc nhau[5][6]. Tuy nhiờn hầu hết đều xoay quanh 3 ngụn ngữ cơ bản:

-Ngụn ngữ “ kiểu liệt kờ”, kớ hiệu là STL (Statement List). Đõy là dạng của ngụn ngữ Assembler mỏy tớnh.

-Ngụn ngữ “hỡnh thang”, kớ hiệu là LAD (Ladder Logic). Đõy là dạng ngụn ngữ theo kiểu thiết kế mạch điều khiển logic rơ le.

-Ngụn ngữ “hỡnh khối”, kớ hiệu là FBD (Function Block Diagram). Đõy là dạng ngụn ngữ theo kiểu thiết kế mạch điều khiển logic số.

Hỡnh 2.47: Cỏc kiểu ngụn ngữ lập trỡnh

Tuy vậy về mặt lập trỡnh, ngụn ngữ LAD rất đơn giản dễ dàng cho lập trỡnh. Chớnh vỡ lý do này, chỳng tụi chọn ngụn ngữ LAD và lấy nú để lập trỡnh.

4.2.2. Kiểu dữ liệu và phõn chia bộ nhớ

1. Kiểu dữ liệu

Cỏc kiểu dữ liệu được sử dụng trong S7-300 [2][3][5]:

- Bool: Với dung lượng một bit và cú giỏ trị 1 hoặc 0 (đỳng hoặc sai). Đõy là kiểu dữ liệu cho biến hai giỏ trị.

- 86 -

làmó ASCII của một ký tự.

- Word: Gồm 2 byte, biểu diễn số nguyờn từ 0 đến 65535.

- Dint: Gồm 4 byte, dựng để biểu diễn số nguyờn từ –2147483648 đến 2147483647. - Real: Gồm 4 byte, dựng để biểu diễn số thực cú dấu phẩy động.

- S5t: Khoảng thời gian, được tớnh bằng giờ, phỳt, giõy, miligiõy.

2. Phõn chia bộ nhớ

Bộ nhớ S7-300 chia làm ba vựng chớnh:

+ Vựng chứa chương trỡnh ứng dụng. Vựng nhớ chia thành 3 miền: -OB (Organization Block): Miền chứa chương trỡnh tổ chức.

-FC (Function): Miền chứa chương trỡnh con, được tổ chức thành hàm và cú biến hỡnh thức để trao đổi dữ liệu với chương trỡnh gọi nú.

-FB (Function Block):Miền chứa chương trỡnh con, được tổ chức thành hàm và cú khả năng trao đổi dữ liệu với bất kỳ một khối chương trỡnh nào khỏc. Cỏc dữ liệu này phải được xõy dựng thành một khối dữ liệu riờng (gọi là DB – Data Block). + Vựng chứa tham số của hệ điều hành và chương trỡnh ứng dụng, được chia thành 7 miền khỏc nhau:

-I (Process image input): Miền bộ đệm cỏc dữ liệu cổng vào số. Trước khi bắt đầu thực hiện chương trỡnh, PLC sẽ đọc tất cả cỏc giỏ trị logic của tất cả cỏc cổng vào và lưu trữ ở vựng nhớ I. Chương trỡnh ứng dụng khụng đọc trực tiếp trạng thỏi logic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I.

-Q (Process image output): Miền bộ đệm cỏc dữ liệu cổng ra số. Kết thỳc giai đoạn thực hiện chương trỡnh, PLC sẽ chuyển giỏ trị logic của bộ đệm Q đến cỏc cổng ra số. Chương trỡnh khụng trực tiếp gỏn giỏ trị tới cổng ra mà chỉ chuyển chỳng vào bộ đệm Q.

-M: Miền cỏc biến cờ. Chương trỡnh sử dụng cỏc vựng nhớ này để lưu trữ cỏc tham số cần thiết và cú thể truy nhập theo kiểu bit (M), byte (MB), từ đơn (MW)hay từ kộp (MD).

-T: Miền nhớ phục vụ bộ thời gian (timer) bao gồm lưu trữ giỏ trị thời gian đặt trước (PV – preset value), giỏ trị đếm thời gian tức thời (CV – Current value) cũng

- 87 -

như giỏ trị logic ở đầu ra của timer.

-C: Miền nhớ phục vụ bộ đếm (counter) bao gồm lưu trữ giỏ trị thời gian đặt trước PV – preset value), giỏ trị đếm tức thời (CV – Current value) cũng như giỏ trị logic ở đầu ra của bộ đếm.

4.2.3. Cấu trỳc lệnh và trạng thỏi kết quả

+ Toỏn hạng là dữ liệu

- Dữ liệu logic True và False cú độ dài 1 bit. - Số nhị phõn.

- Dữ liệu thời gian cho biến kiểu S5T dạng giờ_phỳt_giõy_miligiõy. - C: biểu diễn giỏ trị số đếm đặt trước cho bộ đếm.

- P: dữ liệu biểu diễn địa chỉ của một bit ụ nhớ. - Dữ liệu kớ tự.

+ Thanh ghi trạng thỏi

Khi thực hiện lệnh, CPU sẽ ghi nhận lại trạng thỏi của phộp tớnh trung gian cũng như của kết quả vào một thanh ghi 16 bit và được gọi là thanh ghi trạng thỏi (status word). Tuy nhiờn nú chỉ sử dụng với 9 bit và cấu trỳc được mụ tả như sau:

8 7 6 5 4 3 2 1 0

BR CC1 CC0 OV OS OR STA RLO FC

1. Cỏc lệnh logic

Lệnh logic làm việc trờn hệ thống số nhị phõn với hai bit số, đú là : bit 1 và bit 0 Trong điều khiển người ta thường quy định 1 là trạng thỏi hoạt động hay cú năng lượng, 0 là trạng thỏi khụng hoạt động hay khụng năng lượng.

cỏc lệnh cơ bản sau: • A Và (And)

• AN Phủ định và (And Not) • O Hoặc (Or)

• ON Phủ định hoặc (Or Not) • X Loại trừ (Exclusive) • FP Phỏt hiện cạnh lờn (Edge Positive) • R Xúa nhớ (Reset) • S Nhớ (Set) • NOT Phủ định R • SET Nhớ RLO (=1) • CLR Xúa RLO (=0) • FN Phỏt hiện cạnh xuống (Edge Negative)

- 88 -

2. Lệnh nạp và chuyển nội dung thanh ghi

Trong CPU của S7-300 thường cú hai thanh ghi Accumulator (ACCU) kớ hiệu là ACCU1 và ACCU2 [2][3]. Hai thanh ghi cú cựng kớch thước 32 bit (~ 1 Double Word).

Chỳng cú cấu trỳc như sau:

Lệnh nạp (L - Load) và chuyển (T – Transfer) cho phộp chỳng ta cú khả năng lập trỡnh thay đổi thụng tin lẫn nhau giữa cỏc module ngừ vào hoặc ra và cỏc vựng nhớ, hoặc giữa cỏc vựng nhớ.

3. Lệnh so sỏnh (comparison instruction)

Chỳng ta cú thể dựng cỏc lệnh so sỏnh để so sỏnh cặp giỏ trị số sau: + Hai số nguyờn đơn (16 bit)

+ Hai số nguyờn kộp (32 bit)

+ Hai số thực (dấu chấm động – 32 bit)

4. Lệnh số học (Integer Math Instruction)

Lệnh số học kết hợp nội dung của hai thanh ghi ACCU 1 và ACCU 2. Kết quả đuợc lưu trữ trong thanh ghi ACCU 1 và nội dung cũ của ACCU 1 được ghi vào ACCU 2. Nội dung của ACCU 2 vẫn giữ nguyờn khụng thay đổi. Sử dụng phộp toỏn số học, ta thực hiện 4 phộp toỏn cộng (+), trừ (-), nhõn (*), chia(/) với 2 loại :Số nguyờn (integer number)16 bit và 32 bit; Số thực (real number). Ngoài ra cũn cú một số phộp toỏn khỏc: Trị tuyệt đối, bỡnh phương …

5. Lệnh định thời gian (timer instruction)

+ Nguyờn tắc hoạt động của timer

Bộ định thời gian là một thành phần của bộ điều khiển lập trỡnh cú nhiệm vụ tạo ra thời gian trễ mong muốn giữa tớn hiệu logic ngừ vào và tớn hiệu logic ngừ ra. Lệnh điều khiển thời gian cho phộp chương trỡnh thực hiện cỏc chức năng như:

- 89 -

 Theo dừi và kiểm soỏt chuỗi thời gian.

 Đo lường thời gian…

Nguyờn tắc hoạt động được mụ tả như hỡnh 2.48.

Hỡnh 2.48: Nguyờn tắc hoạt động của bộ định thời (Timer)

Ngay tại thời điểm kớch timer, giỏ trị PV (thời gian trễ đặt trước) được nạp vào thanh ghi 16 bit của Timer word (gọi là thanh ghi CV – current value). Timer sẽ ghi lại thời gian biến thiờn kể từ khi cú tớn hiệu kớch bằng cỏch giảm tương ứng giỏ trị của CV.

+ Cỏc loại timer

Bao gồm cỏc loại timer sau: S_PULSE, S_PEXT, S_ODT, S_ODTS, S_OFFDT

Hỡnh 2.49: Độ phõn giải của bộ định thời

Làm việc với timer phải khai bỏo đầy đủ cỏc tỏc vụ timersau đõy:

 Khai bỏo loại timer sử dụng

 Khai bỏo tớn hiệu kớch timer (Enable timer)

 Khai bỏo tớn hiệu xúa timer

- 90 -  Hiển thị thời gian đọc tức thời.

7. Điều khiển bộ đếm (counter)

+ Nguyờn tắt hoạt động của bộ đếm

Counter là bộ đếm cú nhiệm vụ đếm sườn xung của tớn hiệu đầu vào đếm. Cỏc bộ đếm được lưu trữ trong vựng nhớ dữ liệu của PLC. Khi cú sườn lờn của tớn hiệu enable và đồng thời tại ngừ vào CU cú mức tớn hiệu “1” thỡ bộ đếm thực hiện đếm lờn. Ngược lại, khi đồng thời cú sườn lờn tớn hiệu enable và tại ngừ vào CD cú mức tớn hiệu “1” thỡ bộ đếm sẽ đếm xuống.

Số sườn xung vào đếm được ghi vào một word 16 bit và được gọi là thanh ghi C- word. Nội dung của thanh ghi gọi là giỏ trị đếm tức thời và được kớ hiệu là CV ( Current value). Số đếm được chứa trong vựng nhớ dữ liệu hệ thống dưới dạng nhị phõn và cú giỏ trị chứa trong khoảng 0 ữ 999. Khi CV≠ 0 thỡ bit counter (C-bit) cú giỏ trị là “1”, nếu CV = 0 thỡ C-bit sẽ cú giỏ trị 0. CV là một giỏ trị khụng õm.

+ Cỏc tỏc vụ bộ đếm

- Tớn hiệu kớch đếm (Enable Counter)

- Đọc nội dung của thanh ghi C-word.

-Đọc số đếm tức thời dạng binary.

-Đọc số đếm tức thời dạng BCD.

- Đặt trước giỏ trị đếm (Counter Preset value). - Xúa bộ đếm (Reset Counter).

- Đếm lờn (Counter Up): Tăng Counter lờn 1. - Đếm xuống (Counter Down): Giảm Counter đi 1.

4.2.4. Cỏc lệnh điều khiển chương trỡnh [4][5][6] 1. Lệnh nhảy chương trỡnh 1. Lệnh nhảy chương trỡnh

Lệnh nhảy chương trỡnh cho phộp chỳng ta cú thể ngắt luồng điều khiển

- 91 -

chương trỡnh bỡnh thường và nhảy đến thực thi một nhiệm vụ khỏc trong chương trỡnh theo nhón địa chỉ cần nhảy đến. Nhón chương trỡnh cho phộp tối đa là 4 ký tự chữ và số với ký tự đầu phải là chữ. Nhón chương trỡnh được theo sau là dấu “:” bắt buộc và phải nằm trong một dũng trước cõu lệnh của chương trỡnh của nhiệm vụ thực hiện.

a. Lệnh nhảy khụng điều kiện Cỳ phỏp JU <nhón>

Lệnh này ngắt luồng điều khiển chương trỡnh bỡnh thường và nhảy đến nhón chương trỡnh được chỉ định ở ngay sau JU. Lệnh này thực hiện bất chấp điều kiện và khụng phụ thuộc vào một bit trạng thỏi nào.

b. Lệnh nhảy cú điều kiện

-Lệnh nhảy nếu RLO = 1

Nếu kết quả RLO=1 thỡ JC ngắt luồng điều khiển chương trỡnh bỡnh thường và nhảy đến nhón chương trỡnh được chỉ định trong chương trỡnh. Nếu khụng thỡ thực hiện lệnh kế tiếp. Lệnh làm thay đội nội dung thanh ghi trạng thỏi.

-Lệnh nhảy nếu RLO = 0

Nếu kết quả RLO=0 thỡ JCN ngắt luồng điều khiển chương trỡnh bỡnh thường và nhảy đến nhón chương trỡnh được chỉ định trong chương trỡnh. Nếu khụng thỡ thực hiện lệnh kế tiếp. Lệnh làm thay đội nội dung thanh ghi trạng thỏi.

2. Lệnh kết thỳc chương trỡnh

- Kết thỳc cú điều kiện: Lệnh thực hiện kết thỳc chương trỡnh trong khối nếu như

RLO=1. Lệnh làm thay đổi nội dung thanh ghi.

- Kết thỳc vụ điều kiện: Lệnh thực hiện kết thỳc chương trỡnh trong khối nếu như

RLO= 0. Lệnh làm thay đổi nội dung thanh ghi.

4.2.5. Kĩ thuật lập trỡnh 1. Khỏi quỏt

Khi đề cập đến những hệ thống cú mức độ hoạt động phức tạp, nhiều đầu vào – ra, sự lặp lại cỏc địa chỉ của cỏc I/O nhiều lần thường xuyờn trong quỏ trỡnh quột đũi hỏi việc thiết kế và viết cỏc chương trỡnh phải cú kỹ thuật cụ thể.

- 92 -

Như vậy cấu trỳc chương trỡnh làm phõn tỏn quỏ trỡnh hoạt động của chương trỡnh thành nhiều vựng chức năng tương ứng với cỏc khối, hàm để quản lý và truy xuất chỳng khi tỏc nhiệm làm cho chương trỡnh tối ưu, hạn chế tối đa những lỗi, khụng gõy nhầm lẫn, dễ dàng kiểm tra và sửa lỗi, cải tiến. Cấu trỳc được mụ tả như hỡnh 2.51.

Hỡnh 2.51: Cấu trỳc gọi cỏc khối chương trỡnh

2. Tổ chức bộ nhớ CPU

Hỡnh 2.52: Tổ chức bộ nhớ

-Load memory: Là vựng nhớ chứa chương trỡnh ứng dụng do người sử dụng viết gồm cỏc khối chương trỡnh ứng dụng OB, FC, FB, cỏc khối chương trỡnh cú sẵn trong thư viện hệ thống SFC, SFB và cỏc khối dữ liệu DB.

-Work memory: Là vựng nhớ chứa cỏc khối DB đang được mở, khối chương trỡnh (OB, FB, FC, SFC, SFB) đang được CPU thực hiện và phần bộ nhớ cấp phỏt cho những tham số hỡnh thức để cỏc khối chương trỡnh này trao đổi tham trị với hệ điều hành và cỏc khối chương trỡnh khỏc.

-System memory: Là vựng nhớ chứa cỏc bộ đệm vào/ ra (I/ Q), cỏc vựng biến cờ M, cỏc thanh ghi C-word, PV, T-bit của Timer, thanh ghi C-word, PV, C-bit của

- 93 -

Counter.

3. Kỹ thuật lập trỡnh tuyến tớnh

Lập trỡnh tuyến tớnh là chương trỡnh ứng dụng được tập trung trong một khối tổ chức chương trỡnh (OB1) chứa chuỗi lệnh liờn tiếp theo tuần tự ,cú khả năng thực hiện trực tiếp theo vũng quột. Phương phỏp này thỡ gọn nhẹ nhưng chỉ phự hợp với bài toỏn đơn giản.

Hỡnh 2.53: Sơ đồ khối local block

Khi thực hiện khối OB1, hệ điều hành luụn cấp một local block cú kớch thước mặc định là 20 byte trong work memory để OB1 cú thể lấy được những dữ liệu từ hệ điều hành.

4. Kỹ thuật lập trỡnh phõn bố

Chương trỡnh được phõn bố thành cỏc khối, mỗi khối chứa cỏc lệnh logic để thực hiện cỏc nhiệm vụ của cỏc thiết bị. Những lệnh định nghĩa ở khối tổ chức OB1 sẽ thi hành cỏc khối phõn bố của chương trỡnh điều khiển. Trong lập trỡnh phõn bố, lệnh điều khiển cỏc thành phần điển hỡnh được tỏch ra khỏi khối OB1 và đặt chỳng trong cỏc khối khỏc (FC, FB).

- 94 -

V. Thiết kế mạch điều khiển

Trước đõy mạch điện của hệ thống là sự tớch hợp của nhiều cỏc phần tử điện như rơle trandito và cả cỏc IC, … Nờn rất phức tạp. Do đú gõy khú khăn cho việc thiết kế và lắp rỏp. Ngày nay, với sự ra đời và phỏt triển của cỏc bộ điều khiển logic, cỏc thiết bị được mụ đun hoỏ rất cao cựng sự tớch hợp rất lớn giỳp cho việc thiết kế mạch trở nờn đơn giản hơn rất nhiều. Ta chỉ cần bộ PLC và cỏc mụ đun của nú cựng cỏc thiết bị vào ra là cú thể xõy dựng mạch điều khiển cho hệ thống.

Cỏc thiết bị cho hệ thống điều khiển được chọn như ở trờn. Sau đõy là sơ đồ lắp đặt và đấu nối cỏc thiết bị của hệ thống điều khiển và cỏc thiết bị vào ra.

5.1. Phõn tớch Sơ đồ lắp đặt cỏc thiết bị điều khiển

Cỏc thiết bị điều khiển lắp đặt trờn thanh Rack 0 yờu cầu phải được bố trớ lần lượt theo thứ tự được quy định rất chặt chẽ. Việc quy định thứ tự lắp đặt này sẽ giỳp việc lập trỡnh điều khiển và sửa chữa dễ ràng. Thứ tự cỏc thiết bị được bố trớ theo sơ đồ hỡnh 2.55:

-Vị trớ thứ nhất (PS): là mụ đun nguồn kớ hiệu là PS 370 2A. Mụ đun này cung cấp nguồn 1 chiều cho cỏc thiết bị 1 chiều của hệ thống như: Cỏc cụng tắc, nỳt nhấn, khởi động từ, rơle, …

-Vị Trớ thứ hai (CPU 312 IFM): là mụ đun điều khiển trung tõm PLC 312IFM. Mụ đun này chứa chương trỡnh điều khiển và cỏc cổng vào ra điều khiển toàn bộ hoạt động của hệ thống.

-Vị trớ thứ ba (IM): là mụ đun giao tiếp IM 361. Mụ đun này cú tỏc dụng truyền thụng tin cũng như dữ kiệu từ CPU tới cỏc mụ đun khỏc và cũng là đường phản hồi thụng tin từ cỏc mụ đun khỏc tới.

-Vị trớ thứ tư (DI): là mụ đun vào số DI16 x DC24V. Mụ đun này cú 16 cổng vào điều khiển để nhận tớn hiệu vào từ cỏc cụng tắc, cảm biến, …

-4 vị trớ cũn lại (DO): là mụ lắp 4 mụ đun ra số DO32x120VAC/1A. Mụ đun này cho tớn hiệu ra cỏc thiết bị như: cỏc đốn điều khiển, cỏc bộ hiển thị thời gian, …

- 95 - U R -R a ck (0 ) S lo t1 : M o d u le n g u ồ n Slo t2 : M o d u le C P U Slo t3 :m o d u le I M (M o d u le g ia o ti ếp ) S lo t4 : M o d u le D I v ớ i 1 6 c ổ n g v ào S lo t5 : M o d u le D O 1 3 2 đ ầu r a S lo t6 : M o d u le D O 2 3 2 đ ầu ra U R O rd e r n o : 6 E S 7 3 9 0 -1 ... 0 - 0 A A 0

Một phần của tài liệu Thiết kế hệ thống điều khiển đèn giao thông sử dụng bộ điều khiển plc (Trang 87)

Tải bản đầy đủ (PDF)

(116 trang)