CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ PHẦN MỀM ĐIỀU KHIỂN LẬP TRÌNH PLC 1.1 Giới thiệu chung về PLC S7-1200 Năm 2009, Siemens ra dòng sản phẩm S7-1200 dùng để thay thế dần cho S7-200. So với S7-200 thì S7-1200 có những tính năng nổi trội: - S7-1200 là một dòng của bộ điều khiển logic lập trình (PLC) có thể kiểm soát nhiều ứng dụng tự động hóa. Thiết kế nhỏ gọn, chi phí thấp, và một tập lệnh mạnh làm cho chúng ta có những giải pháp hoàn hảo hơn cho ứng dụng sử dụng với S7-1200. - S7-1200 bao gồm một microprocessor, một nguồn cung cấp được tích hợp sẵn, các đầu vào/ra (DI/DO).
- Một số tính năng bảo mật giúp bảo vệ quyền truy cập vào cả CPU và chương trình điều khiển: + Tất cả các CPU đều cung cấp bảo vệ bằng password chống truy cập vào PLC. + Tính năng “know-how protection” để bảo vệ các block đặc biệt của mình. - S7-1200 cung cấp một cổng PROFINET, hỗ trợ chuẩn Ethernet và TCP/IP. Ngoài ra bạn có thể dùng các module truyền thong mở rộng kết nối bằng RS485 hoặc RS232.
- Phần mềm dùng để lập trình cho S7-1200 là Step7 Basic. Step7 Basic hỗ trợ ba ngôn ngữ lập trình là FBD, LAD và SCL. Phần mềm này được tích hợp trong TIA Portal 11 của Siemens. - Vậy để làm một dự án với S7-1200 chỉ cần cài TIA Portal vì phần mềm này đã bao gồm cả môi trường lập trình cho PLC và thiết kế giao diện HMI.1: PLC S7-1200 của hãng SIEMENS + Bộ phận kết nối nguồn.
+ Các bộ phận kết nối dây của người dùng có thể tháo được (phía sau cá nắp che). + Khe cắm thẻ nhớ nằm dưới cửa phía trên, các LED trạng thái dành cho I/O tích hợp. + Bộ phận kết nối PROFINET (phía trên của CPU).2 Module phần cứng của PLC S7-1200 1.1 Module xử lý trung tâm CPU Module xử lý trung tâm CPU chứa vi xử lý, hệ điều hành, bộ nhớ, các bộ định thì, bộ đếm, cổng truyền thông Profinet,. module lưu trữ chương trình người dùng trong bộ nhớ của nó.
Ngoài ra, module CPU có thể tích hợp một vài cổng vào ra số, analog tùy thuộc vào mã hàng. Cổng profinet tích hợp cho phép CPU có thể kết nối HMI, máy tính lập trình, hay những PLC S7 thông qua profinet… 1.2 Module tín hiệu SM Module AI: module đọc analog với các loại tín hiệu khác nhau như dòng 4-20mA (theo cách đấu 2 đầu dây hoặc 4 đầu dây ), đọc tín hiệu điện áp 0-10VDC, đọc tín hiệu RTD, TC…. Module AI/AO: module vừa đọc vừa xuất tín hiệu analog. Module AO: module xuất tín hiệu analog.
Module DI: module đọc tín hiệu digital. Module DO: module xuất tín hiệu digital. Module DI/DO: module vừa đọc vừa xuất tín hiệu digital.3 Module xử lý truyền thông Module được gắn phía bên trái CPU, được kí hiệu CM1241, CP124x. Tối đa chỉ có thể gắn được 3 module mở rộng về truyền thông.
CM 1241: truyền thông ASCII, truyền thông Modbus, truyền thông USdrive, point to point, truyền thông profibus. CP 124x: hỗ trợ chuẩn truyền thông GPRS/GSM, Messages/Email,….4 Module nguồn cung cấp Cung cấp nguồn hoạt động cho các module phần cứng kết nối với CPU, tên PM1207. Yêu cầu áp cung cấp dầu vào 120/230 VAC và ngõ ra là 24VDC/2.5A được thiết kế dàng riêng cho S7-1200, không cần khai báo trong cấu hình phần cứng.3 Vùng nhớ, địa chỉ và kiểu dữ liệu bên trong PLC S7-1200 1.1 Các loại vùng nhớ trong PLC S7-1200 Vùng nhớ Load memory: là vùng nhớ dạng non-volatile (loại vùng nhớ mà thông tin đã lưu trữ trên nó sẽ không bị mất khi nó bị ngắt nguồn cấp điện ). - Vùng nhớ này dùng để lưu chương trình người dùng, dữ liệu liệu và cấu hình.
- Khi người dùng download một dự án xuống CPU, đầu tiên CPU sẽ lưu chương trình trong vùng nhớ Load memory. Vùng nhớ này nằm trong CPU hoặc trong thẻ nhớ (nếu có). Khi dùng thẻ nhớ sẽ cho phép người dùng mở rộng thêm kích thước chương trình. - Chúng ta hiểu vùng nhớ này giống như ổ cứng của máy tính.
Vùng nhớ Work memory: Là vùng nhớ dạng volatile (loại vùng nhớ mà thông tin lưu trữ trên nó sẽ bị mất khi nó bị ngắt nguồn cấp điện). - Vùng nhớ này dùng để lưu một vài thành phần của một dự án trong khi thực hiện chương trình người dùng. - CPU sẽ sao chép một vài thành phần của dự án từ vùng nhớ Load memory sang vùng nhớ Work memory. Vùng nhớ này sẽ bị mất khi mất điện, và nó được khôi phục bởi CPU khi nguồn điện được cấp trở lại.
- Chúng ta hiểu vùng nhớ này giống như RAM của máy tính. Vùng nhớ Retentive: Là vùng nhớ dạng non-volatile, dùng để lưu trữ các giá trị của vùng nhớ Work memory. CPU sử dụng vùng nhớ Retentive để lưu các giá trị được lựa chọn bởi chương trình của người dùng trong thời gian bị mất điện. Khi có điện trở lại CPU sẽ khôi phục những giá trị được lưu trữ này.
Tóm lại chúng ta hiểu vùng nhớ Load memory để lưu toàn bộ một dự án do người dùng download xuống CPU (nó sẽ không bị mất đi cho đến khi người dùng download xuống một dự án khác). Khi thực hiện chương trình thì CPU sẽ sao chép chương trình lập trình sang vùng nhớ Work memory để thực hiện chương trình. Và khi chương trình được thực hiện thì những giá trị nào được lựa chọn là Retentive sẽ được nhớ cho dù CPU bị mất nguồn.2 Thông tin về chương trình (offline) Hình 1.3 Thông tin về chương trình (online) Ở hình 1.2 chúng ta thấy được kích thước của vùng nhớ Word memory, Load memory và Retentive đã sử dụng của dự án.2 Kích thước vùng nhớ trong PLC S7-1200 Bảng 2.1 Vùng nhớ Load memory trong PLC S7-1200 ST CPU CPU CPU CPU 1215C, Vùng nhớ Mục đích lưu trữ T 1211C 1212C 1214C 1217C Internal load User program and 1 memory 1MB 2MB 4MB 4MB program data, (flash configuration data, memory) External Data logs, user- load defined 4MB, 12MB, 24MB, 256MB, 2GB, hoặc 2 memory Web pages, and 32GB tùy vào kích thước của thẻ nhớ (flash PLC system data memory) Hình 1.4 Ảnh thẻ nhớ SMC (Simatic Memory Card) Vùng nhớ Work memory Bảng 2.2 Kích thước vùng nhớ Work memory CPU CPU CPU CPU CPU Vùng STT 1211 1212 1214 1215 1217 nhớ C C C C C 50 75 100 125 150 Work 1 Kbyte Kbyte Kbyte Kbyte Kbyte memory s s s s s Retentiv 2 10 Kbytes e 3 Thời 20 days typ.3 Kiểu dữ kiệu của PLC S7-1200 Bảng 2.3 Thông số dữ liệu PLC S7-1200 STT Kiểu dữ liệu Miêu tả Bool gồm 1 bit đơn. Byte gồm 8 bit.
1 Bit và chuỗi bit Word gồm 16 bit. Dword gồm 32 bit. USInt: số interger không dấu 8 bit. Sint: số interger có dấu 8 bit.
2 Interger Uint: số interger có dấu 16 bit. UDInt: số interger không dấu 32 bit. Dint: số interger có dấu 32 bit. Real-số thực dấu chấm động 32 bit.
3 Số thực-Real LReal-số thực dấu chấm động 64 bit. Date: kiểu dữ liệu 16 bit chỉ số ngày có tầm từ D#1990- 1-1 đến D#2168-12-31. DTL: (date and time long) dữ liệu với 12 byte dữ liệu lưu trữ thong tin về ngày, tháng, năm. 4 Date anhd time Day(USInt): 1->31.
Weekday(USInt): 1->7, hours, seconds. Time: kiểu dữ liệu 32 bit théo chuẩn IEC tầm T#24D20H31M23S647MS. TOD: (Time of day) kiểu dữ liệu 32 bit có tầm TOD#0:0:0 dến TOD#23:59:59. Char: kiểu dữ liệu ký tự 8 bit.
5 Char và String String: kiểu dữ liệu chuỗi lên tới 254 char.4 Vùng nhớ địa chỉ Vùng nhớ toàn cục CPU cung cấp những vùng nhớ toàn cục như: I, Q ,vùng nhớ nội M. Khối dữ liệu DB: cũng là vùng nhớ toàm cục. Vùng DB sử dụng với chức năng instance DB để lưu trữ chỉ định cho FB và cấu trúc bởi các tham số FB. Vùng tạm nhớ -Temp:vùng nhớ dữ liệu cục bộ được sử dụng trong các khối chương trình OB,FC,FB.
Vùng nhớ L được sử dụng cho các biến tạm và trao đổi dữ liệu của biến hình thức với những khối chương trình gọi nó, nội dung của khối dữ liệu bị xóa khi kết thúc chương trình. Vùng nhớ I,Q của PLC S7-1200 có thể truy xuất dưới dạng process image.5 Kỹ thuật lập trình 1.1 Vòng quét trương trình PLC thực hiện chương trình theo chu trình lặp. Mỗi vòng lặp được gọi là vòng quét. Mỗi vòng quét được bắt đầu bằng giai đoạn chuyển dữ liệu từ các tổng vào số tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thực hiện chương trình.
Trong từ vòng quét chương trình được thực hiện từ lệnh đầu tiên đến lệnh kết thúc của khối OB1. Sau giai đoạn thực hiện chương trình là giai đoạn chuyển các nội dung của bọ đệm ảo Q tới các cổng ra số. Vòng quét kết thúc bằng giai đoạn truyền thông nội bộ và kiểm tra lỗi. Chú ý rằng bộ đệm I và Q không lien quan tới các cổng vào/ra tương tự nên lệnh truy nhập cổng tương tự được thực hiện trực tiếp với cổng vật lý chứ không thong qua bộ đệm.2 Cấu trúc lập trình OB1 FB 1 FC 21 DB 11 BE Global DB For all BE FBs Instance DB FCs Local data OBs BE OB=organization FB= function block DB= data block FC= function a: khối tổ chức OB-OGANIZATION BLOCKS - Organization block (OBs) : là giao diện giữa hoạt động hệ thống và chương trình người dùng.
Chúng được gọi ra bởi hệ thống hoạt động, và điều khiển theo quá trình: - Xử lý chương trình theo quá trình - Báo động- kiểm soát xử lý chương trình - Xử lý lỗi - Startup oB, Cycle OB, Timing Error OB và Diagnosis OB: có thể chèn và laajo trình các khối này trong các project. Không cần phải gán các thông số cho chúng và cũng khồn cần gọi chúng trong chương trình chính. - Process Alarm OB và Time Interrupt OB:Các khối OB này phải được tham số hóa khi đưa vào chương trình. Ngoài ra, quá trình báo động OB có thể được gán cho một sự kiện tại thời gian thực hiện bằng cách sử dụng các lệnh ATTACH, hoặc tách biệt với lệnh DETACH.
- Time Delay Interrupt OB: OB ngắt thời gian trễ có thể đưa vào dự án và lập trình. Ngoài ra, chúng phải được gọi trong chương trình với lệnh SRT_DINT, tham số là không cần thiết. - Start Information: Khi một số OB được bắt đầu, hệ điều hành đọc ra thông tin được thẩm định trong chương trình người dùng, điều này rất hữu ích cho việc chuẩn đoán lỗi cho dù thông tin được đọc ra được cung cấp trong các mô tả của các khối OB. b: Hàm chức năng –FUNCTION - Funtions (FCs) là các khối mã cần bộ nhớ.
Dữ liệu của các biến tạm thời bị biến mất sau khi FC được xử lý. Các khối dữ liệu hoàn toàn có thể dược sử dụng để lưu trữ dữ liệu FC.