Cùng với sự phát triển của xã hội, đời sống người dân ngày càng được nâng cao, việc thay thế các hoạt động thủ công bằng các thiết bị tự động cũng được người dân đáp ứng nhiều trong công nghiệp cũng như trong sinh hoạt. Công nghệ tự động giám sát và điều khiển mức chất lỏng cũng được nhiều công ty, xí nghiệp cũng như các nhà máy ứng dụng nhiều nhằm thay thế việc giám sát và điều khiển mức chất lỏng bằng phương pháp thủ công, công nghệ tự động giám sát mức chất lỏng đảm bảo việc kiểm soát, điều khiển lưu lượng chất lỏng sử dụng, bơm, xả chất lỏng một cách tin cậy mà không cần sự kiểm tra trực tiếp của con người. Công nghệ này được ứng dụng nhiều trong việc xử lý nước thải, lọc hóa dầu, nhà máy nước, nhà máy nhiệt điện, truyền điện, điện hạt nhân, các bể nước, tháp nước tự động.... Từ những vấn đề trên đặt ra yêu cầu là dùng phương pháp nào để giám sát và điều khiển mức chất lỏng một cách hợp lý nhất về chi phí, độ tin cậy, khả năng linh hoạt, dễ vận hành và dễ sử dụng nhất. Sau khi xác định được đối tượng, chủ thể nghiên cứu và giới hạn phạm vi nghiên cứu, việc xác định mục tiêu là bước quan trọng, kê tiếp nhằm định hướng đúng đắn cho quy trình thực hiện đề tài. Mục tiêu cụ thể như sau: • Tìm hiểu phương pháp đo mức nước • Tìm hiểu về PLC s7 – 200 • Tìm hiểu đầu vào, ra analog • Tìm hiểu giao thức máy tính kết nối với PLC • Thiết kế giao diện Wincc để đo và giám sát bồn nước
Trang 1LỜI NÓI ĐẦU
Hiện nay trong công cuộc công nghiệp hóa hiện đại hóa đất nước yêu cầu về tựđộng hóa ngày càng cao trong đời sống sinh hoạt sản xuất ( yêu cầu điều khiển tựđộng linh hoạt tiện lợi, gọn nhẹ ) Mặt khác nhờ công nghệ thông tin công nghệ điện tửphát triển nhanh chóng làm xuất hiện thiết bị điều khiển khả trình PLC Để thực hiệncông việc một cách khoa học nhằm đạt đươc số lượng sản phẩm lớn, nhanh mà lại tiệnlợi về kinh tế Các công ty xí nghiệp sản xuất thường sử dụng công nghệ lập trình.Dây chuyền sản xuất tự động PLC giảm sức lao động của công nhân mà lại đạt đượchiệu quả cao đáp ứng kịp thời cho nhu cầu đời sống
Qua những năm học tại trường Đại học Sao đỏ em đã được giao đề tài “Nghiên cứu hệ thống giám sát mực nước” Do Thạc sỹ Phạm Thị Diễm Hương hướng dẫn.
Nội dung đồ án của em gồm:
Chương 1: Tổng quan về hệ thống giám sát mực nước
Chương 2: Tổng quan về PLC Siemens, màn hình công nghiệp
Chương 3: Lắp đặt tủ điều khiển và giám sát mức nước
Trong quá trình thực hiện còn găp nhiều khó khăn do tài liệu tham khảo cho vấn
đề này vẫn còn rất ít và hạn hẹp Mặc dù rất cố gắng nhưng khả năng, thời gian cóhạn, kinh nghiệm chưa nhiều nên không thể tránh được sai sót trong quá trình làm rấtmong được sự đóng góp ý kiến bổ sung của các thầy cô giáo cùng các bạn để đồ ánđược hoàn thành tốt hơn
Em xin chân thành cảm ơn!
1
Trang 2CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT MỰC NƯỚC1.1 Mục đích
Cùng với sự phát triển của xã hội, đời sống người dân ngày càng được nâng cao,việc thay thế các hoạt động thủ công bằng các thiết bị tự động cũng được người dânđáp ứng nhiều trong công nghiệp cũng như trong sinh hoạt
Công nghệ tự động giám sát và điều khiển mức chất lỏng cũng được nhiều công ty,
xí nghiệp cũng như các nhà máy ứng dụng nhiều nhằm thay thế việc giám sát và điềukhiển mức chất lỏng bằng phương pháp thủ công, công nghệ tự động giám sát mứcchất lỏng đảm bảo việc kiểm soát, điều khiển lưu lượng chất lỏng sử dụng, bơm, xảchất lỏng một cách tin cậy mà không cần sự kiểm tra trực tiếp của con người Côngnghệ này được ứng dụng nhiều trong việc xử lý nước thải, lọc hóa dầu, nhà máy nước,nhà máy nhiệt điện, truyền điện, điện hạt nhân, các bể nước, tháp nước tự động
Từ những vấn đề trên đặt ra yêu cầu là dùng phương pháp nào để giám sát và điềukhiển mức chất lỏng một cách hợp lý nhất về chi phí, độ tin cậy, khả năng linh hoạt, dễvận hành và dễ sử dụng nhất
Sau khi xác định được đối tượng, chủ thể nghiên cứu và giới hạn phạm vi nghiêncứu, việc xác định mục tiêu là bước quan trọng, kê tiếp nhằm định hướng đúng đắncho quy trình thực hiện đề tài Mục tiêu cụ thể như sau:
Tìm hiểu phương pháp đo mức nước
Tìm hiểu về PLC s7 – 200
Tìm hiểu đầu vào, ra analog
Tìm hiểu giao thức máy tính kết nối với PLC
Thiết kế giao diện Wincc để đo và giám sát bồn nước
1.2 Phương pháp đo mức
Có nhiều phương pháp để đo mức chất lỏng trong thực tế, một số phương pháp như: Phương pháp thủy tĩnh, phương pháp điện, phương pháp bức xạ Trong từng phương pháp cũng có nhiều nguyên lý đo khác nhau
1.2.1 Cảm biến mức dùng phương pháp thủy tĩnh
* Cảm biến dùng phao nổi ( Float Lever Meter)
Chỉ số cảm biến là hàm liên tục tỉ lệ với chiều cao của chất lưu trong bình chứa, không phụ thuộc vào tủ trọng và tính chất điện của chất lưu
Phao nổi chuyển động lên xuống phụ thuộc vào mức chất lỏng trong bể chứa, khi mức chất lỏng tăng thì phao nổi chuyển động lên, ngước lại khi mức chất lỏng giảm thìphao nổi chuyển động xuống dưới
Tùy vào các trường hợp sử dụng cụ thể mà sử dụng các loại phao nổi khác nhau, cho các mục đích khác nhau
Trang 3 Cảm biến dùng phao vị trí ( Displacer Lever metter)
Trong bể chứa sử dụng 2 phao được nối với nhau, hoặc sử dụng một phao nửa chìm nổi để điều khiển công tắc điện
Cảm biến mức chênh áp ( Differential Pressure Lever meter)
Một cảm biến chênh áp được đặt ở đáy bình chứa, cảm biến đóng vai trò là vậttrung gian, có một màng mỏng, một mặt chịu tác động của áp suất ở đáy bình, mặt kiachịu tác động của áp suất trên đỉnh bình, sự biến dạng của màng tỉ lệ với chiều caomức chất lỏng trong bình
1.1.2 Cảm biến mức dùng phương pháp điện.
Cảm biến độ dẫn điện ( Conductivity Probes)
Một điện cực được nối vào nguồn điện, hoặc 2 điện cựa bố trí sao cho khi chất lỏngtiếp xúc với cả 2 điện cực thì có dòng điện chạy qua và khi chất lỏng tiếp xúc với mộttrong hai điện cực thì không dẫn điện (thực hiện chế độ on – off)
Cảm biến mức điện dung ( Capacitance probes)
Ở phương pháp này có thể sử dụng 2 tấm điện cực ( đối với chất lỏng không dẫnđiện – chất lỏng đóng vai rò là chất điện môi), hoặc một điện cực có phủ lớp cách điệnbên ngoài đóng vai trò là chất điện môi và điện cực còn lại là chất lỏng Sự thay dòngđiện qua tụ tỉ lệ với sự thay đổi mức chất lỏng trong bình
1.2.3 Cảm biến mức dùng phương pháp bức xạ: Sóng siêu âm, sóng viba, lazer ( ultrasonic, microwaves, laser)
Các loại cảm biến này sử dụng đo khoảng cách từ cảm biến đến bề mặt chất lỏng,
bộ phát và thu cùng nằm trên cảm biến, cảm biến đo khoảng cách (d) dựa trên thờigian (t) từ khi cảm biến phát chùm tia đến khi đầu thu của cảm biến nhận được chùmsóng phản xạ có vận tốc (v)
Phương pháo dùng sóng siêu âm
Đầu phát siêu âm (sensor) phát sóng có tần số 40Khz Sóng siêu âm khi gặp bề mặtchất lỏng sẽ bị phản trở lại Sóng phản xạ được đầu thu thu Như vậy nếu xác định thờigian đi và về của sóng siêu âm ta sẽ sác định được khoảng cách từ đầu thu – phát đến
bề mặt chất lỏng trong bể
Các phương pháp đo đã nêu trên đều được các nước trên thế giới sử dụng, mỗiphương pháp đều có ưu và nhược điểm Trong tất cả các phương pháp, phương phápđiện là phương pháp có chi phí rẻ dễ thi công phù hợp với điều kiện của việt nam,tương đối ổn định, dễ dàng thi công cũng như sửa chữa nên em chọn phương phápnày làm đồ án
3
Trang 4CHƯƠNG II: TỔNG QUAN VỀ PLC S7-2002.1 Lý thuyết chung về S7-200.
2.1.1 Cấu hình cứng.
PLC, viết tắt của Programmable Logic Control, là thiết bị điều khiển logic lập
trình được, hay khả trình, cho phép thực hiện linh hoạt các thuật toán điều khiển logicthông qua một ngôn ngữ lập trình
S7-200 là thiết bị điều khiển logic khả trình loại nhỏ của hãng Siemens (CHLBĐức), có cấu trúc theo kiểu modul và có các modul mở rộng Các modul này được sửdụng cho nhiều ứng dụng lập trình khác nhau Thành phần cơ bản của S7-200 là vi xử
lý CPU212 hoặc CPU214 về hình thức bên ngoài sự khác nhau của hai loại CPU nàybiết được nhờ số đầu vào/ra và nguồn cung cấp
CPU212 có 8 cổng vào 6 cổng ra và có khả năng mở rộng được hai modul mở rộng.CPU224 có 14 cổng vào và 10 cổng ra và có khả năng mở rộng thêm được 7modul mở rộng
S7-200 có nhiều loại modul mở rộng khác nhau
Các đèn trạng thái
Hình 2.1: PLC S7-200 với khối vi xử lý
SF (màu đỏ): Đèn SF báo hiệu hệ thống bị lỗi Đèn SF sáng khi PLC có lỗi.RUN (màu xanh): Cho biết PLC đang ở chế độ làm việc và thực hiện chươngtrình được nạp vào trong bộ nhớ chương trình của PLC
STOP (màu vàng): Chỉ định PLC đang ở chế độ dừng Dừng chương trình đangthực hiện lại
Ix.x (màu xanh): đèn xanh ở cổng vào chỉ định trạng thái tức thời của cổng (x.x =0.0 ÷1.5) Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng vào
Trang 5Qy.y (đèn xanh): Đèn xanh ở cổng ra chỉ định trạng thái tức thời của cổng (y.y =0.0÷1.10) Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng ra
Công tắc chọn chế độ làm việc cho PLC
Công tắc chọn chế độ làm việc có ba vị trí cho phép chọn các chế độ làm việckhác nhau cho PLC
RUN cho phép PLC thực hiện chương trình PLC S7-200 sẽ rời khỏi chế độ
RUN và chuyển sang chế độ STOP nếu trong máy có sự cố, hoặc trong chương trìnhgặp lệnh STOP, thậm chí ngay cả khi công tắc ở chế độ RUN Nên quan sát trạng tháithực tại của PLC theo đèn báo
STOP cưỡng bức PLC dừng công việc thực hiện chương trình đang chạy và
chuyển sang chế độ STOP Ở chế độ STOP PLC cho phép hiệu chỉnh lại chương trìnhhoặc nạp một chương trình mới
TERM cho phép máy lập trình tự quyết định một trong các chế độ làm việc cho
PLC hoặc ở RUN hoặc ở STOP
Chỉnh định tương tự
Điều chỉnh tương tự (1 bộ trong CPU 212 và 2 bộ trong CPU 214) cho phépđiều chỉnh các biến cần phải thay đổi và sử dụng trong chương trình Núm chỉnhanalog được lắp đặt dưới nắp đậy bên cạnh các cổng ra Thiết bị chỉnh định có thểquay 270 độ
Pin và nguồn nuôi bộ nhớ
Nguồn nuôi dùng để ghi chương trình hoặc nạp một chương trình mới Nguồn pin
có thể được sử dụng để mở rộng thời gian lưu giữ cho các dữ liệu trong bộ nhớ Nguồnpin tự động được chuyển sang trạng thái tích cực nếu như dung lượng tụ nhớ bị cạnkiệt, và nó phải thay thế vào vị trí đó để dữ liệu trong bộ nhớ không bị mất đi
Cổng truyền thông
S7-200 sử dụng cổng truyền thông nối tiếp RS 485 với phích cắm 9 chân để phục
vụ cho việc ghép nối với thiết bị lập trình hoặc với các trạm PLC khác.Tốc độ truyềncho máy lập trình kiểu PPI là 9000 baud Tốc độ truyền cung cấp PLC theo kiểu tự do
là từ 300 đến 38400 Các chân của cổng truyền thông là:
Trang 6Hình 2.3: Hình dáng của cáp và công tắc chọn chế độ truyền.
Tùy theo tốc độ truyền giữa máy tính và CPU mà công tắc 1,2,3 được để ở vị tríthích hợp Thông thường đối với CPU 22x thì tốc độ truyền thường đặt là 9.6 kbaud(tức công tắc 1,2,3 được đặt theo thứ tự là 010)
Tùy theo truyền thông là 10 bit hay 11 bit mà công tắc 7 được đặt ở vị trí thíchhợp Khi kết nối bình thường với máy tính thì công tắc 7 chọn ở chế độ truyền thông
11 bit (công tắc 7 đặt ở vị trí 0)
Công tắc 6 ở cáp RS232/PPI Multi- Master được sử dụng để kết nối port truyềnthông RS232 của 1 modem với S7-200 CPU Khi kết nối bình thường với máy tính thìcông tắc 6 được đặt ở vị trí data Comunications Equipment (DCE) (công tắc 6 ở vị trí0) Khi kết nối cáp PC/PPI với một modem thì port RS232 của cáp PC/PPI được đặt ở
vị trí Data Teminal Equipment (DTE) (công tắc 6 ở vị trí 1)
Công tắc 5 được sử dụng để đặt cáp RS232/PPI Multi-Master thay thế cápPC/PPI hoặc hoạt động ở chế Freeport thì đặt ở chế độ PPI/Freeport (công tắc 5 ở vị trí0) Nếu kết nối bình thường là PPI (master) với phần mềm STEP7- Micro/Win 3.2 SP4hoặc cao hơn thì đặt ở chế độ PPI (công tắc 5 ở vị trí 1)
Sơ đồ nối cáp RS232/PPI Multi-Master giữa máy tính và CPU S7-200 với tốc độtruyền 9,6 kbaud:
Trang 7Hình 2 4: Hình ảnh kết nối giữa PC và PLC thông qua cáp RS-232/PPI
Cáp USB/PPI Multi-Master.
Hình 2 5: Hình dáng của cáp
Cách thức kết nối cáp USB/PPI Multi-Master cũng tương tự như cáp RS232/PPIMulti-Master Để sử dụng cáp này, phần mềm cần phải là STEP7- Micro/WIN 3.2Service Pack 4 (hoặc cao hơn) Cáp chỉ có thể được sử dụng với loại CPU22x hoặc saunày Cáp USB không được hỗ trợ truyền thông Freeport và download cấu hình mànhình TP070 từ phần mền TP Designer
Thống số kỹ thuật của một số loại modul
CPU212 bao gồm:
512 từ đơn, tức là 1KB để lưu chương trình thuộc miền bộ nhớ đọc ghi được vàkhông bị mất dữ liệu nhờ có giao diện với EEPROM Vùng nhớ với tính chất nhưvậy được gọi là vùng nhớ noni-volatile
512 từ đơn để lưu dữ liệu, trong đó có 100 từ nhớ đọc/ghi thuộc miền non-volatile
8 cổng vào logic và 6 cổng ra logic
Có thể ghép lối thêm 2 modul để mở rộng số cổng vào/ra, bao gồm cả modultương tự (analog)
Tổng số cổng logic vào/ra cực đại là 64 cổng vào và 64 cổng ra
64 bộ tạo thời gian trễ (timer), chia làm hai loại là: Timer có nhớ và Timer không nhớ
64 bộ đếm bao gồm bộ đếm tiến và bộ đếm vừa đếm tiến vừa đếm lùi
368 bit nhớ đặc biệt sử dụng làm các bit trang thái hoặc các bit đặt chế độ làm việc
Có các chế độ ngắt và xử lý tín hiệu ngắt khác nhau bao gồm: ngắt truyền thống,ngắt theo sườn lên hoặc xuống, ngắt theo thời gian và ngắt theo tín hiệu báo của bộđếm tốc độ cao (2KHz)
Bộ nhớ không bị mất dữ liệu trong khoảng thời gian 50 giờ khi mất nguồn nuôi
7
Trang 8CPU 224 bao gồm:
4096 từ đơn (Word) để lưu chương trình thuộc miền bộ nhớ ghi/đọc được vàkhông bị mất dữ liệu nhờ có giao diện với EEPROM
2560 từ đơn để lưu dữ liệu
14 cổng vào logic và 10 cổng ra logic
Có thể ghép nối thêm 7 modul mở rộng
Tổng số cổng vào ra cực đại là 128 cổng vào và 128 cổng ra
256 bộ tạo thời gian trễ, trong đó có 4 timer có độ phân giải 1ms, 16 timer có độphân giải 10ms, 236 timer có độ phân giải 100ms
256 bộ đếm được chia làm 2 loại, một loại chỉ đếm lên (CTU), một loại vừa đếmlên vừa đếm xuống (CTUD)
256 bit nhớ đặc biệt ( lưu trạng thái bằng tụ hoặ c pin) và 112 bít (lưu rộngEEPROM) dùng làm các bit trạng thái hoặc các bit đặc chế độ làm việc
2 đầu vào tương tự độ phân giải 8 bit
Tốc độ thực hiện lệnh: 0.37µs cho 1 lệnh logic
Tích hợp đồng hồ thời gian thực
Tích hợp cổng truyền thông RS-485
Có các chế độ ngắt: ngắt truyền thông, ngắt theo sườn xung, ngắt theo thời gian
và ngắt báo hiệu của bộ đếm tốc độ cao
Dữ liệu không bị mất trong khoảng thời gian 190giờ kể từ khi PLC bị mất điện
2.1.2 Cấu trúc bộ nhớ.
Bộ nhớ của S7-200 được chia thành 4 vùng với một tụ có nhiệm vụ duy trì dữliệu trong một khoảng thời gian nhất định khi mất nguồn Bộ nhớ của S7-200 có tínhnăng động cao, đọc và ghi được trong toàn vùng, loại trừ các bit nhớ đặc biệt được kýhiệu bởi SM (special memory) có thể truy nhập để đọc
Hình 2 6: Bộ nhớ trong và ngoài của S7-200
Chương trìnhTham sốTham số
Chương trình
EEPROM
Miền nhớ ngoài
Chương trìnhTham số
Dữ liệu Vùng đối tượng
liệuTụ
Trang 9Vùng chương trình: là miền nhớ được sử dụng để lưu giữ các lệnh chương
trình.Vùng này thuộc kiểu non-volatile đọc/ghi được
Vùng tham số: là miền lưu giữ các tham số như: từ khóa, địa chỉ trạm … Cũng
giống như vùng chương trình, vùng tham số thuộc kiểu non-volatile đọc/ghi được
Vùng dữ liệu: được sử dụng để cất các dữ liệu của chương trình bao gồm cả kết
quả các phép tính, hằng số được định nghĩa trong chương trình, bộ đếm truyềnthông… một phần của vùng nhớ này (200byte đầu tiên đối với CPU 212, 1K byte đầutiên đối với CPU 214) thuộc kiểu non-volatile
Vùng đối tượng: Timer, bộ đếm, bộ đếm tốc độ cao và các cổng vào/ra tương tự
được đặt trong vùng nhớ cuối cùng Vùng này không thuộc kiểu non-volatile nhưngđọc/ghi được
và ngược lại
Các modul mở rộng số hay gián đoạn đều chiếm chỗ trong bộ nhớ ảo khi tăng giátrị của 8 bit (một byte)
9
Trang 10Hình 2 8: CPU 224 với các modul mở rộng.
Ví dụ về cách đặt địa chỉ cho các modul mở rộng trên CPU 224:
I3 0 .I3 7
AIW0AIW2AIW4AQW0
Q3 0 .Q3 7
AIW8AIW10AIW12AQW4
Trang 11Tùy thuộc trạng thái của ngõ ra mà Contactor có điện hay mất điện và tương ứngđộng cơ sẽ hoạt động hay dừng.
S7-200 sao chép trạng thái của các ngõ vào vật lí vào bộ đếm ngõ vào:
Digital inputs: Mỗi chu kỳ quét bắt đầu bằng cách đọc giá trị hiện hành các ngõ
vào số và sau đó ghi các giá trị này vào vùng đệm ngõ vào
Analog inputs: S7-200 không cập nhật các ngõ vào analog từ các module mở
rộng nếu là chu kỳ quét bình thường khi có kích hoạt khâu lọc các ngõ vào analog Bộlọc Analog được cung cấp cho phép ta có một tín hiệu ổn định hơn Có thể cho phép
bộ analog ở mỗi điểm ngõ vào Analog Khi một ngõ vào analog được kích hoạt ở bộlọc, S7-200 cập nhật ngõ vào Analaog mỗi một lần trong chu kỳ quét và lưu trữ giá trịlọc Giá trị lọc được cung cấp mỗi khi truy cập ngõ vào Analog Khi bộ lọc analogkhông được kích hoạt, S7-200 đọc giá trị ngõ vào analog từ module mở rộng mỗi lầnchương trình truy xuất ngõ vào analog
Chu kỳ quét trong S7-200
S7-200 thực hiện một loạt các nhiệm vụ theo chu kỳ Việc thực hiện các nhiệm
vụ theo chu kỳ được gọi là chu kỳ quét (Scan cycle)
Trang 12Thực hiện theo logic điều khiển trong chương trình:S7-200 thực hiện các lệnh
trong chương trình và lưu giá trị vào vùng nhớ Khi thực hiện chu kỳ quét, S7-200 thihành lệnh đầu tiên cho đến lệnh cuối cùng Các lệnh truy nhập I/O tức thì cho phép tatruy xuất ngay lập tức các ngõ vào và ngõ ra khi thực hiện chương trình cũng nhưchương trình ngắt Nếu có sử dụng các ngắt trong chương trình thì nó không thực hiện
ở chu kỳ quét bình thường Nó được thực hiện khi có sự kiện ngắt
Xử lý bất kỳ yêu cầu truyền thông nào: S7-200 thi hành bất kỳ nhiệm vụ được
yêu cầu cho truyền thông Trong giai đoạn xử lý thông tin của chu kỳ quét, S7-200 xử
lý bất kỳ thông tin nào nhận được từ cổng truyền thông hoặc từ module truyền thông
Thực hiện chuẩn đoán CPU
S7-200 tự kiểm tra để đảm bảo phần firmware, bộ nhớ chương trình và bất kỳ cácmodule mở rộng nào cũng đang làm việc đúng Trong giai đoạn này, S7-200 kiểm tracho hoạt động thích hợp của CPU và trạng thái của bất kỳ module mở rộng nào
Xuất ra ngõ ra
Các giá trị được lưu trong vùng đệm ngõ ra và sẽ được xuất ra các ngõ ra vật lý.Tại cuối mỗi chu kỳ, S7-200 xuất các giá trị được lưu trong bộ đệm ngõ ra đếncác ngõ ra số
Cấu trúc chương trình S7-200
Có thể lập trình cho PLC S7-200 bằng cách sử dụng một trong những phần mềmsau đây:
Chương trình chính được kết thúc bằng lệnh kết thúc chương trình (MEND).Chương trình con là một bộ phận của chương trình Các chương trình con phảiđược viết sau lệnh kết thúc chương trình chính, đó là lệnh MEND
Các chương trình xử lý ngắt là một bộ phận của chương trình Nếu cần sử dụngchương trình xử lý ngắt phải viết sau lệnh kết thúc chương trình chính MEND
Các chương trình con được nhóm lại thành một nhóm ngay sau chương trìnhchính Sau đó đến các chương trình xử lý ngắt bằng cách viết như vậy cấu trúc chươngtrình được rõ ràng và thuận tiện hơn trong việc đọc chương trình này Có thể tự do trộnlẫn các chương trình con và chương trình xử lý ngắt đằng sau chương trình chính
Trang 132.2 Ngôn ngữ lập trình của S7-200.
2.2.1 Giới thiệu phần mềm STEP 7-MicroWIN 32 V3.2
2.2.1.1 Giao diện phần mềm:
Đối với PLC S7-200, SIEMEN đã xây dựng một phần mềm để có thể lập trình
cho họ PLC loại này Phần mềm này có tên là STEP7- MicroWIN3.2.
Đây là một phần mềm chạy trên nền Windows 32 bit, trải qua nhiều phiên bảnkhác nhau
Để có thể thực hiện phần mềm lập trình STEP7- MicroWIN32 ta có 2 cách:
Cách 1:Vào Start→ Simatic→ MicroWIN32 V3.2.0→ MicroWIN3.2.
STEP7-13
Trang 14Cách 2: Chạy thông qua biểu tượng trên Desktop
- Communications và cách kiểm tra sự kết nối với PLC S7-200:
Ở đây ta có thể thay đổi cách mà máy tính truyền thông với PLCS7-200 (PPI, MPI, tốc độ truyền…) hoặc kiểm tra có hay không sựtruyền thông giữa máy tính và PLC S7-200 (kiểm tra sự có mặt của PLChay không)
- Symbol Table:
Vùng soạn thảo chương trình
Các khối hàm, lệnh
Công cụ kết nối các ệnhcỏc lệnh
Nút thay đổi trạng thái làm việc của CT PLC
Down load/Uploa d
Nút kiểm tra trạng thái chương trình chương trỡnh.
Trang 15Click chuột vào đây, ta sẽ được một bảng mà ở đó ta có thể định nghĩacác tên biến và đặt địa chỉ tương ứng cho các biến đó để có thể dễ nhớ và
dễ kiểm tra.Các biến này có thể là các đầu vào/ra, các biến trung gian…
- Khối hàm,
-Lệnh:
Đây là một trong những thành phần quan trọng nhất của
STEP7- MicroWIN32 Nó bao gồm toàn bộ các lệnh và khối
hàm của STEP7- Micro WIN32 để có thể tạo được một
chương trình điều khiển cho PLC S7-200
Trong đó thường dùng nhất là các khối:
+ Bit Logic: bao gồm các lệnh làm việc với bit và thực
hiện các phép toán logic như AND, OR, NOT…
+ Timer: đây là khối lệnh làm việc với các loại timer của
S7-200
+ Counter: đây là khối lệnh làm việc với các loại timer
của S7-200
+ Move: các khối lệnh dùng để di chuyển dữ liệu từ vùng
nhớ này sang vùng nhớ khác của PLC
+ Interger Math, Floating-Point Math: nhóm lệnh làm
việc với số nguyên 16bit, 32bit và số thực Nhóm lệnh này
thực hiện các phép toán số học như +, -, x, :…
+ Compare: bao gồm các khối lệnh dùng để so sánh dữ
liệu như >, <, =, ≥, ≤
Ngoài ra còn các khối khác cũng rất quan trọng chúng ta
có thể tham khảo têm ở phần Help của STEP7- MicroWIN32
Để có thể biết một khối hàm hoặc lệnh làm việc như thế nào và điều kiện kèm
theo chúng ta chọn khối hàm, lệnh đó và nhấn F1.
2.2.1.3 Một số thao tác quan trọng:
- Có 2 cách để tạo một chương trình mới:
+ Vào menu File New
+ Dựng biểu tượng trên thanh cụng cụ
- Lưu lại chương trình đó viết bằng cách:
+ Vào menu File Save.
+ Dùng biểu tượng trên thanh cụng cụ
- Để chèn một network mới:
15
Trang 16+ Click chuột phải vào số thứ tự của network, chọn Insert Network(s).
+ Dựng biểu tượng trên thanh cụng cụ
- Để xoá một network: chọn network
+ Click chuột phải vào network cần xoỏ, chọn Delete Network(s).
+ Dựng biểu tượng trên thanh cụng cụ
- Để thêm một lệnh trong chương trỡnh:
Chọn vị trí của lệnh trong chương trỡnh:
+ Tiếp theo chọn Instructions, chọn nhúm lệnh sẽ làm việc, double click
vào lệnh cần dựng
+ Dựng biểu tượng trên thanh cụng cụ
- Để PLC S7-200 có thể thực hiện được các chương trình điều khiển, người dùng
phải Download chương trìnhxuống PLC
+ Chọn File Download Và việc download cú Phím tắt là Ctrl+D
+ Dùng ngay biểu tượng ở trên thanh công cụ
- Khi trong PLC có sẵn một chương trình, người dùng cần đưa lên để kiểm tra,
chỉnh sửa STEP7- MicroWIN32 cũng hỗ trợ việc Upload
+ Chọn menu File Upload Phím tắt là Ctrl+U.
+ Dựng biểu tượng ở trên thanh công cụ
2 2 2.Các bước để lập trình một chương trình điều khiển cho PLC S7-200
2 2.2.1 Bước 1: Phân tích yêu cầu công nghệ.
- Phân tích các yêu cầu chung của hệ thống (tức là xác định thành phần nào cầnđiều khiển, yêu cầu về thời gian, độ chính xác…)
- Phân tích thứ tự tác động của các thành phần trong hệ thống Hay nói cách khác
là sự phân biệt thứ tự hoạt động của các thành phần trong hệ thống, cái nào trước, cáinào sau và sự liên quan giữa chúng
- Phân tích bản chất của từng thành phần để xác định được các điều kiện liênquan mà chỉ phụ thuộc vào bản chất riêng của nó và kết hợp với toàn bộ với nhữngphân tích trước đó để có phương pháp điểu khiển thích hợp
2.2.2.2 Bước 2: Lập bảng địa chỉ cho các I/O.
Từ các bước phân tích về công nghệ cho ta biết sẽ có bao nhiêu I/O trong hệthống, bản chất của các I/O (số, tương tự, xung…) và ta sẽ xây dựng được một bảngcác I/O cho toàn bộ hệ thống
Việc xây dựng bảng I/O phụ thuộc vào hệ thống và cấu hình PLC hoặc hệ PLC
mà chúng ta định viết chương trình điều khiển Và việc gán địa chỉ cho các I/O của hệthống phải tuân thủ những quy định của nhà cung cấp PLC
2.2.2.3 Bước 3: Lập giản đồ thời gian hoặc lưu đồ thuật toán điều khiển.
Trang 17Đối với những hệ điều khiển tương đối lớn và phức tạp thì bước này rất quantrọng cho việc lập trình về sau này.
Nó sẽ giúp cho người lập trình phân tích hệ thống điều khiển thành từng phần, sựliên quan và thứ tự tác động của chúng và từ đó sẽ cụ thể hoá được phương án điềukhiển trên chương trình cho PLC
Còn đối với những hệ thống nhỏ không có quá nhiều các I/O thì người ta có thểxây dựng giản đồ thời gian tương ứng cho từng I/O nằm trong tổng thể thứ tự và thờigian tác động của toàn bộ I/O của hệ thống
2.2.2.4 Bước 4: Viết chương trình điều khiển.
Từ những gì đã có từ việc phân tích hệ thống và xây dựng lưu đồ thuật toán hoặcgiản đồ thời gian thì việc cụ thể hoá bằng ngôn ngữ lập trình và đưa xuống PLC cũngrất quan trọng
Ở đây người lập trình cũng phải tuân thủ những quy định của nhà sản xuất vềviệc lập trình cho loại PLC S7-200 của họ dẫn đến một số hạn chế nhất định trong việcthể hiện thuật toán Và đôi khi cũng phải điều chỉnh lại thuật toán cho phù hợp với loạiPLC mà mình đang có
2.2.2.5 Bước 5: Chạy thử chương trình và kiểm tra lỗi.
2.2.3 Bảng lệnh của 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 khilệ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 (Immediatelif) tức là giá trị được chỉ dẫn trong lệnh vừa đượcchuyển vào thanh ghi ảo vừa đồng thời được chuyển đến tiếp điểm chỉ dẫn trong lệnhngay khi lệnh được thực hiện chứ không phải chờ đến giai đoạn trao đổi với ngoại vicủa vòng quét Điều đó khác với lệnh không tức thời là giá trị được chỉ định trong lệnhchỉ được chuyển vào thanh ghi ảo khi thực hiện lệnh
BẢNG 2.1: Một số lệnh của S7-200 thuộc nhóm lệnh thực hiện vô điều kiện
= n Giá trị của bit đầu tiên ngăn xếp được sao chép sang điểm n chỉ
dẫn trong lệnh
= I n Giá trị của bit đầu tiên ngăn xếp được sao chép trực tiếp sang
điểm n chỉ dẫn trong lệnh ngay khi lệnh được thực hiện
17
Trang 18A n
Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiênngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh Kết quảđược ghi lại vào bit đầu tiên của ngăn xếp
ALD
Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiênngăn xếp với giá trị logic của bit thứ 2 ngăn xếp kết quả được ghilại vào bit đầu tiên của ngăn xếp Các giá trị còn lại trong ngănxếp được kéo lên một bit
AN n
Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiên vớigiá trị logic nghịch đảo của điểm n chỉ dẫn trong lệnh Kết quảđược ghi lại vào bit đầu tiên của ngăn xếp
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
Khởi động bộ đếm tiến theo sườn lên của tín hiệu đầu vào thứnhất, đế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 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ốngmộ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
LRD Sao chép giá trị của bit thứ hai vào bit thứ nhất 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 quét
Trang 19NOT Đảo giá trị logic của bit đầu tiên ngăn xếp.
O n
Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiênngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh Kết quảđược ghi lại vào bit đầu tiên của ngăn xếp
OI n
Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiênngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh Kết quảđược ghi lại vào bit đầu tiên của 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ênngăn xếp với giá trị logic của bit thứ hai ngăn xếp Kết quả đượcghi lại vào bit đầu tiên của ngăn xếp Các giá trị còn lại trongngăn xếp được kéo lên một bit
ON n
Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiênngăn xếp với giá trị nghịch đảo của điểm n chỉ dẫn trong lệnh.Kết quả được ghi lại vào bit đầu tiên của ngăn xếp
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 thoá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
BẢNG 2.2: Một số lệnh trong nhóm lệnh có điều kiện (chỉ thực hiện khi bit
đầu tiên ngăn xếp có giá trị logic 1)
+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
*RIN1,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ả
19
Trang 20đượ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
ANDWIN1.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ề
Sao giá trị của từ kép sang từ OUT
ORD IN1, IN2 Thực hiện toán tử OR cho hai từ kép IN1 và IN2 Kết quả được
ghi lại 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 IN2PLS 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 QO.xRLD IN, n Quay tròn từ kép IN sang trái n bit
RLW IN, n Quay tròn từ IN sang trái n bit
RRD IN, n Quay tròn từ kép IN 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 IN, n 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
BẢNG 2.3: Các lệnh đặt nhãn (label)
Trang 21Tê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 JMPNEXT 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
ta chỉ nghiên cứu loại Timer TON
Cú pháp khai báo Timer trong LAD và STL như sau:
Khai báo Timer số hiệu xxkiểu TON để tạo thời gian trễtính từ khi đầu vào IN đượckích (có mức 1) Nếu như giátrị đếm tức thời lớn hơn hoặcbằng giá trị đạt được PT thì T-bit có giá trị logic bằng 1 Cóthể Reset Timer kiểu TONbằng lệnh R hoặc bằng giá trịlogic 0 ở đầu vào IN
Txx (word):CPU212: 32÷63CPU214: 32÷63
và 96÷127
PT (word):
VW, T, C, IW….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ó hailoại bộ đếm: bộ đếm tiến (CTU) và bộ đếm tiến/lùi (CTUD) Bộ đếm tiến đếm số sườn
21
Trang 22củ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ánhvớ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ớnhơn giá trị đặt trước thì bộ đếm báo ra ngoài bằng cách đặt giá trị logic 1 vào bit đặcbiệ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 xoá để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 LAD, hay được quy định là trạng thái bit đầu tiên của ngăn xếp trong STL
bộ đếm được Reset khi tín hiệu xoá này có mức 1 hoặc khi lệnh R(reset) được thựchiệ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 khigặ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ănxếp trong STL Việc xoá bộ đếm CTUD cũng có hai cách tương tự như bộ đếm CTU
Cú pháp khai báo Counter LAD và STL như sau:
Khai báo bộ đếmtiến theo sườn lên củatín hiệu vào cổng CU sốhiệu xx kiểu CTU khigiá trị đếm tức thời C-word của Cxx lớn hơnhoặc bằng giá trị đặttrướ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):CPU212: 0 ÷47CPU224: 0÷ 47
và 80÷127PV(word):
VW, T, C, IW,n=1 – 32767 (số nguyên)
Khai báo bộ đếmtiến/lùi, đếm tiến theosườn lên của tín hiệu đến
CU và đếm lùi theo sườnlên của tín hiệu đến CD
Khi giá trị tức thời word của Cxx lớn hơn
C-Cxx (word):CPU212:48÷63CPU224:48÷79
Trang 23PV
hoặc bằng giá trị đặttrướ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- wordCxx đạt giá trị cực đại
32767 và ngừng đếm lùikhi C- word Cxx đạt giátrị cực tiểu là - 32767
PV (word):
VW, T, C, IW, n=1 – 32767 (số nguyên)
Ký hiệu Cxx của bộ đếm đồng thời cũng là địa chỉ hình thức của C - word và củaC- bit Mặc dù cũng địa chỉ hình thức, song C- word và C- bit vẫn được phân biệt vớinhau nhờ kiểu lệnh sử dụng làm việc với kiểu từ hay kiểu tiếp điểm (bit)
Ví dụ:
LD C48 // Lệnh làm việc với C-bit của bộ đếm C48
LDW>= C48 // Lệnh làm việc với C- word của bộ đếm C48
Các lệnh so sánh:
Nếu các quyết định về điều khiển được thực hiện khi cần có sự so sánh thì có thể
sử dụng lệnh so sánh theo byte, từ hay từ kép (giá trị thực hoặc nguyên) những lệnh sosánh thường là: so sánh nhỏ hơn hoặc bằng (<=); so sánh bằng (=) và so sánh lớn hơnhoặc bằng (>=)
Khi so sánh các giá trị của byte thì không cần phải để ý đến dấu của toàn hạng,ngược lại khi so sánh các từ hoặc từ kép với nhau thì phải để ý đến dấu của các toànhạng là bit cao nhất trong từ hoặc từ kép Kết quả của phép so sánh có giá trị bằng 0(nếu đúng) hoặc 1 (nếu sai) nên có thể sử dụng kết hợp cùng với các lệnh logic LD, A,
O để tạo ra được các phép so sánh mà S7 - 200 không có lệnh tương ứng như: so sánhkhông bằng nhau (<>), so sánh nhỏ hơn (<) hoặc so sánh lớn hơn (>), có thể tạo rađược nhờ dùng kết hợp lệnh NOT với các lệnh đã có (=, >= và <=) Ví dụ sau mô tảviệc thực hiện phép so sánh không bằng nhau (<>) giữa các nội dung của từ VW100
Trang 24NOT // (<)
NOT // (>)
BẢNG 2.4: Biểu diễn các lệnh so sánh trong LAD:
Tiếp điểm đóng khi n1 = n2
*vd* , AC
n1, n2: VW, T, C, IW(từ)
QW, MW, SMW,
AC, AIW, hằng số,
*VD* , *ACn1, n2: VD, ID, QD,MD,
(từ kép) SMD, AC,HC,
Trang 25Tiếp điểm đóng khi n1< n2
LDB < =, LDW < =
LDD< =,LDR < =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có nhỏ hơn hoặcbằng nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không Trong trường hợpphép so sánh cho kết quả đúng, bit đầu tiên trong ngăn xếp có giá trị logic bằng 1
LDB > =,LDW > =
LDD> =, LDR > =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có lớn hơnhoặc bằng nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không Trong trườnghợp phép so sánh cho kết quả đúng, bit đầu tiên trong ngăn xếp có giá trị logic bằng 1
AB =, AW =
AD=, AR =
Lệnh kiểm tra tính bằng nhau của nội dung hai byte, từ, từ kép hoặc số thực.trong trường hợp phép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic ANDgiữa bit đầu tiên trong ngăn xếp với giá trị logic 1
Trang 26AB < =, AW < =
AD < =, AR < =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có nhỏ hơnhoặc bằng nội dung của byte, từ kép hoặc số thực thứ hai hay không trong trường hợpphép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic AND Giữa bit đầu tiêntrong ngăn xếp với giá trị logic 1
AB > =, AW > =
AD> =, AR> =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có lớn hơnhoặc bằng nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không Trong trườnghợp phép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic AND giữa bit đầu tiêntrong ngăn xếp với giá trị logic 1
OB =, OW=
OD=, OR =
Lệnh kiểm tra tính bằng nhau của nội dung hai byte, từ, từ kép hoặc số thực.Trong trường hợp phép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic ORgiữa bit đầu tiên trong ngăn xếp với giá trị logic 1
OB < =, OW < =
OD < =, OR < =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có nhỏ hơnhoặc bằng nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không Trong trườnghợp phép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic OR giữa bit đầu tiêntrong ngăn xếp với giá trị logic 1
IN, OUT (từ đơn)
VW, T, C, IW,QW
EN
IN OUT
Trang 27BẢNG 1.5: Các bít nhớ đặc biệt (thường sử dụng khi lập các chương trình đơn
giản):
SM0.0 Luôn có giá trị logic bằng 1
SM0.1 Có giá trị logic bằng 1 ở vòng quét đầu tiên
SM0.2 Bit báo dữ liệu bị thất lạc (0-Dữ liệu còn đủ; 1-Dữ liệu bị thất lạc)SM0.3 Bit báo PLC được đóng nguồn (1- ở vòng quét đầu tiên, 0- ở vòng
quét tiếp theo)SM0.4 Phát nhịp 60 giây (0- cho 30 giây đầu, 1- cho 30 giây sau)
SM0.5 Phát nhịp 1 giây (0- cho 0,5 giây đầu, 1- cho 0,5 giây sau)
SM0.6 Nhịp vòng quét (1- cho vòng quét luôn phiên)
SM0.7 Bít chọn chế độ làm việc cho PLC (0- TERM, 1-RUN)
2.2.4 Cú pháp hệ lệnh của S7-200.
Lệnh vào/ra.
- Lệnh LD (load): nạp giá trị logic của một tiếp điểm vào trong bit đầu tiên của
ngăn xếp Các giá trị cũ còn lại trong ngăn xếp bị đẩy lùi xuống 1 bit
- Lệnh = (OUTPUT): sao chép nội dung của bit đầu tiên trong ngăn xếp vào bit
được chỉ định trong lệnh nội dung của ngăn xếp không bị thay đổi
Phương pháp chung của 2 lệnh trên là truy nhập theo bit
VD:
27
C1C2C3C4C5C6C7C
8 cC8
I1.0C0C1C2C3C4C5C6C7
I1.0C0C1C2C3C4C5C6C7
Trang 28Các lệnh logic đại số Boolean.
Các lệnh đại số Boolean cho phép tạo được các mạch logic (không có nhớ).Trong LAD các lệnh này được biểu diễn thông qua cấu trúc mạch mắc nối tiếp haysong song các tiếp điểm thường đóng hay thường mở STL có thể sử dụng các lệnhA(and) và 0 (or) cho các hàm hở hoặc các lệnh AN (and not), ON (or not) cho các hàmkín Giá trị ngăn xếp thay đổi phụ thuộc vào từng lệnh, toán hạng các lệnh trên I, Q,
M, N, T, C, V
- Lệnh A (and ).
Kiểm tra các điều kiện có thoả mãn hay không Làm phép toán and giữa mạchlogic của tiếp điểm và giá trị bit đầu tiên trong ngăn xếp, kết quả được ghi vào bit đầutiên trong ngăn xếp
m=I0.0^I0.1
LD I0.0
A I0.1 = Q1.0
C0C1C2C3C4C5C6C7C8
I0
0C0C1C2C3C4C5C6C7
mC0C1C2C3C4C5C6C7
mC0C1C2C3C4C5C6C7
Trang 29Kéo ngăn xếp lên 1 bit giá trị của bit sau được chuyển lên bit trước.
Toán hạng của 5 lệnh OLD, ALD, LPS,LRS, LPP, là không có
LD I 0.0LPS
LD I 0.1
O I 1.0ALD
= Q 0.0LPP
A I 0.3
= Q0.1
= Q 0.1
I0.0
Trang 30=Q0.1
Chú ý: Sơ đồ LAD này không soạn thảo được các phần mềm hiện có Nó được
dùng ở đây để mô tả mạch logic của chương trình STL tương ứng bên cạnh Khi dùngcác lệnh LPS, LPP, LRD bắt buộc phải viết trong STL
Các lệnh ghi - xoá giá trị cho tiếp điểm.
Lệnh S (Set) / R(Reset) dùng để đóng ngắt các tiếp điểm gián đoạn đã được thiết
kế Dùng để lưu giữ các kết quả của phép toán logic Trong LAD, logic điều khiểndòng điện đóng hoặc ngắt những cuộn dây đầu ra Khi dòng điều khiển đến các cuộndây thì các cuộn dây đóng mở tiếp điểm (hoặc một dây tiếp điểm) Nếu Stack 0 có giátrị bằng ''1'' các lệnh S/R sẽ đóng ngắt tiếp điểm hoặc một dây tiếp điểm (giới hạn từ 1đến 55) Nội dung của ngăn xếp không bị thay đổi giá trị này Phương pháp truy nhậpcủa 2 giá trị này là Byte, bit
Các lệnh can thiệp vào thời gian vòng quét
Dùng để kết thúc chương trình đang thực hiện và kéo dài khoảng thời gian mộtvòng quét
I0.0I0.0C0C1C2C3C4C5C6
I0.1I0.0I0.0C0C1C2C3C4C5
m1I0.0I0.0C0C1C2C3C4C5
m1I0.0C0C1C2C3C4C5
I0.0
I0.0
C0C1C2C3C4C5
I0.0C0C1C2C3C4C5
I0.3m2C0C1C2C3C4C5
m2C0C1C2C3C4C5
Trang 31Các lệnh điều khiển Timer.
Timer là bộ 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 vẫnđược gọi là khâu trễ
S7-200 có 64 Timer cới CPU 212 hoặc 128 Timer với CPU214 được chia làm 2loại khác nhau đó là:
Timer tạo thời gian trễ không có nhớ (on delay Timer): TON
Timer tạo thời gian trễ có nhớ (Retentive on delaytimer): TONR
Hai kiểu Timer của S7-200 (TON và TONR) phân biệt với nhau ở phản ứng của
nó với tín hiệu đầu vào
Lệnh TON.
Khai báo Timer kiểu TON để tạo thời gian trễ tính từ đầu vào IN được kích Nếunhư giá trị đếm tức thời lớn hơn hoặc bằng giá trị đặt trước PT thì T bit có giá trị logicbằng 1 Có thể Reset Timer kiểu TON bằng lệnh R hoặc bằng giá trị logic O tại đầuvào IN
Tạo thời gian trễ trong khoảng thời gian (miền liên thông )
Độ phân giải Giá trị cực đại CPU 212 CPU214
Phương pháp truy nhập theo WORD
Timer T33 có độ phân giải 10ms
Thời gian trễ T = 100 10 ms = 1s
Khi I0.0 đặt trạng thái "1"thì sau 1s Q0.0 sẽ có trạng thái "1"
Giản đồ thời gian tương ứng
31
Trang 32- Lệnh TONR
Khai báo Timer kiểu TONR để tạo thời gian trễ tính từ khi đầu vào IN được kích.Nếu như giá trị đếm tức thời lớn hơn hoặc bằng giá trị đặt trước PT thì T bit có giá trịlogic 1 Chỉ có thể logic Timer kiểu TONR bằng lệnh R cho T bit
Giản đồ thời gian tương ứng: CT1 có độ phân giải =100ms
Khoảng thời gian đặt trước T1+T2 =100*10ms +150*10ms
I0.0T37 (word)
NETWORK 2 LDW= = T1 K150
Trang 33Các lệnh điều khiển Counter.
Counter: là bộ đếm thực hiện chức năng đếm sườn xung trong S7-200 Các bộđếm của S7-200 được chia ra làm 2 loại: bộ đếm tiến (CTU) và bộ đếm lùi (CTUD)
Bộ đếm tiến CTU đếm số sườn lên của tín hiệu logic đầu vào, tức là đếm số lầnthay đổi trạng thái logic từ 0÷1 của tín hiệu Số sườn xung đếm được, được ghi vàothanh ghi 2 byte của bộ đếm, gọi là thanh ghi C- word
Nội dung của C-word gọi là giá trị đếm tức thời của bộ đếm, luôn được so sánhvớ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 này thì bộ đếm báo rangoài bằng cách đặt giá trị logic 1 vào một bit đặc biệt của nó, gọi là C- bit.Trườnghợp giá trị đếm tức thời nhỏ hơn giá trị đặt trước thì C- bit có giá trị logic là 0
Khác với bộ đếm Counter các bộ đếm CTU đều có chân nối với tín hiệu điềukhiển xóa để thực hiện việc đặt lại chế độ khởi phát ban đầu (Reset) của bộ đếm được
kí hiệu bằng chữ cái R trong LAD hay được quy định là trạng thái logic của bit đầutiên của ngăn xếp trong STL
Bộ đếm được Reset khi tín hiệu xóa này có mức logic là 1 hoặc khi lệnh R(Reset) được thực hiện với C- bit Khi bộ đếm được reset, cả C- word và C- bit đềunhận giá trị 0
PV RI0.0
4
I0.1
RPV
NetWord 1
LD I0.0
LD I0.1 CTU C1, 4C1
Trang 34
Bộ đếm tiến/lùi: CTUD đế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 bít thứ 3 của ngăn xếp trong STL và đếm lùi khi gặp sườnxung vào cổng đếm lùi, được kí hiệu là CD trong LAD hoặc bit thứ 2 của ngăn xếptrong STL,
Giống như bộ đếm CTU, bộ đếm CTUD cũng được đưa về trạng thái khởi phátban đầu bằng 2 cách: Khi đầu vào logic của chân xóa, kí hiệu bằng chữ R trong LADhoặc bit thứ nhất của ngăn xếp trong STL có giá trị logic là 1 hoặc bằng lệnh R (Reset)với C- bit của bộ đếm
CTUD có giá trị đếm tức thời đúng bằng giá trị đang đếm và được lưu trongthanh ghi 2 bit C- word của bộ đếm Giá trị đếm tức thời luôn được so sánh với giá trịđặt trước PV của bộ đếm Nếu giá trị tức thời lớn hơn hay bằng giá trị đặt trước thì C-bit có giá trị logic bằng 1 Còn các trường hợp khác C- bit có giá trị logic bằng 0 Giá trị đếm tức thời
Bộ đếm CTU có miền giá trị đếm tức thời từ 0÷32,767s Bộ đếm CTUD có miềngiá trị đếm tức thời là 32,767s
Ví dụ minh họa về sử dụng bộ đếm CTUD trong LAD và STL
+4
I0.3I0.2
C48
PVCD
Trang 35Bộ đệm 8 byte câu lệnh đồng hồ thời gian thực
Year/Month yymm yy-0 to 99 mm- 1 to 12
Day/Hour ddhh dd- 1 to 31 hh- 0 to 23
Minute/Second mmss mm-0 to 59 ss- 0 to 59
0=disables day of week
hạng
kiểu dữ liệu
đồng hồ thời gian thựcvào bộ đệm 8 byte đượcchỉ định trong lệnh bằngtoán hạng T
T: VB,
IB, QB,MB,SMB,
Trang 36TODW T Lệnh ghi nội dung của
bộ đệm 8 byte được chỉđịnh trong lệnh bằngtoán hạng T vào đồng hồthời gian thực
SET_RTC
EN ENOT
Trang 37CHƯƠNG III: CÁC PHẦN MỀM LẬP TRÌNH, MÔ PHỎNG, ĐIỀU
KHIỂN VÀ GIÁM SÁT PLC S7 – 200.
2.1 Phần mềm lập trình MicroWIN.
2.1.1 Thiết bị lập trình.
Có hai loại thiết bị có thể dùng để lập trình cho PLC S7- 200 là PG và PC
- PG: Là thiết bị lập trình chuyên dụng được dùng cho PLC S7-200 tuy nhiênchỉ sử dụng để lập trình với ngôn ngữ STL
- PC: Là máy tính cá nhân trên đó có cài phần mềm STEP7-MICROWIN.Phần mềm này cho phép lập trình với cả ba ngôn ngữ là STL, LAD và FBD Để càiphần mềm này người phải có bản quyền và PC phải cài hệ điều hànhWIN98/2000/NT/XP Hiện nay hầu hết sử dụng STEP7- MICROWIN 3.0, 3.2, 4.0 đểlập trình cho S7 để có thể sử dụng được những ứng dụng nâng cao
2.1.2 Giao diện làm việc.
Sau khi đã cài đặt phần mềm STEP7-MICROWIN và vào chương trìnhlàm việc, giao diện làm việc sẽ được thể hiện như sau:
Hình 2- : Giao diện làm việc của STEP7-MICROWIN.
- Cây lệnh: Thể hiện tất cả các khối và lệnh sử dụng trong chương trình dướidạng cây thư mục Muốn làm việc với lệnh nào chỉ việc Click đúp chuột vào vị trí
đó để chọn thiết bị làm việc
- Thanh chức năng: Hiển thị các khối Cross Reference, Data Block, StatusChart, Symbol Table sẽ được trình bày chi tiết ở phần sau
37
Trang 38- Vùng soạn thảo: Đây là vùng chính để thực hiện chương trình bằng cáchđưa các lệnh vào trong vùng và sắp xếp chúng theo cách thức của người dùng để tạo
ra một chương trình
- Thanh công cụ: Là các thanh công cụ giúp thực hiện nhanh các lệnh vàchức năng sử dụng trong chương trình
2.1.3 Các khối sử dụng trong giao diện lập trình.
2.1.3.1 Khối Programe Block
Hình 2- : Cách tạo chương trình con hay chương trình ngắt
Có thể tạo nhiều chương trình con hay chương trình ngắt tuy nhiên khôngthể tạo nhiều chương trình chính do chương trình chính chỉ có một Có thể xóa hayđổi tên chương trình con hay chương trình ngắt bằng cách click chuột phải vào biểutượng chương trình và chọn “Delete” hay “Rename”
Trang 39Hình 2- : Cách đổi tên hoặc xóa chương trình con.
2.1.3.2 Khối Data Block
Đây là khối chứa dữ liệu của một chương trình Ta có thể định dạng dữ liệutrước trong khối này và sử dụng chúng trong chương trình Khi tải chương trình vàoPLC thì toàn bộ nội dung của khối sẽ được lưu vào bộ nhớ của PLC Khối chỉ làmviệc với dữ liệu của vùng nhớ V
Để tạo dữ liệu trong khối này ta có click vào biểu tượng trên màn hình hoặctrên cây thư mục chọn khối và click vào biểu tượng “USER”, khi đó màn hìnhchương trình sẽ chuyển sang làm việc với khối Cách tạo dữ liệu được thể hiện bêndưới
Ví dụ về cách tạo một Data Block:
Hình 2- : Khối Data Block
39
Trang 402.1.3.3 Khối System Block.
Đây là khối định dạng các chức năng làm việc của hệ thống Khối này gồm có 10khối chính:
- Communication Ports: Định dạng cho cổng giao tiếp của PLC Địa chỉ mặc
định của PLC là 2, có thể thay đổi địa chỉ này Tốc độ truyền mặc định là 9600kbps
- Retentive Ranges: Khối này cho phép chọn 5 vùng nhớ có thể lưu dữ liệu khi
PLC bị mất điện, nếu vùng nào được chọn thì dữ liệu vùng đó được giữ, ngược lại sẽ
bị reset về 0
- Password: S7-200 có 3 mức chọn mật mã, thông thường chọn mức cao
nhất để bảo mật bản quyền, số ký tự tối đa là 8 Trường hợp PLC đã có passwordthì người không có password không thể upload từ PLC về máy tính nhưng có thểDownLoad chương trình vào PLC bằng các chọn “clear PLC”, khi đó toàn bộ dữliệu sẽ bị xóa
- Output table: Khối này cho phép chọn trạng thái ngõ ra của PLC là ON hay
OFF khi PLC chuyển trạng thái từ RUN sang STOP Chế độ mặc định của phần mềm
là OFF
- Input Filter: Cho phép chọn thời gian lọc tín hiệu ngõ vào của PLC Thời
gian lọc tín hiệu ngõ vào là thời gian mà ngõ vào không đổi trạng thái thì PLC mớicho phép nhận trạng thái đó Nếu sự thay đổi trạng thái diễn ra trong thời gian ngắnhơn thời gian lọc thì PLC sẽ không nhận tín hiệu đó và coi như trạng thái của ngõvào là không thay đổi Thời gian lọc mặc định của đầu vào là 6.4ms
- Pulse Catch Bits: PLC cho phép chọn ngõ vào có thể bắt những tín hiệu
nhanh khi chu kỳ quét chưa kịp quét, tín hiệu đó sẽ được giữ cho đến khi chu kỳquét được thực hiện
- Background Time: Background time còn gọi là thời gian nền, được chuyên
dùng cho việc xử lý các yêu cầu truyền thông trong chế độ chạy ở trạng thái biêndịch hoặc đáp ứng Background time được cho dưới dạng phần trăm và tác động đếnthời gian quét Khi tỷ lệ chọn càng tăng thì thời gian quét càng chậm Tỷ lệ hợp lýđược chọn là 10%
- EM Configuration: Khối này cho phép người sử dụng xem được cấu hình vị
trí của module được sử dụng Địa chỉ này được lưu trong vùng nhớ V
- Configure LED: Khối này cho phép người dùng đặt cấu hình cho đèn
SF/DIAG Có hai chế độ có thể được sử dụng để thông báo
- Increase Memory: Khối cho phép người dùng tăng hoặc không tăng bộ nhớ
trong chế độ chạy của PLC bằng cách đánh dấu vào vị trí “Disable Edit in Run toincreas memory”