2) Đỏnh giỏ chất lượng của ĐATN ( so với nội dung yờu cầu đó đề ra trong nhiệm vụ
2.2.4. Vũng quột chương trỡnh PLC S7-300
PLC thực hiện chương trỡnh theo một chu trỡnh lặp được gọi là vũng quột (scan). Một vũng lặp được gọi là một vũng quột. Cú thể chia một chu trỡnh thực hiện của S7-300 ra làm 4 giai đoạn. Giai đoạn một là giai đoạn đọc dữ liệu từ cỏc cổng vào, cỏc dữ liệu này sẽ được lưu trữ trờn vựng đệm cỏc đầu vào. Tiếp theo là giai đoạn thực hiện chương trỡnh, trong từng vũng quột chương trỡnh lần lượt thực hiện tuần tự từ lệnh đầu tiờn và kết thỳc ở lệnh cuối cựng tiếp đến là giai đoạn chuyển nội dung cỏc bộ đệm ảo tới cổng ra. Giai đoạn cuối cựng là giai đoạn truyền thụng nội bộ và kiểm tra lỗi. Đến đõy một vũng quột được hoàn thành và một vũng quột mới được tiếp tục tạo nờn một chu trỡnh lặp vụ hạn.
Hỡnh 2.16: Miờu tả một vũng quột chƣơng trỡnh của S7 -300.
Một điểm cần chỳ ý là tại thời điểm thực hiện lệnh vào/ra thụng thường cỏc lệnh khụng làm việc trực tiếp với cỏc cổng vào/ra mà chỉ thụng qua bộ đệm ảo của cổng trong vựng nhớ tham số. Chỉ khi gặp lệnh yờu cầu truy xuất cỏc đầu vào/ra ngay lập tức thỡ hệ thống sẽ cho dừng cỏc cụng việc khỏc, ngay cả chương trỡnh xử lý ngắt để thực hiện lệnh này một cỏch trực tiếp với cỏc cổng vào/ra. Cỏc chương trỡnh con xử lý ngắt chỉ được thực hiện trong vũng quột khi xuất tớn hiệu bỏo ngắt và cú thể xảy ra bất cứ thời điểm nào trong vũng quột.
4.Truyền thụng và kiểm tra 1.Chuyển dữ liệu từ cổng vào tới I 2.Thực hiện chương trỡnh 3.Chuyển dữ liệu từ Q tới cổng ra
Bộ đệm I và Q khụng liờn quan đến cỏc cổng vào/ra tương tự nờn cỏc lệnh truy nhập tương tự được thực hiện trực tiếp với cổng vật lý chứ khụng qua bộ đệm.
Thời gian cần thiết để PLC thực hiện được một vũng quột gọi là thời gian vũng quột (Scan Time). Thời gian vũng quột khụng cố định, tức là khụng phải vũng quột nào cũng được thực hiện theo một khoảng thời gian như nhau. Cỏc vũng quột nhanh, chậm phụ thuộc vào số lệnh trong chương trỡnh được thực hiện, vào khối lượng dữ liệu được truyền thụng…trong vũng quột đú.
Như vậy giữa việc đọc dữ liệu từ đối tượng để xử lý, tớnh toỏn và việc gửi tớn hiệu điều khiển đến đối tượng đú cú một khoảng thời gian trễ đỳng bằng thời gian vũng quột. Thời gian vũng quột càng ngắn, tớnh thời gian thực của chương trỡnh càng cao.
Nếu sử dụng cỏc khối chương trỡnh đặc biệt cú chế độ ngắt, vớ dụ như là OB40 ,OB80…Chương trỡnh của cỏc khối đú sẽ được thực hiện trong vũng quột khi xuất hiện tớnh hiệu bỏo ngắt cựng chủng loại. Nếu một tớn hiệu bỏo ngắt xuất hiện khi PLC đang trong giai đoạn truyền thụng và kiểm tra nội bộ, PLC sẽ dừng cụng việc truyền thụng, kiểm tra để thực hiện khối chương trỡnh tương ứng với tớn hiệu bỏo ngắt đú. Với hỡnh thức tớn hiệu xử lý ngắt như vậy, thời gian của vũng quột càng lớn khi càng cú nhiều tớn hiệu ngắt xuất hiện trong vũng quột.
Do đú, để nõng cao tớnh thời gian thực của chương trỡnh điều khiển, tuyệt đối khụng nờn viết chương trỡnh xử lý ngắt quỏ dài hoặc quỏ lạm dụng việc sử dụng chế độ ngắt trong chương trỡnh điều khiển.
2.2.5. Cấu trỳc chương trỡnh của PLC S7- 300.
Cỏc chương trỡnh điều khiển PLC S7-300 được viết theo một trong hai dạng sau: chương trỡnh tuyến tớnh và chương trỡnh cú cấu trỳc .
2.2.5.1. Lập trỡnh tuyến tớnh.
Toàn bộ chương trỡnh điều khiển nằm trong một khối trong bộ nhớ. Loại hỡnh cấu trỳc tuyến tớnh này phự hợp với những bài toỏn tự động nhỏ, khụng phức tạp.
Khối được chọn phải là khối OB1, là khối mà CPU luụn quột và thực hiện cỏc lệnh trong nú thường xuyờn, từ lệnh đầu tiờn đến lệnh cuối cựng và quay lại từ lệnh đầu tiờn.
Hỡnh 2.17: Miờu tả cỏch thức lập trỡnh tuyến tớnh.
2.2.5.2. Lập trỡnh cú cấu trỳc.
Trong PLC Siemens S7-300 chương trỡnh được chia nhỏ thành từng khối nhỏ mà cú thể lập trỡnh được với từng nhiệm vụ riờng. Loại hỡnh cấu trỳc này phự hợp với những bài toỏn điều khiển nhiều nhiệm vụ và phức tạp. PLC S7-300 cú 4 loại khối cơ bản:
Khối tổ chức OB (Oganization block): Khối tổ chức và quản lý chương trỡnh điều khiển.
Khối hàm FC (Function): Khối chương trỡnh với những chức năng riờng giống như một chương trỡnh con hoặc một hàm.
Khối hàm chức năng FB (Function block): Là loại khối FC đặc biệt cú khả năng trao đổi dữ liệu với cỏc khối chương trỡnh khỏc. Cỏc dữ liệu này phải được tổ chức thành khối dữ liệu riờng cú tờn gọi là Data block (DB).
Khối dữ liệu DB (Data block): Khối chứa cỏc dữ liệu cần thiết để thực hiện chương trỡnh, cỏc tham số khối do ta tự đặt. Khối dữ liệu dựng để chứa cỏc dữ
Vũng quột
Lệnh 1 Lệnh 2
Lệnh cuối cựng
liệu của chương trỡnh. Cú hai loại DB: Shared DB (thang ghi DB) và instance DB (thanh ghi DI).
Khối Shared DB (DB): Là khối dữ liệu cú thể được truy cập bởi tất cả cỏc khối trong chương trỡnh đú.
Khối Instance DB (DI): Là khối dữ liệu được gỏn cho một khối hàm duy nhất, dựng để chứa dữ liệu của khối hàm này.
Khối SFC (System function): Là cỏc hàm được tớch hợp trong hệ điều hành của CPU, cỏc hàm này cú thể được gọi bởi chương trỡnh khi cần. Người lập trỡnh khụng thể tạo ra cỏc SFC. Hàm được lập trỡnh trước và tớch hợp sẵn trong CPU S7. Ta cú thể gọi SFC từ chương trỡnh, vỡ những SFC là một phần của hệ điều hành, ta khụng cần phải nạp chỳng vào như một phần của chương trỡnh.
Khối SFB (System function block): Chức năng tương tư như SFC nhưng SFB cần DB tỡnh huống như FB vậy. Ta phải tải DB này xuống CPU như một phần của chương trỡnh.
Khối SDB (System data block): Vựng nhớ của chương trỡnh được tạo bởi cỏc ứng dụng STEP7 khỏc nhau để chứa dữ liệu cần để điều hành PLC. Thớ dụ: ứng dụng “S7 Configuration” cất dữ liệu cấu hỡnh và cỏc tham số làm việc khỏc trong cỏc SDB,và ứng dụng “Communication Configuration” tạo cỏc SDB mà cất dữ liệu thụng tin toàn cục được chia sẻ giữa cỏc CPU khỏc nhau.
Chương trỡnh trong trong lập trỡnh cú cấu trỳc là cỏc khối được liờn kết lại với nhau bằng cỏc lệnh gọi khối, chuyển khối. Xem như những phần chương trỡnh trong cỏc khối như là cỏc chương trỡnh con.
Trong S7-300 cho phộp gọi chương trỡnh con lồng nhau, tức là chương trỡnh con này gọi từ một chương trỡnh con khỏc và từ chương trỡnh con được gọi lại gọi đến chương trỡnh con thứ 3…Số cỏc lệnh gọi lồng nhau phụ thuộc vào từng chủng loại module CPU khỏc nhau mà ta đang sử dụng. Vớ dụ như đối với module CPU 314 thỡ
số lệnh gọi lồng nhau nhiều nhất cú thể cho phộp là 8.Nếu số lần gọi lồng nhau mà vượt quỏ con số giới hạn cho phộp, PLC sẽ chuyển sang chế độ Stop và đặt cờ bỏo lỗi.
Hỡnh 2.18: Miờu tả cỏch thức lập trỡnh cú cấu trỳc.
2.2.6. Cỏc khối OB đặc biệt.
Trong khi khối OB1 được thực hiện đều đặn ở từng vũng quột thỡ cỏc khối OB khỏc chỉ được thực hiện khi xuất hiện tớn hiệu ngắt tương ứng, núi cỏch khỏc chương trỡnh viết trong cỏc khối này là cỏc chương trỡnh xử lý ngắt. Cỏc khối này gồm cú:
OB10 (Time of Day Interrupt): Ngắt thời gian trong ngày, bắt đầu chạy ở thời điểm (được lập trỡnh nhất định) đặc biệt.
OB20 (Time Delay Interrupt): Ngắt trỡ hoón, chương trỡnh trong khối này được thực hiện sau một khoảng thời gian delay cố định.
OB35 (Cyclic Interrupt): Ngắt tuần hoàn, lặp lại sau khoảng thời gian cỏch đều nhau được định trước (1ms đến 1 phỳt).
OB40 (Hardware Interrupt): Ngắt cứng, chạy khi phỏt hiện cú lỗi trong module ngoại vi.
OB80 (Cycle Time Fault): Lỗi thời gian chu trỡnh, thực hiện khi thời gian vũng quột vượt quỏ thời gian cực đại đó định.
OB1 FC1 FB2 FB5 FC3 FB9 FC7
Số lệnh gọi lồng nhau nhiều nhất cho phộp phụ thuộc vào từng loại CPU
OB81 (Power Supply Fault): Thực hiện khi CPU phỏt hiện thấy cú lỗi nguồn nuụi. OB82 (Diagnostic Interrupt): Chương trỡnh trong khối này được gọi khi CPU phỏt hiện cú sự cố từ module I/O mở rộng.
OB85 (Not Load Fault): Được gọi khi CPU thấy chương trỡnh ứng dụng cú sử dụng chế độ ngắt nhưng chương trỡnh xử lý tớn hiệu ngắt lại khụng cú trong khối OB tương ứng.
OB87 (Communication Fault): Thực hiện khi cú lỗi truyền thụng.
OB100 (Start Up Information): Thực hiện một lần khi CPU chuyển trạng thỏi từ STOP sang RUN.
OB101 (Cold Start Up Information_chỉ cú ở CPU S7-400): Thực hiện một lần khi cụng tắc nguồn của CPU chuyển trạng thỏi từ OFF sang ON.
OB121 ( Synchronous Error): Được gọi khi cú lỗi logic trong chương trỡnh. OB122 (Synchronous Error): Được gọi khi cú lỗi module trong chương trỡnh.
2.2.7. Ngụn ngữ lập trỡnh của PLC S7-300.
Cỏc loại PLC núi chung cú nhiều loại ngụn ngữ lập trỡnh nhằm phục vụ cỏc đối tượng sử dụng khỏc nhau. PLC S7-300 cú 3 ngụn ngữ lập trỡnh cơ bản đú là:
* Ngụn ngữ STL (Statement List).
* Ngụn ngữ FBD (Function Block Diagram). * Ngụn ngữ LAD (Ladder diagram).
Ngụn ngữ STL (Statement List): Ngụn ngữ “liệt kờ lệnh”, dạng ngụn ngữ lập trỡnh thụng thường của mỏy tớnh, một chương trỡnh được ghộp bởi nhiều cõu lệnh theo một thuật toỏn nhất định,mỗi lệnh chiếm một hàng và cú cấu trỳc chung “ tờn lệnh + toỏn hạng ”.
Ngụn ngữ FBD (Function Block Diagram): Ngụn ngữ “hỡnh khối” là ngụn ngữ đồ hoạ cho những người quen thiết kế mạch điều khiển số.
Ngụn ngữ LAD (Ladder diagram): Đõy là ngụn ngữ lập trỡnh “hỡnh thang”, dạng ngụn ngữ đồ hoạ thớch hợp cho nhữmg người quen thiết kế mạch điều khiển logic.
Nhưng cú một điểm cần lưu ý đú là một chương trỡnh viết trờn ngụn ngữ STL thỡ cú thể được chuyển thành dạng ngụn ngữ LAD, FBD nhưng ngược lại thỡ chưa chắc vỡ trong tập lệnh của STL thỡ trong 2 ngụn ngữ trờn chưa hẳn đó cú. Vỡ ngụn ngữ STL là ngụn ngữ cú tớnh đa dạng nhất sau đõy xin giới thiệu chi tiết hơn về cỏc lệnh trong ngụn ngữ này.
2.2.7.1. Cỏc lệnh cơ bản trong STL.
Cỏc lệnh về logic tiếp điểm, bao gồm. = Lệnh gỏn.
A Lệnh thực hiện phộp AND .
AN Lệnh thực hiện phộp ANDNOT. O Lệnh thực hiện phộp OR.
ON Lệnh thực hiện phộp ORNOT.
A ( Lệnh thực hiện phộp AND với biểu thức.
AN( Lệnh thực hiện phộp ANDNOT với biểu thức. O( Lệnh thực hiện phộp OR với biểu thức.
ON( Lệnh thực hiện phộp ORNOT với biểu thức. X Lệnh thực hiện phộp EXCLUSIVE OR.
XN Lệnh thực hiện phộp EXCLUSIVE OR NOT .
X ( Lệnh thực hiện phộp EXCLUSIVE OR với biểu thức. XN( Lệnh thực hiện phộp EXCLUSIVE OR NOT với biểu thức.
SET Lệnh thực hiện ghi giỏ trị 1 vào RLO. CLR Lệnh thực hiện ghi giỏ trị 0 vào RLO.
NOT Lệnh đảo giỏ trị của RLO.
S Lệnh ghi giỏ trị 1 vào toỏn hạng khi mà trước đú RLO =1. R Lệnh ghi giỏ trị 0 vào toỏn hạng khi mà trước đú RLO =1. FP Lệnh phỏt hiện sườn lờn.
SAVE Lệnh chuyển nội dung của RLO với bit trang thỏi BR.
Cỏc lệnh về thanh ghi ACCU. Cú 2 thanh ghi được kớ hiệu là ACCU1 và ACCU2. Hai thanh ghi này cựng cú kớch thước 32 bits, 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 nhiều bit …. Đều được thực hiện trờn hai thanh ghi trạng thỏi này.Cỏc tập lệnh trong 2 thanh ghi này cú nhiều lệnh khỏc nhau gồm những lệnh như:
* Cỏc lệnh đọc ghi và chuyển nội dung thanh ghi ACCU.
L Lệnh đọc giỏ trị chỉ định trong toỏn hạng vào thành ghi ACCU1 và giỏ trị cũ của ACCU1 sẽ được chuyển tới thanh ghi ACCU2.
T Lệnh cất nội dung ACCU 1 vào ụ nhớ.
POP Lệnh chuyển nội dung của ACCU2 vào ACCU1. PUSP Lệnh chuyển nội dung của ACCU1 vào ACCU2. TAK Lệnh đảo nội dung của ACCU2 và ACCU1.
CAW Lệnh đảo nội dung 2 byte của từ thấp trong ACCU1. CAD Lệnh đảo nội dung cỏc byte trong ACCU1.
INVI Lệnh đảo giỏ trị cỏc bit trong từ thấpACCU1. INVD Lệnh đảo giỏ trị cỏc bit trong ACCU1.
* Cỏc lệnh logic thực hiện trờn thanh ghi ACCU.
AW Lệnh thực hiện phộp tớnh AND giữa cỏc bit trong từ thấp của 2 thanh ghi ACCU1 và ACCU2 với nhau.
AD Lệnh thực hiện phộp tớnh AND giữa cỏc bit trong 2 thanh ghi ACCU1 và ACCU2 với nhau.
OW Lệnh thực hiện phộp tớnh OR giữa cỏc bit trong từ thấp của 2 thanh ghi ACCU1 và ACCU2 với nhau )
OD Lệnh thực hiện phộp tớnh OR giữa cỏc bit trong 2 thanh ghi ACCU1 và ACCU2 với nhau.
XOW Lệnh thực hiện phộp tớnh XOR giữa cỏc bit trong từ thấp của 2 thanh ghi ACCU1 và ACCU2 với nhau.
XOD Lệnh thực hiện phộp tớnh XOR giữa cỏc bit trong 2 thanh ghi ACCU1 và ACCU2 với nhau.
* Cỏc lệnh tăng giảm nội dung thanh ghi ACCU.
INC Lệnh tăng giỏ trị của byte thấp của từ thấp thanh ghi ACCU1 lờn 1 đơn vị.
DEC Lệnh giảm giỏ trị của byte thấp của từ thấp thanh ghi ACCU1 xuống 1 đơn vị.
2.2.8. Bộ thời gian ( TIME ).
2.2.8.1. Nguyờn tắc làm việc của bộ thời gian.
Bộ thời gian (Time) hay cũn gọi là bộ tạo thời gian trễ theo mong muốn khi cú tớn hiệu đầu vào cấp cho bộ Time. Tớn hiệu này được tớnh từ khi cú sườn lờn ở tớn hiệu đầu vào u(t) chuyển từ trạng thỏi 0 lờn 1, được gọi là thời điểm kớch Time.
Hỡnh 2.20: Miờu tả tớn hiệu vào ra của bộ thời gian.
Thời gian trễ được khai bỏo với timer bằng một giỏ trị 16 bit gồm 2 thành phần: Độ phõn giải với đơn vị là ms. Time S7 -300 cú 4 loại độ phõn giải khỏc nhau là 10ms, 100ms, 1s và 10s. Timer CV u (t) PV y(t) T - bit
Một số nguyờn (BCD) trong khoảng 0 đến 999, gọi là PV (Giỏ trị đặt trước cho Time).
Vậy thời gian trễ = Độ phõn giải * PV.
Ngay tại thời điểm kớch Time giỏ trị PV (giỏ trị đặt ) được chuyển vào thanh ghi 16 bit của Time T-Word (Gọi là thanh ghi CV thanh ghi biểu diễn giỏ trị tức thời). Time sẽ ghi nhớ khoảng thời gian trụi qua kể từ khi được kớch bằng cỏch giảm dần một cỏch tương ứng nội dung thanh ghi CV. Nếu nội dung thanh ghi CV trở về khụng thỡ Time đó đạt được thời gian trễ mong muốn và điều này sẽ được thụng bỏo ra bờn ngoài bằng cỏch thay đổi trạng thỏi tớn hiệu đầu ra y(t).
Nhưng việc thụng bỏo ra bờn ngoài cũng cũn phụ thuộc vào từng loại time khỏc nhau.
Bờn cạnh sườn lờn của tớn hiệu đầu vào u(t). Time cũn cú thể được kớch bởi sườn lờn của tớn hiệu chủ động kớch cú tờn là tớn hiệu enable.
Và nếu như tại thời điểm cú sườn lờn của tớn hiệu enable, tớn hiệu u(t) cú giỏ trị bằng 1. Từng loại Time được đỏnh số thứ tự từ 0 tới 255 tựy thuộc vào từng loại CPU. Một Time đang làm việc cú thể được đưa về trạng thỏi chờ khởi động ban đầu nhờ tớn hiệu Reset, khi cú tớn hiệu xúa thỡ Time cũng ngừng làm việc luụn. Đồng nghĩa với cỏc giỏ trị của T-Work và T -Bit cũng đồng thời được xúa về 0 lỳc đú giỏ trị tức thời CV và tớn hiệu đầu ra cũng là 0 luụn.
2.2.8.2. Khai bỏo sử dụng.
Việc khai bỏo làm việc của bộ Time bao gồm cỏc bước sau:
Khai bỏo tớn hiệu enablenếu muốn sử dụng tớn hiệu chủ động kớch. Khai bỏo tớn hiệu đầu vào u(t).
Khai bỏo thời gian trễ mong muốn.
Khai bỏo loại Time được sử dụng (SD,SS,SP,SE,SF).
Trong cỏc khai bỏo trờn thỡ cỏc bước 2,3,4 là bắt buộc phải cú. S7-300 cú 5 loại Time được khai bỏo bằng cỏc lệnh:
Timer SD (On delay timer): Trễ theo sườn lờn khụng nhớ. Timer SS ( Retentive on delay timer): Trễ theo sườn lờn cú nhớ. Timer SP (Pulse timer): Timer tạo xung khụng cú nhớ.
Timer SE (Extended pulse timer): Timer tạo xung cú nhớ. Timer SF (Off delay): Timer trễ theo sườn xuống.
2.2.9. BỘ ĐẾM ( COUNTER ).
2.2.9.1. Nguyờn tắc làm việc của bộ đếm ( Counter ).
Counter là bộ đếm thực hiện chức năng đếm sườn xung của cỏc tớn hiệu đầu