Bài giảng Điều khiển Logic khả trình PLC

pdf 124 trang hapham 2910
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Điều khiển Logic khả trình PLC", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_dieu_khien_logic_kha_trinh_plc.pdf

Nội dung text: Bài giảng Điều khiển Logic khả trình PLC

  1. Bài giảng Điều khiển Logic khả trình PLC
  2. Chương 1: Tổng quan hệ thống điều khiển Chương 1 TỔNG QUAN HỆ THỐNG ĐIỀU KHIỂN 1.1Giới thiệu hệ thống điều khiển: 1.1.1 Hệ thống điều khiển: Một hệ thống điều khiển gồm 3 phần chủ yếu: - Thiết bị điều khiển hay bộ điều khiển - Đối tượng điều khiển - Thiết bị đo lường( cảm biến) r(t) e(t) Bộ điều khiển Đối tượng Cht(t) Cảm biến Trong đĩ: r(t) : ngõ vào chuẩn Cht(t) : ngõ vào từ cảm biến Đối tượng : cơ cấu chấp hành Bộ điều khiển : chứa chương trình điều khiển hệ thống Cảm biến : lấy tín hiệu đo cho bộ điều khiển 1.1.2 Các thành phần hệ thống điều khiển: 1.1.2.1 Tín hiệu vào: Các tín hiệu vào thường qua bộ chuyển đổi để chuyển đổi các đại l ượng vật lý thành các tín hiệu điện. Các bộ chuyển đổi cĩ thể l à: nút nhấn, cơng tắc, cảm biến Tùy theo các loại bộ chuyển đổi mà tín hiệu ra cĩ dạng số(Digital) hoặc tương tự (Analog). 1
  3. Chương 1: Tổng quan hệ thống điều khiển 1.1.2.2 Bộ điều khiển: Bộ điều khiển cĩ thể là: PLC, Vi xử lý, Máy tính, 2
  4. Chương 1: Tổng quan hệ thống điều khiển + Máy tính: - Dùng trong những chương trình phức tạp địi hỏi độ chính xác cao. - Cĩ giao diện thân thiện. - Tốc độ xử lý cao. - Cĩ thể lưu trữ chương trình và dữ liệu với dung lượng lớn + Vi xử lý: - Dùng trong những chương trình cĩ độ phức tạp khơng cao ( vì chỉ xử lý được 8 bits), độ chính xác thấp. - Giao diện khơng thân thiện với người sử dụng. - Tốc độ xử lý khơng cao. - Khơng lưu trữ hoặc lưu trữ với dung lượng rất ít. - Khơng bền trong mơi trường cơng nghiệp. - Giá thành thấp. + PLC: Được sữ dụng rộng rãi trong cơng nghiệp: - Bền trong mơi trường cơng nghiệp. - Giao diện khơng thân thiện với người sử dụng. Phải kết nối giao diện với máy tính hay Touchscreen. - Tốc độ xử lý tương đối cao. 3
  5. Chương 1: Tổng quan hệ thống điều khiển - Cĩ nhiều loại khác nhau để lựa chọn tùy nhu cầu sử dụng và độ phức tạp của hệ thống điều khiển. 1.1.2.3 Tín hiệu ra: Tín hiệu ra là kết quả của quá trình xử lý của hệ thống điều khiển. Các tín hiệu này được sử dụng để tạo những đáp ứng cụ thể cho các c ơ cấu chấp hành như: động cơ, xi lanh, relay, . 1.2Phương pháp điều khiển: 1.2.1 Điều khiển vịng hở: Đây là dạng điều khiển đơn giản nhất. Ý tưởng của phương pháp này là thiết lập một hệ thống đạt đến mức chính xác cần thiết bằng cách điều chỉnh trực tiếp ngõ ra của hệ thống, khơng cĩ thơng tin phản hồi về bộ điều khiển. Ph ương pháp này bị các yếu tố “nhiễu” 1.2.2 Điều khiển kích tiếp: Phương pháp này cĩ thể khắc phục phần nào các yếu tố “nhiễu” ở phương pháp điều khiển vịng hở bằng cách giám sát “nhiễu” và sử dụng thơng tin giám sát này để bù trừ vào tín hiệu điều khiển. 4
  6. Chương 1: Tổng quan hệ thống điều khiển 1.2.3 Điều khiển vịng kín: Phương pháp này làm mất tác hại của “nhiễu” bằng các đo ảnh h ưởng của “nhiễu “ trên tín hiệu ra hay trên sản phẩm ở ngõ ra của hệ thống để từ đĩ tính tốn các tác động hiệu chỉnh cần thiết để làm mất tác động của “nhiễu”và duy trì tín hiệu ra sản phẩm ra ổn định. 5
  7. Chương 2: Tổng quan về PLC Chương 2 TỔNG QUAN VỀ PLC 2.1Giới thiệu về PLC (Programmable Logic Control): 2.1.1 Điều kiện ra đời: Programmable Logic Controller (PLC)  Hình thành từ nhĩm các kỹ sư hãng General Motors năm 1968 với ý tưởng ban đầu là thiết kế một bộ điều khiển thỏa mãn các yêu cầu sau: - Lập trình dễ dàng, ngơn ngữ lập trình dễ hiểu. - Dễ dàng sửa chữa thay thế. - Ổn định trong mơi trường cơng nghiệp. - Giá cả cạnh tranh. PLC hay cịn được gọi là: thiết bị điều khiển logic khả trình (PLC: Programmable Logic Control). PLC là loại thiết bị cho phép thực hiện linh hoạt các thuật tốn điều khiển số thơng qua một ngơn ngữ lập trình, thay cho việc thể hiện thuật tốn đĩ bằng mạch số . 6
  8. Chương 2: Tổng quan về PLC Một số hình ảnh về các loại PLC: PLC Siemens PLC Keyence PLC Omron 7
  9. Chương 2: Tổng quan về PLC Như vậy PLC là một bộ điều khiển số nhỏ gọn: - Dễ dàng thay đổi thuật tốn - Dễ dàng trao đổi thơng tin với máy tính và các PLC khác Chương trình điều khiển: - Tồn bộ được lưu trong bộ nhớ dưới dạng các khối. - Chương trình được thực hiện lặp lại liên tục theo chu kỳ quét 2.1.2 Cấu tạo của PLC: Các thành phần của PLC: Vì là bộ điều khiển nên PLC cũng cĩ tính năng như một máy tính với: - Bộ Vi xử lý (CPU: Central Processing Unit) - Một hệ điều hành để quản lý và thực hiện chương trình. 8
  10. Chương 2: Tổng quan về PLC - Bộ nhớ để lưu chương trình điều khiển và dữ liệu vào ra. - Các ngõ vào ra để nhập dữ liệu từ cảm biến và xuất dữ liệu ra cơ cấu chấp hành. 2.1.3 Hệ thống điều khiển sử dụng PLC: 9
  11. Chương 2: Tổng quan về PLC 2.2 Phân loại PLC: PLC được phân loại theo 2 cách: - Hãng Sản xuất: Siemens, Omron, Mitsubishi, Schneider, GE Fanuc, . - Version: VD: + Siemens cĩ các họ: LOGO!, S5, S7-200, S7-300, S7-400 + Mitsubishi cĩ các họ: FX0, FX2N, + Omron cĩ các họ: Zen, CPM1, CQM1, CJM1, + Schneider cĩ các họ: Zelio, Twido, + GE Fanuc cĩ các họ: Versa Max, Versa Micro, 90-30, 90-70, 2.3 Ưu điểm của PLC: - Khơng cần đấu dây cho sơ đồ điều khiển logic như kiểu Relay. 10
  12. Chương 2: Tổng quan về PLC - Cĩ độ mềm dẻo sử dụng rất cao, muốn thay đổi phương pháp điều khiển chỉ cần thay đổi chương trình điều khiển. - Chiếm vị trí khơng gian nhỏ trong hệ thống. - Nhiều chức năng điều khiển. - Tốc độ xử lý thời gian thực tương đối cao. - Cơng suất tiêu thụ nhỏ - Khơng cần quan tâm nhiều về vấn đề lắp đặt. - Cĩ khả năng mở rộng số ngõ vào/ra khi mở rộng nhu cầu điều khiển bằng cách nối thêm các khối vào ra chức năng. - Dễ dàng điều khiển và giám sát từ máy tính. - Giá thành hợp lý tùy vào từng loại PLC. 2.4 Ngơn ngữ lập trình cho PLC: 2.4.1 Các ngơn ngữ PLC PLC thơng thường sử dụng 5 ngơn ngữ chuẩn IEC 61131-3: – LAD – FDB – IL – ST – SFC Tuy nhiên, PLC S7-200 sử dụng 3 loại ngơn ngữ lập trình sau: - Ladder Logic( LAD) - Statement List( STL) - Function Blocks Diagram(FBD) 2.4.1 Ưu điểm các loại ngơn ngữ PLC S7-200 Ưu điểm từng loại ngơn ngữ: - Ladder Logic( LAD) + Ngơn ngữ đồ họa. + Thích hợp với người quen thiết kế mạch logic. 11
  13. Chương 2: Tổng quan về PLC - Statement List( STL) + Ngơn ngữ lập trình thong thường của máy tính. + Chương trình được ghép nối bởi nhiều câu lệnh theo một thuật tốn nhất định. + Mỗi lệnh là một hàng và cĩ cấu trúc: “Tên lệnh” + “Tốn hạng” - Function Blocks Diagram(FBD) + Ngơn ngữ đồ họa. + Thích hợp với người quen thiết kế mạch điều khiển số. 12
  14. Chương 3: Hệ thống và phần cứng PLC Chương 3 HỆ THỐNG VÀ PHẦN CỨNG PLC 3.1 Cấu trúc một hệ thống PLC tiêu chuẩn: Theo tiêu chuẩn chung bất cứ hệ thống PLC nào cũng gồm 3 phần: •Phần cứng / Hard Ware. •Firmware. •Phần mềm / Software. Nguyên lý làm việc của một PLC 3.2 Phần cứng PLC: 3.2.1 Thành phần: Cấu trúc cơ bàn (nguyên thuỷ) của một PLC bao gồm: Rack. Power Module. CPU. 13
  15. Chương 3: Hệ thống và phần cứng PLC Các Module chức năng. Ngồi ra cĩ các biến thể khác của cấu trúc PLC như Brick PLC hay “All in one PLC” (Các Micro PLC thường ở dạng này). 3.2.1.1 Rack: Rack là thiết bị cĩ chức năng kết nối tất cả các module PLC lại với nhau. Rack rất quan trọng ở tốc độ truyền, khả năng chứa các module (số l ượng), kết cấu lắp ráp Khi thiết kế hệ thống, lựa chọn loại rack v à số rack là yếu tố quan trong để tối ưu hố hệ thống phần cứng. 3.2.1.2 Power Module: Power Module: là thành phần cấp nguồn điện điều khiển cho CPU v à tất cả các Module chức năng, ngồi ra nĩ cũng cấp các nguồn cho thiết bị ngoại vi, chủ yếu là loại nguồn 24V. Power Module cĩ nhiều loại phân biệt nhau bởi cơng suất , điện áp vào và điện áp ra. Khi lựa chọn Power Module, điều quan trong nhất l à tính và chọn cơng suất để cĩ thể cấp đủ cho to àn bộ hệ thống và các ngoại vi mà vẫn bảo đảm hệ số dự phịng cần thiết. Điện áp đầu ra của Power Module cĩ nhiều loại tương ứng với các CPU và các Module nên cần tính cơng suất cho từng loại điện áp ra. 3.2.1.3 CPU:/. Là thành phần quan trong nhất của hệ PLC. CPU đặc tr ưng bởi 1 số thơng số cơ bản như: – Số lượng Module mà nĩ quản lý được. – Số lượng các điểm (I/O Point) mà nĩ quản lý được. – Tốc độ của một số loại lệnh cơ bản: như lệnh Logic, lệnh số học – Bộ nhớ chương trình, bộ nhớ dữ liệu và khả năng mở rộng bộ nhớ, khả năng hỗ trợ các thẻ nhớ. – Các chuẩn truyền thơng mà nĩ tích hợp sẵn. 3.2.1.4 Các Module chức năng: 14
  16. Chương 3: Hệ thống và phần cứng PLC Các module chức năng rất đa dạng, cĩ thể chia ra làm các loại đặc trưng sau: –Module vào ra (I/O). –Module chức năng đặc biệt. 3.2.1.4.1 Module vào ra Module vào ra chia làm 2 loại chính: –Module vào ra số (Digital I/O). –Module vào ra tương tự (Analog I/O). Các Module vào ra số: Cĩ các loại – Module DI: – Module DO: – Module hỗn hợp. Các tín hiệu vào số DI cĩ thể là sink hoặc source, cĩ thể là 24V hoặc 220VAC/110VAC và nhiều loại khác. Các tín hiệu ra số DQ: Cĩ thể là Relay, cĩ thể là PNP/NPN hoặc là AC/DC 220V/110V 15
  17. Chương 3: Hệ thống và phần cứng PLC DQ dạng PNP hay NPN. Module tín hiệu Analog bao gồm: – Module AI: 0 10V (+/-10V); 0 20mA(4 20mA) – Module AQ:0 10V (+/-10V); 0 20mA(4 20mA) – Module hỗn hợp AI/AO. – Module cho cặp nhiệt, nhiệt điện trở. – Module cho load cell 3.2.1.4.1 Module đặc biệt: Module Đặc biệt bao gồm – Modem Module – Profibus DP Slave Module – AS Interface Master Module – Ethernet Module – IT Communication Module – Module điều khiển PID. 3.2.2 Các thơng số để lựa chọn phần cứng PLC: 16
  18. Chương 3: Hệ thống và phần cứng PLC Các thơng số cơ bản để lựa chọn PLC Các thơng số bộ nhớ và biến số Các thơng số truyền thơng và các chức năng phụ khác 3.3 Lắp đặt Phần cứng PLC: 3.3.1 Các cách lắp đặt PLC: – Rail – Panel 3.3.2 Nối ghép các Module mở rộng: 17
  19. Chương 3: Hệ thống và phần cứng PLC 3.4Thiết bị ngoại vi và truyền thơng: 3.4.1 Thiết bị ngoại vi: 3.4.1.1 Ngoại vi tới DI/DO: –Các nút nhấn, cơng tắc –Các Tiếp điểm giới hạn/hành trình (LS) –Các tiếp điểm rõle trung gian hoặc đầu vào/ra của các thiết bị khác. –Các cảm biến: tiếp điểm tiệm cận, Hồng ngoại –Thiết bị phát xung tần số cao: Encoder, –Đầu vào số của Biến tần, rõle trung gian, Contactor. –Valve, Actuator 3.4.1.2 Ngoại vi tới AI/AO: – Các tín hiệu 0-10V, 4 20mA của các bộ biến dẫn lưu lượng, áp suất – Các loại can nhiệt: RTD (PT100, Ni1000), TC (K, R ) –Các Loadcell đo sức nén/kéo –Đầu vào analog của Biến tần, bộ biến đổi –Valve tuyến tính, Actuator tuyến tính 3.4.1.3 Tiếp điểm tiệm cận và Sensor Hồng ngoại: Nguyên lý hoật động: Điện Từ trýờng / Hồng ngoại Sơ đồ đấu nối 18
  20. Chương 3: Hệ thống và phần cứng PLC 3.4.1.4 Encoder: Nguyên lý hoạt động & Các thơng số đặc trưng 19
  21. Chương 3: Hệ thống và phần cứng PLC 3.4.1.5 Can nhiệt : PT100 Nguyên lý: PT100 là loại cảm biến nhiệt cĩ điện trở tỷ lệ với nhiệt độ đo. Thơng số: điện trở ở nhiệt độ 0 C = 100 Om, Phương pháp đo: cấp dịng điện khơng đổi ra PT100, đo điện áp trên PT100: U= (100+Rt)*I màRt=F(t)=kt -> t= (U/I-100)/k. Phương pháp bù sai số: dùng 4 dây hoặc 3 dây. Rt trong cơng thức trên bao gồm: rt+r, trong đĩ rt là điện trở thật của PT100, cịn r là điển trở dây tín hiệu đến PT100 cần trừ giá trị này. 3.4.1.6 LoadCell: Là loại cảm biến trong đĩ điện trở thay đổi tỷ lệ với lực kéo/nén. 20
  22. Chương 3: Hệ thống và phần cứng PLC Phương pháp đo: dùng cầu điện trở trong đĩ chỉ cĩ 1 nhánh cầu l à điện trở thay đổi theo lực. 3.4.1.7 Các biến dẫn lưu lương, áp suất: Các biến dẫn thường cĩ nguồn nuơi 24V và đầu ra tín hiệu 4 20mA. Cĩ 2 loại chính: + Loại 2 dây: nguồn 24V và tín hiệu dùng chung 2 dây. + Loại 4 dây : nguồn 24V và tín hiệu dùng riêng 3.4.2 Truyền thơng trong PLC: 3.4.2.1 Các chuẩn tín hiệu (Physic) truyền thơng sử dụng trong PLC: - Các giao thức (Protocol) dùng trong PLC: SNP,SNPX (GEFanuc), PPI(S7 - 200), MPI(S7-300), Modbus, CClink - Các giao thức mạng dạng FieldBus dùng trong các mạng PLC điều khiển: Genius Bus (GE Fanuc), Profibus (Siemens – EU), Device Net (Bắc Mỹ), InterLink, -Các Giao thức mạng dạng EtherNet cơng nghiệp th ường dùng trong mạng PLC: Modbus TCP, Genius Net, ProfiNet, 3.4.2.2 Đặt các thơng số vật lý (Physic) cho truyền thơng sử dụng trong PLC: – Tốc độ truyền: BaudRate (số Bit/S) – 1200, 4800,9600,19200, – Số Bit dữ liệu (Data Bit): 6,7,8. – Chọn bit kiểm tra: chẵn/lẻ. – Chọn số bít dừng (Stop Bit): 1,1.5,2. Lưu ý: Khi nối PC tới PLC để download, cần kiểm tra các thơng số tr ên sao cho PC và PLC như nhau. 3.4.2.3 Đặt các thơng số của Giao thức truyền thơng sử dụng trong PLC: 21
  23. Chương 3: Hệ thống và phần cứng PLC Node ID: số thứ tự hoặc các ký tự đặt tên cho mỗi PLC trong mạng. Số lần quét / giây. Thời gian chờ trả lời. Thời gian chờ báo lỗi. Số lần lặp lại yêu cầu khi cĩ lỗi. 3.5 Trình tự cấu hình hệ thống PLC: 3.5.1 Các thơng số yêu cầu để thiết kế hệ thống PLC: Số lượng các cổng vào ra số và tương tự Loại tín hiệu cho từng cổng. Tính chất cách ly nguồn nuơi của các nhĩm tín hiệu Quy mơ và các yêu cầu đặc biệt của thuật tốn điều khiển. Truyền thơng. 3.5.2 Các bước thiết kế hệ thống PLC: –Từ Số lượng các cổng vào ra số và tương tự, lựa chọn loại PLC: MicroPLC hay Modular. –Kiểm tra lại các thơng số của CPU /loại PLC đã chọn cĩ phù hợp với yêu cầu Quy mơ và các yêu cầu đặc biệt của thuật tốn điều khiển. –Tùy loại tín hiệu cho từng cổng và số lượng cổng mỗi loại, lựa chọn các Module vào ra và Module đặc biệt. –Tù Tính chất cách ly nguồn nuơi của các nhĩm tín hiệu, chia nhĩm các tín hiệu và kiểm tra lại số lượng Module đã chọn. –Chọn loại Rack, số lượng rack (đối với Modular PLC) –Chọn loại CPU: Căn cứ vào số rack, Module và cổng, căn cứ vào yêu cầu bài tốn để xác định số biến bộ nhớ, các lệnh hàm 22
  24. Chương 3: Hệ thống và phần cứng PLC –Chọn Module truyền thơng. –Tính tốn nguồn nuơi và chọn Module nguồn. –Lựa chọn các phụ kiện: Jack, cable, pin - Thiết kế sơ đồ nguyên lý và sơ đồ đấu nối của Hệ thống PLC. - Khai báo cấu hình và xác định địa chỉ vào ra cho các tín hiệu dùng phần mềm phát triển PLC. - Lập cấu hình cho CPU và từng Module. - Lập cấu hình truyền thơng. - Download thử cấu hình. 3.6 Hồn thành 1 Project: 3 bước để hồn thành 1 Project: – Cấu hình phần cứng ( Config) – Lập trình (xây dựng Logic) – Download và debug 23
  25. Chương 4: PLC S7-200 Chương 4 CẤU TRÚC PLC S7-200 4.1. Các khái niệm cơ bản về PLC S7-200: Các thành phần của một PLC S7-200 thường cĩ các modul phần cứng sau: 1. Modul nguồn. 2. Modul đơn vị xử lý trung tâm. 3. Modul bộ nhớ chương trình và dữ liệu. 4. Modul đầu vào. 5. Modul đầu ra. 6. Modul phối ghép (để hỗ trợ cho vấn đề truyền thơng nội bộ). 7. Modul chức năng (để hỗ trợ cho vấn đề truyền thơng mạng). Panel lập Bộ nhớ Khối ngõ vào trình, vận chương hành, trình Quả n giám sát. Đơn vị lý Bộ nhớ xử lý dữ liệu việc trung tâm phối ghép Nguồn Khối ngõ ra Hình 4.1: mơ hình tổng quát của một PLC S7-200 4.1.1. PLC hay PC: Để thực hiện một chương trình điều khiển số thì yêu cầu PLC phải cĩ tính năng như một máy tính (PC). • CPU (đơn vị xử lý trung tâm). 24
  26. Chương 4: PLC S7-200 • Bộ nhớ chính (RAM, EEPROM, EPROM, ), bộ nhớ mở rộng. • Hệ điều hành. • Port vào/ra (giao tiếp trực tiếp với thiết bị điều khiển). • Port truyền thơng (trao đổi thơng tin với mơi trường xung quanh). • Các khối chức năng đặc biệt như: T, C, các khối chuyên dụng khác. 4.1.2. So sánh với hệ thống điều khiển khác: Điều khiển Với chức năng được lưu trữ bằng : Tếp xúc vật lý Bộ nhớ khả lập trình Quy trình cứng Quy trình mềm Khơng thay Thay đổi Khả lập trình Bộ nhớ thay đổi được tự do đổi được Liên kết cứng Liên kết RAM - ROM - phích cắm EEPROM EPROM Rơle, linh kiện điện tử, mạch PLC xử lý một bit. điện tử, cơ thuỷ khí. PLC xử lý từ ngữ. Hình 4.2: những đặc trưng lập trình của các loại điều khiển. PLC cĩ ưu điểm vượt trội so với các hệ thống điều khiển cổ điển như rơle, mạch tổ hợp điện tử, IC số. • Thiết bị cho phép thực hiện linh họat các thuật tốn điều khiển số thơng qua ngơn ngữ lập trình. • Bộ điều khiển số nhỏ gọn. • Dễ dàng trao đổi thong tin vơúi mơi trường xung quanh như: TD(text display), OP (operation), PC, PG hay mạng truyền thơng cơng nghiệp, kể cả mạng internet. • Thực hiện chương trình liên tục theo vịng quét. 4.2. Cấu trúc phần cứng của PLC: Vẽ sơ đồ cấu trúc tại đây, copy hình của đồ án 4.2.1. Đơn vị xử lý trung tâm (CPU Central Procesing Unit): 25
  27. Chương 4: PLC S7-200 Thường trong mỗi PLC cĩ một đơn vị xử lý trung tâm, ngồi ra cịn cĩ một số loại lớn cĩ tới hai đơn vị xử lý trung tâm dùng để thực hiện những chức năng điều khiển phức tạp và quan trọng gọi là hot standbuy hay redundant. a) Đơn vị xử lý "một -bit": Thích hợp cho những ứng dụng nhỏ, chỉ đơn thuần là logic ON/OFF, thời gian xử lý dài, nhưng kết cấu đơn giản nên giá thành hạ vẫn được thị trường chấp nhận. b) Đơn cị xử lý "từ - ngữ": • Xử lý nhanh các thơng tin số, văn bản, phép tính, đo lường, đánh giá, kiển tra. • Cấu trúc phằn cứng phức tạp hơn nhiều. • Giá thành cao. * Nguyên lý hoạt động: - Thơng tin lưu trữ trong bộ nhớ chương trình → gọi tuần tự (do đã được điều khiển và kiểm sốt bởi bộ đếm chương trình do đơn vị xử lý trung tâm khống chế). - Bộ xử lý liên kết các tín hiệu (dữ liệu) đơn lẻ (theo một quy định nào đĩ - do thuật tốn điều khiển) → rút ra kết qủa là các lệnh cho đầu ra. - Sự thao tác tuần tự của chương trình đi qua một chu trình đầy đủ rồi sau đĩ lại bắt đầu lại từ đầu → thời gian đĩ gọi là "thời gian quét". - Đo thời gian mà bộ xử lý xử lý 1 kbyte chương trình để làm chỉ tiêu đánh giá giữa các PLC. ⇒ Như vậy bộ vi xử lý quyết định khả năng và chức năng của PLC. Bảng 4.1: so sánh bộ vi xử lý 1 bít và bộ vi xử lý từ ngữ. Bộ xử lý một - bit Bộ xử lý từ - ngữ Xử lý trực tiếp các tín hiệu đầu vào Các tín hiệu vào/ra chỉ cĩ thể được (địa chỉ đơn). địa chỉ hố thơng qua từ ngữ. Cung cấp lệnh nhỏ hơn, thơng Cung cấp tập lệnh lớn hơn, địi hỏi thường chỉ là một quyết địng cĩ/ phải cớ những kiến thức về vi tính. khơng. Ngơn ngữ đầu vào đơn giản, khơng Ngơn ngữ đầu vào phức tạp dùng cần kiến thức tính tốn. cho việc cung cấp lệnh lớn. Khả năng hạn ché trong việc xử lý Thu thập và xử lý dữ liệu số. dữ liệu số (khơng cĩ chức năng tốn học và logic). Chương trình thực hiện liên tiếp, Các quá trình thời gian tới hạn khơng bị gián đoạn, thời gian của được địa chỉ hố qua các lệnh gián chu trình tương đối dài. đoạn hoặc chuyển đổi điều khiển khẩn cấp. Chỉ phối được với máy tính đơn Phối ghép với máy tính hoặc hệ giản. thống các máy tính. Khả năng xử lý các tín hiệu tương Xử lý tín hiệu tương tự ở cả đầu tự bị hạn chế. vào và đầu ra. 26
  28. Chương 4: PLC S7-200 4.2.3. Bộ nhớ: Bao gồm cả RAM, ROM, EEPROM. Một nguồn điện dự phịng là cần thiết cho RAM để duy trì dữ liệu ngay cả khi mất nguồn điện chính. Bộ nhớ được thiết kế thành dạng modul để cho phép dễ dàng thích nghi với các chức năng điều khiển với các kích cỡ khác nhau. Muốn rộng bộ nhứo chỉ cần cắm thẻ nhớ vào rãnh cắm chờ sẵn trên modul CPU. 4.2.4. Khối vào/ ra: Hoạt động xử lý tín hiệu bên trong PLC: 5VDC, 15VDC (điện áp cho họ TTL & CMOS). Trong khi đĩ tín hiệu điều khiển bên ngồi cĩ thể lớn hơn. khoảng 24VDV đến 240VDC hay 110VAC đến 220VAC vĩi dịng lớn. Khối giao tiếp vào ra cĩ vai trị giao tiếp giữa mạch vi điên tử của PLC với mạch cơng suất bên ngồi.Thực hiện chuyển mức điện áp tín hiệu và cách ly bằng mạch cách ly quang (Opto-isolator) trên các khối vào ra. Cho phép tín hiệu nhỏ đi qua và ghim các tín hiệu cĩ mức cao xuống mức tín hiệu chuẩn. Tác dụng chống nhiễu tốt khi chuyển cơng tắc bảo vệ quá áp từ nguồn cung cấp điện lên đến điện áp 1500V. • Ngõ vào: nhận trực tiếp tín hiệu từ cảm biến. • Ngõ ra: là các transistor, rơle hay triac vật lý. 4.2.5. Thiết bị lập trình: Cĩ 2 loại thiết bị cĩ thể lập trình được đĩ là • Các thiết bị chuyên dụng đối với từng nhĩm PLC của hãng tương ứng. • Máy tính cĩ cài đặt phần mềm là cơng cụ rất lý tưởng.\ 4.2.6. Rơle: Rơle là bộ nhớ 1 bít, cĩ tác dụng như rơle phụ trợ vật lý như trong mạch điều khiển dùng rơle truyền thống gọi là các rơ le logic. Theo thuật ngữ máy tính thì rơle cịn được gọi là cờ, kí hiệu là M. Cĩ rất nhiều loại rơle chúng ta sẽ khảo sát kỹ hơn đới với loại các PLC của hãng. 4.2.7. Modul quản lý việc phối ghép: Dùng để phốii ghép bộ PLC với các thiết bị bên ngồi như máy tính, thiết bị lập trình, bảng vận hành và mạng truyền thơng cơng nghiệp. 4.2.8. Thanh ghi (Register): là bộ nhớ 16 bit hay 32 bit để lưu trữ tạm thời khi PLC thực hiện quá trình tính tốn. - Thanh ghi chốt (Latch register) duy trì nội dung cho đến khi nĩ được chồng lên bằng nội dung mới. - Thanh ghi chuyên dùng (Special register). - Thanh ghi tập tin hay thanh ghi bộ nhớ chương trình (Program memory registers). - Thanh ghi điều chỉnh giá trị được từ biến trở bên ngồi (External adjusting register). - Thanh ghi chỉ mục (Index register). 4.2.9. Bộ đếm (Counter): kí hiệu là C. a) Phân loại: tín hiệu đầu vào. - Bộ đếm lên. - Bộ đếm xuống. - Bộ đếm lên - xuống, bộ đếm này cĩ cờ chuyên dụng chọn chiều đếm. - Bộ đếm pha phụ thuộc vào sự lệch pha giữa hai tín hiệu xung kích. - Bộ đếm tốc độ cao (high speed counter), xung kích cĩ tần số cao khoảng vài kZ đến vài chục kZ. b) Phân loại: theo kích thước của thanh ghi và chức năng của bộ đếm. 27
  29. Chương 4: PLC S7-200 - Bộ đếm 16 bit: thường là bộ đếm chuẩn, cĩ giá trị đếm trong khoảng -32768 ÷ 32767. - Bộ đếm 32 bit: cũng cĩ thể là bộ đếm chuẩn nhưng thường là bộ đếm tốc độ cao. - Bộ đếm chốt: duy trì nội dug đếm ngay cả khi PLC bị mất điện. 4.2.10. Bộ định thì (times): kí hiệu là T, được dùng để định các sự kiện cĩ quan tâm đến vấn đề thời gian, bộ địng thì trên PLC được gọi là bộ định thì logic. Việc tỏ chức định thì thực chất là một bộ đếm xung với chu ký cĩ thể thay đổi được. chu kỳ của xung tính bằng đơn vị milis gọi là độ phân giải. Tham số của bộ định thì là khoảng thời gian định thì, tham số này cĩ thể là biến hoặc là hằng, nhập vào là số nguyên. 4.3.Giới thiệu một số nhĩm PLC Siemens 1. Siemens: cĩ ba nhĩm • CPU S7 200: CPU 21x: 210; 212; 214; 215-2DP; 216. CPU 22x: 221; 222; 224; 224XP; 226; 226XM. • CPU S7300: • CPU S7400: 4.4. Tổng quan về họ PLC S7-200 của hãng Siemens: Cĩ hai series: 21x (loại cũ khơng cịn sản xuất nữa) và 22x (loại mới). Về mặt tính năng thì loại mới cĩ ưu điểm hơn nhiều.Bao gồm các loại CPU sau: 221, 222, 224, 224XP, 226, 226XM trong đĩ CPU 224XP cĩ hỗ trợ analog I/O onboard và 2 port truyền thơng. Bảng 4.2: Các loại CPU S7-200. 28
  30. Chương 4: PLC S7-200 Bảng 4.3: So sánh các thơng số và đặc điểm kỹ thuật của series 22x. Bảng 4.4: Mã số và các thơng số về điện áp nguồn và I/O. 29
  31. Chương 4: PLC S7-200 Bảng 4.5: Các thơng số về cơng suất tiêu thụ và dịng điện I/O. 4.5. Cấu trúc phần cứng của S7-200: 4.5.1. Hình dáng bên ngồi: 1. Các đèn trạng thái: • Đèn RUN-màu xanh: Chỉ định PLC ở chế độ làm việc và thực hiện chương trình đã được nạp vào bộ nhớ chương trình. • Đèn STOP-màu vàng: Chỉ định PLC ở chế độ STOP, dừng chương trình đang thực hiện lại (các đầu ra đều ở chế độ off). • Đèn SF-màu đỏ, đèn báo hiệu hệ thống bị hỏng cĩ nghĩa là lỗi phần cứng hoặc hệ điều hành. Ở đây cần phân biệt rõ lỗi hệ thống với lỗi chương trình người dùng, khi lỗi chương trình người dùng thì CPU khơng thể nhận biết được vì trước khi download xuống CPU, phần mềm lập trình đã làm nhiệm vụ kiểm tra trước khi dịch sang mã máy. 30
  32. Chương 4: PLC S7-200 Hình 4.3: PLC S7-200. • Đèn Ix.x-màu xanh: Chỉ định trạng thái On/Off của đầu vào số. • Đèn Qx.x-màu xanh: Chỉ định trạng thái On/Off của đầu vào số. • Port truyền thơng nối tiếp: RS 485 protocol, 9 chân sử dụng cho việc phối ghép với PC, PG, TD200, TD200C, OP, mạng biến tần, mạng cơng nghiệp. Tốc độ truyền - nhận dữ liệu theo kiểu PPI là 9600 baud. Tốc độ truyền - nhận dữ liệu theo kiểu Freeport là 300 ÷ 38400 baud. Hình 4.4: cấu trúc của port RS 485. 31
  33. Chương 4: PLC S7-200 Bảng 4.6: Mơ tả chức năng của các chân của port RS 485 2. Cơng tắc chọn chế độ: • Cơng tắc chọn chế độ RUN: Cho phép PLC thực hiện chương trình, khi chương trình gặp lỗi hoặc gặp lệnh STOP thì PLC sẽ tự động chuyển sang chế độ STOP mặc dù cơng tắc vẫn ở chế độ RUN (nên quan sát đèn trạng thái). • Cơng tắc chọn chế độ STOP: Khi chuyển sang chế độ STOP, dừng cưỡng bức chương trình đang chạy, các tín hiệu ra lúc này đeeuf về off. • Cơng tắc chọn chế độ TERM: cho phép người vận hành chọn một trong hai chế độ RUN/STOP từ xa, ngồi ra ở chế độ này được dùng để download chương trình người dùng. 3. Vít chỉnh định tương tự: Mỗi CPU cĩ từ 1 đến 2 vít chỉnh định tương tự, cĩ thể xoay được một gĩc 270°, dùng để thay đổi giá trị của biến sử dụng trong chương trình. 4. Pin và nguồn nuơi bộ nhớ: Sử dụng tụ vạn năng và pin. Khi năng lượng của tụ bị cạn kiệt PLC sẽ tự động chuyển sang sử dụng năng lượng từ pin. 4.5.2. Giao tiếp với thiết bị ngoại vi: 1. Thiết bị lập trình loại PGxx được trang bị sẵn phần mềm lập trình, chỉ lập trình được với ngơn ngữ STL. 2. Máy tính PC: Hệ điều hành Win 95/98/ME/2000/NT4.x. Trên đĩ cĩ cài đặt phần mềm Step7 Mcro/Win 32 và Step7 Mcro/Dos. Hiện nay hầu hết sử dụng Step7 Mcro/Win 32 version 3.0,3.2,4.0. V4.0 cho phép người lập trình cĩ thể xem được giá trị, trạng thái cũng như đồ thị của các biến. Nhưng chỉ sử dụng được trên máy tính cĩ cài đặt hệ điều hành Window 2000/ WinNT và PLC loại version mới nhất hiện nay. Sau đây là cách cài đặt và giao tiếp giữa PC-PLC: 32
  34. Chương 4: PLC S7-200 Hình 4.6: cài đặt phần mềm STEP7 trên Window 95/98/ME/2000/NT. Sau khi thực hiện xong, trên màn hình sẽ xuất hiện: 33
  35. Chương 4: PLC S7-200 Hình4.7: giao tiếp giữa PC/PG với PLC thơng qua PC/PPI cable. 34
  36. Chương 4: PLC S7-200 Sau khi đã tiến hành lắp đặt phần cứng xong, ta tiến hành thiết lập truyền thơng giữa PC/PG với PLC. Đĩ là thiết lập tốc độ, số bit dữ liệu truyền/nhận, bit chẵn lẽ, cổng COM, địa chỉ PLC, thời gian Time out được tiến hành như sau: Hình 4.8: thiết lập kết nối giữa PC/PG tới PLC. 1. Kích chuột vào biểu tượng Communications trên Group bar. 2. Kiểm tra việc thiết lập truyền thơng. 3. Kích double vào biểu tượng Refresh để dị tìm địa chỉ và các thơng số của PLC. 4. Nếu khơng nhận được phản hồi từ PLC hoặc Window vẫn khơng thiết lập được truyền thơng thì kích vào Set PG/PC interface sau đĩ kích double vào PC/PPI cable. 5. Đánh dáu vào PC/PPI cable và chọn properties 6. Vào PPI/Addres đặt địa chỉ 2 và tốc độ truyền là 9.6 kbps. Vào Local connection/ connnection to chọn port kết nối (COM1/COM2/USB), chấp nhận việc lựa chon này bằng nút OK. 7. Vào kích double biểu tượng Refresf lần nữa để xem sự kết nối giữa PC và PLC. 3. Giao tiếp với mạng cơng nghiệp: 35
  37. Chương 4: PLC S7-200 • Nếu là mạng PPI thì chỉ cần đầu nối và nối trực tiếp vào Port truyền thơng của CPU. • Nếu là mạng Profibus - DP phải cĩ thêm modul EM 277. • Nếu là mạng Ethernet hoặc internet phải cĩ thêm modul CP 243-1/ CP 243-1IT. • Nếu là mạng Asi phải cĩ thêm modul CP 243-2. • Ngồi ra cịn cĩ thêm TD200(Text Display) dùng để hiển thị và thơng báo bằng text, cĩ thể điều chỉnh trực tiếp giá trị của biến trong chương trình người dùng, đĩng vai trị như một panel vận hành. TP 070 loại này là Touch panel, được thiết kế đặc biệt cho S7-200, cĩ chức năng như HMI (Human Mechanical Interface). Tip!: Gĩi phần mềm STEP 7 Micro/Win32 V3.x cũng được chia ra nhiều modul. Modul chính dùng để thực hiện nhữnh chức năng cơ bản, một số modul chuyên dụng như: USS hay Modbus, S7-200 Toolbox: TP_Desinger cho OP 070 (để cấu hình cho TO 070), Microcomputing limited, ActiveX components để hỗ trợ việc truyền thơng giữa PC với PLC qua các ngơn lập trình khác. S7-200 OPC server for random OPC clients cũng sủ dụng chom việc truy xuất dữ liệu với S7-200. 4.5.3. Giao tiếp giữa sensor và cơ cấu chấp hành: S7-200 cĩ hai loại cơ bản: AC/DC/RLY_loại này điện áp nguồn cung cấp từ 85÷264VAC, tần số 47÷63 Hz; Điện áp vào: cĩ nguồn cung cấp điện áp chuẩn cho sensor là 24VDC. Điện áp ra: loại này sử dụng nguồn điện ngồi, cĩ thể là DC hoặc AC nhưng khơng vượt quá 220V. Nếu sử dụng đối với những thiết bị tiêu thụ cĩ cơng suất bé khoảng chừng vài Woat thì cĩ thể lấy trực tiếp nguồn của cảm biến. Sau đây là thí dụ về mạch điện giao tiếp giữa PLC với cảm biến và cơ cấu chấp hành là động cơ 1 chiều cĩ đảo chiều quay. 36
  38. Chương 4: PLC S7-200 Hình 4.9:sơ đồ mạch điện giao tiếp giữa CPU 221 loại AC/DC/RLY và cơ cấu chấp hành. 37
  39. Chương 4: PLC S7-200 Hình 4.10: sơ đồ mạch giao tiếp giữa CPU 224 AC/DC/RLY với sensor và cơ cấu chấp hành. DC/DC/DC_Nguồn nuơi 24VDC. Nguồn nuơi cảm biến 24VDC. Đầu ra Transitor hở colector nguồn cung cấp 24VDC. Hình 2.11:sơ đồ mạch giao tiếp giữa CPU 224 DC/DC/DC với sensor và cơ cấu chấp hành. 4.6. Cấu trúc bộ nhớ S7-200: 4.6.1. Phân chia bộ nhớ: Bộ nhớ được chia làm 4 vùng cơ bản, hầu hết các vùng nhớ đều cĩ khả năng đọc ghi chỉ trừ vùng nhớ đặc biệt SM (special memory) là vùng nhớ chỉ đọc. • Vùng nhớ chương trình là miền bộ nhớ được dùng để lưu giữ các lệnh chương trình. Vùng này thuộc kiểu non-valatie đọc/ghi được. • Vùng nhớ tham số: là miền lưu giữ các tham số như từ khố, địa chỉ trạm cũng giống như vùng chương trình, Vùng này thuộc kiểu non-valatie đọ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 kết quả của các phép tính, hằng số được định nghĩa trong chương trình, bộ đệm truyền thơng • 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 dạt trong vùng nhớ cuối cùng. Vùng này khơng thuộc kiểu non-valatile nhưng đọc/ghi được. Hai vùng nhớ cuối cùng cĩ ý nghĩa quan trọng trong việc thực hiện một chương trình. Do vậy sẽ được trình bày chi tiết ở mục tiếp theo. Chương trình Chương trình Chương trình Tham số Tham số Tham số Tụ Dữ liệu Dữ liệu Dữ liệu Đối tượng EEPROM Miền nhớ ngồi Hình 4.12: Bộ nhớ trong và ngồi của S7200 38
  40. Chương 4: PLC S7-200 4.6.2. Vùng nhớ dữ liệu và đối tượng: Vùng nhớ dữ liệu là vùng nhớ động, nĩ cĩ thể truy cập theo từng bit, byte, từ đơn (worrd), từ kép (double worrd) và cũng cĩ thể truy nhập được với mảng dữ liệu. Được sử dụng làm miền lưu trữ dữ liệu cho các thuật tốn, các hàm truyền thơng, lập bảng, các hàm dịch chuyển, xoay vịng thanh ghi, con trỏ địa chỉ Vùng đối tượng được sử dụng để lưu giữ dữ liệu cho các đối tượng lập rtình như các giá trị tức thời, giá trị đặt trước của bộ đếm hay Timer. Dữ liệu kiểu đối tượng bao gồm các thanh ghi của counter, bộ đếm, các bộ đếm tốc độ cao, bộ đệm vào/ra tương tự và các thanh ghi AC (Accumulator). Vùng nhớ dữ liệu và đối tượng được chia ra nhiều miền nhớ nhỏ với những ứng dụng khác nhau. Chúng được ký hiệu bằng chữ cái đầu của tên tiếng Anh. Thơng số, chức năng, giới hạn của các vùng nhớ tương ứng với từng CPU được mơ tả qua các bảng sau: Bảng 4.7: đặc điểm và giới hạn vùng ngớ của CPU S7 22x. 39
  41. Chương 4: PLC S7-200 Địa chỉ truy nhập được quy ước với cơng thức: • Truy nhập theo bit: - Viết: tên miền (+) địa chỉ byte (+) . (+) chỉ số bit (từ 0÷7). - Đọc: ngược lại, ví dụ: V12.7_bit 7 của byte 12 trong vùng nhớ V. M8.2_bit 2 của byte 8 trong vùng nhớ M. • Truy nhập theo byte: - Viết: tên miền (+) B (+) địa chỉ của byte trong miền. - Đọc: ngược lại, ví dụ: VB32_byte 32 trong vùng nhớ V. • truy nhập theo Word(từ): - Viết: tên miền (+) W (+) địa chỉ byte cao của từ trong miền. - Đọc: ngược lại, ví dụ: VW180_Word 180 trong vùng nhớ V, từ này gồm cĩ 2 byte 180 và 181. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VW180 VB180 (byte cao) VB181(byte thấp) • truy nhập theo double Word(từ kép): - Viết: tên miền (+) D (+)địa chỉ byte cao của từ cao trong miền. - Đọc: ngược lại, ví dụ: VD8_double Word 8 trong vùng nhớ V, từ kép này bao gồm 4 byte 8, 9, 10, 11. 31 24 23 16 15 8 7 0 VD8 Byte 8 Byte 9 Byte 10 Byte 11 Tất cả các byte thuộc vùng dữ liệu đề cĩ thể truy nhập bằng con trỏ. Con trỏ quy định trong vùng nhớ V, L hoặc các thanh ghi AC1, AC2, AC3. Mỗi con trỏ gồm 4 byte, dùng lệnh MOVD. Quy ước sử dụng con trỏ để truy nhập như sau: &địa chỉ byte (cao) là tốn hạng lấy địa chỉ của byte, từ hoặc từ kép mà con trỏ đang chỉ vào. Ví dụ: 40
  42. Chương 4: PLC S7-200 • AC1=&VB10, thanh ghi AC1 chứa đại chỉ của byte 10 thuộc vùng nhớ V. • VD100=&VW110, từ kép VD100 chứa địa chỉ byte cao (VB110) của từ đơn VW110. • AC2=&VD150, thanh ghi AC2 chứa địa chỉ của byte cao (VB150) của tứ kép VD150. *con trỏ là tốn hạng lấy nội dung của byte, từ hoặc từ kép mà con trỏ đang chỉ vào. Ví dụ như đối phép gán địa chỉ trên thì: • *AC1=VB10, lấy nội dung của byte VB10. • *VD100=VW110, lấy nội dung của từ đơn VW110. • *AC1=VD150, lấy nội dung của từ kép VD150. Phép gán địa chỉ và sử dụng con trỏ như trên cũng cĩ tác dụng với những thanh ghi 16 bit của Timer, bộ đếm thuộc vùng đối tượng hay các vùng nhớ I, Q, V, M, AI, AQ, SM. AC1 VB109 địa chỉ VW110 MOVD &VW110, AC1 tạo con trỏ địa chỉ bằng cách VB110 1 2 đưa địa chỉ của byte cao VB110 vào thanh ghi AC1. VB111 3 4 AC0 VB112 5 6 MOVD *AC1, AC0, đưa giá trị trong word VW110 1 2 3 4 VB113 7 8 vào trong thanh ghi AC0. AC1 VB109 địa chỉ VW112 +D +2, AC1 cộng 2 vào giá trị đại chỉ của con trỏ VB110 1 2 VW110 rồi lưu giữ trong thanh ghi AC1. VB111 3 4 VB112 5 6 MOVD *AC1, AC0, đưa giá trị trong word VW112 VB113 7 8 AC0 vào trong thanh ghi AC0. 5 6 7 8 Hình 2.13: cách tạo và sử dụng con trỏ địa chỉ 4.6.3 Mở rộng cổng vào ra: Số module mở rộng tuỳ thuộc vào từng loại CPU, số module tương ứng với từng loại CPU được trình bày theo bảng 2.3. Cách mắc nối các module mở rộng được mắc nối tiếp (theo một mĩc xích) về phía bên phải của module CPU. Các module số hoặc tươgn tự đều chiếm chỗ trên bộ đệm 100 vào/ra tương ứng với đầu vào/ra của module. Ví dụ về cách khai báo địa chỉ trên các module mở rộng: 41
  43. Chương 4: PLC S7-200 Hình 4.14: ghép nối CPU 224XP với module mở rộng. Hình 4.15: ghép nối CPU 212 với module mở rộng. 42
  44. Chương 4: PLC S7-200 Hình 4.16: ghép nối CPU 214 hoặc 215 với module mở rộng. 43
  45. Chương 5: Ngơn ngữ lập trình PLC S7-200 Chương 5 NGƠN NGỮ LẬP TRÌNH PLC S7-200 5.1.Giới thiệu các ngơn ngữ lập trình: Lập trình cho S7 200 và các PLC khác của hãng Siemens dựa trên 3 phương pháp cơ bản: Phương pháp hình thang (Ladder logic _ LAD). Phương pháp khối hàm (Function Block Diagram _ FBD). Phương pháp liệt kê câu lệnh (Statement List _ STL). 5.1.1 Định nghĩa về LAD: LAD là ngơn ngữ lập trình bằng đồ họa. Nhữnh thành phần cơ bản dùng trong LAD tương ứng với những thành phần cơ bản dùng trong bảng mạch rơle. + Tiếp điểm cĩ hai loại: Thường đĩng Thường hở + Cuộn dây (coil): + Hộp (box): Mơ tả các hàm khác nhau, nĩ làm việc khi cĩ tín hiệu đưa đến hộp. Cĩ các nhĩm hộp sau: hộp các bộ định thời, hộp các bộ đếm, hộp di chuyển dữ liệu, hộp các hàm tốn học, hộp trong truyền thơng mạng + Mạng LAD: Là mạch nối các phần tử thành một mạng hồn thiện, các phần tử như cuộn dây hoặc các hộp phải được mắc đúng chiều. Nguồn điện cĩ hai đường chính, một đường bên trái thể hiện dây nĩng, một đường bên phải là dây trung tính (neutral) nhưng khơng được thể hiện trên giao diện lập trình. Một mach làm việc được khi các phần tử được mắc đúng chiều và kín mạch. 5.1.2. Định nghĩa về STL: Là phương pháp thể hiện chương trình dưới dạng tập hợp các câu lệnh. Để tạo ra một chương trình bằng STL, người lập trình cần phải hiểu rõ phương thức sử dụng 9 bit trong ngăn xếp (stack) logic của S7 200. Ngăn xếp là một khối 9 bit chồng lên nhau từ S0÷S8, nhưng tất cả các thuật tốn liên quan đến ngăn xếp đều làm việc với bit đầu tiên và bit thứ hai (S0 và S1) của ngăn xếp. giá trị logic mới cĩ thể được gởi hoặc nối thêm vào ngăn xếp. Hai bit S0 và S1 phối hợp với nhau thì ngăn xếp được kéo lên một bit. Ngăn xếp của S7 200 (logic stack): 44
  46. Chương 5: Ngơn ngữ lập trình PLC S7-200 S0 Stack0 bit đầu tiên của ngăn xếp. S1 Stack1 bit thứ hai của ngăn xếp. S2 Stack2 bit thứ ba của ngăn xếp. S3 Stack3 bit thứ tư của ngăn xếp. S4 Stack4 bit thứ năm của ngăn xếp. S5 Stack5 bit thứ sáu của ngăn xếp. S6 Stack6 bit thứ bảy của ngăn xếp. S7 Stack7 bit thứ tám của ngăn xếp. S8 Stack8 bit thứ chín của ngăn xếp. Hình 5.3: Mơ tả ngăn xếp của S7 200. 5.2.Vịng quét (thực hiện chương trình) và cấu trúc của một chương trình: PLC thực hiện chương trình theo vịng lặp. Mỗi vịng lặp được gọi là vịng quét (scan). Các giai đoạn của vịng quét: Khi gặp lệnh vào/ra tức thời ngay lập tức hệ thống dừng tất cả mọi cơng việc khác, ngay cả chương trình xử lý ngắt để thực hiện chương trình này trực tiếp với cổng vào/ra. Nếu sử dụng các chế độ ngắt, chương trình con tương ứng với từng tín hiệu ngắt được soạn thảo và cài đặt như một bộ phận của chương trình. Chương trình xử lý ngắt chỉ được thực hiện trong vịng quét khi xuất hiện tín hiệu báo ngắt và cĩ thể xảy ra ở bất cứ thời điểm nàơ trong vịng quét. 45
  47. Chương 5: Ngơn ngữ lập trình PLC S7-200 5.3.Tập lệnh S7-200: Tập lệnh của S7-200 được chia làm 3 nhĩm: 1. 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 bit đầu tiên trong ngăn xếp (gọi là nhĩm lệnh khơng điều kiện). 2. Các lệnh chỉ thực hiện khi bit đầu tiên trong ngăn xếp cĩ giá trị bằng 1 (gọi là nhĩm lệnh cĩ điều kiện). 3. Các nhãn lệnh đánh dấu vị trí trong tập lệnh (gọi là nhĩm lệnh điều khiển chương trình). Cây lệnh Tập lệnh Bit Tập lệnh can thiệp vào thời gian hệ thống Tập lệnh truyền thơng Tập lệnh so sánh Tập lệnh biến đổi Tập các bộ đếm Tập lệnh tốn học Tập lệnh tốn học Tập lệnh điều khiển ngắt Tập lệnh các phép tính logic biến đổi Tập lệnh di chuyển dữ liệu Tập lệnh điều khiển chương trình Tập lệnh thao tác với thanh ghi (dịch/quay vịng thanh ghi) Tập lệnh làm việc với chuỗi Tập lệnh làm việc với bảng dữ liệu Tập các bộ định thời Tập lệnh gọi chương trình con và chương trình ngắt Hình 5.3: Mơ tả cây lệnh với SIMATIC S7-200. 46
  48. Chương 5: Ngơn ngữ lập trình PLC S7-200 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3 Hình 5.4: Mơ tả cây lệnh bit. 2 2 Hình 5.5: Mơ tả cây lệnh can thiệp vào thời gian hệ thống. 2 2 2 2 2 2 Hình 5.6: Mơ tả cây lệnh truyền thơng. 47
  49. Chương 5: Ngơn ngữ lập trình PLC S7-200 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 48
  50. Chương 5: Ngơn ngữ lập trình PLC S7-200 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Hình 5.7: Mơ tả cây lệnh so sánh 49
  51. Chương 5: Ngơn ngữ lập trình PLC S7-200 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Hình 5.8: Mơ tả cây lệnh biến đổi. 2 2 2 2 2 2 Hình 5.9: Mơ tả cây lệnh các bộ đếm. 2 2 2 Hình 5.10: Mơ tả cây lệnh các bộ định thời. 50
  52. Chương 5: Ngơn ngữ lập trình PLC S7-200 2 2 2 2 2 Hình 5.11: Mơ tả cây lệnh điều khiển ngắt 2 2 2 2 2 2 2 2 2 2 2 Hình 5.12: Mơ tả cây lệnh học kiểu Floating-Point. 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Hình 5.13: Mơ tả cây lệnh tốn học kiểu Integer. 51
  53. Chương 5: Ngơn ngữ lập trình PLC S7-200 2 2 2 2 2 2 2 2 2 2 2 2 Hình 5.14: Mơ tả cây lệnh phép tính logic biến đổi. 2 2 2 2 2 2 2 2 2 2 Hình 5.15: Mơ tả cây lệnh di chuyển dữ liệu. 3 3 3 3 3 3 3 3 3 3 3 3 Hình 5.16: Mơ tả cây lệnh điều khiển chương trình. 52
  54. Chương 5: Ngơn ngữ lập trình PLC S7-200 2 2 2 2 2 2 2 2 2 2 2 2 2 Hình 5.17: Mơ tả cây lệnh điều khiển chương trình. 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Hình 5.18: Mơ tả cây lệnh làm việc với chuỗi. 53
  55. Chương 5: Ngơn ngữ lập trình PLC S7-200 2 2 2 2 2 2 2 2 Hình 5.19: Mơ tả cây lệnh làm việc với bảng dữ liệu. ! 1_Các lệnh khơng điều kiện. 2_Các lệnh cĩ điều kiện. 3_Các lệnh điều khiển chương trình. 5.4. Cú pháp và cách ứng dụng SIMATIC struction S7-200: 5.4.1. Tốn hạng và giới hạn cho phép: Bảng : Giới hạn tốn hạng của CPU S7-200 series CPU 22x. 54
  56. Chương 5: Ngơn ngữ lập trình PLC S7-200 5.4.2. SIMATIC Bit Logic instruction: Bảng : Standard contacts, Immediate contacts, Not, Positive_Negative transition. Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types LD bit Tiếp điểm thường mở sẽ được bit: I, Q, M, V, SM, Bool A đĩng khi bit = 1 T, C, S, L O LDN bit Tiếp điểm thường đĩng sẽ được bit: I, Q, M, V, SM, Bool AN mở khi bit = 1 T, C, S, L ON LDI Tiếp điểm thường mở sẽ đĩng tức bit thời (khơng phụ thuộc vào chu kỳ bit: I Bool AI vịng quét) OI LDNI bit Tiếp điểm thường đĩng sẽ mở tức thời (khơng phụ thuộc vào chu kỳ bit: I Bool AIN vịng quét) OIN Đảo giá trị logic của bit đầu tiên NOT NOT Khơng Khơng trong ngăn xếp Bit đầu tiên trong ngăn xếp cĩ giá bit: I, Q, M, V, SM, trị bằng 1 (trong khoảng thời gian T, C, S, L EU P đúng bằng 1 chu kỳ vịng quét) Bool khi phát hiện sườn lên của tín hiệu đầu vào. 55
  57. Chương 5: Ngơn ngữ lập trình PLC S7-200 Bit đầu tiên trong ngăn xếp cĩ giá bit: I, Q, M, V, SM, Bool trị bằng 1 (trong khoảng thời gian T, C, S, L ED N đúng bằng 1 chu kỳ vịng quét) khi phát hiện sườn xuống của tín hiệu đầu vào. Hình 5.20: Ví dụ minh hoạ lệnh LD, NOT, ED trong chương trình LAD và STL. 1. SIMATIC Bit Logic Instructions: Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types bit Cuộn dây đầu ra ở trạng thái ON bit: I, Q, M, V, SM, = bit khi cĩ dịng điện điều khiển đi T, C, S, L Bool qua. Cuộn dây đầu ra ở trạng thái ON bit: Q =I bit bit tức thời (khơng phụ thuộc vào Bool chu kỳ vịng quét) khi cĩ dịng điện điều khiển đi qua. Set 1 mảng gồm n tiếp điểm, bit: I, Q, M, V, SM, tính từ tiếp điểm "bit" (n <= T, C, S, L bit S bit, n 128 tiếp điểm). n: IB, QB, MB, VB, Bool S SMB, SB, LB, AC, n Constant, ∗VD, ∗AC,∗ LD 56
  58. Chương 5: Ngơn ngữ lập trình PLC S7-200 Reset 1 mảng gồm n tiếp điểm, bit: I, Q, M, V, SM, T, C, S, L tính từ tiếp điểm "bit" (n <= bit n: IB, QB, MB, VB, R bit, n 128 tiếp điểm). R SMB, SB, LB, AC, Bool n Constant, ∗VD, ∗AC, ∗LD Set tức thời 1 mảng gồm n tiếp bit: Q bit điểm, tính từ tiếp điểm "bit" (n n: IB, QB, MB, VB, SI SI bit, n <= 128 tiếp điểm). SMB, SB, LB, AC, Bool n Constant, ∗VD, ∗AC, ∗LD Reset tức thời 1 mảng gồm n bit: Q bit tiếp điểm, tính từ tiếp điểm n: IB, QB, MB, VB, RI bit, n RI "bit" (n <= 128 tiếp điểm). SMB, SB, LB, AC, Bool n Constant, ∗VD, ∗AC, ∗LD n Lệnh rỗng, khơng hoạt động n NOP n: 0 ÷255 Byte NOP lần. Hình 5.21: Ví dụ minh hoạ lệnh =, S, R trong chương trình LAD và STL. 57
  59. Chương 5: Ngơn ngữ lập trình PLC S7-200 2. SIMATIC Copare Byte Instructions: Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types COPARE BYTE Lệnh so sánh giá trị của hai byte IB, QB, MB, LDB= IN1 IN1 và IN2. VB, SMB, SB, ==B Trạng thái tiếp điểm là đĩng khi LB, AC, Byte AB= IN2 OB= lệnh so sánh IN1= IN2 là đúng. Constant, ∗VD, ∗AC, ∗LD LDB B Trạng thái tiếp điểm là đĩng khi LB, AC, Byte AB lệnh so sánh IN1 Lệnh so sánh giá trị của hai byte IB, QB, MB, IN1 IN1 và IN2. VB, SMB, SB, AB> >B Trạng thái tiếp điểm là đĩng khi LB, AC, Byte IN2 OB> lệnh so sánh IN1> IN2 là đúng. Constant, ∗VD, ∗AC, ∗LD LDB>= Lệnh so sánh giá trị của hai byte IB, QB, MB, IN1 IN1 và IN2. VB, SMB, SB, >=B Trạng thái tiếp điểm là đĩng khi LB, AC, Byte AB>= IN2 OB>= lệnh so sánh IN1>= IN2 là đúng. Constant, ∗VD, ∗AC, ∗LD COPARE WORD (COPARE INTEGER) LDW= Lệnh so sánh giá trị của hai IW, QW, MW, VW, IN1 Word IN1 và IN2. SMW, SW, LW, Word ==I Trạng thái tiếp điểm là đĩng khi AC, Constant, ∗VD, AW= IN2 OW= lệnh so sánh IN1= IN2 là đúng. ∗AC, ∗LD LDW I AW lệnh so sánh IN1<> IN2 là đúng. ∗AC, ∗LD 58
  60. Chương 5: Ngơn ngữ lập trình PLC S7-200 LDW> Lệnh so sánh giá trị của hai IW, QW, MW, VW, Word IN1 và IN2. SMW, SW, LW, IN1 Word AW> >I Trạng thái tiếp điểm là đĩng khi AC, Constant, ∗VD, IN2 OW> lệnh so sánh IN1 > IN2 là đúng. ∗AC, ∗LD LDW>= Lệnh so sánh giá trị của hai IW, QW, MW, VW, IN1 Word IN1 và IN2. SMW, SW, LW, >=I Trạng thái tiếp điểm là đĩng khi Word AW>= IN2 AC, Constant, ∗VD, OW>= lệnh so sánh IN1 >= IN2 là đúng. ∗AC, ∗LD LDW Lệnh so sánh giá trị của hai ID, QD, MD, VD, IN1 DoubleWord IN1 và IN2. SMD, SD, LD, AC, Double IN2 ODW IN2 là đúng. ∗AC, ∗LD LDDW> Lệnh so sánh giá trị của hai ID, QD, MD, VD, IN1 DoubleWord IN1 và IN2. SMD, SD, LD, AC, Double >D ADW> IN2 Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, Word ODW> lệnh so sánh IN1 > IN2 là đúng. ∗AC, ∗LD LDDW>= Lệnh so sánh giá trị của hai ID, QD, MD, VD, IN1 DoubleWord IN1 và IN2. SMD, SD, LD, AC, Double >=D Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, ADW>= IN2 Word ODW>= lệnh so sánh IN1 >= IN2 là đúng. ∗AC, ∗LD LDDW< Lệnh so sánh giá trị của hai ID, QD, MD, VD, IN1 DoubleWord IN1 và IN2. SMD, SD, LD, AC, Double <D Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, Word ADW< IN2 ODW< lệnh so sánh IN1 < IN2 là đúng. ∗AC, ∗LD LDDW<= Lệnh so sánh giá trị của hai ID, QD, MD, VD, IN1 <D DoubleWord IN1 và IN2. SMD, SD, LD, AC, Double ADW<= IN2 Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, Word ODW<= lệnh so sánh IN1 <= IN2 là đúng. ∗AC, ∗LD COPARE REAL LDR= Lệnh so sánh giá trị của hai số ID, QD, MD, VD, Real 59
  61. Chương 5: Ngơn ngữ lập trình PLC S7-200 thực IN1 và IN2. SMD, SD, LD, AC, AR= IN1 Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, ==R lệnh so sánh IN1 = IN2 là đúng. OR= IN2 ∗AC, ∗LD Lệnh so sánh giá trị của hai số ID, QD, MD, VD, LDR R Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, Real AR lệnh so sánh IN1 IN1 thực IN1 và IN2. SMD, SD, LD, AC, >R Real AR> IN2 Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, OR> lệnh so sánh IN1 > IN2 là đúng ∗AC, ∗LD Lệnh so sánh giá trị của hai số ID, QD, MD, VD, LDR>= IN1 thực IN1 và IN2. SMD, SD, LD, AC, Real AR>= >=R Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, IN2 OR>= lệnh so sánh IN1 >= IN2 là đúng ∗AC, ∗LD Lệnh so sánh giá trị của hai số ID, QD, MD, VD, LDR< IN1 thực IN1 và IN2. SMD, SD, LD, AC, <R Trạng thái tiếp điểm là đĩng khi Real AR< IN2 Constant, ∗VD, OR< lệnh so sánh IN1 < IN2 là đúng ∗AC, ∗LD Lệnh so sánh giá trị của hai số ID, QD, MD, VD, LDR<= IN1 thực IN1 và IN2. SMD, SD, LD, AC, <=R Trạng thái tiếp điểm là đĩng khi Constant, ∗VD, Real AR<= IN2 OR<= lệnh so sánh IN1 <= IN2 là đúng ∗AC, ∗LD Hình 5.22: Ví dụ minh hoạ lệnh so sánh trong chương trình LAD, FBD và STL. 60
  62. Chương 5: Ngơn ngữ lập trình PLC S7-200 3. SIMATIC Timer Instructions: Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types On_Delay_Timer (TON) Đây là lệnh đếm thời Txxx: Constant word gian hoạt khi tín hiệu EN IN : power flow bool là ON. Txxx TON Txxx, PT Khi giá trị dếm tức thời TON EN trong thanh ghi CT >= giá trị đặt trước trong PT thanh ghi PT thì bit trạng thái Txxx của bộ Timer là ON. Gía trị đếm tức thời trong thanh ghi CT = 0 và bit trạng thái về off khi tín hiệu ở đầu vào là off. Ngược lại với PT: IW, QW, bộ TON, thanh ghi CV MW, SMW, và bit trạng thái vẫn VW, LW, SW, AIW, T, C, AC, INT giữ nguyên trừ khi cĩ lệnh Reset bộ TONR. Constant, ∗VD, ∗AC, ∗LD Ngồi ra cĩ thể sử Txxx dụng lệnh Reset để TONR TON Txxx, PT EN xố thanh ghi tức thời cũng như bit trạng thái PT của bộ TON. Ta cĩ thể sử dụng tốn hạng Word (INT) tương ứng với lệnh INT hay tốn hạng tương ứng với bit trạng thái. Khi tín hiệu đầu vào Txxx EN = 1 bộ TOF khơng TOF hoạt động. chỉ hoạt EN TOF Txxx, PT động khi cĩ sườn PT xuống của tín hiệu đầu vào. Bit trạng thái được bật lên ON khi 61
  63. Chương 5: Ngơn ngữ lập trình PLC S7-200 CV = PT. Reset TOF (cả CV và bit trạng thái) bằng cách cung cấp tín hiệu vào đầu vào EN. Bảng : Số Timer và độ phân giải. Note: Khơng thể cùng một lúc sử dụng cả 2 bộ TON và TOF cho cùng 1 địa chỉ (ví dụ T37). Bảng : Gía trị đặt tối đa cho từng loại và trạng thái làm việc của các loại Timer. Việc sử dụng tiếp điểm thường đĩng Q0.0 bên dưới để đảm làm tín hiệu đầu vào cho Timer đảm bảo cho Q0.0 sẽ cĩ giá trị logic bằng 1 trong một vịng quét ở mỗi thời điểm mà giá trị đếm tức thời của bộ Timer đạt giá trị đặt trước PT. 62
  64. Chương 5: Ngơn ngữ lập trình PLC S7-200 Tạo khoảng thời gian trễ 300ms bằng các loại timer cĩ độ phân giải khác nhau Hình 23: Ví dụ cách sử dụng bộ TON. 63
  65. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 24: Ví dụ cách sử dụng bộ TONR . Hình 25: Ví dụ cách sử dụng bộ TOF 64
  66. Chương 5: Ngơn ngữ lập trình PLC S7-200 4. SIMATIC Counter Instructions (Count Up, Count Up Down, Count Down ): Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types Khai báo bộ đếm tiến theo sườn Cxxx: word lên của tín hiệu đầu vào CU. Constant Cxxx Khi gí trị đếm tức thời C-Word EU, R : power bool CTU lớn hơn hoặc bằng giá trị đặt flow. CU trước PV, htì bit trạng thái Cxxx CTU Cxxx, PV PT: IW, QW, R cĩ giá trị bằng 1. Bộ đếm được MW, SMW, PV Reset khi R cĩ giá trị logic bằng VW, LW, SW, 1. Bộ đếm ngừng đếm khi giá trị AIW, T, C, INT đếm đạt giá trị cực đại 32767. AC, Constant, ∗VD, ∗AC, ∗LD Khai báo bộ đếm tiến/lùi; đếm Cxxx: word tiến theo sườn lên của tín hiệu Constant đầu vào CU, đếm lùi theo sườn EU, ED, R : bool lên của tín hiệu đầu vào CD. power flow. Cxxx Khi gí trị đếm tức thời C-Word PT: IW, QW, lớn hơn hoặc bằng giá trị đặt MW, SMW, CTUD CU trước PV, htì bit trạng thái Cxxx VW, LW, SW, CTUD Cxxx, PV CD cĩ giá trị bằng 1. Bộ đếm được AIW, T, C, R INT PV Reset khi R cĩ giá trị logic bằng AC, Constant, 1. Bộ đếm ngừng đếm tiến khi ∗VD, ∗AC, giá trị đếm đạt giá trị cực đại ∗LD 32767. Bộ đếm ngừng đếm lùi khi giá trị đếm đạt giá trị cực đại -32767. CTUD reset khi đầu vào R cĩ giá trị logic bằng 1. Khai báo bộ đếm lùi theo sườn Cxxx: word lên của tín hiệu đầu vào C. Khi Constant gí trị đếm tức thời C-Word lớn CD, LD : Cxxx bool hơn hoặc bằng giá trị đặt trước power flow. CTD PV, htì bit trạng thái Cxxx cĩ CD PT: IW, QW, CTD Cxxx, PV giá trị bằng 1. Bộ đếm được MW, SMW, LD Reset khi R cĩ giá trị logic bằng PV VW, LW, SW, 1. Bộ đếm ngừng đếm khi giá trị AIW, T, C, INT đếm đạt giá trị cực đại 32767. AC, Constant, ∗VD, ∗AC, ∗LD 65
  67. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 26: Ví dụ cách sử dụng bộ CTD. 66
  68. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 27: Ví dụ cách sử dụng bộ CTUD. 5. SIMATIC Integer Math Instructions: Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Add Integer and Subtract Integer Lệnh cộng hai MOVW IN1, OUT ADD_I số nguyên 16 +I IN2, OUT EN bit IN1 + IN2 hoặc kết quả chứa +I IN1, IN2 IN1 OUT IN1, IN2: IW, QW, MW, IN2 trong OUT (16 SMW, VW, LW, SW, bit) AIW, T, C, AC, Constant, Lệnh trừ hai số ∗VD, ∗AC, ∗LD INT SUB_I nguyên 16 bit OUT: IW, QW, MW, MOVW IN1, OUT EN IN1- IN2 kết SMW, VW, LW, SW, T, -I IN2, OUT IN1 OUT quả chứa trong C, AC, ∗VD, ∗AC, ∗LD hoặc IN2 OUT (16 bit) -I IN1, IN2 Add Double Integer and Subtract Double Integer Lệnh cộng hai MOVD IN1, OUT ADD_DI số nguyên 32 EN bit IN1 + IN2 +D IN2, OUT hoặc IN1 OUT kết quả chứa IN1, IN2: ID, QD, MD, +D IN1, IN2 IN2 trong OUT (32 VD, SMD, SD, LD, bit) HC,AC, Constant, ∗VD, Lệnh trừ hai số ∗AC, ∗LD DINT nguyên 32 bit OUT: ID, QD, MD, VD, MOVD IN1, OUT SUB_DI IN1 - IN2 kết SMD, SD, LD,AC, ∗VD, -D IN2, OUT EN quả chứa trong hoặc ∗AC, ∗LD IN1 OUT OUT (32 bit) -D IN1, IN2 IN2 Add Real and Subtract Real Lệnh cộng hai IN1, IN2: ID, QD, MD, ADD_R số thực 32 bit VD, SMD, SD, LD, MOVR IN1, OUT EN IN1 + IN2 kết HC,AC, Constant, ∗VD, +R IN2, OUT IN1 OUT quả chứa trong ∗AC, ∗LD Real hoặc IN2 OUT (32 bit) +R IN1, IN2 OUT: ID, QD, MD, VD, SMD, SD, LD,AC, ∗VD, ∗AC, ∗LD MOVR IN1, OUT Lệnh trù hai số IN1, IN2: ID, QD, MD, Real 67
  69. Chương 5: Ngơn ngữ lập trình PLC S7-200 hoặc + IN2 kết quả HC,AC, Constant, ∗VD, SUB_R -R IN1, IN2 EN chứa trong ∗AC, ∗LD OUT (32 bit) IN1 OUT OUT: ID, QD, MD, VD, IN2 SMD, SD, LD,AC, ∗VD, ∗AC, ∗LD Miltiply Integer and Divide Integer Lệnh nhân hai số nguyên 16 MOVW IN1, OUT MUL_ I EN bit IN1*IN2 *I IN2, OUT kết quả chứa IN1 OUT hoặc trong OUT (16 *I IN1, IN2 IN2 IN1, IN2: IW, QW, MW, bit) SMW, VW, LW, SW, AIW, T, C, AC, Constant, Lệnh chia hai ∗VD, ∗AC, ∗LD INT số nguyên 16 OUT: IW, QW, MW, DIV_I bit IN1/IN2 kết SMW, VW, LW, SW, T, MOVW IN1, UT EN /I IN2, OUT quả chứa trong C, AC, ∗VD, ∗AC, ∗LD hoặc IN1 OUT OUT (16 bit) /I IN1, IN2 IN2 Miltiply Double Integer and Divide Double Integer Lệnh nhân hai số nguyên 32 MOVD IN1, OUT MUL_DI EN bit IN1*IN2 *D IN2, OUT kết quả chứa hoặc IN1 OUT trong OUT (32 IN1, IN2: ID, QD, MD, *D IN1, IN2 IN2 bit) VD, SMD, SD, LD, HC,AC, Constant, ∗VD, ∗AC, ∗LD DINT Lệnh chia hai OUT: ID, QD, MD, VD, số nguyên 32 MOVD IN1, OUT DIV_DI SMD, SD, LD,AC, ∗VD, EN bit IN1/IN2 kết ∗AC, ∗LD /D IN2, OUT quả chứa trong hoặc IN1 OUT IN2 OUT (32 bit) /D IN1, IN2 Multiply Integer to Double Double Integer and Divide Integer to Double Double Integer Lệnh nhân hai IN1, IN2: IW, QW, MW, MUL số nguyên 16 SMW, VW, LW, SW, AIW, EN T, C, AC, Constant, ∗VD, MOVW IN1, OUT bit IN1*IN2 INT MUL IN2, OUT IN1 OUT kết quả chứa ∗AC, ∗LD hoặc IN2 trong OUT (32 MUL IN1, IN2 bit) OUT: ID, QD, MD, VD, SMD, SD, LD,AC, ∗VD, DINT ∗AC, ∗LD 68
  70. Chương 5: Ngơn ngữ lập trình PLC S7-200 trong OUT (32 OUT: ID, QD, MD, VD, bit) SMD, SD, LD,AC, ∗VD, DINT ∗AC, ∗LD Lệnh chia hai IN1, IN2: IW, QW, MW, số nguyên 16 SMW, VW, LW, SW, AIW, MOVW IN1, OUT DIV bit IN1*IN2 T, C, AC, Constant, ∗VD, INT EN ∗AC, ∗LD DIV IN2, OUT kết quả chứa hoặc IN1 OUT trong OUT (32 DIV IN1, IN2 IN2 bit) OUT: ID, QD, MD, VD, SMD, SD, LD,AC, ∗VD, DINT ∗AC, ∗LD Miltiply Real and Divide Real Lệnh nhân hai số thực 32 bit MUL_R EN IN1*IN2 kết MOVR IN1, OUT *R IN2, OUT IN1 OUT quả chứa trong IN2 hoặc OUT (32 bit) IN1, IN2: IW, QW, MW, *R IN1, IN2 SMW, VW, LW, SW, AIW, T, C, AC, Constant, ∗VD, ∗AC, ∗LD Real Lệnh chia hai OUT: ID, QD, MD, VD, số thực 32 bit SMD, SD, LD,AC, ∗VD, MOVR IN1, OUT DIV_R IN1/IN2 kết EN ∗AC, ∗LD /R IN2, OUT quả chứa trong hoặc IN1 OUT OUT (32 bit) /R IN1, IN2 IN2 Những lệnh này làm đơn giản hố các vịng điều khiển bên trong chương trình hoặc là các quá trình lặp. Trong LAD hay trong STL các lệnh tăng hoặc giảm đều làm việc với các tốn hạng cĩ kiểu Byte, từ đơn, kiểu từ kép theo nguyên tắc cộng hoặc trừ tốn hạng với số nguyên 1. Để tiết kiệm ơ nhớ ta cĩ thể sủ dụng đầu vào đồng thời làm đầu ra. Increment Byte and Decrement Byte INC_B EN INCB OUT IN: IB, QB, MB, VB, IN OUT SMB, SB, LB, AC, Constant, ∗VD, ∗AC,∗ LD Mơ tả ở trên. OUT:IB, QB, MB, VB, Byte SMB, SB, LB, AC, ∗VD, DEC_B EN ∗AC,∗ LD DECB OUT IN OUT 69
  71. Chương 5: Ngơn ngữ lập trình PLC S7-200 Increment Word and Decrement Word IN: IW, QW, MW, SMW, VW, LW, SW, AIW, T, C, INC_W INCW OUT EN AC, Constant, ∗VD, ∗AC, ∗LD IN OUT Mơ tả ở trên OUT: IW, QW, MW, INT SMW, VW, LW, SW, AIW, DEC_W T, C, AC, ∗VD, ∗AC, ∗LD EN DECW OUT IN OUT Increment Double Word and Decrement Double Word INC_DW EN IN: ID, QD, MD, VD, INCD OUT SMD, SD, LD, HC,AC, IN OUT Constant, ∗VD, ∗AC, ∗LD Mơ tả ở trên OUT: ID, QD, MD, VD, DINT DEC_DW SMD, SD, LD, HC,AC, EN DECB OUT ∗VD, ∗AC, ∗LD IN OUT 70
  72. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 28: Ví dụ về cách sử dụng lệnh MUL, DIV. Hình 29: Ví dụ về cách sử dụng lệnh INC DEC 71
  73. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 30: Ví dụ về cách sử dụng lệnh ADD, MUL, DIV với số thực. 72
  74. Chương 5: Ngơn ngữ lập trình PLC S7-200 6. SIMATIC Numerical Function Instructions: Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Square Root Lệnh thực hiện phép IN: ID, QD, MD, lấy căn bậc hai của VD, SMD, SD, SQRT số thực 32 bit. Kết LD, HC,AC, EN quả cũng là số 32 bit Constant, ∗VD, SQRT IN, OUT IN OUT được ghi vào từ kép ∗AC, ∗LD Real OUT. OUT: ID, QD, MD, VD, SMD, SD, LD, HC,AC, ∗VD, ∗AC, ∗LD Natural Logarithm (logarit tự nhiên) Lệnh Natural IN: ID, QD, MD, Logarithm thực hiện VD, SMD, SD, phép logirit tự nhiên LD, HC,AC, SQRT của số thực 32 bit, EN Constant, ∗VD, Kết quả được lưu ∗AC, ∗LD LN IN, OUT IN OUT vào từ kép OUT. OUT: ID, QD, Real Lệnh này cũng được MD, VD, SMD, sử dụng để thực hiện SD, LD, HC,AC, phép logarit cơ số ∗VD, ∗AC, ∗LD 10 từ phép lấy logarit tự nhiên. Natural Exponential (phép lấy tự nhiên) IN: ID, QD, MD, EPX VD, SMD, SD, EN LD, HC,AC, IN OUT Constant, ∗VD, EPX IN, OUT ∗AC, ∗LD Real OUT: ID, QD, MD, VD, SMD, SD, LD, HC,AC, ∗VD, ∗AC, ∗LD 73
  75. Chương 5: Ngơn ngữ lập trình PLC S7-200 Sine, Cosine and Tangent Lệnh Sine, Cosine SIN và Tangent định giá EN SIN IN, OUT trị hàm lượng giác IN OUT của gĩc IN(số thực 32 bit). Kết quả được lưu vào IN: ID, QD, MD, COS doubleword OUT. VD, SMD, SD, EN Với điều kiện: IN LD, HC,AC, COS IN, OUT IN OUT tính bằng radian, Constant, ∗VD, nếu là độ thì phải ∗AC, ∗LD Real thực hiện phép OUT: ID, QD, chuyển từ độ sang MD, VD, SMD, TAN radian bằng cách SD, LD, HC,AC, EN thực hiện lệnh ∗VD, ∗AC, ∗LD IN OUT MUL_R để nhân giá TAN IN, OUT trị IN Với 1.745329E-2 (π/180) PID TBL, Lệnh thực hiện tính LOOP tốn vịng lặp, với số TBL: thứ tự là LOOP BYTE VB (0<=LOOP<=7) và bảng tham chiếu của quá trình là TBL. LOOP: BYTE ! Trrước khi thực Constant (0 ÷7) hiện quá trình tính tốn vịng lặp PID PID à ầ hải h EN TBL OUT LOOP 74
  76. Chương 5: Ngơn ngữ lập trình PLC S7-200 này cần phải thực hiện một số thủ tục quy định trước khi quá trình tính tốn diễn ra như: việc khai báo tham số của hàm, địa chỉ của mảng dữ liệu, lấy mẫu tín hiệu vào analog đầu vào, thực hiện quá trình tính tốn, chuẩn hố, hiệu chỉnh Phần này sẽ được trình bày cụ thể ở chương sau. 7. SIMATIC Move Instructions: Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types Move Byte, Move Word, Move Double Word and Move Real Lệnh thực hiện IN: IB, QB, MB, việc chuyển dữ VB, SMB, SB, LB, MOV_B EN liệu từ byte IN AC, Constant, ∗VD, vào byte OUT ∗AC,∗ LD MOVB IN, OUT IN OUT Byte khi cĩ sườn lên OUT:IB, QB, MB, của tín hiệu vào. VB, SMB, SB, LB, AC, ∗VD, ∗AC,∗ LD 75
  77. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh thực hiện IN: IW, QW, VW, việc chuyển dữ LW, SW, AIW, T, C, MOV_W liệu từ Word IN AC, Constant, ∗VD, EN ∗AC, ∗LD vào Word OUT MOVW IN,OUT IN OUT khi cĩ sườn lên OUT: IW, QW, MW, Word, INT SMW, VW, LW, SW, của tín hiệu vào. AIW, T, C, AC, ∗VD, ∗AC, ∗LD Lệnh thực hiện IN: ID, QD, MD, việc chuyển dữ VD, SMD, SD, LD, liệu từ kép IN HC,AC, &VB, MOV_DW EN vào từ kép OUT &IB, &QB, &SB, khi cĩ sườn lên &MB, &T, &C, IN OUT DoubleWord, MOVD IN, OUT của tín hiệu vào. Constant, ∗VD, DINT ∗AC, ∗LD OUT: ID, QD, MD, VD, SMD, SD, LD, HC,AC, ∗VD, ∗AC, ∗LD Lệnh thực hiện IN: ID, QD, MD, việc chuyển dữ VD, SMD, SD, LD, MOV_R liệu là số thực từ HC,AC, Constant, EN từ kép IN vào từ ∗VD, ∗AC, ∗LD MOVR IN, OUT IN OUT Real kép OUT khi cĩ OUT: ID, QD, MD, sườn lên của tín VD, SMD, SD, LD, hiệu vào. HC,AC, ∗VD, ∗AC, ∗LD Block Move Byte, Block Move Word, Block Move Double Word and Block Move Real Lệnh thực hiện IN, OUT: IB, QB, việc chuyển N MB, VB, SMB, SB, Byte BLKMOV_B EN byte dữ liệu tính LB, ∗VD, ∗AC, từ byte IN vào ∗LD. BMB IN, IN OUT N vùng địa chỉ tính N: IB, QB, MB, OUT, N từ byte OUT khi VB, SMB, SB, LB, cĩ sườn lên của AC, Constant, ∗VD, Byte tín hiệu vào. ∗AC, ∗LD 1 <= N <= 255 76
  78. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh thực hiện IN: IW, QW, VW, việc chuyển N từ LW, SW, SMW, AIW, đơn dữ liệu tính T, C, AC, ∗VD, ∗AC, từ từ đơn IN vào ∗LD Word BLKMOV_W vùng địa chỉ tính OUT: IW, QW, EN VW, LW, SW, SMW, từ từ đơn OUT BMW IN, AQW, T, C, AC, ∗VD, IN OUT khi cĩ sườn lên OUT, N N ∗AC, ∗LD của tín hiệu vào. N: IB, QB, MB, VB, SMB, SB, LB, AC, Constant, ∗VD, Byte ∗AC, ∗LD 1 <= N <= 255 Lệnh thực hiện IN, OUT: ID, QD, việc chuyển N từ MD, VD, SMD, DWord BLKMOV_D kép dữ liệu tính SD, LD, ∗VD, EN từ từ kép IN vào ∗AC, ∗LD. BMD IN, IN OUT vùng địa chỉ tính N: IB, QB, MB, OUT, N N từ từ kép OUT VB, SMB, SB, LB, khi cĩ sườn lên AC, Constant, ∗VD, Byte của tín hiệu vào. ∗AC, ∗LD 1 <= N <= 255 Swap Byte Lệnh đảo dữ liệu SWAP IN: IW, QW, VW, EN ENO của 2 byte trong SWAP IN LW, SW, SMW, AIW, Word IN từ đơn IN. T, C, AC. Move Byte Immedieate Read/ Write Lệnh đọc tức IN: IB MOV_BIR EN thời giá trị ở byte đầu vào ở cổng OUT: IB, QB, MB, BIR IN, OUT IN OUT Byte vật lý IN và ghi VB, SMB, SB, LB, trực tiếp vào byte AC, ∗VD, ∗AC, OUT. ∗LD Lệnh đọc tức IN: IB, QB, MB, MOV_BIW EN thời giá trị ở byte VB, SMB, SB, LB, IN và ghi trực AC, Constant, BIW IN, OUT IN OUT Byte tiếp ra đầu ra ở ∗VD, ∗AC, ∗LD cổng vật lý byte OUT: QB OUT. 77
  79. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 31: Ví dụ minh hoạ về cách sử dụng lệnh khối hàm. Hình 32: Ví dụ minh hoạ về cách sử dụng lệnh khối hàm 78
  80. Chương 5: Ngơn ngữ lập trình PLC S7-200 8. SIMATIC Table Instructions: Các lệnh làm việc với bảng dữ liệu gọi tắc là lệnh bảng, cho phép nhập dữ liệu vào một bảng, sắp xếp số lượng theo thứ tự đã được nhập vào hoặc theo thứ tự ngược lại. Bảng được định nghĩa là một mảng từ đơn xếp liền nhau từ địa chỉ thấp nhất tính từ đầu bảng đến địa chỉ cao nhất tính đến cuối bảng. Hai từ đơn đầu tiên của bảng dùng để quản lý bảng. Dữ liệu được ghi vào trong bảng bắt đầu từ từ đơn thứ 3 trong bảng, mỗi dữ liệu chiếm một từ đơn, một bảng chỉ chứa tối đa 100 dữ liệu. Cĩ nghĩa là bảng lớn nhất cĩ 204 byte. Hai từ đơn đầu bảng cĩ ý nghĩa như sau: Hình 33: Mơ tả bảng dữ liệu. + Từ đầu ký hiệu bằng TL, chứa kích thước của bảng khơng kể hai từ đơn quản lý. + Từ đơn thứ hai ký hiệu bằng EC, để quản lý số các dữ liệu hiện cĩ trong bảng. Bit SM1.4 được dùng để báo trạng thái đầy bảng. Các lệnh làm việc với bảng gồm cĩ các lệnh: + Nhập thêm dữ liệu vào bảng : ATT - Add to Table(AT_T_TBL). + Lấy dữ liệu ra khỏi bảng theo thứ tự vào trước ra trước: First - In - First - Out (FIFO). + Lấy dữ liệu ra khỏi bảng theo thứ tự vào sau ra trước: Last - In - First - Out (LIFO). Tip: Lệnh bảng được thực hiện liên tục (một từ trong một vịng quét) khi đầu vào vẫn cịn được kích. Bởi vậy trước khi gọi lệnh làm việc với bảng nên thực hiện lệnh phát hiên sườn lên (EU) cho tín hiệu đầu vào. Kiểu Mơ tả Tốn hạng dữ liệu STL LAD Description Operands Data Types Add to Table 79
  81. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh ghi thêm vào bảng một DATA: dữ liệu kiểu từ đơn, được IW, QW, VW, AD_T_TBL xác định bằng nội dung cảu LW, SW, MW, EN ENO SMW, AIW, T, C, INT tốn hạng DATA trong lệnh. DATA Bảng được chỉ định trong AC, Constant, TBL ∗VD, ∗AC, ∗LD lệnh bằng tốn hạng TBL xác định từ đầu tiên của bảng, tức là TL. Nếu bảng đã ATT DATA, TABLE đầy tức là EC=TL, Bit SM1.4=1. TBL: Dữ liệu mới được đưa vào sẽ IW, QW, VW, nằm trong từ chưa dùng đầu LW, SW, MW, Word tiên, tức là ngay sau dữ liệu SMW, T, C, ∗VD, được nhập trước đĩ. Khi ∗AC, ∗LD lệnh thực hiên xong thì nộ dung của từ EC tăng thêm 1 đơn vị. Hình 34: Ví dụ về cách thực hiện lệnh ATT. Sử dụng lệnh tìm kiếm để tìm dữ liệu theo mẫu cho trước trong một bảng. Mẫu dữ liệu định trước là nội dung của tốn hạng PTN của lệnh. Tham số CMD là luật tìm kiếm, cĩ 4 luật tìm kiếm: =, . Bảng được chỉ định trong lệnh tìm kiếm được chỉ định bằng nội dung của tốn hạng TBL chỉ ơ nhớ nằm ngay trước vùng chứa dữ liệu của bảng (ơ này chính là ơ từ đơn EC). 80
  82. Chương 5: Ngơn ngữ lập trình PLC S7-200 Bảng quy định cho lệnh tìm kiếm bao gồm bộ đếm EC tức thời cĩ kiểu từ đơn ghi số các dữ liệu cĩ trong bảng và vùng dữ liệu của bảng. Số lượng lớn nhất các dữ liệu của bảng cĩ thể cĩ của bảng là 100. Mỗi dữ liệu trong bảng cĩ kích thước bằng từ đơn. Dữ liệu trong bảng được đánh số từ 0÷n với n cĩ giá trị cực đại bằng 99. Số các dữ liệu cĩ trong bảng là nội dung của từ đơn EC, khơng bắt buộc lệnh tìm kiếm phải bắt đầu từ đầu bảng. Lệnh cĩ thể bắt đầu cơng việc tìm kiếm tại một điểm bất kỳ trong vùng dữ liệu. Tốn hạng INDX xác định điểm xuất phát của cơng việc tìm kiếm bằng việc chỉ ra chỉ số (0÷99) của dữ liệu đầu tiên trong vùng định tìm kiếm. Như vậy muốn tìm từ đầu bảng INDX phải cĩ giá trị bằng 0. Nội dung của INDX là số nguyên trong khoảng từ 0 đến EC. Nếu sử dụng lệnh tìm kiếm với bảng được tạo bởi các lệnh ATT, FIFO, LIFO thì ơ nhớ EC là ơ nhớ đầu bảng phải được chỉ định trong lệnh tại tốn hạng TBL. Khi sử dụng lệnh ATT, FIFO, LIFO địi hỏi phải thơng báo từ số các đầu vào cực đại cho lệnh (ơ nhớ TL) cịn khi sử dụng lệnh tìm kiếm TBL_FIND thì khơng cần. Tốn hạng SRC của lệnh tìm kiếm là tên của ơ nhớ EC (2 byte). Cú pháp của lệnh tìm kiếm trong LAD và STL khác nhau. Trong khi cả 4 luật tìm kiếm CMD trong LAD, thì trong STL tương ứng với mỗi luật tìm kiếm cĩ 1 lệnh tìm kiếm riêng. Như vậy trong LAD chỉ cĩ 1 hộp cho 4 lệnh tìm kiếm thì trong STL là: FND=, FND . Nội dung của tốn hạng trong LAD được quy định như sau: a) CMD = 1, tìm theo luật = (bằng nhau.). b) CMD = 2, tìm theo luật (lớn hơn). Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Table Fine FND= TBL, Thực hiện việc tìm TBL: IW, QW, PARNT, INDX kiếm trong bảng xác VW, LW, SW, định bởi TBL , bắt đầu MW, SMW, AIW, Word từ vị trí dữ liệu INDX T, C, ∗VD, ∗AC, ∗LD ơ nhớ chứ dữ liệu PTN: IW, QW, PARNT. Luật tìm VW, LW, SW, FND , . ∗AC, ∗LD INDX CMD 81
  83. Chương 5: Ngơn ngữ lập trình PLC S7-200 . INDX: LW, SW, Khi tìm thấy , INDX MW, SMW, AIW, sẽ chỉ vào ơ dữ liệu T, C, ∗VD, ∗AC, Word FND TBL, gọi lại lệnh này. Nếu Byte PARNT, INDX như khơng tìm thấy INDX cĩ giá trị đúng bằng giá trị của bộ đếm EC. Bảng : Sự khác nhau giữa bảng dữ liệu định nghĩa bằng lệnh ATT, FIFO, LIFO và lệnh FIN. 82
  84. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 35: Ví dụ về cách sử dụng lệnh tìm kiếm FND. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Fisrt - In - Fisrf - Out 83
  85. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh lấy dữ liệu đầu TBL: IW, QW, tiên của bảng ra khỏi VW, LW, SW, bảng. Nếu bảng đã MW, T, C, ∗VD, trống cĩ nghĩa là dữ ∗AC, ∗LD INT liệu trong đĩ được lấy FIFO ra hết, hay EC=0, bit EN ENO SM1.4=1. Dữ liệu lấy FIFO TABLE, TBL DATA ra đượ ghi vào DATA DATA (kiểu từ). Các dữ liệu DATA: IW, cịn lại được dồn lên QW, VW, LW, vị trí trên để lấp chỗ SW, MW, SMW, Word trống vừa mới bị lấy AIW, T, C, AQW, đi. Khi lệnh thực hiện ∗VD, ∗AC, ∗LD xong nội dung của EC giảm đi một đơn vị. Hình 36: Ví dụ về cách sử dụng lệnh FIFO. . Mơ tả Tốn hạng Kiểu dữ STL LAD Description Operands liệu 84
  86. Chương 5: Ngơn ngữ lập trình PLC S7-200 Data Types Last - In - Fisrf - Out Lệnh lấy dữ liệu cuối TBL: IW, QW, cùng của bảng ra khỏi VW, LW, SW, bảng tức là dữ liệu MW, T, C, ∗VD, được nhập sau cùng. ∗AC, ∗LD INT Nếu bảng đã trống cĩ LIFO nghĩa là dữ liệu trong EN ENO đĩ được lấy ra hết, TBL DATA hay EC=0, bit LIFO TABLE, SM1.4=1. Dữ liệu lấy DATA ra đượ ghi vào DATA DATA: IW, (kiểu từ). Các dữ liệu QW, VW, LW, cịn lại được dồn lên SW, MW, SMW, Word vị trí trên để lấp chỗ AIW, T, C, AQW, trống vừa mới bị lấy ∗VD, ∗AC, ∗LD đi. Khi lệnh thực hiện xong nội dung của EC giảm đi một đơn vị. Hình 37: Ví dụ về cách sử dụng lệnh LIFO. 85
  87. Chương 5: Ngơn ngữ lập trình PLC S7-200 Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Memory Fill Lệnh điền giá trị IN: IW, QW, VW, chứa trong Word LW, SW, MW, SMW, IN vào mảng bắt AIW, T, C, AC, Word đầu từ địa chỉ Constant, ∗VD, ∗AC, FILL ∗LD EN ENO Word OUT. N: IB, QB, MB, VB, N là số từ đơn của FILL IN, OUT, IN OUT SMB, SB, LB, AC, N N mảng, 1<=N<=255 Byte Constant, ∗VD, ∗AC, ∗LD OUT: IW, QW, VW, LW, SW, MW, SMW, Word AIW, T, C, ∗VD, ∗AC, ∗LD Hình 38: Ví dụ về cách sử dụng lệnh FILL. 9. SIMATIC Logical Operation Instructiĩn: Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types And Byte, Or Byte, Exclusive Or Byte 86
  88. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh thực hiện AND giữa IN1, IN2: Byte các bit tương ứng của hai IB, QB, MB, WAND_B Byte IN1 và IN2, kết quả VB, SMB, ANDB IN1, EN ENO ghi vào Byte OUT. SB, LB, AC, OUT IN1 OUT Constant, IN2 ∗VD, ∗AC, ∗LD Lệnh thực hiện OR giữa các OUT: Byte WOR_B bit tương ứng của hai Byte IB, QB, MB, EN ENO IN1 và IN2, kết quả ghi vào VB, SMB, ORB IN1, OUT IN1 OUT Byte OUT. SB, LB, AC, IN2 ∗VD, ∗AC, ∗LD WXOR_B Lệnh thực hiện XOR giữa EN ENO các bit tương ứng của hai XORB IN1, OUT IN1 OUT Byte IN1 và IN2, kết quả IN2 ghi vào Byte OUT. And Word, Or Word, Exclusive Or Word Lệnh thực hiện AND giữa IN1, IN2: WAND_W các bit tương ứng của hai IW, QW, ANDW IN1, EN ENO Word IN1 và IN2, kết quả VW, LW, SW, OUT IN1 OUT ghi vào Word OUT. MW, SMW, IN2 AIW, T, C, AC, Constant, Lệnh thực hiện OR giữa các ∗VD, ∗AC, WOR_W bit tương ứng của hai Word ∗LD ORW IN1, EN ENO IN1 và IN2, kết quả ghi vào Word OUT IN1 OUT IN2 Word OUT. Lệnh thực hiện XOR giữa OUT: WXOR_W các bit tương ứng của hai IW, QW, EN ENO XORW IN1, Word IN1 và IN2, kết quả VW, LW, SW, OUT IN1 OUT ghi vào Word OUT. MW, SMW, T, IN2 C, AC, ∗VD, ∗AC, ∗LD And DWord, Or DWord, Exclusive Or DWord Lệnh thực hiện AND giữa IN1, IN2: Double WAND_DW các bit tương ứng của hai từ ID, QD, VD, Word ANDD IN1, EN ENO kép IN1 và IN2, kết quả ghi LD, SD, MD, OUT IN1 OUT SMD, HD, AC, IN2 vào từ kép OUT. Constant, ∗VD, ∗AC, ∗LD ORD 1, OUT Lệnh thực hiện OR giữa các WOR_DW EN ENO bit tương ứng của hai từ kép IN1 OUT IN2 87
  89. Chương 5: Ngơn ngữ lập trình PLC S7-200 IN1 và IN2, kết quả ghi vào từ kép OUT. Lệnh thực hiện XOR giữa OUT: WXOR_DW các bit tương ứng của hai từ ID, QD, VD, EN ENO XORD IN1, kép IN1 và IN2, kết quả LD, MD, SMD, OUT IN1 OUT ghi vào từ kép OUT. AC, ∗VD, IN2 ∗AC, ∗LD Hình 39: Ví dụ về cách sử dụng lệnh AND, OR, XOR. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Invert Byte, Invert Word, Invert DWord 88
  90. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh đảo từng bit của IN:IB, QB, MB, byte đầu vào IN, kết VB, SMB, SB, INV_B qủa đưa ra đầu ra LB, AC, Constant, EN ENO OUT. ∗VD, ∗AC, ∗LD INVB OUT IN1 OUT Thường thì đầu vào và OUT:IB, QB, Byte ra cùng địa chỉ. MB, VB, SMB, SB, LB, AC, Constant, ∗VD, ∗AC, ∗LD Lệnh đảo từng bit của IN: IW, QW, VW, từ đơn đầu vào IN, kết LW, SW, MW, qủa đưa ra đầu ra SMW, AC, AIW , T, INV_W C, Constant, ∗VD, EN ENO OUT. ∗AC, ∗LD Thường thì đầu vào và INVW OUT IN1 OUT OUT: IW, QW, Word ra cùng địa chỉ. VW, LW, SW, MW, SMW, AC, T, C, ∗VD, ∗AC, ∗LD Lệnh đảo từng bit của IN: ID, QD, VD, LD, SD, MD, SMD, INV_DW từ kép đầu vào IN, kết EN ENO qủa đưa ra đầu ra HD, AC, Constant, ∗VD, ∗AC, ∗LD INVD OUT IN1 OUT OUT. DWord Thường thì đầu vào và OUT: ID, QD, VD, LD, SD, MD, ra cùng địa chỉ. SMD, AC, ∗VD, ∗AC, ∗LD Hình 40: Ví dụ về cách sử dụng lệnh INVB, INVW, INVD. 10. SIMATIC Stack Logic Instructions: 89
  91. Chương 5: Ngơn ngữ lập trình PLC S7-200 Các lệnh tiếp điểm trong đại số Boolean cho phép tạo lập được các mạch logic (khơng cĩ nhớ). Trong LAD các mạch này biểu diễn thơng qua cấu trúc mạch, mắc nối tiếp hay song song các mạch tiếp điểm thường đĩng và các tiếp điểm thường mở. STL cĩ thể sử dụng các lệnh A (And) và O (Or) cho các tiếp điểm mắc nối tiếp và song song là thường hở hoặc các lệnh AN (And Not) và ON (Or Not) cho các tiếp điểm mắc nối tiếp và song song là thường đĩng. Gía trị của các bit trong ngăn xếp thay đổi tuỳ thuộc vào từng lệnh. Trong phần này chúng ta sẽ đi sâu hơn về sự làm việc của các bit trong ngăn xếp, việc hiểu và nắm bắt về ngăn xếp là điều rất cần thiết trong vấn đề lập trình dùng ngơn ngữ STL. Ngồi những lệnh làm việc trực tiếp với tiếp điểm, S7-200 cịn cĩ 5 lệnh đặc biệt biểu diễn cácc phép tính của đại số Boolean cho các bit trong ngăn xếp, được gọi là các lệnh stack logic. Trong LAD khơng dùng những lệnh này. STL sử dụng các lệnh này để thực hiện những phép tốn của phương trình cĩ nhiều biểu thức con. Sau đây là bảng tĩm tắt cú pháp và hướng dẫn cách sử dụng lệnh. Kiểu dữ Tốn Mơ tả liệu STL LAD hạng Description Data Operands Types And Load Lệnh tổ hợp giá trị đầu tiên và giá trị của bit thứ hai trong ngăn xếp bằng phép tính ∧. Kết quả được ghi lại vào bit đầu ALD none none none tiên của ngăn xếp. Gía trị cịn lại được kéo lên 1 bit. Or LoaD Lệnh tổ hợp giá trị đầu tiên và giá trị của bit thứ hai trong ngăn xếp bằng phép tính ∨. Kết quả được ghi lại vào bit đầu OLD none none none tiên của ngăn xếp. Gía trị cịn lại được kéo lên 1 bit. Logic PuSh Sao chép giá trị của bit đầu tiên vào bit thứ hai trong ngăn xếp. Gía trị cịn lại bị LPS none none none đẩy xuống 1 bit. Bit cuối cùng bị đẩy ra ngồi. Logic ReaD Lệnh sao chép giá trị của bit thứ hai vào LRD none bit đầu tiên của ngăn xếp, các giá trị cịn none none lại của ngăn xếp vẫn giữ nguyên. Logic PoP Lệnh kéo ngăn xếp lên 1 bit theo nguyên LPP none none none tắc bit sao đè lên bit trước. 90
  92. Chương 5: Ngơn ngữ lập trình PLC S7-200 LoaD Stack Lệnh sao chép giá trị của bit thứ n (ngăn xếp cĩ 9 bit thì bit thứ nhì được tính là 1 đến bit cuối cùng là 8) của ngăn xếp LDS n none n: 1÷8 Byte lên bit đầu tiên. Các giá trị cịn lại của ngăn xếp bi đẩy lùi xuống 1 bit, bit cuối cùng bị đẩy ra khỏi ngăn xếp. Hình 41: Mơ tả hoạt động của lệnh LDS. Hình 42: Mơ tả hoạt động của lệnh ALD và OLD. 91
  93. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 43: Mơ tả hoạt động của lệnh LPS, LRD, LPP. Hình 44: Ví dụ về cách sử dụng lệnh ALD, OLD, LPP, LPS, LRD. 11. SIMATIC Conversion Instructions: Các hàm đổi kiểu dữ liệu cho phép thực hiện việc đổi kiểu dữ liệu từ kiểu này sang kiểu khác. Sau đây là các lệnh biến đổi kiểu dữ liệu trong STL và LAD: Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types BCD to Integer and Integer to BCD Lệnh chuyển đổi một IN: IW, QW, VW, BCD_I số nhị_thập phân IN LW, MW, SMW, BCDI OUT EN ENO sang số nguyên và lưu AIW ,AC, T, C, IN OUT kết quả vào OUT. Constant, ∗VD, Word Giới hạn của IN: ∗AC, ∗LD, SW. 0÷9999. OUT: IW, QW, 92
  94. Chương 5: Ngơn ngữ lập trình PLC S7-200 VW, LW, MW, SMW, AC, T, C, ∗VD, ∗AC, ∗LD, SW. Lệnh chuyển đổi một IN: IW, QW, VW, I_BCD số nguyên IN sang số LW, MW, SMW, IBCD OUT EN ENO nhị_thập phân và lưu AIW ,AC, T, C, IN OUT kết quả vào OUT. Constant, ∗VD, Word Giới hạn của IN: ∗AC, ∗LD. 0÷9999. OUT: IW, QW, VW, LW, MW, SMW, AC, T, C, ∗VD, ∗AC, ∗LD. Double Integer to Real Lệnh chuyển đổi số IN: ID, QD, VD, DI_R nguyên 32 bit IN sang LD, MD, SMD, AC, DTR IN, EN ENO số thực (32 bit) và lưu DWord HD, Constant, ∗VD, OUT IN OUT kết quả vào OUT. ∗AC, ∗LD, SD. OUT:ID, QD, VD, LD, MD, SMD, AC, HD, ∗VD, ∗AC, ∗LD, SD. Round Lệnh chuyển đổi số IN: ID, QD, VD, thực IN thành số LD, MD, SMD, AC, Real nguyên double Integer Constant, ∗VD, ROUND RONUD (làm trịn số) và kết qủa ∗AC, ∗LD, SD. EN ENO IN, OUT lưư vào OUT. OUT:ID, QD, VD, IN OUT Nếu phần lẽ >= 0.5 thì LD, MD, SMD, AC, DINT được làm trịn về phía HD, ∗VD, ∗AC, lớn hơn 1 đơn vị. ∗LD, SD. Truncate Hàm chuyển đổi số IN: ID, QD, VD, thực 32 bit cĩ dấu sang LD, MD, SMD, AC, Real TRUNC số nguyên 32 bit cĩ Constant, ∗VD, TRUNC IN, EN ENO dấu. ∗AC, ∗LD, SD. IN OUT 93
  95. Chương 5: Ngơn ngữ lập trình PLC S7-200 OUT OUT:ID, QD, VD, LD, MD, SMD, AC, DINT HD, ∗VD, ∗AC, ∗LD, SD. Double Integer to Integer and Integer to Double Integer IN: IW, QW, VW, LW, MW,SW, I_DI SMW, AIW ,AC, T, EN ENO INT Lệnh chuyển đổi số C, Constant, ∗VD, ITD IN, IN OUT nguyên 16 bit sang số ∗AC, ∗LD. OUT nguyên 32 bit. OUT: ID, QD,VD, LD, MD,SD, SMD, DINT AC, ∗VD, ∗AC, ∗LD. IN: ID, QD,VD, LD, MD,SD, SMD, DINT AC,Constant, ∗VD, DI_I Lệnh chuyển đổi số DTI IN, EN ENO ∗AC, ∗LD. nguyên 32 bit sang số OUT IN OUT nguyên 16 bit. OUT: IW, QW, VW, LW, MW,SW, INT SMW, AC, T, C, ∗VD, ∗AC, ∗LD. Integer to Real, Byte to Integer and Integer to Byte Khơng cĩ lệnh chuyển đổi trực tiếp này. Ta cĩ thể thực hiện được bằng cách dùng lệnh (Integer to ITD (chuyển số nguyên Real) none 16 bit thành số nguyên none none 32 bit) sau đĩ dùng tiếp lệnh DTR (chuyển số nguyên 32 bit sang số thực ). Lệnh chuyển đổi giá trị IN: IB, QB, MB, BTI IN, của Byte IN thành giá SMB, VB, SB, LB, Byte OUT trị Integer 16 bit và lưu AC, Constant, ∗VD, vào OUT. ∗AC, ∗LD. 94
  96. Chương 5: Ngơn ngữ lập trình PLC S7-200 OUT: IW, QW, VW, LW, MW,SW, SMW, AC, T, C, INT ∗VD, ∗AC, ∗LD. IN: IW, QW, VW, Lệnh chuyển đổi giá trị LW, MW,SW, trong Word IN thành SMW, AC, T, C, INT I_B giá Byte và lưu giá trị AIW, Constant, IBT IN, EN ENO này vào OUT. ∗VD, ∗AC, ∗LD. OUT IN OUT OUT: IB, QB, MB, SMB, VB, SB, LB, Byte AC, ∗VD, ∗AC, ∗LD. Hình 45: Ví dụ minh hoạ cách sử dụng các lệnh chuyển đổi. 95
  97. Chương 5: Ngơn ngữ lập trình PLC S7-200 Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Decode IN: IB, QB, MB, Lệnh đặt giá trị logic 1 SMB, VB, SB, vào bit của từ đơn OUT DECO LB, AC, Byte EN ENO cĩ chỉ số (trọng số của Constant, ∗VD, bit thuộc Word) bằng số DECO IN, IN OUT ∗AC, ∗LD nguyên nằm trong nibble OUT (4 bit) thấp của byte đầu OUT: IW, QW, VW, LW, vào IN. Các bi cịn lại của từ đơn MW,SW, SMW, Word cĩ giá trị logic bằng 0. AC, T, C, AIW, ∗VD, ∗AC, ∗LD. IN: IW, QW, VW, LW, Lệnh xác định chỉ số của MW,SW, SMW, ENCO Word bit thấp nhất trong từ AC, T, C, AIW, ENCO IN, EN ENO đơn IN cĩ giá trị logic ∗VD, ∗AC, ∗LD. OUT IN OUT 1và ghi kết quả này vào OUT: IB, QB, nibble thấp nhất của byte MB, SMB, VB, đầu ra OUT. Byte SB, LB, AC, ∗VD, ∗AC, ∗LD. 96
  98. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 46: Ví dụ về cách sử dụng lệnh DECO. Hình 47: Ví dụ về cách sử dụng lệnh ENCO. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Segment 97
  99. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh xuất các bit cho IN: IB, QB, MB, SEG thanh ghi 7 đoạn SMB, LB, VB, AC, EN ENO tương ứng với nội Constant, ∗VD, SEG IN, IN OUT dung của 4 bit thấp ∗AC, SB, ∗LD. Byte OUT nhất của byte đầu vào OUT: IB, QB, MB, IN. Kết quả được chi SMB, LB, VB, AC, vào byte đầu ra. ∗VD, ∗AC, SB, ∗LD. ASCII to Hexa and Hexa to ASCII Thực hiện phép biến IN, OUT: đổi một chuỗi kí tự cĩ IB, QB, MB, SMB, độ dài được chỉ thị LB, VB, ∗VD, ∗AC, Byte trong tốn hạng LEN, SB, ∗LD. bắt đầu bằng kí tự chỉ định trong tốn hạng LEN: IN, sang số nguyên hệ ATH IB, QB, MB, SMB, EN cơ số 16 và ghi vào LB, VB, AC, IN OUT vùng nhớ kể từ byte Constant, ∗VD, LEN được chỉ định bởi ∗AC, SB, ∗LD. ATH IN, OUT. Độ dài cực đại OUT, LEN của chuỗi kí tự là 255. Những kí tự hợp lệ là những kí tự cĩ mã Byte ATH ASCII từ 30÷39 và EN 41÷46 (cơ số 16, ứng IN OUT với các kí tự từ 0÷9, LEN A÷F ). Nếu mã hố một kí tự bị sai thì quá trình mã hố bị dừng lại và bit SM1.7 cĩ giá trị logic bằng 1. Thực hiện đổi một dãy IN, OUT: chữ viết trong hệ cơ số IB, QB, MB, SMB, HTA IN, 16 thành chuỗi kí tự LB, VB, ∗VD, ∗AC, Byte OUT, LEN mã ASCII. Dãy số đầu SB, ∗LD. vào được lưu trong mảng bắt đầu bằng IN 98
  100. Chương 5: Ngơn ngữ lập trình PLC S7-200 và cĩ độ dài là LEN. LEN: Độ dài cực đại của dãy IB, QB, MB, SMB, số là 255. Chuỗi kí tự LB, VB, AC, đầu ra được ghi vào Constant, ∗VD, mảng cĩ byte đầu là ∗AC, SB, ∗LD. OUT. Hình 48: Ví dụ về cách sử dụng lệnh ATH, HTA. Hình 49: Ví dụ về cách sử dụng lệnh SEG. Hình 50: Mã hiển thị thanh ghi 7 đoạn. 99
  101. Chương 5: Ngơn ngữ lập trình PLC S7-200 12. SIMATIC Clock Instrutions: Tuyệt đối khơng sử dụng lệnh đọc /ghi (TODR/TODW) thời gian thực cùng một lúc trong chương trình chính và chương trình xử lý ngắt. Khi một lệnh TODR hoặc TODW đã thực hiện thì khi gọi chương trình xử lý ngắt, các lệnh làm việc với đồng hồ thời gian thực trong chương trình xử lý ngắt sẽ khơng được thực hiện nữa. Bit SM4.5 sẽ cĩ mức logic 1 trong những trường hợp như vậy. Đồng hồ thời gian thực chỉ cĩ đối với CPU214 trở lên. Để cĩ thể làm việc với đồng hồ thời gian thực thì CPU sẽ cung cấp 2 lệnh đọc/ghi giá trị cho đồng hồ. Những giá trị đọc được hoặc ghi được với đồng hồ thời gian thực là các giá trị về ngày, tháng, năm và các giá trị về giờ, phút, giây. Các dữ liệu đọc/ghi với đồng hồ thời gian thực trong LAD, STL cĩ độ dài 1 byte và phải được mã hố theo kiểu số nhị thập phân BCD (Ex: 16#95 CHO NĂM 95). Chúng năm trong bộ đệm gồm 8 byte liền nhau theo thứ tự như sau: Hình 51: Bộ đệm 8 byte cảu lệnh đồng hồ thời gian thực. Các giá trị của các thơng số phải nằm trong giới hạn: CPU S7-200 khơng thực hiện kiểm tra lại ngày tháng, ngày của tuần để điều chỉnh lại ngày tháng. Giá trị về ngày tháng như là February 30 cĩ thể được chấp nhận. Do đố bạn sẽ phải chắc chắn rằng ngày tháng của bạ đưa vào đĩ là đúng. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Read Real-Time Clock and Set Real-Time Clock Lệnh đọc nội dung Byte của đồng hồ thời READ_RTC gian thực vào bộ EN ENO đệm 8 byte được T: VB,IB, QB, MB, TODR T T chỉ định trong lệnh SMB, SB, LB, ∗VD, bằng tốn hạng T. ∗AC, ∗LD. TODW T Lệnh ghi nội dung 100
  102. Chương 5: Ngơn ngữ lập trình PLC S7-200 của bộ đệm 8 byte được chỉ định trong SET_RTC EN ENO lệnh bằng tốn T hạng T vào đồng hồ thời gian thực. 13. SIMATIC Program Control Instrutions: Các lệnh của chương trình, nếu khơng cĩ những lệnh điều khiển riêng, sẽ được thực hiện tần tự từ trên xuống dưới trong một vịng quét. Lệnh điều khiển chương trình cho phép thay đổi thứ tự thực hiện lệnh. Chúng cho phép chuyển thứ tự như: Đáng lẽ ra là lệnh tiếo theo, tới một lệnh bất cứ nào khác của chương trình; trong đĩ nơi điều khiển chuyển đến phải được đánh dấu trước bằng nhãn chỉ đích. Nhĩm lệnh điều khiển chương trình gồm: lệnh nhảy, lệnh gọi chương trình con, nhãn chỉ đích (hay gọi đơn giản là nhãn), phải được đánh dấu trước khi thực hiện lệnh nhảy hay lệnh gọi chương trình con. Việc đặt nhãn cho lệnh nhảy phải nằm trong chương trình. Nhãn của chương trình con hay nhãn của chươngtrình xử lý ngắt phải được khai báo ở đầu chương trình. Khơng thể dùng lệnh JMP để chuyển điều khiển từ chương trình chính vào nhãn bất kỳ trong chương trình con hoặc chương trình xử lý ngắt. Ngược lại cũng khơng được phép từ một chương trình con hay chương trình xử lý ngắt nhảy ra ngồi chương trình chính đĩ. Lệnh gọi chương trình con là lệnh chuyển quyền điều khiển đến chương trình con. Sau khi chương trình con thực hiẹn xong thì quyền điều khiển lại được chuyển về lệnh tiếp theo trong chương trình chính nagy sau lệnh gọi chương trình con. Từ một chương trình con cĩ thể gọi một chương trình con khác trong nĩ, cĩ thể gọi như vậy nhiều nhất là 8 lần. Phép đệ quy cũng cĩ thể thực hiện được trong S7-200, mặc dù khơng bị cấm song phải chú ý đến giới hạn trên. Trạng thái của ngăn xếp: Nếu lệnh nhảy hay lệnh gọi chương trình con được thực hiện thì đỉnh ngăn xếpluơn cĩ gí trị logic bằng 1. Như vậy trong chương trình con các lệnh cĩ điều kiện được thực hiện như lệnh khơng cĩ điều kiện. Sau các lệnh LBL (lệnh đặt nhãn) và SBR, lệnh LD trong STL sẽ bị vơ hiệu hố. Khi một chương trình con đựoc gọi, tồn bộ nội dung trong ngăn xếp sẽ được cất đi, đỉnh của ngăn xếp nhận giá trị logic mới là 1, các bit khác cịn lại của ngăn xếp nhận giá trị logic là 0 và điều khiển được chuyển đến chương trình con đã được gọi. Khi thực hiện xong chương trình con và trước khi quyền điều khiển được chuyển đến chương trình đã gọi nĩ thì nội dung của ngăn xếp đã được cất giữ trước đĩ sẽ được chuyển trở lại cho ngăn xếp. Nội dung của thanh ghi AC khơng được cất giữ khi gọi chương trình con, nhưng khi một chương trình xử lý ngắt được gọi, nội dung thanh ghi AC sẽ được cất giữ trước khi thực hiện chương trình xử lý ngắt và trả lại sau khi chương trình xử lý ngắt vừa thực hiện xong. Bởi vậy chương trình xử lý ngắt cĩ thể tự do sử dụng 4 thanh ghi AC của S7- 200. 101
  103. Chương 5: Ngơn ngữ lập trình PLC S7-200 Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types Jump to Label and Label Lệnh nhảy thực hiện n chuyển quyền điều JMP n JMP khiển đến nhãn n n: trong một chương CPU 212:0 đến 63 trình. none CPU 21x khác từ Lệnh khai báo nhãn n 0 đến 255. n trong một chương LBL n JMP trình. Hình 52: Ví dụ cách sử dụng lệnh JMP, LBL. Kiểu dữ Tốn hạng liệu STL Operands LAD Data Mơ tả Description 102
  104. Chương 5: Ngơn ngữ lập trình PLC S7-200 Types Subroutine and Return Subroutine Lệnh gọi chương SBRn trình con, thực hiện n: EN phép chuyển quyền CPU 212:0 đến 15 SBR n none điều khiển đến CPU 21x khác từ chương trình con cĩ 0 đến 255. nhãn n. Lệnh trở về chương RET trình đã gọi chương RET trình con khơng điều kiện. none none Lệnh trở về chương trình đã gọi chương CRET CRET trình con cĩ điều kiện. 103
  105. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 53: Ví dụ cách sử dụng lệnh gọi và thốt khỏi chương trình con. Các lệnh sau sẽ can thiệp vào thời gian vịng quét, nĩ được dùng để kết thúc chương trình đang thực hiện hoặc kéo dài thêm thời gian của vịng quét. Trong chương trình chính, kết thúc chương trình bằng lệnh MEND, nhưng trong soạn thảo chương trình chúng ta khơng cần lệnh kết thúc này mà Step 7 MicroWin đã mặc định rồi. Lệnh END cũng là lệnh kết thúc chương trình nhưng là lệnh kết thúc cĩ điều kiện. Khi chương trình chính hoặc chương trình con gặp lệnh STOP thì chương trình sẽ kết thúc ngay tại cuối vịng quét hiện thời và CPU chuyển sang chế độ STOP. Nếu trong chương trinh xử lý ngắt gặp lệnh STOP thì ngắt cũng được dừng lại ngay lập tức, các tín hiệu xử lý ngắt đang cịn nằm trong hàng đợi sẽ bị huỷ bỏ, phần cịn lại của chương trình sẽ khơng thực hiện.Việc thực sự chuyển sang chế độ STOP xảy ra ở cuối chu kỳ vịng quét hiện thời sau giai đoạn xuất tín hiệu cho đầu ra. Lệnh WDR sẽ khởi động lại đồng hồ quan sat (Watchdog Timer), chương trình tiếp tục thực hiện trong vịng quét ở chế độ quan sat. Nên cẩn thận khi sử dụng lệnh này. Khi trong chương trình sử dụng lệnh lặp, hoặc thời gian trễ quá lớn thì những quá trình sau bị hạn chế: - Truyền thơng (loại trừ kiểu Freeport). - Cập nhật vào ra (trừ nhẵng lệnh vào ra tức thì). - Cập nhật cưỡng bức. - Cập nhật các bit kiểu SM. - Chuẩn đốn thưịi gian chạy. - Với các vịng quét lớn hơn 25 giây thì các bộ Timer cĩ độ phân giải10ms và 100ms sẽ khơng được chính xác. Nếu thời gian của vịng quét lớn hơn 300ms, hoặc khi găpkj một ngắt cĩ chương trình xử lý ngắt với thời gian chạy chương trình lâu hơn 300ms thì cần phải sử cụng lệnh WDR để khởi động lại đồng hồ quan sát. 104
  106. Chương 5: Ngơn ngữ lập trình PLC S7-200 Việc chuyển cơng tắc phần cứng sang chế độ STOP hoặc thực hiện lệnh STOP trong chương trình sẽ là nguyên nhân đặt chế độ điều khiển vào chế độ dừng trong khoảng thời gian 1,4s. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types End and Stop and Watchdog Timer Lệnh kết thúc chương END END trình hiện hành cĩ đều kiện. Lệnh kết thúc chương trình hiện hành và STOP STOP chuyển sang chế độ none none STOP. Lệnh khởi động lại đồng hồ quan sát. WDR WDR Hình 54: Ví dụ về cách sử dụng lệnh STOP, WDR, END Để xây dựng cấu trúc vịng lặp nhằm thực hiện lặp một khối lệnh riêng biệt trong chương trình. Sử dụng lệnh FOR NEXT để thiết kế một vịng lặp với số lần cĩ thể định trước bằng hai tốn hạng INIT kiểu từ đơn chỉ điểm khởi phát và FINAL cũng kiểu từ đơn chỉ điểm kết thúc. Ngồi ra lệnh cịn sử dụng một từ đơn INDX để lưu số vịng lặp tức thời. Mỗi một câu lệnh FOR địi hỏi phải cĩ một câu lệnh NEXT đứng cuối khối lệnh được lặp. Các vịng FOR NEXT cĩ thể được lồng vào nhau nhưng số lệnh lồng vào nhau khơng được vượt quá 8 lần. 105
  107. Chương 5: Ngơn ngữ lập trình PLC S7-200 Tại thời điểm bắt đầu thực hiện lệnh vịng lặp FOR, từ đơn INDX nhận giá trị của INIT. Sau đĩ, mỗi khi kết thúc một vịng lặp, tức là khi gặp lệnh NEXT, nội dung của INDX được tăng lên 1 đơn vị và được so sánh với nội dung của FINAL. Nếu nội dung của INDX chưa lớn hơn nội dung của FINAL thì chương trình sẽ tiếp tục thực hiện lại vịng lặp, ngược lại khi nội dung của INDX đã lớn hơn nội dung của FINAL thì chương trình sẽ kết thúclệnh FOR NEXT và tiếp tục thực hiện lệnh kế tiếp nằm ngay sau lệnh NEXT. Khi lệnh NEXT thực hiện thì bit đầu tiên trong ngăn xếp cĩ giá trị logic bằng 1. Kiểu dữ Mơ tả Tốn hạng liệu STL LAD Description Operands Data Types FOR NEXT Ví dụ đưa vào INIT INDX: IW, QW, VW, LW, giá trị 1, FINAL MW,SW, SMW, AC, T, C, INT giá trị là 10. Lệnh ∗VD, ∗AC, ∗LD. sẽ thực hiện lặp INIT: IW, QW, VW, LW, FOR FOR đúng 10 lần, số lần MW,SW, SMW, AC, T, C, INDX, EN ENO INT INDX lặp được quản lý AIW, Constant, ∗VD, ∗AC, INIT, trong từ đơn INDX. INIT ∗LD. FINAL Vợt qúa 10 lần lệnh FINAL: IW, QW, VW, FINAL sẽ kết thúc và LW, MW,SW, SMW, AC, chương trình tiếp T, C, AIW, Constant, ∗VD, INT tục thực hiện các ∗AC, ∗LD. lệnh kế tiếp. NEXT N EXT Lệnh kết thúc vịng none none lặp. 106
  108. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 55: Ví dụ về cách sử dụng lệnh FOR NEXT. 14. SIMATIC Shift and Rotate Register Instrutions: Làm việc với thanh ghi cĩ nhĩm lệnh sau: Lệnh dịch chuyển thanh ghi, trong này cũng cĩ hai nhĩm: + Lệnh dịch chuyển thanh ghi 8 bit, 16 bit, 32 bit. + Lệnh dịch chuyển thanh ghi cĩ độ dài tuỳ ý, được định nghĩa trong lệnh. Lệnh quay vịng thanh ghi, trong này cũng cĩ hai nhĩm : + Lệnh quay vịng thanh ghi 8 bit, 16 bit, 32 bit. + Lệnh quay vịng thanh ghi cĩ độ dài tuỳ ý, được định nghĩa trong lệnh. Khi sử dụng lệnh dịch chuyển các bit của thanh ghi (Byte, Word, DWord) cần chú ý các điểm sau đây: 1. Khơng thực hiện việc dich chuyển nếu số lần đẩy bằng 0. 2. Nếu số lần đẩy cĩ giá trị lớn hơn 0, bit nhớ tràn SM1.1 sẽ cĩ giá trị của bit cuối cùng được đẩy ra. 3. Nếu số lần đẩy lớn hơn hoặc bằng 8 đối với byte, 16 đối với Word, 32 đối với từ kép thì lệnh sẽ thực hiện lệnh đẩy lớn nhất chỉ bằng 8, 16, 32. 4. Lệnh SLB (đẩy các bit của byte sang trái), SLW (đẩy các bit của Word sang trái) và SLD (đẩy các bit của từ kép sang trái) sẽ chuyển giá trị 0 vào bit thấp nhất của Byte, Word hoặc DWord sau mỗi lần đẩy. Sau lệnh thực hiện, bit SM1.1 sẽ cĩ giá trị logic của bit thứ 8-N, 16-N hoặc 32-N, trong đĩ N là số lần đẩy. 5. Lệnh SRB (đẩy các bit của byte sang phải), SRW (đẩy các bit của Word sang phải) và SRD (đẩy các bit của từ kép sang phải) sẽ chuyển giá trị 0 vào bit thấp nhất của Byte, Word hoặc DWord sau mỗi lần đẩy. Sau lệnh thực hiện, bit SM1.1 sẽ cĩ giá trị logic của bit thứ N-1, trong đĩ N là số lần đẩy. 6. Bit báo kết quả 0 (bit SM1.0) sẽ cĩ giá trị logic bằng 1 nếu như sau khi thực hiện lệnh đẩy nội dung của Byte, Word, DWord bằng 0. Khi sử dụng lệnh quay vịng các bit của thanh ghi (Byte, Word, DWord) cần chú ý các điểm sau đây: 1. Lệnh quay thực hiệnn phép đẩy vịng trịn sang trái hoặc sang phải các bit của một Byte, Word, DWord. Tại mỗi một lần quay, giá trị của các bit bị đẩy ra ở một đầu của thanh ghi lại được đưa vào đầu kia của thanh ghi đĩ. 2. Khơng thực hiện việc quay vịng nếu số lần quay bằng 0. Hay bằng một bội số của 8 (đối với byte), của 16 (đối với word) và của 32 (đối với DWord). 3. Đối với các giá trị của số đếm lần quay lớn hơn 8 (đối với byte), của 16 (đối với word) và của 32 (đối với DWord) lệnh sẽ thực hiện với số đếm lần quay mới bằng phần dư của của phép chia tương ứng. 4. Khi thực hiện lệnh quay sang phải RRB (quay các bit của byte sang phải), RRW (quay các bit của Word sang phải) và RRD (quay các bit của từ kép sang phải), tại mỗi lần quay giá trị của bit thấp nhất được ghi vào bit bố tràn 107
  109. Chương 5: Ngơn ngữ lập trình PLC S7-200 SM1.1.Sau khi lệnh thực hiện, bit SM1.1 sẽ cĩ giá trị logic của bit thứ 8-N, 16-N hoặc 32-N, trong đĩ N là số đếm lần quay. 5. Khi thực hiện lệnh quay sang trái RLB (quay các bit của byte sang trái), RLW (quay các bit của Word sang trái) và RLD (quay các bit của từ kép sang trái), tại mỗi lần quay giá trị của bit thấp nhất được ghi vào bit bố tràn SM1.1.Sau khi lệnh thực hiện, bit SM1.1 sẽ cĩ giá trị logic của bit thứ N-1, trong đĩ N là số đếm lần quay. 6. Bit báo kết quả 0 (bit SM1.0) sẽ cĩ giá trị logic bằng 1 nếu như sau khi thực hiện lệnh quay nội dung của Byte, Word, DWord bằng 0. Các lệnh dich chuyển hoặc quay vịng ảnh hưởng đến kết quả của các bit đặc biệt như sau: SM1.2 SM1.0 SM1.1 SM1.3 Lệnh Kiểu lệnh (kết qủa (kết quả 0) (báo tràn) (chia cho 0) âm) SRB khơng dấu cĩ cĩ khơng khơng SLB khơng dấu cĩ cĩ khơng khơng SRW khơng dấu cĩ cĩ khơng khơng SLW khơng dấu cĩ cĩ khơng khơng SRD khơng dấu cĩ cĩ khơng khơng SLD khơng dấu cĩ cĩ khơng khơng RRB khơng dấu cĩ cĩ khơng khơng RLB khơng dấu cĩ cĩ khơng khơng RRW khơng dấu cĩ cĩ khơng khơng RLW khơng dấu cĩ cĩ khơng khơng RRD khơng dấu cĩ cĩ khơng khơng RLD khơng dấu cĩ cĩ khơng khơng SHRB khơng dấu khơng cĩ khơng khơng Những điều sau đây chỉ đúng với các hàm dịch chuyển bit của byte, từ đơn và từ kép: + Nếu bộ đếm chuyển dịch cĩ giá trị lớn hơn 0 thì bit nhớ tràn SM1.1 cĩ giá trị logic của bit cuối cùng được đẩy ra. + Bit báo kết quả 0 SM1.0 cĩ giá trị logic 1 nếu sau khi lệnh được thực hiện, byte, từ hoặc từ kép cĩ nội dung bằng 0. Những điều sau đây chỉ đúng với các hàm dịch chuyển bit của byte, từ đơn và từ kép: + Nếu bộ đếm chuyển dịch khơng phảo là bộ số nguyên của 8, 16, 32 đối với byte, Word, DWordthif giá trị của bit cuối cùng bị đẩy ra ngồi sẽ được gán cho bit nhớ tràn SM1.1. + Nếu bit báo kết quả 0 cĩ giá trị logic bằng 1 thì giá trị của byte, từ hay từ kép bằng 0. Kiểu dữ Mơ tả Tốn hạng LAD liệu STL Description Operands Data Types 108
  110. Chương 5: Ngơn ngữ lập trình PLC S7-200 Shift Right Byte and Shift Left Byte Lệnh dịch phải hay lệnh dịch trái thực hiện dịch SRB OUT, SHR_B chuyển các bit IN: IB, QB, MB, N EN ENO của Byte đầu vào SMB, VB, SB, LB, IN OUT IN đi N lần sang AC, Constant, ∗VD, N phải hay trái. kết ∗AC, ∗LD. quả được lưu vào đầu ra OUT. Lệnh shift điền OUT: IB, QB, MB, giá trị zero vào SMB, VB, SB, LB, Byte SHL_B các bit vừa bị AC, ∗VD, ∗AC, ∗LD. EN ENO dịch chuyển đi, SLB OUT, IN OUT bit cuối cùng bị N N dịch chuyển ra sẽ N: IB, QB, MB, SMB, được đưa vào bit VB, SB, LB, AC, báo tràn SM1.1. Constant, ∗VD, ∗AC, Bit báo kết quả 0 ∗LD. sẽ được set lên 1 nếu giá trị của byte dịch chuyển là 0. Shift Right Word and Shift Left Word Lệnh dịch phải IN: IW, QW, VW, hay lệnh dịch trái LW, MW,SW, SMW, SHR_W thực hiện dịch AIW ,AC, T, C, EN ENO chuyển các bit Constant, ∗VD, ∗AC, SRW OUT, IN OUT của Word đầu ∗LD. N N vào IN đi N lần Word sang phải hay trái. kết quả được lưu vào đầu ra OUT: IW, QW, VW, OUT. LW, MW,SW, SMW, Lệnh shift điền AC, T, C, ∗VD, ∗AC, 109
  111. Chương 5: Ngơn ngữ lập trình PLC S7-200 giá trị zero vào AC, T, C, ∗VD, ∗AC, các bit vừa bị ∗LD. SHL_W EN ENO dịch chuyển đi, SLW OUT, bit cuối cùng bị IN OUT N N dịch chuyển ra sẽ được đưa vào bit N: IB, QB, MB, SMB, Byte báo tràn SM1.1. VB, SB, LB, AC, Bit báo kết quả 0 Constant, ∗VD, ∗AC, sẽ được set lên 1 ∗LD. nếu giá trị của Word dịch chuyển là 0. Mơ tả Tốn hạng Kiểu dữ liệu STL LAD Description Operands Data Types Shift Right Double Word and Shift Left Double Word 110
  112. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh dịch phải hay lệnh dịch trái thực hiện dịch SRD OUT, SHR_DW chuyển các bit IN: VD, ID, QD, MD, N EN ENO của từ kép đầu LD, SD, HC, SMD, IN OUT vào IN đi N lần AC, Constant, ∗VD, N sang phải hay ∗AC, ∗LD. trái. kết quả được DWord lưu vào đầu ra OUT. OUT: VD, ID, QD, Lệnh shift điền MD, LD, SD, SMD, giá trị zero vào SHL_DW AC, ∗VD, ∗AC, ∗LD. EN ENO các bit vừa bị SLD OUT, IN OUT dịch chuyển đi, N N bit cuối cùng bị N: IB, QB, MB, SMB, dịch chuyển ra sẽ VB, SB, LB, AC, Byte được đưa vào bit Constant, ∗VD, ∗AC, báo tràn SM1.1. ∗LD. Bit báo kết quả 0 sẽ được set lên 1 nếu giá trị của từ kép dịch chuyển là 0. Rotate Right Byte and Rotate Left Byte 111
  113. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh quay vịng sang IN: IB, QB, phải hay lệnh quay MB, SMB, VB, ROR_B vịng sang trái thực hiện SB, LB, AC, EN ENO RRB OUT, dịch chuyển các bit của ∗VD, ∗AC, IN OUT N N byte đầu vào IN đi N ∗LD. lần sang phải hay trái. kết quả được lưu vào đầu ra OUT. Tại mỗi OUT: IB, QB, lần quay, giá trị của bit MB, SMB, VB, cuối cùng (bit 0) được SB, LB, AC, Byte ROL_B đưa vào bit SM1.1 đồng ∗VD, ∗AC, EN ENO thời đưa vào bit đầu ∗LD. RLB OUT, IN OUT tiên (bit 7) của byte đĩ N N nếu là quay phải, cịn ngược lại đối với lệnh N: IB, QB, MB, quay trái. Bit báo kết SMB, VB, SB, quả 0 sẽ cĩ giá trị bằng LB, AC, 1 nếu giá trị trong byte Constant, ∗VD, đĩ bằng 0. ∗AC, ∗LD. Rotate Right Word and Rotate Left Word Lệnh quay vịng sang IN: IW, QW, phải hay lệnh quay VW, LW, ROL_W vịng sang trái thực hiện MW,SW, EN ENO RRW OUT, dịch chuyển các bit của SMW, AIW IN OUT N N từ đơn đầu vào IN đi N ,AC, T, C, lần sang phải hay trái. Constant, ∗VD, Word kết quả được lưu vào ∗AC, ∗LD. đầu ra OUT. Tại mỗi OUT: IW, QW, lần quay, giá trị của bit VW, LW, ROL_W cuối cùng (bit 0) được MW,SW, EN ENO đưa vào bit SM1.1 đồng SMW, AC, T, RLW OUT, IN OUT thời đưa vào bit đầu N C, ∗VD, ∗AC, N tiên (bit 7) của byte đĩ ∗LD. nếu là quay phải, cịn ngược lại đối với lệnh N: IB, QB, MB, Byte quay trái. Bit báo kết SMB, VB, SB, quả 0 sẽ cĩ giá trị bằng LB, AC, 1 nếu giá trị trong từ Constant, ∗VD, đơn đĩ bằng 0. ∗AC, ∗LD. Rotate Right Double Word and Rotate Left Double Word 112
  114. Chương 5: Ngơn ngữ lập trình PLC S7-200 Lệnh quay vịng sang IN: VD, ID, phải hay lệnh quay QD, MD, LD, ROL_DW vịng sang trái thực hiện HC, SMD, AC, EN ENO dịch chuyển các bit của Constant, ∗VD, RRD OUT, IN OUT từ kép đầu vào IN đi N ∗AC, ∗LD. N N lần sang phải hay trái. kết quả được lưu vào DWord đầu ra OUT. Tại mỗi OUT: VD, ID, lần quay, giá trị của bit QD, MD, LD, ROL_DW cuối cùng (bit 0) được SMD, AC, EN ENO đưa vào bit SM1.1 đồng ∗VD, ∗AC, RLD OUT, IN OUT thời đưa vào bit đầu N ∗LD. N tiên (bit 7) của từ kép Byte đĩ nếu là quay phải, cịn ngược lại đối với N: IB, QB, MB, lệnh quay trái. Bit báo SMB, VB, LB, kết quả 0 sẽ cĩ giá trị AC, Constant, bằng 1 nếu giá trị trong ∗VD, ∗AC, từ kép đĩ bằng 0. ∗LD. 113
  115. Chương 5: Ngơn ngữ lập trình PLC S7-200 Hình 56: Ví dụ về cách sử dụng lệnh dịch chuyển và quay vịng thanh ghi Lệnh làm việc với thanh ghi cĩ độ dài tuỳ ý: Lệnh thuộc nhĩm này cung cấp một phương pháp nối tiếp và điều khiển dịng sản phẩm hoặc dữ liệu. Thanh ghi được xác định trong lệnh bởi tốn hạng S_BIT chỉ địa chỉ bit thấp của thanh ghi và độ dài là giá trị tuyệt đối của tốn hạng N trong lệnh (nghĩa là thanh ghi cĩ độ dài |N| bit). Dữ liệu được chuyển vào trong thanh ghi cĩ tên là DATA (DATA = Bool), một lần trong một vịng quét. S_BIT là bit thấp nhất của thanh ghi, nếu gọi cao nhất trong thanh ghi là MSB.b thì MSB.b sẽ được tính theo cơng thức sau: MSB.b = [(byte của S_BIT) + phần nguyên của(|N| - 1 + bit của S_BIT)/8].[phần cịn thừa của phép chia 8] Lý do trừ đi 1 bởi vì S-BIT đã chiếm mất 1 bit của thanh ghi. Ví dụ S_BIT là V33.4 và N = 14 thì MSB.b sẽ là: MSB.b = [(33) + (|14| - 1 + 4)/8].remainder of the division by 8 = (33 + 2).remainder of the division by 8 = 35.1 MSB.b là : V35.1 Chiều thực hiện phép dịch chuyển phụ thuộc vào dấu của tốn hạng N trong lệnh. Miền giá trị cho phép của tốn hạng N là: -64 ≤ N ≤ 64. 114