1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tự động hóa PLC SIMATIC S7-1500 với TIA Portal - Trần Văn Hiếu.pdf

669 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • LIỆT KÊ CÁC TỪ VIẾT TAT (21)
  • Phần I Phần I LẬP TRÌNH Cơ BẢNLẬP TRÌNHCơBẢN (24)
    • 1.1. GIỚI THIỆU BỘ ĐIỀU KHIẾN PLC (26)
      • 1.1.1. Sơ lược về bộ điều khiển PLC (26)
      • 1.1.2. Thiết kế cơ bản của bộ điều khiển PLC (26)
    • 1.2. TIÊU CHUẨN LẬP TRÌNH PLC VỚI IEC 61131 (27)
      • 1.2.1. Giới thiệu tiêu chuẩn IEC 61131 (27)
      • 1.2.2. Cấu trúc tài nguyên của IEC 61131 - 3 (29)
        • 1.2.2.2. Cấu trúc tài nguyên dành cho cấp độ cấu hình (30)
      • 1.2.3. Cấu trúc truyền thông (Communication model) (31)
      • 1.2.4. Ngôn ngữ lập trình theo tiêu chuẩn IEC 61131 - 3 (33)
    • 1.3. QUY TRÌNH PHÁT TRIEN chương trình PLC (34)
      • 1.3.1. Mô tả chi tiết (35)
      • 1.3.2. Thiết kế (35)
      • 1.3.3. Hiện thực hóa (36)
      • 1.3.4. Vận hành chạy thử chương trình (37)
      • 1.3.5. Xây dựng tài liệu hệ thống (Documentation) (37)
    • 1.4. CÂU HỎI ÔN TẬP (38)
    • 2.1. TỔNG QUAN BỘ ĐIỀU KHIEN SIMATIC S7 - 1500 (40)
      • 2.1.1. Sự lựa chọn toàn diện cho hệ thống tự động hóa (40)
      • 2.1.2. Chế độ bảo mật của SIMATIC S7 - 1500 (40)
        • 2.1.2.2. Chế độ Know - how Protection (42)
        • 2.1.2.3. Chế độ Copy protection (42)
      • 2.1.3. Bộ điểu khiển trung tâm CPU S7 - 1500 (43)
  • Bộ điều khiển CPU S7 - 1500 chuẩn (Standard CPU): gồm có CPU 1511-1 PN đến CPU 1518-4 PN/DP đáp ứng cho các hệ (43)
    • 2.1.3.2. Bộ điều khiển Compact CPU S7 - 1500C (46)
    • 2.1.3.3. Bộ điều khiển CPU S7 - 1500F (Safety CPU) (46)
  • Bộ điều khiển CPU S7 — 1500F (Fail-Safety CPU): đáp ứng cho các ứng dung về fail-safe, đap ưng cac ưng dụng từ nhỏ đến (46)
    • 2.1.3.4. Bộ điều khiển CPU S7 - 1500T (Technology CPU) (47)
    • 2.1.3.5. Bộ điều khiển CPU S7 - 1500 ODK (47)
    • 2.1.3.6. Bộ điều khiển CPU S7 - 1500 SI PLUS (48)
    • 2.1.3.7. Bộ điều khiển ET 200SP CPU và Open Controller (48)
    • 2.2. MÔ-ĐUN PHẨN CỨNG CỦA SIMATIC S7 - 1500 (49)
      • 2.2.1. Mô-đun nguồn PM, PS và Rack (49)
      • 2.2.2. Mô-đun xử lý trung tâm CPU (52)
      • 2.2.3. Mô-đun mở rộng của SIMATIC S7 - 1500 (54)
        • 2.2.3.3. Mô-đun truyền thông CP và CM (56)
    • 2.3. BỘ NHỚ CPU, ĐỊA CHỈ VÀ Kiểu DỮ LIỆU (57)
      • 2.3.1. Bộ nhớ CPU S7 - 1500 (57)
      • 2.3.2. Kiểu dữ liệu của SIMATIC S7 - 1500 (59)
        • 2.3.2.1. Kiểu dữ liệu BOOL (60)
        • 2.3.2.2. Kiểu dữ liệu BYTE (60)
        • 2.3.2.3. Kiểu dữ liệu WORD (61)
  • b. Sử dụng định dạng sô' HEX (61)
  • c. Sử dụng cho bộ đếm SIMATIC (61)
    • 2.3.2.6. Kiểu dữ liệu DINT (63)
    • 2.3.2.8. Kiểu dữ liệu DATE (63)
    • 2.3.2.9. Kiểu dữ liệu TIME (63)
    • 2.3.3. Vùng nhớ truy vấn dữ liệu (66)
  • Ví dụ (69)
    • 2.4.2. Vòng quét chương trình (70)
  • I I Xuất dữ liệu tới PIQ ị (70)
    • 2.5. PHẦN MỀM VÀ NGÔN NGỮ LẬP TRÌNH (71)
      • 2.5.1. Phẩn mểm lập trình SIMATIC S7 - 1500 (71)
      • 2.5.2. Ngôn ngữ lập trình SIMATIC S7 - 1500 (71)
    • 2.6. CÂU HỎI ÔN TẬP (73)
  • THIẾT LẬP KẾT NÔÌ TIA PORTAL VỚI SIMATIC S7 - 1500 (74)
    • 3.1. THIẾT LẬP IP CHO MÁY TÍNH VÀ S7 - 1500 (75)
      • 3.1.1. Các bước cài đặt địa chỉ IPv4 cho máy tính (75)
      • 3.1.2. Giới thiệu mạng truyền thông Ethernet (75)
        • 3.1.2.1. Địa chỉ MAC (75)
        • 3.1.2.3. Địa chỉ Subnet mask (76)
        • 3.1.2.4. Gateway (Router) (76)
        • 3.1.2.5. Mối quan hệ giữa địa chỉ IP, router và subnet (77)
      • 3.1.3. Thiết lập kết nối giao tiếp PG/PC (77)
    • 3.2. LÀM VIỆC VỚI STEP 7 PROFESSIONAL V1x (79)
      • 3.2.1. Tạo Project với chế độ câu hình chuẩn (79)
        • 3.2.1.2. Hướng dẫn thực hiện (80)
      • 3.2.2. Tạo Project với chế độ Unspecified (82)
        • 3.2.2.1. Khái niệm cơ bản (82)
      • 3.2.3. Cấu hình bộ I/O phân tán (distributed IO) (84)
        • 3.2.3.1. Cẩu hình I/O phân tán trực tiếp (84)
        • 3.2.3.2. Cẩu hình I/O phân tán bằng hardware detect (86)
    • 3.3. KẾT NÔÌ SIMATIC S7 - 1500 VỚI TIA PORTAL (90)
      • 3.3.1 Cài đặt địa chỉ IP cho SIMATIC S7 - 1500 (90)
      • 3.3.2. Hướng dẫn tải chương trình xuống PLC (92)
      • 3.3.3. Hướng dẫn sao lưu chương trình về máy tính Bước 1: tạo Project hoặc mở project muốn lưu chương trình PLC.Bước 1: tạo Project hoặc mở project muốn lưu chương trình PLC (94)
      • 3.3.4. Hướng dẫn nâng cấp firmware CPU (95)
        • 3.3.4.1. Nâng cấp firmware thông qua webserver (95)
      • 3.3.5. Hướng dẫn đưa CPU về trạng thái ban đầu (97)
    • 3.4. HƯỚNG DẪN MÔ PHỎNG SIMATIC S7 - 1500 (98)
      • 3.4.1. Ưu và nhược điểm của phẩn mềm mô phỏng (98)
      • 3.4.2. Mô phỏng PLC với PLCSIM Advanced (100)
    • 3.5. CÂU HỎI ÔN TẬP (105)
    • 4.1. PLC TAG VÀ KHỐI DỮ LIỆU DB (107)
      • 4.1.1. Làm việc VỚI PLC tag (107)
        • 4.1.1.3. Hướng dẫn định địa chỉ I/O trong phần cứng (107)
      • 4.1.2. Khối dữ liệu DB toàn cục (108)
      • 4.1.3. Làm việc với các vùng nhớ đặc biệt của PLC (115)
    • Always 1 high): biến AlwaysTRUE có trạng thái luôn (116)
    • Always 0 low): biến AlwaysFALSE có trạng thái luôn (116)
      • 4.1.3.2. Hướng dẫn thực hiện (116)
      • 4.2. LẬP TRÌNH VỚI CÁC TIẾP DIEM I/O (117)
        • 4.2.1. Các tiếp điểm ngõ vào (118)
        • 4.2.2 Các cuộn coil/ Ngõ ra (119)
          • 4.2.2.1. Tạo chương trình con FC (120)
          • 4.2.2.2. Quản trị chương trình người dùng (122)
        • 4.2.3. Toán tử AND (123)
        • 4.2.4. Toán tử OR (125)
    • Network 3: ví dụ 3: X or Y or s = X + Y + s = z (125)
    • Network 5: ví dụ 5: (A and B) or (C and D) = z (127)
      • 4.2.5. Toán tử XOR (128)
    • Network 6: ví dụ 6: X xor Y = X XỸ + X X Y = z (128)
      • 4.2.6. Toán tử NOT (129)
    • Network 7: ví dụ 7: A NAND B = A X B = z (129)
    • Network 8: ví dụ 8: c NOR D = C + D= Y (130)
      • 4.3.1. Lệnh SET (134)
    • Network 9: sử dụng tập lệnh SET (134)
      • 4.3.2. Lệnh RESET (134)
    • Network 10: sử dụng tập lệnh RESET (134)
      • 4.3.3. Lệnh flipflop SR và RS (135)
    • Network 11: sử dụng tập lệnh SR (136)
      • 4.3.3.2. Lệnh RS Flipflop - ưu tiên SET (137)
    • Network 12: sử dụng tập lệnh RS (138)
      • 4.4. LẬP TRÌNH VỚI LỆNH NHẬN BIẾT CẠNH TÍN HIỆU (139)
        • 4.4.1. Nhận biết cạnh lên của tín hiệu (142)
    • Network 13: sử dụng lệnh p Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 13 (142)
      • 4.4.2. Nhận biết cạnh xuống của tín hiệu (143)
    • Network 14: sử dụng lệnh N (143)
      • 4.4.3. Một số ví dụ mẫu về cách sử dụng lệnh p và N (145)
    • Network 15: một nút nhấn 2 trạng thái (145)
      • 4.4.3.2. Sử dụng trong các phép toán (147)
    • Network 16: Sử dụng Edge (trigger) trong các lệnh xử lý toán học Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 16 (147)
      • 4.5. CÂU HỎI ÔN TẬP (149)
      • 5.1. QUẢN TRỊ CHƯƠNG TRÌNH NGƯỜI DÙNG 1. Tạo chương trình con FC (151)
        • 5.1.2. Quản trị chương trình người dùng (152)
      • 5.2. BỘ ĐỊNH THÌ THEO CHUAN SIMATIC (152)
        • 5.2.1. Bộ định thì trễ cạnh lên không nhớ (155)
    • Network 1: sử dụng bộ định thì SIMATIC trễ cạnh lên không nhớ (156)
      • 5.2.2. Bộ định thì trễ cạnh lên có nhớ (157)
    • Network 2: sử dụng bộ định thì SIMATIC trễ cạnh lên có nhớ (158)
      • 5.2.3. Bộ định thì tạo xung không nhớ (160)
    • Network 3: bộ định thì SIMATIC tạo xung không nhớ (161)
      • 5.2.4. Bộ định thì tạo xung có nhớ (162)
    • Network 4: bộ định thì SIMATIC tạo xung có nhớ (163)
      • 5.2.5. Bộ định thì trễ cạnh xuống (165)
    • Network 5: bộ định thì SIMATIC trễ cạnh xuống (165)
      • 5.2.6 Bộ định thì SIMATIC theo khai báo BCD (167)
    • Bit 12 và 13 Định (168)
    • Network 6: thay đổi giá trị thời gian cài đặt từ HMI (168)
      • 5.3. BỘ ĐỊNH THÌ THEO CHUAN IEC (170)
        • 5.3.1. Bộ định thì tạo xung TP (172)
        • 5.3.2. Bộ định thì trễ cạnh lên TON (174)
    • Network 8: bộ định thì IEC trễ cạnh lên TON Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 8 (175)
      • 5.3.3. Bộ định thì trễ cạnh xuống TOF (176)
    • Network 9: bộ định thì IEC trễ cạnh xuống TOF (177)
      • 5.3.4. Bộ định thì trễ cạnh lên có nhớ TONR (179)
    • Network 10: bộ định thì IEC trễ cạnh lên TONR (179)
      • 5.4. BÀI TẬP MẪU (181)
    • Network 11: bài tập 1 (181)
    • Network 12: bài tập 2 (182)
    • Network 13: bài tập 3 (183)
      • 5.5. CÂU HỎI ÔN TẬP (184)
    • Chương 6 Chương 6 LẬP TRÌNH VỚI BỘ ĐẾMLẬPTRÌNH VỚI BỘ ĐẾM (189)
      • 6.1. CÁC TẬP LỆNH SO SÁNH VÀ TOÁN HỌC 1. Các tập lệnh so sánh (190)
      • I, Q, M, D, L hoặc (190)
        • 6.1.2. Các tập lệnh xử lý toán học (192)
        • 6.1.3. Các tập lệnh chuyển đổi (193)
      • I, Q, M, D, L, p hay hằng số (193)
        • 6.1.3.1. Lệnh chuyển đổi giá trị - Convert (194)
        • 6.2.2. Quản trị chương trình người dùng (197)
        • 6.3. Bộ ĐÊM THEO CHUAN SIMATIC (197)
          • 6.3.1. Bộ đếm lên CTU (200)
    • Network 1: bộ đếm SIMATIC - đếm lên (200)

Nội dung

Tự động hóa SIMATIC S7-1500 với TIA Portal - Trần Văn Hiếu.pdf Tự động hóa SIMATIC S7-1500 với TIA Portal - Trần Văn Hiếu.pdf Tự động hóa SIMATIC S7-1500 với TIA Portal - Trần Văn Hiếu.pdf

LIỆT KÊ CÁC TỪ VIẾT TAT

API Application Programming Interface AQ (AO) Analog Output

AR Application Relationship AWP Automation Web Programming

CM Communication Module CP Communication Processor CSV Comma Separated Value

HSC High Speed Counter HTML Hypertext Markup Language ĨDB Instance Data Block

IP Internet Protocol LSB Least significant bit MAC Media Access Control MSB Most significant bit NAP Network Access Point

OB Organization Block ouc Open User Communication PDM Pulse-Duration Modulation

POU Program Organization Unit PPM Pulse-Position Modulation PPS Pulse Per Second

PTO Pulse Train Output PtP Point to Point

PWM Pulse Width Modulation RLO Result of Logic Operation

TCP/IP Transmission Control Protocol/Internet Protocol24

TM Technology Module TO Technology Object TSAP Transport Service Access Points UDT User Defined Data Types

VBS Visual Basic Script VPN Virtual Private Network W3C World Wide Web Consortium

Phần I LẬP TRÌNH Cơ BẢNLẬP TRÌNHCơBẢN

GIỚI THIỆU BỘ ĐIỀU KHIẾN PLC

1.1.1 Sơ lược về bộ điều khiển PLC

Năm 1968, những nhà thiết kế của General Motors cho ra đời bộ điều khiển lô-gic có khả năng lập trình (PLC) đầu tiên, với mục đích thay thế cho hệ thống điều khiển rơ-le phức tạp.

Hệ thông điều khiển mới đã đạt được những yêu cầu như:

■ Dễ dàng lập trình, và thiết kế.

■ Chương trình thay đổi mà không cần phải can thiệp vào hệ thông (hệ thống đấu nối dây dẫn).

■ Nhỏ gọn, tiết kiệm chi phí và tăng cường độ tin cậy so với hệ thống điều khiển bằng rơ-le.

■ Dễ dàng và bảo trì với chi phí thấp.

Hệ thông tự động hóa sử dụng PLC được dùng trong công nghiệp ngày càng phổ biến và rộng rãi vì những tiện ích của nó mang lại cho cả người thiết kế và người sử dụng hệ thông tự động hóa.

Ngày nay, hệ thống PLC được tích hợp thêm nhiều chức năng để có thể giao tiếp với các hệ thống: Rô-bôt, CAD/CAM, CNC, kết nối tới hệ thống điện toán đám mây, hệ thống điều khiển AI

1.1.2 Thiết kế cơ bản của bộ điều khiển PLC

29 về cơ bản thì bộ điều khiển PLC không hơn gì so với một máy tính PC, nhưng được thiết kế chỉ định riêng cho những tác vụ điều khiển hệ thông tự động công nghiệp.

Mô-đun xử lý tín hiệu ngõ vào chuyển đổi các tín hiệu cảm biến gửi về thành tín hiệu mà bộ xử lý trung tâm (CPU) có thể hiểu, sau đó chương trình người dùng (user program) thực hiện các đoạn mã lệnh dựa trên các tín hiệu ngõ vào rồi gửi tín hiệu điều khiển các cơ cấu chấp hành thông qua mô-đun xử lý tín hiệu ngõ ra.

Chương trình điều khiển của PLC có thể được lập trình bằng nhiều ngôn ngữ lập trình như: các mã lệnh IL tương tự giông ngôn ngữ máy (assembly), hoặc ngôn ngữ cấp cao ST, hoặc sơ đồ trạng thái điều khiển SFC, và phổ biến nhất như LAD và FBD.

Có thể kết nôi được ít hoặc nhiều tín hiệu vào/ra cũng như các khả năng điều khiển khác tùy thuộc vào dung lượng bộ nhớ và tốc độ xử lý của bộ điều khiển PLC.

TIÊU CHUẨN LẬP TRÌNH PLC VỚI IEC 61131

1.2.1 Giới thiệu tiêu chuẩn IEC 61131

Các tiêu chuẩn PLC trước đây chủ yếu tập trung vào lập trình PLC theo sơ đồ trạng thái công nghệ từ những năm 1970 Các tiêu chuẩn lập trình PLC này phù hợp với lập trình lô-gic xử lý nhị phân và không có truyền thông mạng.

Trước đây, không có tiêu chuẩn hóa nào đối với ngôn ngữ lập trình cho sự phát triển chương trình PLC và hệ thống như: xử lý tín hiệu tương tự (analog), kết nốì các mô-đun thông minh, hệ thống truyền thông mạng Bởi vậy, hệ thông PLC của những nhà sản xuất khác nhau yêu cầu các kỹ thuật lập trình khác nhau.

Năm 1992, tiêu chuẩn quốc tế IEC 61131 được ban hành mô tả việc lập trình các bộ điều khiển PLC và các thiết bị ngoại vi liên quan (công cụ lập trình và chẩn đoán, giao diện HMI ).

Tiêu chuẩn IEC 61131 ngày càng được bổ sung thêm nhiều phần để hỗ trợ lập trình PLC như:

■ Phần 1: thông tin chung về tiêu chuẩn IEC 61131.

■ Phần 2: các yêu cầu dành cho thiết bị và cách kiểm tra các bộ điều khiển PLC và thiết bị ngoại vi.

■ Phần 3: các ngôn ngữ lập trình.

■ Phần 4: hướng dẫn cho người dùng (user guideline).

■ Phần 5: các tiêu chuẩn về truyền thông của PLC.

■ Phần 6: các chức năng về an toàn (safety).

■ Phần 7: lập trình điều khiển mờ (Fuzzy).

■ Phần 8: hướng dẫn ứng dụng và triển khai các ngôn ngữ lập trình.

■ Phần 9: giao diện truyền thông kỹ thuật số single-drop cho cảm biến và cơ cấu chấp hành nhỏ (ví dụ như IO-link).

■ Phần 10: định dạng trao đổi tập tin XLM theo tiêu chuẩn PLC mở (PLC open) để xuất/nhập vào các dự án xây dựng theo tiêu chuẩn IEC 61131 - 3.

Lưu ý: trong các tiêu chuẩn IEC 61131 người ta thường ký hiệu các phần tương ứng như IEC 61131 - X, với X là số thứ tự phần.

Tiêu chuẩn IEC 61131 giúp định nghĩa và tiêu chuẩn hóa lại việc thiết kế và chức năng của PLC, ngôn ngữ lập trình để lập trình ở mức độ mà người dùng có thể vận hành bằng các hệ thống PLC khác nhau mà không gặp khó khăn.

1.2.2 Cấu trúc tài nguyên của IEC 61131 - 3

IEC 61131 - 3 là một tiêu chuẩn để lập trình không chỉ cho một PLC riêng lẻ (stand-alone) mà dành cho cả hệ thông tự động hóa Chương trình điều khiển cho các ứng dụng mở rộng phải được cấu trúc rõ ràng, dễ hiểu, dễ bảo trì và linh hoạt trong mọi trường hợp, thậm chí dễ chuyển sang hệ thống PLC khác.

Cấu trúc tài nguyên của IEC 61131 — 3 chia thành hai phần:

■ Cấu trúc dành cho cấp độ cấu hình (configuration level).

■ Cấu trúc dành cho cấp độ lập trình (program level).

Hình 1.2 Cấu trúc tài nguyên của IEC 61131 - 3 Ị 2.2.1 Cấu trúc tài nguyên dành cho cấp độ lập trình

Cấu trúc tài nguyên (structuring resource) của IEC 61131 - 3 cho phép mô-đun hóa các ứng dụng thành các đơn vị tổ chức chương trình POU (khôi tổ chức OB, hàm chức năng FB/FC )

Câu trúc tài nguyên này có thể sử dụng bằng nhiều ngôn ngữ lập trình.

Tiêu chuẩn IEC 61131 — 3 định nghĩa một tập hợp toàn diện các chức năng và khôi hàm chức năng được tiêu chuẩn hóa Tiêu chuẩn IEC 61131 — 3 cho phép người dùng mở rộng phạm vi sử dụng thông qua các hàm chức năng FB/FC đáp ứng cho các tác vụ (task) đặc biệt hoặc tái sử dụng lại nhiều lần.

Các POU có thế sử dụng theo nhiều cách như lưu vào thư viện toàn cục hoặc trong chương trình dự án đang sử dụng.

Biểu đồ chức năng tuần tự SFC (Sequential Function Chart) trình bày cấu trúc chương trình với các mối liên hệ giữa các POU được thể hiện một cách minh bạch và dễ hiểu.

1.2.2.2 Cấu trúc tài nguyên dành cho cấp độ cấu hình

Các thành phần của cấu trúc cấu hình được sử dụng để cấu trúc các ứng dụng và xác định tương tác giữa các POU Các thành phần của cấu trúc cấu hình mô tả các thuộc tính chạy run-time của chương trình, đường truyền thông và gán thông tin tới phần cứng PLC.

Hình 1.3 Cấu trúc cấu hình của IEC 61131 - 3

Tham khảo bảng thông tin sau để làm rõ các thành phần của cấu trúc cấu hình:

Bảng 1.1 Các thành phần của cấu trúc cấu hình.

■ Định nghĩa các biến được sử dụng

Kết hợp tất cả tài nguyên của PLC. Định nghĩa đường dẫn truy cập giữa tất cả các cấu hình.

■ Định nghĩa các biến được sử dụng.

Gán các tác vụ task và chương trình tới một resource cụ thể.

Gọi các chương trình ứng dụng run-time với các tham số đầu vào/ra.

Task ■ Định nghĩa các thuộc tính run-time.

■ Gán thuộc tính run-time tới một chương trình POU.

1.2.3 Cấu trúc truyền thông (Communication model) Để lập trình được minh bạch và dễ dàng thực hiện giữa các thành phần của cấu trúc tài nguyên, liên kết dữ liệu giữa các chương trình POU, truyền thông giữa các khôi chương trình ở các cấu trúc chương trình hoặc giữa các PLC khác nhau, thì bạn đọc cần tuân thủ một số nguyên tắc trong cấu trúc truyền thông của Tiêu chuẩn IEC 61131 - 3 như các hình sau đây.

Hình 1.4 Kết nôi dữ liệu trong một chương trình

Hình 1.5 Truyền thông thông qua biến toàn cục

Hình 1.6 Truyền thông giữa các khôi hàm chức năng

Hình 1.7 Truyền thông thông qua truy cập đường dẫn

1.2.4 Ngôn ngữ lập trình theo tiêu chuẩn IEC 61131 - 3

Tiêu chuẩn IEC 61131 - 3 định nghĩa 05 ngôn ngữ lập trình

Mặc dù chức năng và cấu trúc của các ngôn ngữ này khác nhau, nhưng chúng là một họ ngôn ngữ lập trình theo tiêu chuẩn IEC 61131 - 3 với các cấu trúc phần tử (khai báo biến, các khối tổ chức chương trình POƯ, ) và các phần tử cấu hình.

■ Ngôn ngữ IL - Instruction List: lập trình theo dạng các mã lệnh (instruction), gần với ngôn ngữ máy (assembly).

■ Ngôn ngữ LD - Ladder Diagram: lập trình theo dạng ngôn ngữ hình thang (LAD), dễ hiểu, đơn giản nhưng khó phát triển cho các dự án lớn.

■ Ngôn ngữ FBD - Function Block Diagram: lập trình theo dạng mạch lô-gic (AND, OR, XOR, ), giúp người lập trình và người đọc hiểu hơn về lô-gic của hệ thống.

■ Ngôn ngữ ST - structured Text: lập trình theo dạng các câu lệnh (statement), dựa trên nền tảng của các ngôn ngữ lập trình cấp cao (về mặt cú pháp lệnh giống Pascal) phù hợp cho các dự án lớn và lập trình hướng đối tượng.

■ Ngôn ngữ SFC - Sequential Function Chart: có thể lập trình theo dạng đồ họa (graphical) hoặc theo kiểu vàn bản (textual) Ngôn ngữ SFC phù hợp cho các cấu trúc lập trình điều khiển tuần tự (sequence) và phát triển dựa trên nền tảng GRAFCET

Có thể sử dụng nhiều ngôn ngữ lập trình trong một dự án của PLC Việc thông nhất và tiêu chuẩn hóa 05 ngôn ngữ trên đã giúp việc lập trình hệ thống PLC trở nên dễ dàng với từng quốc gia và ngành nghề cụ thể.

Ngôn ngữ lập trình cho bộ điều khiển SIMATIC S7 được phát triển dựa trên tiêu chuẩn IEC 61131 — 3 tương ứng là: STL, LAD, FBD, S7 - SCL , S7 - GRAPH.

QUY TRÌNH PHÁT TRIEN chương trình PLC

Chương trình điều khiển của PLC là một thành phần quan trọng của hệ thông tự động hóa Chương trình điều khiển phải được thiết kế có hệ thống, cấu trúc tốt và lập thành văn bản đầy đủ để:

■ Giảm công sức bảo trì hệ thông.

■ Hiệu quả về chi phí đầu tư.

Chương trình PLC được phát triển theo bôn giai đoạn như sau:

Giai đoạn 1: Mô tả chi tiết - Specification

Giai đoạn 2: Thiết kế - Design

Giai đoạn 3: Hiện thực hóa — Realization l ' - 1 - - - - ■ -

Giai đoạn 4: Chạy thử — Commissioning

Hình 1.8 Quy trình phát triển chương trình PLC

Quy trình phát triển chương trình PLC có thể áp dụng cho các chương trình điều khiển có độ phức tạp đa dạng, các tác vụ điều khiển phức tạp Và việc cần phải sử dụng quy trình phát triển như thế này là hoàn toàn cần thiết trước khi người lập trình hệ thống bắt đầu viết chương trình điều khiển PLC.

Giai đoạn này, người thiết kế cần phải mô tả các tác vụ điều khiển của hệ thông một cách chính xác và chi tiết nhất có thể

Mô tả cụ thể về chức năng của hệ thông điều khiển càng nhiều càng tốt, chỉ ra những yêu cầu đối lập (mâu thuẫn), thông số kỹ thuật sai lệch hoặc không đầy đủ ảnh hưởng tới hệ thống và sản xuất.

Các yêu cầu cần phải đạt được sau khi thực hiện giai đoạn này:

■ Mô tả bằng lời về các tác vụ điều khiển hệ thông.

■ Tạo được cấu trúc và bố cục cơ bản của hệ thông sau khi ghi chép mô tả hoạt động của các tác vụ điều khiển.

■ Xây dựng cấu trúc tổng quan (vĩ mô) của hệ thống hoặc quy trình, từ đó xâỵ dựng được cấu trúc ban đầu cho giải pháp.

Thiết kế là giai đoạn cụ thể hóa giải pháp dựa trên cơ sở của các định nghĩa đã được thiết lập trong giai đoạn mô tả chi tiết bằng các giải thuật/lưư đồ chức năng của hệ thông Các nhiều phương pháp được sử dụng trong giai đoạn thiết kế như: mô tả giải pháp theo hướng đồ thị (lưu đồ giải thuật, grafcet, ) hoặc qúy trình về chức năng và phản ứng của hệ thống điều khiển.

Giai đoạn này được xây dựng dưới góc nhìn của bộ điều khiển PLC đôi với hệ thông tự động hóa, giải pháp được tinh chỉnh từng bước cho đên khi đạt được mức chi tiết cho tới toàn bộ giải pháp.

Trường hợp hệ thống có các tác vụ điều khiển phức tạp, giải pháp thực hiện có thể cấu trúc thành các mô-đun phần mềm riêng lẻ, song song để giải quyết các tác vụ một cách tối nhất.

Có thể thực hiện đơn giản hóa giai đoạn thiết kế bằng cách sử dụng các tiêu chuẩn sau:

■ Xây dựng giải thuật với tiêu chuẩn IEC 60848 (Grafcet).

■ Biểu đồ lô-gic theo tiêu chuẩn IEC 60617 — 12 (Binary logic).

■ Bảng mô tả chức năng.

■ Định nghĩa các mô-đun phần mềm POU.

■ Danh sách chi tiết thiết bị (part list) và sơ đồ điều khiển.

Giai đoạn này thực hiện chuyển đổi các khái niệm giải pháp được thể hiện ở giai đoạn thiết kế vào chương trình điều khiển thông qua các ngôn ngữ lập trình IEC 61131 - 3.

■ Ngôn ngữ SFC: giúp hệ thống trở nên minh bạch và dễ lập trình nếu giai đoạn thiết kế sử dụng tiêu chuẩn IEC 60848.

■ Ngôn ngữ LD, FBD, IL: phù hợp cho những công thức lập trình cơ bản với các toán tử lô-gic và tín hiệu boolean.

■ Ngôn ngữ lập trình cấp cao ST: được sử dụng để tạo các mô-đun phần mềm với các công thức toán học, hoặc các giải thuật điều khiển (lặp vòng, PID, điều khiển mờ, ).

Nếu phần mềm lập trình PLC hỗ trợ giả lập (simulation) thì người lập trình nên giả lập từng POU rồi tới toàn bộ chương trình trước khi chạy thử hệ thống (commissioning).

1.3.4 Vận hành chạy thử chương trình

Giai đoạn này kiểm tra sự tương tác thực tế của hệ thống tự động và thiết bị ngoại vi (cảm biến, cơ cấu chấp hành) Trường hợp các tác vụ điều khiển quá phức tạp và liên động với nhau, người vận hành (commissioning) nên chạy thử hệ thống điều khiển một cách có hệ thông (kiểm tra từng bước, chu kỳ) Các lỗi hệ thông và lỗi chương trình dễ dàng tìm thấy và loại bỏ nhờ phương pháp này.

Những lưu ý cơ bản trong giai đoạn này:

■ Kiểm tra lại thiết kế (design) của hệ thông.

■ Kiểm tra và chạy thử từng chương trình con (sub-program).

■ Kiểm tra và chạy thử cả hệ thống.

1.3.5 Xây dựng tài liệu hệ thống (Documentation)

Một yếu tố quan trọng và cô't yếu của hệ thông là tài liệu, đây là một yêu cầu thiết yếu để duy trì và mở rộng hệ thông sau này Tài liệu được xây dựng bao gồm: sơ đồ mạch điện, phác thảo mô hình công nghệ, chương trình điều khiển Toàn bộ được lưu cả trên bản cứng với tài liệu đóng cuôn và bản mềm trên ƯSB/Ổ cứng.

Hệ thông tài liệu được xây dựng có thể:

■ Miêu tả các sự cố hoặc lỗi (nếu có).

■ Phác thảo mô hình công nghệ.

■ Sơ đồ đấu nối/mạch điện.

■ Bản in các chương trình điều khiển trong SFC, FBD,

■ Danh sách định địa chỉ của các mô-đun ngõ vào/ra.

■ Các tài liệu bổ sung khác (nếu có).

CÂU HỎI ÔN TẬP

1 PLC là viết tắt của cụm từ gì? Kể tên một vài ứng dụng của PLC trong thực tiễn hiện nay?

2 Cấu trúc của PLC bao gồm những thành phần gì?

3 Sự khác nhau giữa tín hiệu sô' và tín hiệu liên tục là gì?

4 Cấu trúc tài nguyên (software model) của IEC 61131 — 3 ảnh hưởng như thê nào tới việc lập trình PLC?

5 Hãy trình bày ưu/nhược điểm của các ngôn ngữ lập trình PLC theo IEC 61131 - 3.

6 Trình bày các giai đoạn (có thể) để xây dựng chương trình điều khiển PLC.

Chương 2 TỔNG QUAN VỀ BỘ ĐIỀU KHIEN SIMATIC S7 — 1500

Nội dung chương giới thiệu tới bạn đọc tổng quan bộ điều khiển SIMATIC S7 — 1500 bao gồm từ phần cứng tới phần mềm, các bô điều khiển SIMATIC S7 - 1500 thông dụng, cấu trúc dữ liệu, vùng nhớ, vòng quét và quá trình xử lý tín hiệu vào/ra của bộ điều khiển,

Chương này giúp bạn đọc hiểu về bộ điều khiển S7 - 1500 từ việc lựa chọn phần cứng, phần mềm, chức năng điều khiển trước khi áp dụng vào dự án thực tế.

TỔNG QUAN BỘ ĐIỀU KHIEN SIMATIC S7 - 1500

2.1.1 Sự lựa chọn toàn diện cho hệ thống tự động hóa

Bộ điều khiển SIMATIC S7 — 1500 được sử dụng với sự linh động và khả năng mở rộng phù hợp đôi với hệ thông tự động hóa cỡ trung và lớn.

Thiết kế chuẩn, tốc độ xử lý nhanh, hiệu năng cao, tương thích với các nhà máy, hệ thông tự động hóa đòi hỏi những chức năng về Safety, các ứng dụng điều khiển về truyền động, giải pháp dự phòng SIMATIC S7 — 1500 có tôc độ xử lý bit lên tới lns và khả năng mỡ rộng lên tới 32 mô-đun là một giải pháp hoàn hảo để lựa chọn bộ điều khiển PLC cho cả máy đơn lẻ (stand-alone) hoặc toàn bộ nhà máy.

Hình 2.1 Bộ điều khiển SIMATIC S7 sắp xếp theo ứng dụng

SIMATIC S7 - 1500 được tích hợp sẵn 01 cổng Proíĩnet để truyền thông mạng Proíĩnet Ngoài ra, SIMATIC S7 — 1500 có thể truyền thông Profibus, RS 232/422/485, Modbus RTU/TCP, CAN - Open thông qua các mô-đun mở rộng.

2.1.2 Chế độ bảo mật của SIMATIC S7 - 1500

Tính năng bảo mật giúp người dùng bảo vệ các truy cập trái phép vào CPU hoặc chương trình điều khiển như:

2.1.2.1 Chế độ bảo mật về quyền truy cập

CPU cung câp các cấp độ bảo mật để hạn chế truy cập trái phép vào các chức năng cụ thể Khi người dùng cấu hình các cấp bảo mật và cài đặt mật khẩu cho CPU, người dùng có thể giới hạn các chức năng và vùng nhớ truy cập khi không dùng tới mật khẩu.

Mỗi cấp cho phép một số chức năng nhất định có thể truy cập mà không cần mật khẩu Chế độ mặc định của CPU là toàn quyền truy cập và không có mật khẩu bảo vệ Để hạn chế quyền truy cập vào CPU, người dùng cấu hình thuộc tính Protection &

Security và cài đặt mật khẩu bảo mật.

Mật khẩu bảo vệ không áp dụng cho chương trình sử dụng các chức năng về truyền thông Truyền thông PLC - PLC (thông các tập lệnh) không bị giới hạn bởi các chế độ bảo mật trong CPU.

Bảng 2.1 Các cấp bảo mật của CPU thực hiện các bước sau: Device configuration — > chọn CPU —>

Properties Protection & Security chọn lựa chế độ bảo mật và cài đặt mật khẩu (password).

■ cấp bảo mật Miêu tả quyền truy cập

Full access Toàn quyền truy cập.

Cho phép HMI truy cập PLC và chỉ được đọc với TIA Portal Muôn toàn quyền truy cập phải có mật khẩu.

HMI access Chỉ cho phép HMI truy cập PLC Muốn toàn quyền truy cập phải có mật khẩu.

No access Bảo mật hoàn toàn kể cả HMI Muốn toàn quyền truy cập phải có mật khẩu. Để cấu hình chế độ bảo mật và đặt mật khẩu, bạn đọc có thể

Access level I Access I Access permi.T

@ Full access (no protection) V * V * Ld o Read access o HMI access o No access (complete protection)

Chế độ Know - how protection ngăn chặn truy cập trái phép vào các khối OB, FB, FC, DB Người dùng có thể tạo mật khẩu riêng biệt để giới hạn truy cập cho từng chương trình POU Nếu không có mật khẩu thì người dùng chỉ có thể đọc những thông tin như:

■ Tiêu đề khôi, ghi chú comment, và thuộc tính khôi hàm.

■ Thông tin các tham số vào/ra (IN, OUT, IN-OUT, Return).

■ Tag toàn cục trong chế độ tham chiếu cross references, tuy Để cấu hình chế độ Know - how protection, bạn đọc thực hiện thao tác sau đây: chọn Block cần bảo mật Properties - *

Protection - Protection- * Define và nhập mật khẩu.

Chế độ bảo mật chông sao chép (copy protection) cho phép người dùng bảo vệ sao chép chương trình trái phép Chế độ bảo mật cho phép người dùng liên kết các POU với thẻ nhớ

SMC hoặc CPU thông qua các chuỗi số (serial number) của thẻ SMC hoặc CPU. Để cấu hình chế độ Copy protection, bạn đọc thực hiện theo thao tác sau: chọn Block muốn bảo mật —> Properties — ► Protection — > Copy protection Chọn chế độ “ẩn” vào thẻ nhớ

Bind to serial number of the memory ca rd.

Bind to serial number of the CPU

Define passvxxd Enter serial number

Chọn chê độ copy protection và nhập chuỗi sô serial của thẻ nhớ SMC hoặc CPU khi tải chương trình xucmg CPU hoặc thẻ nhớ.

Lưu ý: Chế độ bảo mật/password là chế độ nhạy cảm cho nên bạn đọc cần chú ý khi sử dụng chê độ này.

2.1.3 Bộ điểu khiển trung tâm CPU S7 - 1500

Bộ điều khiển SIMATIC S7 - 1500 có nhiều sự lựa chọn cả về giá thành và tính năng đáp ứng cho các yêu cầu của hệ thông tự động hóa lẫn người sử dụiig.

2.1.3.1 Bộ điều khiển CPU S7 - 1500 chuẩn

Bộ điều khiển CPU S7 - 1500 chuẩn (Standard CPU): gồm có CPU 1511-1 PN đến CPU 1518-4 PN/DP đáp ứng cho các hệ

Bộ điều khiển Compact CPU S7 - 1500C

Bộ điều khiển CPU S7 - 1500C (Compact CPU): tích hợp I/O sẵn trên CPU bao gồm tín hiệu số, tương tự hoặc đếm/phát xung tốc độ cao Đáp ứng cho ứng dụng nhỏ và vừa.

Bảng 2.4 So sánh tính năng giữa các CPU Compact Tính năng CPU 1511C-1 PN CPU 1512C-1 PN I

Vùng nhớ lập trình 175 Kbyte 250 Kbyte

Vùng nhớ dữ liệu 1 Mbyte 1 Mbyte

Xử lý Bit 60 ns 48 ns

Ngõ vào/ra On-board 16 DI/16 DO 32 DI/32 DO

Cổng truyền thông 1 PN 1 PN

Bộ điều khiển CPU S7 — 1500F (Fail-Safety CPU): đáp ứng cho các ứng dung về fail-safe, đap ưng cac ưng dụng từ nhỏ đến

Bộ điều khiển CPU S7 - 1500T (Technology CPU)

Bộ điều khiển CPU S7 - 1500T (T - CPU): đáp ứng cho những yêu cầu về điều khiển truyền động và Safety trên cùng một CPU Một số lợi ích của việc sử dụng T - CPU là:

■ Mở rộng các tác vụ cho điều khiển truyền động liên quan tới GEAR và CAM được tích hợp trên TIA Portal.

■ Hiệu quả cao trong thiết kế hệ thông do tính đồ họa, bảng cấu hình và tối yêu hóa CAM trong TIA Portal.

■ Tương thích và tính toán được giá trị CAM trong quá trình hoạt động.

Hình 2.2 ứng dụng truyền động với các bộ điều khiển SIMATIC S7

Bộ điều khiển CPU S7 - 1500 ODK

Bộ điều khiển ODK CPU: cho phép người dùng lập trình bằng ngôn ngữ lập trình cấp cao như C/C++, JavaScript, NET, HTML để đáp ứng những yêu cầu cao trên thì Siemens thiết kế CPU 1518 ODK và SIMATIC ODK 1500S (Software Controller) với hỗ trợ của giao thức mở TIA Openness ODK.

Bộ điều khiển CPU S7 - 1500 SI PLUS

Bộ điều khiển SIPLUS CPU: SIPLUS S7 - 1500 là thế hệ mới nhất của bộ điều khiển SIMATIC S7 đã có trong TIA Portal Ngoài việc là bộ điều khiển mạnh, độ bền cao và cực kỳ thân thiện thì SIPLUS S7 — 1500 cũng đạt các tiêù chuẩn mới để tối đa hóa năng suất Ngoài ra, CPU có khả năng chịu môi trường nhiệt độ khắc nghiệt từ -40° đến +70 °C, môi trường ngưng tụ, ăn mòn, độ ẩm

Bộ điều khiển ET 200SP CPU và Open Controller

Bộ điều khiển CPU ET200 SP Distributed Controller: là một trong những bộ điều khiển của SIMATIC S7 — 1500 đem lại nhiều lợi ích đối với các nhà chế tạo máy OEM, nhà tích hợp với các ưu thế: giảm 30% không gian lắp đặt hệ thông và giá thành thấp hơn so với các bộ điều khiển chuẩn, mở rộng lên tới 64 mô-đun, nhất quán về thiết kế với các bộ I/O phân tán ET 200SP, tốc độ xử lý dữ liệu và lập trình tương đương CPU Standard từ CPU 1511-1 PN đến CPU 1515-2 PN Đây là giải pháp tối ưu cho những thiết kế về kỹ thuật và chi phí đầu tư.

Bảng 2.5 So sánh tính năng giữa các ET 200SP CPU

Vùng nhớ lập trình 100 Kbyte 200 Kbyte 1 Mbyte Vùng nhớ dữ liệu 750 Kbyte 1 Mbyte 5 Mbyte

Xử lý Bit 72 ns 48 ns 10 ns Đốì tượng TO 6 6 30

Bộ điều khiển Open Controller: có thể coi là trường hợp đặc biệt của ET 200SP CPU Bộ điều khiển phù hợp với các yêu cầu thiết kế gọn nhỏ, tính năng cao, khả năng xử lý dữ liệu linh hoạt Open Controller được tích hợp bao gồm 01 PLC dưới dạng Software controller, 01 máy tính IPC và bản quyền phần mềm chạy SCADA tối đa 2048 tag Đây là giải pháp cho hệ thống tích hợp với yêu cầu tối ưu về không gian lắp đặt, giá thành thấp cấu hình cao.

MÔ-ĐUN PHẨN CỨNG CỦA SIMATIC S7 - 1500

Để tăng tính linh hoạt trong ứng dụng thực tế các bộ điều khiển PLC S7 được thiết kế linh hoạt thông qua việc mô-đun hóa phần cứng Số lượng các mô-đun được sử dụng nhiều hay ít tuỳ theo từng bài toán cụ thể Cấu hình phần cứng SIMATIC S7 — 1500 có thể có các thành phần sau đây:

■ Mô-đun nguồn PM hoặc PS.

■ Mô-đun xử lý trung tâm CPU.

■ Mô-đun mở rộng SM.

■ Mô-đun chức năng TM.

■ Mô-đun truyền thông CP hoặc CM.

2.2.1 Mô-đun nguồn PM, PS và Rack

Rack: dòng PLC S7 - 1500 được lắp ráp trên một phần cơ khí để cố định CPU và các mô-đun gọi là Rack Chiều dài của rack phụ thuộc vào số lượng mô-đun mở rộng của CPU Rack của S7 - 1500 tích hợp sẵn đường DIN rail 25 mm để có thể gắn thêm các thiết bị như: thiết bị đầu cuối (terminal), CB hoặc rờ-le.

Mồ-đun nguồn câp PM: chuyển đổi điện 110/220 VAC sang 24 VDC để cung cấp nguồn cho CPU, cấp nguồn hệ thống, tín

52 hiệu I/O và nếu cần là cung cấp nguồn cho cảm biến và thiết bị thực thi.

Nguồn cấp cho hệ thông PS: có nhiệm vụ cấp nguồn nội cho các tín hiệu backplane bus Có thể sử dụng một hoặc nhiều nguồn cấp phụ thuộc vào cấu hình phần cứng và sô lượng mô- đun mở rộng Kết nôi với CPU và các mô-đun bằng U-connector.

Một số cấu hình cho SIMATIC S7 - 1500 có thể sử dụng như sau:

❖ Cấu hình 1: bao gồm PM, CPU và mô-đun mở rộng.

Mô-đun nguồn PM cấp nguồn cho hệ thông bao gồm CPU và các mô-đun mở rộng Nguồn nội để cấp cho tín hiệu backplane bus của mô-đun được cấp thông qua mạch chuyển đổi DC/DC từ 24 VDC sang 5 VDC tích hợp sẵn trong CPU hoặc IM Sô' lượng mô-đun mở rộng phụ thuộc vào tiêu thụ của mô-đun và tối đa 10 mô-đun.

Hình 2.3 Cấu hình CPU với nguồn cấp PM

❖ Cấu hình 2: bao gồm cả PM, PS, CPU và mô-đun mở rộng.

Nguồn nội của CPU chỉ cấp nguồn 5 VDC tôi đa 10 mô-đun qua tín hiệu backplane bus Để bộ điều khiển S7 - 1500 có thể mở

’ rộng lên 32 mô-đun thì người dùng bắt buộc phải sử dụng nguồn cấp cho hệ thống tín hiệu backplane bus là mô-đun nguồn PS.

Hình 2.4 Câu hình CPU với nguồn cấp PM và PS

Bộ nguồn PM có thể thay thế bởi các bộ nguồn SITOP với mục đích chính là cấp nguồn 24 VDC cho CPU và tải Bộ nguồn PS bắt buộc phải sử dụng nếu muôn tiếp tục truyền các tín hiệu giữa mô-đun tới CPU khi đã sử dụng hết nguồn nội CPU.

Bạn đọc có thể kiểm tra thông tin nguồn cấp trên phần mềm TIA Portal: CPU Properties —> General —> System power supply.

Hình 2.5 Nguồn cấp hệ thông CPU với PM và PS Đồng thời, bạn đọc có thể sử dụng phần mềm TIA Selection Tool để hỗ trợ tích toán khi thiết kế ngày từ ban đầu để lựa chọn CPU, mô-đun và cả nguồn cấp cho phù hợp với yêu cầu hệ thống.

2.2.2 Mô-đun xử lý trung tâm CPU

2.2.2.1 Bộ xử lý trung tâm CPU

Mô-đun 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 mô-đun lưu trữ chương trình điều khiển S7 - 1500 trong bộ nhớ Ngoài ra, một số mô-đun CPU compact có thể tích hợp các cổng vào/ra sô, tương tự

Bảng 2.6 Phân chia CPU dựa theo tính năng kỹ thuật

CPU 15 lx - xPN CPU chuẩn.

CPU 15 lx - xPN/DP CPU tích hợp truyền thông Profibus DP và truyền thông Profinet.

CPU 151xC - 1PN CPU dạng Compact tích hợp sẵn các I/O chức năng.

CPU 151xF - xPN/DP CPU hỗ trợ chức năng Fail Safety.

CPU 151xT - xPN/PD CPU hỗ trợ ứng dụng chuyển động.

CPU 151xR/H - xPN CPU hỗ trợ chức năng dự phòng.

2.2.2.2 Thẻ nhớ SIMATIC Memory Card

Thẻ nhớ SIMATIC Memory Card (SMC) là thẻ nhớ SD card được định dạng theo tiêu chuẩn của Siemens Dữ liệu được lưu trữ trên thẻ nhớ chỉ có thể đọc, ghi và xóa giông như bộ nhớ

RAM Tính năng này cho phép dữ liệu sao lưu (backup) mà không cần pin.

Bộ nhớ Load memory hoàn toàn được lưu trữ trên thẻ nhớ, có nghĩa CPU S7 — 1500 phải có thẻ nhớ SD Card mới hoạt động

Thẻ nhớ SMC được sử dụng chung cho cả bộ điều khiển S7 - 1200.

Thẻ nhớ SIMATIC MC có thể sử dụng như thẻ nhớ chương trình, thẻ nạp chương trình (transfer) cho S7 - 1200, lưu trữ dữ liệu data log hoặc nâng cấp firmware cho CPU

Tùy theo yêu cầu thực tế và dung lượng lập trình cho CPU để lựa chọn thẻ nhớ tương ứng Dung lượng mở rộng lên tới 32 GB.

Lưu ý: không dùng Windows để format định dạng thẻ nhớ trong bất kỳ trường hợp nào.

Hình 2.6 Chức năng của thẻ nhớ SMC với SIMATIC S7 — 1500

2.2.2.3 Màn hình hiển thị của CPU

Mỗi CPU S7 - 1500 đều được tích hợp thêm một màn hình hiển thị hỗ trợ chức năng chạy thử (commissioning) và chẩn đoán thông tin như:

■ Cài đặt địa chỉ IP, tên CPU mà không cần máy tính.

■ Chấn đoán thông tin hệ thông và cảnh báo.

■ Trạng thái hoạt động của CPU, tín hiệu ngoại vi, mã hàng MLFB, phiên bản firmware, số serial của CPU.

■ Menu hiển thị đa ngôn ngữ và các tin nhắn text (message).

■ Tháó/lắp màn hình không làm gián đoạn hoạt động PLC.

■ Thời gian hoạt động liên tục lên 50.000 giờ Nếu màn hình không sử dụng tự động chuyển sang chế độ mờ (dimming).

Bởi vì bất kỳ ai cũng có thể thao tác trên màn hình cho nên đế tăng cường chức năng bảo mật thì người dùng có thế đặt mật khẩu để tránh những truy cập trái phép: CPU -^Properties —>

2.2.3 Mô-đun mở rộng của SIMATIC S7 - 1500

Mô-đun mở rộng của SIMATIC S7 - 1500 được chia thành các kiểu mô-đun như sau:

■ Mô-đun tín hiệu SM: xử lý các tín hiệu I/O.

■ Mô-đun chức năng TM: xử lý các tín hiệu xung tốc độ cao, hoặc các ứng dụng đặc biệt như đầu cân (loadcell).

■ Mô-đun truyền thông CM/CP: hỗ trợ các chuẩn truyền thông Profibus, Profinet, Freeport, hoặc Modbus

Các mô-đun mở rộng được gắn sau CPU, gắn từ slot 2 đến slot31, và giao tiếp backplane bus với CPU thông qua U-connector.

2.2.3.1 Mô-đun tín hiệu SM

Mô-đun tín hiệu SM được sử dụng để đọc/xuất các tín hiệu sô hoặc tương tự với ngoại vi và gửi tín hiệu về bộ điều khiển PLC

Mô-đun tín hiệu SM được chia thành các nhóm như sau:

■ SM 521: mô-đun DI xử lý các tín hiệu ngõ vào số

■ SM 522: mô-đun DQ xử lý các tín hiệu ngõ ra sô.

■ SM 523: mô-đun tích hợp cả DI/DQ.

■ SM 526: mô-đun hỗ trợ cho các tín hiệu số Fail-Safe.

■ SM 531: mô-đun AI xử lý các tín hiệu ngõ vào tương tự với các loại tín hiệu khác nhau như dòng 4 — 20 mA, đọc tín hiệu áp 0 — 10 V, đọc tín hiệu RTD, TC

■ SM 532: mô-đun AQ xử lý các tín hiệu ngõ ra tương tự.

■ SM 534: mô-đun tích hợp cả AI/AQ.

2.2.3.2 Mô-đun chức năng TM

Các mô-đun chức năng TM được sử dụng để xử lý các tín hiệu đặc biệt như: đếm/phát xung tốc độ cao để xử lý các tín hiệu encoder, điều khiển vị trí, các tín hiệu loadcell Các mô-đun này được sử dụng bằng cách gọi các khôi hàm FB hoặc tập lệnh ứng dụng

■ Mô-đun TM Poslnput 2: mở rộng chức năng đếm xung tốc độ cao, đêm tần số, khoảng thời gian hoặc vận tốc, phát hiện vị trí hỗ trợ cho điều khiển truyền động, Hỗ trợ cho cả encoder tuyệt đôi (Absolute) và tương đôi (Incremental). o Với Encoder tương đối: theo chuẩn RS 422/TTL Tần số xung lên tới 1 MHz và lên tới 4 MHz nếu sử dụng chê độ quadruple. o Với Encoder tuyệt đôi: theo chuẩn SSI Tần sô xung lên tới 2 MHz.

■ TM Count 2x24V: mở rộng chức năng đếm xung tốc độ cao, đếm tần số, khoảng thời gian Hỗ trợ cho encoder tương đối

Tần sô' xung lên tới 200 KHz và lên tới 800 KHz nếu sử dụng chế độ quadruple.

■ TM Timer DIDQ 16x24V hay mô-đun Time—based IO: hỗ trợ các chức năng như ghi nhận thời gian (time stamp) ngõ vào/ra với độ phân giải tới 1 ps, đếm xung, lấy mẫu thời gian oversampling cho ngõ vào/ra, điều rộng xung PWM.

■ TM PTO 4: mở rộng chức năng phát xung tôc độ cao PTO cho RS422/TTL (5V) và 24V Tốc độ phát xung lên 1 MHz cho RS422 và 200 KHz cho 24V/TTL.

■ Siwarex WP521/WP522 ST: mô-đun cân mở rộng tính năng đọc tín hiệu loadcell.

2.2.3.3 Mô-đun truyền thông CP và CM

BỘ NHỚ CPU, ĐỊA CHỈ VÀ Kiểu DỮ LIỆU

Dữ liệu chương trình điều khiển của hệ thông tự động hóa được nằm trong các bộ nhớ khác nhau.

Dữ liệu ngoại tuyến (offline) của dự án (project) tạo trong STEP 7 được lưu trong ổ đĩa cứng của máy tính lập trình Dữ liệu trực tuyến (online) của dự án nằm trong bộ nhớ Load memory trên thẻ nhớ SMC Ngoài ra, còn có các bộ nhớ khác như: bộ nhớ làm việc (work memory), bộ nhớ lưu trữ dữ liệu (retentive memory) và các vùng nhớ khác được đặt trong CPU.

Bộ nhớ Load memory: không mất dữ liệu khi CPU bị mất điện (non - volatile memory) và được sử dụng để lưu trữ chương trình ứng dụng, dữ liệu và cấu hình PLC Khi một project được tải xuống CPU, nó sẽ được lưu tại bộ nhớ Load memory trong thẻ nhớ SMC.

Lưu ý: bộ điều khiển CPU S7 — 1500 cần phải có thẻ nhớ SMC. £NotsuppprtecfbyiSZll50QR/H

- Project information - Force/trace jobs - Symbols and comments

- Project information - Force/trace jobs - Symbols and comments

- Data Logs * * - Recipes * - Non-SIMATIC files (e.g PDFs)

Hình 2.7 Bộ nhớ của CPU S7 - 1500

Bộ nhớ Work memory: bị mất dữ liệu khi CPU mất điện, vùng nhớ này chứa chương trình và các khôi dữ liệu của CPU Bộ nhớ work memory được tích hợp vào CPU và không thể mở rộng Bộ nhớ work memory chỉ sử dụng trong hoạt động của CPU và chia thành hai vùng nhớ:

• ■ Vùng nhớ chương trình (Code work memory): chứa các phần liên quan đến thời gian chạy của chương trình ứng dụng. r

HHHHHK^entlve^mernor^JlHBHHHI 1 W&luEffiE® 11 The data backed up during the last power failure Is located In the retentive memory.

The executable part of the user program (code and data) that Is processed at runtime

Is located In the work memory.

Process Image inputs Process Image outputs

- Bit memory - SIMATIC time functions - SIMATIC count functions - Temporary local data

■ Vùng nhớ dữ liệu (Data work memory): chứa các phần liên quan đến khôi dữ liệu (M và DB) và đối tượng kỹ thuật TO.

Trong quá trình hoạt động, CPU có thể sao chép một phần, hoặc toàn bộ hàm chức năng của dự án từ vùng nhớ Load memory sang vùng nhớ Work memory để thực hiện.

Bộ nhớ Retentive memory: là vùng nhớ không mất dữ liệu, được sử dụng để lưu lại những dữ liệu cần thiết/mong muôn khi CPU bị lỗi hoặc mất điện Vùng nhớ này chỉ mất dữ liệu khi thực hiện:

■ Xóa toàn bộ bộ nhớ: memory reset.

■ Khởi tạo CPU về mặc định: reset to factory setting.

2.3.2 Kiểu dữ liệu của SIMATIC S7 - 1500

Hiểu được định dạng và kiểu dữ liệu của PLC là điều cần thiết trước khi người dùng bắt đầu viết chương trình Các biến nội M và khôi dữ liệu DB được sử dụng trong chương trình OB, FB, FC phải được khai báo đúng đế đảm bảo chương trình đúng theo mong muốn người lập trình.

Trong phần này, tác giả trình bày tổng quát về một số kiểu dữ liệu cơ bản thông dụng nhất được xây dựng dựa theo độ dài của các BIT (ví dụ: 1 bit, 8 bit, 16 bit, 32 bit, 64 bit ), dữ liệu được thể hiện và giải tích theo các kiểu định dạng (ví dụ: số' interger, chuỗi ký tự, ) như thế nào? Tầm giá trị của biến theo kiểu dữ liệu

Các kiểu dữ liệu cơ bản được chia thành các thành phần dữ liệu đơn, tôi đa là 64 bit Các biến của dữ liệu cơ bản có thể được khại báo và truy vấn trong các tất cả các khối bao gồm cả khối dữ liệu DB, khôi tổ chức OB, các hàm chức năng FB/FC.

Các kiểu dữ liệu cơ bản: BOOL, BYTE, WORD, DWORD, INT, DINT, REAL, DATE, TIME, S5TIME, TIME-OF-DAY và CHAR Các biến của kiểu dữ liệu cơ bản có thể được sử dụng như thông số ngõ vào/ra trực tiếp trong các tập lệnh với các ngôn ngữ lập trình.

Kiểu dữ liệu BOOL là một BIT đơn và chỉ nhận một trong hai giá trị đúng (TRUE) hoặc sai (FALSE).

! Name Data type Offset 1 Start value

Hình 2.8 Khai báo biến dữ liệu theo kiểu BOOL

Kiểu dữ liệu BYTE gồm 8 BIT Các BIT này không được sử dụng theo kiểu đơn lẻ, riêng biệt mà sử dụng như kiểu số thập lục phân 8 BIT (HEX) Một BYTE thể hiện giá trị bằng 2 sô HEX

Dữ liệu kiểu BYTE được khai báo theo định dạng B#16# trong đó B là biểu diễn cho BYTE, và 16 biểu biễn cho HEX.

Tầm giá trị Byte từ B#16#00 đến B#16#FF.

Hình 2.9 Định dạng của biến dữ liệu kiểu BYTE

Kiểu dữ liệu WORD gồm 16 BIT Một biến WORD có thể đơn giản chỉ là một chuỗi nhị phân 16 BIT với giá trị 1 hoặc 0, một số HEX với 4 số, một giá trị sô đếm BCD 3 sô (bộ đêm SIMATIC), hoặc 2 giá trị thập phân không dấu, mỗi giá trị được lưu trong 1 BYTE. a Sử dụng định dạng kiểu chuỗi 16 Bit

Một giá trị WORD được biểu diễn cho giá trị một chuỗi 16 BIT (16 BIT STRING), sử dụng bằng định nghĩa 2# Tầm của định dạng từ 2#0000_0000_0000_0000 đến 2#1111_11111_1111_1111

Sự lựa chọn này có thể được sử dụng cho các ứng dụng để so sánh với giá trị 16 BIT đầu vào với một giá trị 16 BIT mẫu, hoặc để thao tác với 16 số đầu ra.

b Sử dụng định dạng sô' HEX

Một biến dữ liệu kiểu WORD có thể sử dụng như một sô HEX bằng khai báo w#16# Trong đó w chỉ độ dài WORD, 16 chỉ sô HEX Một HEX tương ứng với 4 BIT, như vậy WORD có thế sử dụng với số HEX 4 số Tầm giá trị cho phép từ W#16#0 đến W#16#FFFF.

c Sử dụng cho bộ đếm SIMATIC

Kiểu dữ liệu DINT

Kiểu dữ liệu DINT biểu diễn cho những sô nguyên có dấu, sử dụng kiểu dữ liệu một DWORD Tầm giá trị cho phép từ -2,147,483,648 đến +2,147,483,647 Biến DINT được sử dụng khi các hoạt động nằm ngoài phạm vi của dữ liệu kiểu INT.

Kiểu dữ liệu REAL biểu diễn cho những số thực dấu chấm động (floating point), biến REAL được sử dụng để làm việc với những số lẻ, trong các phép tính hoặc đo lường thì yêu cầu phải sử dụng dấu chấm động Trong PLC S7, biến REAL được biểu diễn trong chuẩn IEEE 32 BIT định dạng dấu chấm động.

Kiểu dữ liệu DATE

Kiểu dữ liệu DATE được lưu trữ trong 1 WORD, đế biểu diễn giá trị của 01 ngày được định dạng IEC và khai báo DATE# hay D#

Kiểu dữ liệu TIME

Kiểu dữ liệu TIME được lưu trong 1 DWORD Kiểu dữ liệu TIME được khai báo theo các đơn vị: ngày (D), giờ (H), phút (M), giây (S) và mili giây (MS); với khai báo TIME# hoặc T# Các định dạng khai báo có thể sử dụng chữ hoa hoặc thường đều được, và không cần khai báo hết toàn bộ các định dạng Tầm giá trị cho phép từ TIME#-24D20H31M23S647MS đến TIME#+24D20H31M23S647MS.

2.3.2.10 Kiểu dữ liệu TOD (TIME-OF-DAY)

Kiểu dữ liệu TOD được lưu trong 1 DWORD Hằng sô' của TOD để sử dụng thì khai báo theo định nghĩa TOD# hoặc TIME_OF_DAỴ# sử dụng cho giờ, phút và giây trong ngày đó.

Kiểu dữ liệu CHAR được lưu trong 1 BYTE và biểu diễn cho các ký tự ASCII đơn Được sử dụng với các tập lệnh MOVE đế chuyển 2 hay 4 ký tự vào một gói tin

Kiểu dữ liệu S5TIME được sử dụng để biểu diễn cho giá trị cài đặt của bộ định thì SIMATIC Đây là định dạng 16 BIT giông như kiểu dữ liệu để lưu trữ trong thời gian đặt trước của bộ định thì STEP 5 Giá trị bắt đầu của S5TIME có thể là giờ (H), phút (M), giây (S) và mill giây (MS) với khai báo S5TIME# hoặc S5T# Không cần phải khai báo đầy đủ hết các tham sô' nếu không sử dụng.

Những kiểu dữ liệu được trình bày ở trên là những kiểu dữ liệu cơ bản được sử dụng nhiều nhất Ngoài ra, bạn đọc có thể tham khảo các kiểu dữ liệu cơ bản khác ở dưới bảng sau đây:

Bảng 2.7 Các kiểu dữ liệu cơ bản của SIMATIC S7 - 300/400/1500

SỐ bit Định dạng dữ liệu Tầm giá trị

Binary 2#0 đến 2#1111111111111111 Hex W#16#0 đến W#16#FFFF BCD c#o đến c#999

Hex Sô Định dạng dữ liệu Tầm giá trị

Bộ điều khiển SIMATIC S7 - 1500 hỗ trợ các kiểu dữ liệu 64 bit

Giới hạn trên: +/-3.402823e+38 1 Giới hạn dưới: +/-1.175495e-38 S5TIME 16 1 SõTime

1 S5T#0H0M0S10MS 1 đến S5T#2H46M30S0MS TIME Ị 32 IEC Time

1 T# - 24D20H31M23S648MS 1 đến T#24D20H31M23S647MS DATE ị 16 11 IEC Date 1 D#1990-l-l đến D#2168-12-31

TIME_OF_DAY 1 32 Time of day 1 TOD#0:0:0.0 đến

1 TOD#23:59:59.999 CHAR 1 8 ị ASCII 1 A, B, như: LWORD, LREAL, LINT, LTIME, LTOD, LDT Ngoài ra, còn hỗ trợ thêm các kiểu dữ liệu mới như: Sint (Short Integer) với định dạng số nguyên (Int) nhưng chỉ chiếm 8 bit.

Khi cần thực hiện những yêu cầu phức tạp hơn hoặc cấu trúc hơn thì bạn đọc có thể sử dụng những kiểu dữ liệu có cấu trúc theo bảng dưới đây:

Bảng 2.8 Các kiểu dữ liệu cấu trúc của SIMATIC S7

Kiểu dữ liệu Độ dài dữ liệu Tầm giá trị

DATE-AND-TIME 8 byte DT#1990-01-01-00:00:00.000 đẹn

STRING 2 + n byte Định dạng mã ASCII từ 0 đến 254

WSTRING 4 + 2n byte Định dạng mã ASCII từ 0 đến 16382

ARRAYtgiá trị thấp giá trị cao] of

■ [-32 768 32 767] of theo chế độ Chuẩn*.

theo chế độ Tốì Ưu

Kiểu dữ liệu này kết hợp nhiều kiểu dữ liệu khác nhau để tạo thành một tổ hợp cấu trúc dữ liệu thống nhất dành cho một đối tượng điều khiển cụ thể.

Các vấn đề liên quan tới kiểu dữ liệu cấu trúc sẽ được trình bày thêm khi nói về khôi dữ liệu DB với các ví dụ cụ thể.

■ Chế độ Chuẩn (Non-Optimized Access) cho phép người dùng truy vấn dữ liệu theo địa chỉ trực tiếp.

■ Chế độ Tổì Ưu (Optimized Access) cho phép người dùng truy vấn dữ liệu theo tên tag.

Vùng nhớ truy vấn dữ liệu

TIA Portal cho phép lập trình và truy vấn dữ liệu bằng Tag nhớ (Symbolic) Người dùng có thể tạo Tag nhớ cho địa chỉ trực tiếp (absolute), không phân biệt vùng nhớ toàn cục (global) hay cục

69 bộ (local) Để làm rõ hơn về các vùng nhớ địa chỉ trực tiếp bạn đọc có thể tham khảo bảng phân loại vùng nhớ dưới đây.

Bảng 2.9 Bảng phân loại vùng nhớ dữ liệu SIMATIC S7 — 1500

I (PH) Được sao chép dữ liệu từ tín hiệu ngõ vào vật lý khi bắt đầu quét chương trình.

Ix.y:P Đọc địa chỉ ngay lập tức từ ngõ vào vật lý

Có thể dùng chế độ Force với ngõ vào vật lý.

Chuyển dữ liệu tới tín hiệu ngõ ra vật lý khi bắt đầu quét chương trình.

Ngõ ra vật lý Qx.y:P

Ghi trực tiếp ngay lập tức tới ngõ ra vật lý

Có thể dùng chế độ Force với ngõ vào vật lý.

Lưu trữ dữ liệu/tham số trước khi đưa ra ngoại vi Có thể cài đặt Retentive memory đối với vùng nhớ này.

Vùng nhớ Tạm Local memory

Vùng nhớ được sử dụng để lưu trữ tạm thời trong các khôi OB, FB, FC Dữ liệu sẽ mất khi ngừng gọi khôi.

Khôi dữ liệu DB Được sử dụng theo định dạng vùng nhớ toàn cục, hoặc lưu dữ liệu và tham số cho khối hàm FB Có thể cài đặt để sử dụng chức năng Retentive memory đối với vùng nhớ này.

T Vùng nhớ cho bộ định thì (thời) SIMATIC. c Vùng nhớ cho bộ đếm SIMATIC.

■ Vùng nhớ toàn cục - Global memory: CPU cung cấp những vùng nhớ toàn cục như: I (input), Q (output), vùng nhớ nội M (memory), T (Simatic Timer), c (Simatic

Counter) Những vùng nhớ toàn cục có thể được truy cập bởi tất cả các khôi.

■ Khối dữ liệu DB: cũng là vùng nhớ toàn cục Ngoài ra, vùng nhớ DB nếu được 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ố của FB.

■ Vùng nhớ tạm - Temp (hay local): vùng 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ớ tạm được sử dụng cho các biến tạm (Temporary) 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ó Dữ liệu vùng nhớ bị xoá khi kết thúc chương trình.

Vùng nhớ I và Q của S7 - 1500 có thể truy xuất dưới dạng process image Để truy cập trực tiếp và ngay lập tức với ngõ vào/ra vật lý, có thể thêm “:P” Ví dụ: I0.0:P, Q0.0:P Chế độ cưỡng bức tín hiệu với Forcing chỉ có thể áp dụng cho các tín hiệu vào/ra vật lý.

2.4 CẤU TRÚC VÀ VÒNG QUÉT CHƯƠNG TRÌNH 2.4.1 Cấu trúc chương trình

Chương trình người dùng của S7 - 1500 có thể được lập trình với các cấu trúc khác nhau như:

Lập trình Tuyên Tính (Linear): toàn bộ chương trình nằm trong một khối tổ chức OB Main Cấu trúc tuyến tính phù hợp với những bài toán tự động nhỏ, không phức tạp ■

Lập trình Cấu Trúc (Structure): toàn bộ chương trình được chia thành nhiều chương trình con thực thi những nhiệm vụ chuyên biệt Lập trình cấu trúc phù hợp với những bài toán điều khiển nhiều tác vụ và yêu cầu phức tạp SIMATIC S7 — 1500 có 4 loại khối phù hợp cho lập trình cấu trúc như sau:

■ OB (Organization Block): khôi tổ chức có chức năng quản lý chương trình điều khiển Có nhiều khôi tổ chức OB với những chức năng khác nhau.

■ FC (Function): hàm chức năng là chương trình con Một chương trình ứng dụng có thể có nhiều FC.

■ FB (Function Block): khôi hàm chức năng giông như

FC nhưng đặc biệt có khả năng trao đổi lượng dữ liệu lớn với các chương trình khác Các dữ liệu này được tổ chức thành các khối dữ liệu riêng gọi là Instance Data block (iDB) Một chương trình ứng dụng có thể có nhiều FB.

■ DB (Data Block): khôi dữ liệu chứa các dữ liệu cần thiết để thực hiện chương trình giông như các vùng nhớ nội M, nhưng được tổ chức thành khối Một chương trình ứng

Hình 2.10 Lập trình cấu trúc với OB, FB/FC

Chương trình trong các khôi được liên kết với nhau bằng các lệnh gọi khôi, chuyển khôi Việc chương trình trong các hàm FC hoặc FB gọi khối được gọi là Nesting depth, tạm dịch gọi là lồng ghép các chương trình ứng dụng.

Ví dụ

Vòng quét chương trình

Chương trình điều khiển của PLC được thực hiện theo chu kỳ lặp gọi là vòng quét (Scan time) Để bạn đọc hiểu hơn về vòng quét cũng như quá trình hoạt động của CPU, thì tác giả giải thích quá trình hoạt động của CPU từ khi được bật nguồn lên.

I I Xuất dữ liệu tới PIQ ị

PHẦN MỀM VÀ NGÔN NGỮ LẬP TRÌNH

2.5.1 Phẩn mểm lập trình SIMATIC S7 - 1500

Năm 2012, Siemens chính thức giới thiệu đến người dùng bộ điều khiển SIMATIC S7 — 1500 cùng với phiên bản phần mềm tại thời điểm đó là TIA Portal V12. Đến nay, Siemens không ngừng cải thiện cả phần cứng PLC cũng như phần mềm TIA Portal để hỗ trợ tốt nhất cho người dùng trong quá trình thiết kế, lập trình hệ thông với nhiều lựa chọn về ứng dụng Phiên bản TIA Portal V17 là phiên bản mới nhất hiện nay.

SIMATIC S7 - 1500 lập trình bằng gói STEP 7 Professional trên nền tảng TIA Portal Tác giả gọi chung là TIA Portal.

2.5.2 Ngôn ngữ lập trình SIMATIC S7 - 1500

Bộ điều khiển PLC S7 - 1500 hỗ trợ 05 ngôn ngữ lập trình theo tiêu chuẩn IEC 61131 - 3 là:

■ STL (Statement List): ngôn ngữ lập trình phù hợp với trình biên dịch của chương trình (ngôn ngữ máy)

■ FBD (Function Diagram Block): ngôn ngữ lập trình phù hợp cho các mạch lô-gic.

■ LAD (Ladder): ngôn ngữ lập trình theo sơ đồ mạch Đơn giản, dễ hiểu, dễ chỉnh sửa và tiện lợi phù hợp cho những người bắt đầu và làm quen với các thiết bị điện.

■ S7 - SCL (Structured Control Language): ngôn ngữ lập trình theo dạng text, đây là ngôn ngữ trình cấp cao sử dụng nền tảng Pascal phát triển, gần gũi với tư duy của 1 người dùng.

■ S7 - GRAPH: ngôn ngữ lập trình phù hợp cho các chương trình tuần tự (sequence) Đối với người lập trình hệ thống ' tuần tự sử dụng Ladder hoặc SCL thì Graph là một phương pháp thay thê phù hợp nhất Ị

Với các yêu cầu lập trình theo tiêu chuân IEC 61131-3 thì các i ngôn ngữ lập trình của SIMATIC S7 — 1500 đáp ứng như thê nào? Bạn đọc có thể xem thêm bảng thông tin so sánh dưới đây:

Bảng 2.10 So sánh ngôn ngữIEC 61131-3 và SIMATIC S7

FBD - Function Block Diagram FBD

SFC - Sequential Function Chart S7 - GRAPH

Bạn đọc tham khảo thêm tài liệu so sánh giữa ngôn ngữ lập trình theo tiêu chuẩn IEC 61131 — 3 va SIMATIC PLC S7 trong tài liệu “Standards Compliance according to IEC 61131-3”.

CÂU HỎI ÔN TẬP

1 Bộ điều khiển SIMATIC S7 — 1500 phù hợp cho ứng như thế nào?

2 Thẻ nhớ SMC của SIMATIC S7 - 1500 có thể sử dụng V(JĨ những chức năng gì? Có bắt buộc phải sử dụng hay không?

3 Mô-đun nguồn PM và PS có chức năng gì? Có thể thay thế mô-đun nguồn PS cho PM được không? Tại sao?

4 Để lưu trữ dữ liệu vùng nhớ với chức năng Retentive có thể sử dụng những vùng nhớ nào? Hãy trình bày cách thực hiện.

5 Bộ điều khiển SIMATIC S7 — 1500 truy xuất theo Tag nhớ hay địa chỉ trực tiếp?

6 Để thực hiện các tác vụ yêu cầu về chuyển động thì có thể sử dụng các bộ điều khiển S7 - 1500 nào?

7 Bộ điều khiển SIMATIC S7 - 1500 hỗ trợ bao nhiêu ngôn ngữ lập trình? Kể tên các ngôn ngữ trên.

8 Trình bày các bước để cài đặt mật khẩu cho CPU và bảo mật cho các khôi FB/FC.

THIẾT LẬP KẾT NÔÌ TIA PORTAL VỚI SIMATIC S7 - 1500

THIẾT LẬP IP CHO MÁY TÍNH VÀ S7 - 1500

Để máy tính lập trình kết nốì với S7 - 1500, người dùng cần sử dụng kết nôì Ethernet thông qua địa chỉ IP của các thiết bị với điều kiện là các thiết bị phải cùng lớp mạng (subnet) với nhau.

3.1.1 Các bước cài đặt địa chỉ IPv4 cho máy tính Để thiết lập địa chỉ IP cho máy tính thực hiện các thao tác sau:

Bước 1: chọn Start -> Control Panel -> All Control Panel Items

-> Network connections -> Local Area Connection -> Properties.

Bước 2: chọn giao thức truyền thông giao tiếp với PLC: internet

Bước 3: cài đặt địa chỉ IP cho máy tính: chọn Use the following

IP addres -> đặt địa chỉ IP address: 192.168.0.X (với X khác địa chỉ IP của PLC) -> chọn Subnet mask là 255.255.255.0 —> OK ->

3.1.2 Giới thiệu mạng truyền thông Ethernet

Hiện nay với xu hướng tất các kết nối hướng tới OPC UA, điện toán đám mây, IoT, thì tác giả khuyên bạn đọc nên hoàn thiện kiến thức căn bản về hệ thông máy tính, hoặc CCNA ở mức độ cơ bản.

Phần này, tác giả trình bày cơ bản về địa chỉ MAC, IP, Subnet, Gateway (Router) và mối quan hệ giữa địa chỉ IP, router, và subnet để giúp bạn đọc hiểu hơn về thiết bị mạng.

3.1.2.1 Địa chỉ MAC Địa chỉ MAC là địa chỉ phần cứng bao gồm một dải thông tin thay đổi (variable) và một dải thông tin cố định (permanent)

Phần thông tin cố định gọi là địa chỉ cơ bản của MAC cho biết thông tin nhà sản xuất (Siemens, Cisco, 3COM, ).

Mỗi địa chỉ MAC là duy nhất trên thế giới và không bao giờ có hâi địa chỉ nào trùng nhau ở bất cứ đâu.

3.1.2.2 Địa chỉIPv4 Địa chỉ IPv4 là một số duy nhất được gán cho một thiết bị trong một mạng Các thiết bị mạng có thể là máy tính, router, card mạng Kiểu địa chỉ này gọi là địa chỉ phần mềm (software).

Tầm giá trị của địa chỉ IPv4: địa chỉ IP bao gồm 04 con sô thập phân có giá trị từ 0 đến 255, cách nhau bởi một dấu chấm (.).

Thường thì mỗi tổ chức, công ty hoặc quốc gia đựơc InterNIC cấp cho một số địa chỉ IP nhất định Cách quản lý tốt nhất là chia thành các mạng con và kết nối với nhau bởi router Những mạng con như thế gọi là Subnet. Điều quan trọng cần nhớ là mỗi Subnet vẫn là một phần của mạng nhưng nó cũng cần được phân biệt với các Subnet khác bằng cách thêm vào một định danh gọi là địa chỉ Subnet.

Không phải tất cả các mạng đều cần Subnet, bởi vậy không cần sử dụng Subnet - trong trường hợp này gọi là sử dụng Subnet mask mặc định (default Subnet mask).

Router hay thiết bị định tuyến hoặc bộ định tuyến, là thiết bị mạng dùng để chuyển các gói dữ liệu qua một liên mạng và đến thiết bị đầu cuối, thông qua một tiến trình gọi là định tuyến Định tuyến dữ liệu xảy ra ở tầng 3 (network) của mô hình OSI. Địa chỉ của Gateway (Router): địa chỉ IP bao gồm 04 số thập phân có giá trị nằm trong tầm 0 đến 255, cách nhau bởi dấu chấm (.) Ví dụ: 192.168.0.1.

3.1.2.5 Mối quan hệ giữa địa chỉ IP, router và subnet Địa chỉ IP và địa chỉ router chỉ khác nhau tại một vị trí số “0” nằm trong subnet.

Ví dụ: địa chỉ subnet là 255.255.255.0, địa chỉ IP là 141.30.0.5 và địa chỉ router là 141.30.128.1. Địa chỉ IP và địa chỉ router cần phải có một giá trị duy nhất khác nhau trong số thứ 4 của số thập phân Trong ví dụ trên thì vị trí thứ 3 đã khác Do đó, ví dụ trên cần phải sửa lại theo một trong ba cách sau:

3.1.3.Thiết lập kết nối giao tiếp PG/PC

Giao tiếp PG/PC (interface) khá quan trọng trong truyền thông giữa PLC S7 với máy tính lập trình hoặc HMI/SCADA nói chung Có khá nhiều ý kiến cho rằng việc thiết lập ban đầu là không cần thiết vì trong quá trình kết nối PLC vẫn có thể thiết lập Tuy nhiên, tác giả luôn lựa chọn việc thiết lập kết nối PG/PC interface ban đầu. Để thiết lập kết nôi giao tiếp PG/PC interface thực hiện thao tác sau:

Bước 1: chọn Start —> Control Panel -> All Control Panel Items

—> chọn chế độ quan sát View by Large icons -> Set PG/PC Interface.

Bước 2: chọn Access Point of Application là S7ONLINE (STEP 7).

Bước 3: chọn Interface parameters used với các miêu tả trong danh sách liệt kê -> chọn card mạng sử dụng để kết nối với bộ điều khiển PLC OK.

Access Path I LLDP / DCP I PNIO Adapter I Info I

Access Point of the Application:

|S7O.NUNE(STEP7) -> lntel(R) Bhemet Connection (2) I21HM jj

|lntd(R) Ethernet Connection (2) 1213-LM.Tl

H01ntd(R) Ethernet Connection (2) I2T A HQ lntd(R) Ethernet Connection (2) 121^ lEQI lntd(R) Ethernet Connection (2) I2T QQ9 lntd(R) 1210 Gigabit Network Conne v

(Parameter assigment for the IE-PG access to your NDIS CPs with TCP/IP Protocol (RFC 1006))

Bước 4: kiểm tra trạng thái kết nối: chọn Diagnostics —> Test nếu không có báo lỗi thì giao tiếp có thể đã sẵn sàng —> OK -> OK.

Thiết lập giao thức kết nốì mặc định PG/PC cho phần mềm TIA Portal như sau:

Bước 1: mở phần mềm TIA Portal -> Project view.

Bước 2: sau khi giao diện project view của TIA Portal —> Option

Ltanage general station description files (GSD) Start Automation u'cense Manager

Bước 3: cài đặt giao tiếp PG/PC mặc định: Settings -> Online & diagnostics —> Default connection path for online access:

■ ■ Type of the PG/PC interface: PN/IE.

■ PG/PC interface: chọn card mạng dùng kết nối với thiết bị. Ị Default connection patfl for online access _

; j Default connection path for online access ■' Í

Type of the PG/PC interface: It-PN/IE A

LÀM VIỆC VỚI STEP 7 PROFESSIONAL V1x

TIA Portal hỗ trợ người dùng hai cách cấu hình cho S7 - 1500 và các bộ I/O phân tán ET200 MP/SP:

■ Cấu hình chuẩn dựa theo phần cứng.

■ Cấu hình chế độ tự dò phần cứng với Unspecified.

3.2.1 Tạo Project với chế độ câu hình chuẩn

Với chế độ này, người dùng phải đọc chính xác thông tin của CPU, các mô-đun mở rộng để thực hiện khai báo đúng phần cứng.

Bước 1: khởi động chương trình TIA Portal —* Start —► Create New Project để bắt đầu quá trình khởi tạo project mới Thao tác trên làm xuất hiện giao diện với các thông tin của một project mới như: tên project — Project name; đường dẫn dế lưư project — Path; tên người khởi tạo project - Author; thông tin project — Comment Sau khi điền đầy đủ thông tin về Project —> chọn Create để tiếp tục quá trình khởi tạo Project.

* Bạn đọc sẻ được tim VT^C vói PLC S7 -1500 với tít cả ngỏn ngữ lập trinh: LAO * FBD - sa - GRAPH • su

Các kiẽn thúc từ ca bán: Lfr-gic, Timer Counter Câc t4p lệnh MÙ lý sổ học, Analog Sử dụng PLC 57 -1500 nj lý các tin hiẻu đọcíphát xung tỗc độ cáo: HSC PTOZFVM, PIO truyền động drives/ servo Kiẽn thuc liên quan túi truýén thông PROHNET OPC

Bước 2: lựa chọn cấu hình CPU: Device & Networks —> Add new device, điền các thông tin CPU cần khai báo tại cửa sổ Add new device: tên thiết bị - Device name; thông sô' kỹ thuật và CPU được sử dụng —> chọn OK để hoàn thành.

Bước 3: thêm mô-đun cần thiết theo cấu hình phần cứng của hệ thống: Device configuration —> Device view —► Hardware catalog

—> lựa chọn mô-đun cần thiết và đưa vào Rail của PLC.

Bước 4: sau khi khai báo cấu hình phần cứng PLC và các mô- đun mở rộng, chức năng Chọn biểu tượng thanh công cụ để lưư trữ thông tin phần cứng đã khai báo.

Bước 5: mở giao diện lập trình ứng dụng để viết chương trình điều khiển PLC: Project tree —ằ Devices —> PLC —ằ Program blocks —* Main [OBI] để lập trình.

3.2.2 Tạo Project với chế độ Unspecified

Chế độ này cho phép phần mềm tự động phát hiện — detect ra toàn bộ cấu hình phần cứng của PLC đã được.lắp đặt một cách chính xác và đầy đủ, giúp người dùng tránh được những sai sót trong quá trình khai báo các mô-đun phần cứng.

Lưu ý: khai báo đúng phiên bản (version) CPU trước khi thực hiện.

Bước 1: khởi tạo Project: TIA Portal —► Start —> Create New Project.

Bước 2: lựa chọn cấu hình Unspecified CPU 1500 cho project:

Device & Networks —> Add new device —> SIMATIC S7—1500 —>

Unspecified CPU 1500 -> 6ES7 5XX-XXXX-XXXX -> Version OK để hoàn thành.

Bước 3: bảng giao diện “The device is not specified” hiển thị và chọn detect để tìm cấu hình của CPU và các mô-đun.

The device is not specified.

— Please use the Hardware catalog to specity theCPU,

— or detect theconfiguration of the connected device.

Bước 4: cửa số giao diện Hardware dectection for PLC hiện ra

Chọn Type of PG/PC interface là PN/IE, chọn PG/PC interface là card mạng internet (cổng RJ45) của máy tính Hệ thống tự dò ra thiết bị tương ứng.

I Hardware detection for Ãuto_Dctcct

-Type of the PG/PC interface:

PG/PC interface: ||B Siemens PLCSIM virtual Ethernet Adapter 1^1 compatible accessible nodes of the selected interface:

1 Device I Device type I Interface type I Address myplc.profinetinterfac—jCPU 1512C-1 PN i 'PN/IE ■ Network view.

Bước 2: khai báo thiết bị I/O device: Network view —> Hardware catalog —> Distributed I/O —> ET 200SP hoặc I/O phân tán khác

—> Interface modules —>■ PROFINET —► tùy theo phần cứng thực tê và yêu cầu cụ thể đế lựa chọn, ví dụ chọn IM 155-6 PN HF —> giữ chuột trái và kéo đưa vào Network view.

IM 155-6 PN HF Not assigned

Lưu ý: bạn đọc nên đổi tên các IO device giúp việc quản trị sau này.

Bước 3: gán I/O device tới IO controller: chọn vị trí Not assigned —> chuột phải —ằ chọn Assign to new IO controller —> bảng thông báo Select IO controller hiển thị —> chọn IO controller —ằ OK.

Kết quả nhận được như sau:

Bước 4: khai báo địa chỉ IO device: chọn RemotelO —> Device view —> RemotelO —> Properties —> General —> Ethernet address

■ Synchronize router settings with IO controller', cài đặt cho IO device cùng lớp mạng với IO Controller.

■ Generate PROFINET device name automatically ’, phần mềm tự đặt tên cho IO device Nếu người dùng muốn đặt tên lại thì bỏ dấu lựa chọn và đặt tên tùy chọn.

Bước 5: khai báo mô đun I/O tương ứng' vrtí

" J' _ gvơl phần cứng thực tế: chọn RemotelO -> Device view —chon eáp

• • 1 cac mô đun tương ứng với thiết kế.

Các mô-đun (sub module) của ET 200SP kết nôi với nhau thông qua các Base Unit Màu của các Base Unit phải được khai báo đồng bộ giữa phần mềm và phần cứng thực tế thông qua Potential group.

■ Đế màu sáng gọi là light base unit.

■ Đế màu đen gọi là dark base unit.

■ Kết thúc các sub-module bằng Server module để báo kết thúc khai báo phần cứng của ET 200SP.

Bước 6: biên dịch và kiểm tra kết nối phần cứng (nếu có).

3.2.3.2 Cẩu hình I/O phân tán bằng hardware detect

Phiên bản TIA Portal V15 trở lên hỗ trợ tính năng hardware detect cho phép quét toàn bộ hệ thông mạng để dò tìm các bộ I/O phân tán một cách nhanh chóng và chính xác.

Bước 1: kiểm tra phần cứng bằng Hardware detection: Online

—> Hardware dectection —> PROFINET devices from network

* Extended go online— jjc Go offline

BO Simulation Stop runtịme/simulatĩon s Download to device Extended download to device

Download and reset PLC program Download user program to Memory Card

Snapshot of the actual values Load snapshots as actual values Bị Load start values as actual values

Ki Upload from device (software) Upload device as new station (hardware and software)

Bước 2: dò các bộ ET 200 trong mạng PROFINET: chọn card mạng PG/PC interface —> Start search để quét tìm các I/O phân tán

Bước 3: thêm bộ I/O phân tán ET 200 vào hệ thống mạng: chọn bộ ET 200 SP/MP —► Add device để thêm thiết bị vào hệ thống mạng.

90 Để lựa chọn Base Unit, đặt tên cho thiết bị, kết nôi với PLC thì làm tương tự như Cách 1.

Lưu ý: trong quá trình thực hiện detect hardware nếu xảy ra lỗi hoặc chỉ cấu hình được interface ET 200 thì bạn đọc thực hiện factory reset ET 200SP/MP và thử lại.

3.2.3.3 Gán tên (assign name) cho thiếtbị IO Device Để thiết bị Proíĩnet 10 có thể hoạt động thì cần gán tên cho thiết bị và địa chỉ IP.

Bước 1: chọn giao diện IO device tiến hành gán tên: IO device_l —> chuột phải —> Assign device name.

Bước 2: cài đặt trong cửa sổ Assign PROFINET device name:

■ PROFINET device name: tên của thiết bị.

■ Chọn card mạng PG/PC Interface: chọn chuẩn là PN/IE.

■ Chọn Update list để quét tất cả thiết bị phù hợp yêu cầu.

Bước 3: gán tên thiết bị sau khi đã quét ra được thiết bị (theo địa chỉ MAC): chọn thiết bị —► Assign name —> chờ hệ thống thực hiện.

Accessible devices in the network:

Sau khi thực hiện xong thì kết quả nhận được như sau:

I IPaddress MAC address Device PRO Fl NET device name Status fk 0.0 DU 28-63-36-6F-76-3 ET200SP iodevice_1 Q OK

■ 3 ;U> J 3 I Id _ n Fl r Update list 1 1 Assign name 1

Online status information: o Search completed 1 of 7 devices VW re found.

Q The PROFINET device name "io device_r was successfully assigned to MAC address “28-63-36-6F-76-36". uJL IB IL>1

Bước 4: chọn Close để đóng giao diện và tải chương trình PLC.

KẾT NÔÌ SIMATIC S7 - 1500 VỚI TIA PORTAL

Trong phần này, chúng ta cùng tìm hiểu từng phần từ cài đặt địa chỉ IP cho CPU, tải chương trình xuông PLC hoặc sao lưu chương trình từ PLC về máy tính.

Lưu ý: một số khái niệm bạn đọc không được nhầm lẫn để gây ra những sai lầm đáng tiếc trong quá trình vận hành như:

■ Download: là quá trình tải chương trình xuống PLC.

■ Upload: là quá trình sao lưu chương trình từ PLC về máy tính.

3.3.1 Cài đặt địa chỉ IP cho SIMATIC S7 - 1500 Để cài đặt địa chỉ IP cho S7 — 1500, người dùng có nhiều cách và nhiều công cụ phần mềm (tool) để thực hiện như:

■ Phần mềm SIMATIC Automation Tool.

■ Màn hình hiển thị của CPU S7 - 1500.

Bạn đọc có thể tự tìm hiểu các phần mềm này và cách sử dụng trong website support industry của Siemens Trong nội dung sách, tác giả chỉ trình bày cách sử dụng phần mềm TIA Portal.

Bước 1: mở phần mềm TIA Portal —> chọn tab Project View.

Bước 2: chọn kết nôi Online & Diagnostics để kiểm tra thông tin CPU: Project tree —> Device Online accesses —> Network Connection (Card mạng sử dụng để giao tiếp với PLC) -ằ Update accessible devices —> MAC = Online & Diagnostics.

Gâ Online access f Display/hide interfaces Cj) Intel(R) 82579LM Gigabit Network Connection Ẵ? Update accessible devices Display more information

X Cut Ịs| Copy ctrl+x ■ ctrt+c

0 Go online CỪI+K iff Go online Ctrl+M

■S3] Online & diagnostics Ctri+D II EJi Search in project Ctrl+F

Cross-references F11 l^ Properties Alt+Enter

Lưu ý: nêu PLC có địa chỉ IP được cài đặt sẵn thì người dùng sẽ thấy địa chỉ đó thay cho địa chỉ MAC.

Bước 3: cửa sổ giao diện Online & Diagnostics hiện ra, tiếp tục thực hiện các thao tác sau để gán địa chỉ IP cho CPU S7 — 1500:

Functions Assign IP address —> IP address chọn là:

192.168.0.1 -> Subnet mask chọn là: 255.255.255.0 -y Assign IP address.

3.3.2 Hướng dẫn tải chương trình xuống PLC

Bước 1: mở chương trình muôn tải xuông PLC thực hiện thao tác sau: Project tree Devices -> chọn CPU -> Online —>

Download to device (phím tắt Ctrl + L hoặc biểu tượng vt -X 1 o c ca in p u

Go online Extended go online—

Download and reset PLC program Download user program to Memory Card

Snapshot of the actual values ÌÝ Device configure Load snapshots as actual values

Bị Load start values as actual values

K Upload from device (software) Upload device as new station (hardware ạ nd software)—

Backup from online device Hardware detection HM Device maintenance Ịfì Accessible devices— u Start CPU is Stop CPU

& rì Tự dộng hóa PLC.57^1!

Bp Add new device A Devices & networks

► 3 Software units Program blocks if Add new bio<

Oil Technology objel External source1 ea PLCtags BẼ) PLGdata types

Which and force Online backups ■ Q Traces B3 OPCUAcommur.

Ctrl+Shift+E Ctri+Shfft+Q Ctrl+D

Bước 2: cửa sổ Extended download to device hiển thị, chọn

Type of PG/PC interface là PN/IE, PG/PC interface là card

95 mạng máy tính (RJ45) Chọn show all compatible devices nếu máy tính tìm không thấy thiết bị.

Bước 3: chọn Load để tiếp tục quá trình Bảng giao diện hiển thị Load preview -> chọn Target

■ Device configuration là Download to device.

Bước 4: cửa sổ Load results hiển thị, chọn Start all để sau khi tải chương trình xong thì CPU chuyển trạng thái RUN (Start module) Chọn Finish để hoàn thành quá trình.

3.3.3 Hướng dẫn sao lưu chương trình về máy tính Bước 1: tạo Project hoặc mở project muốn lưu chương trình PLC.

Bước 2: lựa chọn sao lưu chương trình PLC cả phần cứng và phần mềm.: Online -> Upload device as new station

Go online 0 Extended go online—

Stop runtime/simulation Ị B Download to device Extended download to device—

Download and reset PLC program Download user program to Memory Card

Snapshot of the actual values Load snapshots as actual values B| Load start values as actual values K] Upload from device (software)

Bước 3: thực hiện tìm kiếm thiết bị qua địa chỉ IP hoặc MAC:

■ Type of the PG/PC interface: chọn giao thức PN/IE.

■ PG/PC interface: card mạng máy tính liên kết PLC.

■ Chọn Start search để tìm kiếm thiết bị tương ứng.

Bước 4: chọn Upload để tiếp tục và đợi quá trình hoàn thành.

Bước 5: thực hiện biên dịch chương trình và lưư lại chương trình.

3.3.4 Hướng dẫn nâng cấp firmware CPU

Các phiên bản phần mềm TIA Portal mới hoặc những phiên bản firmware CPU S7 - 1500 cao có hỗ trợ tính năng mới mà các phiên bản trước đó không hỗ trợ, đó cũng là lý do yêu cầu người dùng phải nâng cấp firmware cũ lên firmware phù hợp với yêu cầu hệ thông Có 4 cách nâng cấp firmware CPU như:

■ Sử dụng thẻ nhớ SMC.

■ Sử dụng phần mềm SIMATIC Automation Tool.

■ Sử dụng chức năng Webserver của S7 - 1500.

■ Sử dụng chức năng Online & Diagnostic của TIA Portal.

Tuy nhiên, tác giả chỉ trình bày 2 cách tiện lợi và phù hợp cho bạn đọc khi làm việc với TIA Portal, đó là:

■ Sử dụng chức năng Webserver của CPU S7 - 1500.

■ Sử dụng chức năng Online & Diagnostic của TIA Portal.

3.3.4.1 Nâng cấp firmware thông qua webserver Để nâng cấp firmware CPU S7 — 1500 chúng ta cần thực hiện hai thao tác chính:

■ Kích hoạt chức năng webserver.

■ Nâng cấp firmware CPU thông qua webserver. a Kích hoạt chức năng Web server của CPU Bước 1: cấu hình CPU đúng mã thiết bị và firmware hiện tại.

Bước 2: chọn cấu hình phần cứng PLC để bật chức năng web server: Device configuration —> CPU —► Properties —► Web server.

Bước 3: chọn và kích hoạt webserver: ’’Active Web server ".

Bước 4: chọn OK để xác nhận Tạo quyền admin.

J General II 10 tags II System constants II Texts I _

► Pulse generators (PTD/PWM) Startup

Cycle Communication load System and clock memory SIMATC Memory Card

General Automatic update User management Security watch tables

► User-defined pages Entry page Overview of interfaces

Activate web server on this module pi) Permit access only with HTIPS

Bước 5: biên dịch phần cứng CPU (compile) và tải xuống CPU. b Nâng cấp firmware CPU thông qua webserver

Bước 1: tải firmware cần cập nhật trên website của Siemens và giải nén vào thư mục trong máy tính.

Bước 2: mở trình duyệt web và nhập địa chỉ IP của CPU.

Bước 3: khi giao diện trang web xuất hiện chọn Enter.

Bước 4: đăng nhập vào CPU trước khi cập nhật firmware Chọn tài khoản là admin rồi chọn Log in để đăng nhập.

Bước 5: chọn nút nhấn Update Firmware và chuyển CPU sang trạng thái stop.

Bước 6: chọn “Browse ” để chọn đường dẫn tới thư mục chứa tập tin cập nhật firmware Trong tập tin FWUPDATE.S7S người dùng cần chọn tập tin mở rộng với đuôi “.upd”.

Bước 7: chọn Load để bắt đầu quá trình Thông báo “Loading file Please wait.” sẽ hiển thị trong xuất quá trình cập nhật và đèn RUN/STOP sẽ sáng còn đèn MAINT sẽ chớp tắt.

Bước 8: khi hoàn thành chỉ còn đèn RUN/STOP sáng Chọn OK để CPU chuyển sang chế độ RUN.

Lưu ý: một vài phiên bản firmware và mã CPU mới để tránh các thao tác nhầm lẫn của người dùng thì chức năng firmware update này có thể bị tắt đi Người dùng muốn cập nhật firmware CPU có thể sử dụng chức năng Online & Diagnostic.

3.3.3.3 Cập nhật firmware thông qua Online & Diagnostic

Bước 1: thực hiện Online & Diagnostic.

Bước 2: chọn đường dẫn tới tập tin cần cập nhật: Functions —>

Firmware update —> Firmware loader —► Browse —> chọn đường dẫn tới thư mục chứa tập tin —> Run update.

Firmware file: leasers IKÝ TrãnlDesktopl6ES7SĨ>1 ALOƠOABO_V1851FVAJPDAĨE.S7516ES7 513-1ALOO-OABO VO1X)8P5.upd Firmware version: ị V 1.8.5 j

Suitable for modules ttãth: Article number Firmware version and higher

6ES7 513-1ALOO-OASO No restriction

0 Ifon firmware after update Ị Run update Ị

Bước 3: chờ quá trình ửập nhật firmware mới báo thành công và chuyển qua trạng thái Run để bắt đầu lập trình PLC.

3.3.5 Hướng dẫn đưa CPU về trạng thái ban đầu Đưa CPU về trạng thái ban đầu hay reset to factory setting giúp CPU trở lại trạng thái gốc khi được xuất xưởng Điều này được áp dụng khi có những sự cố xảy ra như:

■ Lỗi khi nâng cấp firmware phần cứng.

■ Tải chương trình xuống PLC nhưng bị rớt mạng, đứt dây

■ Một số tình huống cụ thể tùy thuộc yêu cầu của người dùng. Để thực hiện đưa CPU về trạng thái ban đầu thực hiệri các bước sau:

Bước 1: mở phần mềm TIA Portal -> chọn tab Project View

Bước 2: chọn kết nối Online & Diagnostics để kiểm tra thông tin CPU: Project tree -> Device -> Online accesses —ằ Network Connection (đây là Card mạng sử dụng để giao tiếp với PLC) ->

Update accessible devices -> MAC = -> Online & Diagnostics.

Bước 3: chọn chức năng Reset to factory settings: Functions

—> Reset to factory settings -> Retain IP address -> Reset.

Bước 4: xác nhận cho phép thực hiện Reset factory với OK.

Ri'srt to fat toi'v MltiiKjs X Ề 1

HƯỚNG DẪN MÔ PHỎNG SIMATIC S7 - 1500

3.4.1 Ưu và nhược điểm của phẩn mềm mô phỏng

Phần mềm mô phỏng (giả lập) giúp giảm thiểu chi phí và công sức trong quá trình thiết kế cả về thời gian cũng như kinh tế

Bởi vì những sai sót trong quá trình làm việc với thiết bị thật: lắp đặt, đấu nốì sai, chỉnh sửa chương trình, thay đổi phần cứng

Bộ điều khiển S7 — 1500 hỗ trợ hai phần mềm mô phỏng là:

■ PLCSIM Vlx hay còn gọi là PLCSIM cơ bản: chỉ có các tính năng cơ bản để giả lập mô phỏng các tín hiệu, các tập lệnh.

■ PLCSIM Advanced: cho phép người dùng mô phỏng hoàn chỉnh các tính năng của PLC thật về hiệu năng, tốc độ xử lý, vòng quét, bộ nhớ, truyền thông giữa các CPU mà PLCSIM không thể thực hiện được Ngoài ra, phần mềm còn hỗ trợ các giao thức API để giao tiếp với các phần mềm khác

Việc sử dụng các bộ PLC SIM giúp bạn đọc tiết kiệm khá nhiều thời gian và chí phí nhưng nó cũng ảnh hưởng tới việc hiểu rõ bản chất hệ thống, vận hành, kết nốì Bởi vậy, bạn đọc nên làm quen với PLC thật rồi chuyển qua sử dụng các bộ PLC SIM sau.

Hình 3.1 Sơ lược về PLCSIM Advanced

Nội dung sách, tác giả chỉ hướng dẫn bạn đọc sử dụng phần mềm PLCSIM Advanced để mô phỏng CPU.

3.4.2 Mô phỏng PLC với PLCSIM Advanced Để thực hiện mô phỏng cho các bộ điều khiển PLC S7 — 1500 với PLCSIM Advanced thực hiện những bước sau:

Bước 1: mở giao diện Network của máy tính để bắt đầu cài đặt các thuộc tính: Control Panel -> Network and Internet ->

Network and Sharing Center Change adapter setting.

Network end Internet > Network Connections I Search Network Connections p~|

Organize ▼ Disable this network device Diagnose this connection Rename this connection B? - ID

LANIPZJ Network cable unplugged InteRR) 1210 Gigabit Netwo-

VMware Network Adapter 9SB VMneta

WbR HoiQuanPLC - Cafe Intel (R) Wireless-AC 9560

■ Trường hợp Card Siemens PLCSIM Virtual Ethernet Adapter bị ngắt (disable) thì phải kích hoạt lại (Enable).

Bước 2: đặt địa chỉ IPv4 cho card mạng PLC SIM Advanced cùng lớp mạng với địa chỉ CPU S7 — 1500 trên phần mềm TIA Portal.

Internet Protocol Version 4 (TCP/IPv4) Properties X I General I

You can get IP settings assigned automatically if your network supports I this capabfity otherwise, you need to ask your network administrator I for the appropriate IP settings. o Obtain an IP address automatically - (•) Use the folowing IP address: - '

I Q) Obtain DNS server address automatically J (•) Use the following DNS server addresses: - -

I □ Validate settings upon exit I Advanced I I

Bước 3: cài đặt giao tiếp PG/PC: Control Panel —> Set PG/PC

Interface —> S7ONLINE (STEP 7) —> chọn card Siemens PLCSIM Virtual EthernetAdapter TCP.Auto 1 (Active) —> OK.

Access Path I LLDP/DCP I PNIO Adapter I Ho I

Access Point of the Appicatkxi:

|S7ONUNE(STEP7) -> Semens PICSIM Vìrtuá Bhemet Adapte_xj (Standard for s I bp 7)

|Semens PLCSIM Mrtuai Bhemet Adapter.' ® Serial cable.PPI.1 Ã"

HJSiemens PUCSIM Vktual Bhemet A Semens PLCSIM Virtual Bhemet A^j I® Siemens PLCSIM Virtual Bhemet A V

(Parameter assigment for the IE-PG access to your NDIS CPs wth TCP/IP Protocol (RFC-1006))

Bước 4: cho phộp project TIA Portal mụ phỏng: Project tree -ằ

Device —> chọn vị trí trên cùng của project (trên Add new device) —> Properties —> Protection —> kích hoạt chức năng mô phỏng Support simulation during

Bước 5: mở phần mềm PLCSIM Advanced: Start —> S7 -

PLCSIM Advanced Online Access -> chọn PLCSIM chuyển qua PLCSIM Virtual Ethernet Adapter.

Online Access PLCSIM OB PtCSIM Virtual Eth Adapter • 0 TCP/IP communication with {

■ ©Start Virtual S7-1500 PIC ffl ® I MRES~)

No Active PLC Instance ffi

Runtime Manager Port '50000 1 0 Bl Virtual SIMADC Memory Card □

Bước 6: khai báo tham số của CPU ứng với phần mềm TIA Portal để khởi tạo một bộ CPU giả lập (instance) mang đầy đủ thuộc tính của CPU thật:

■ Instance name: tên của CPU đã khai báo trong TIA Portal.

■ IP address [XI]: địa chỉ IP cổng XI để thực hiện truyền thông Profinet 10 của CPU đã khai báo trong TIA Portal.

■ Subnet mask: tương ứng với IP address [XI].

1 Tự động hóa PLC S7-1500 với TIA Portal Add new device

\,1 Online & diagnostics fa Software units fa Program blocks fa Technology objects

5 jj ) External source files fa PLC tags Pg) PLC data types £3 Wbtch and force tables fa Online backups fa Traces fa OPC UA communication a Device proxy data Program info PLC supervisions a alarms iĩỊ PLC alarm tert lists fa Local modules

Online Access PLCSIM o PLCSIM Virtual Eth Adapter •

Virtual Time Scaling r, i < Local > CPU1512C-1 PN

> fa Ungrouped devices a Security settings ỆỊ Cross-device Junctions St Common data

Documentation settings fa Languages & resources fa Version control interface

► fa OnJtne access Card ReaderiUSB memory aoi Off

@ Start Virtual S7-15OO PLC ffl

Runtime Manager Port 50000 Virtual SIMATIC Memory Card Show Not rhea bo ns Function Manual

Bước 7: khởi tạo CPU Instance bằng việc kích hoạt Start.

S7-PLCSIM Advanced V3.0 ị Detected IPaddress 192.168.111.100 on 'MyPLC.

■ Sau khi thực hiện kích hoạt PLC Instance thì ngay lập tức hệ thông sẽ cho khởi tạo một CPU ảo với cấu hình tương ứng PLC thật, được kết nối tới TIA Portal và đóng vai trò của một bộ PLC thật để người dùng sử dụng các tính năng với TIA Portal một cách dễ dàng.

■ Nếu đóng cửa sổ giao diện của PLCSIM Advanced thì phần mềm sẽ chạy ẩn với biểu tượng nhỏ dưới thanh tab bar.

CÂU HỎI ÔN TẬP

1 Địa chỉ MAC, IP là gì? Sự khác nhau giữa địa chỉ MAC với địa chỉ IP?

2 Trình bày cách cấu hình địa chỉ IP tĩnh cho máy tính.

3 Trình bày cách cấu hình địa chỉ IP cho SIMATIC S7 - 1500 và cách đưa PLC trở về chế độ Reset Factory.

4 Tạo dự án và đặt tên là Plcvietnam_forum với cấu hình gồm:

CPU S7 - 1500 (tùy chọn), mô-đun 32 DI và mô-đun 32 DQ, mô-đun đọc RTD, đọc tín hiệu 4-20 mA, và mô-đun truyền thông Profibus.

5 Chế độ cấu hình chuẩn khác với chế độ Unspecified như thế nào? Trình bày các bước khởi tạo project với chế độ Unspecified và upload chương trình dưới PLC lên.

6 Trình bày các bước thực hiện mô phỏng cho PLC S7 - 1500.

7 Sự khác nhau giữa PLC SIM Advanced với PLCSIM là gì?

Chương 4 LẬP TRÌNH VỚI TẬP LỆNH LÔ-GIC

Nội dung chương trình bày cách sử dụng vùng nhớ DB toàn cục, để giúp bạn đọc quản trị chương trình từ đầu, biết cách dùng và phân biệt cơ bản giữa các vùng nhớ M với DB. Đồng thời, bạn đọc sẽ hiểu và sử dụng PLC tag, các ngôn ngữ lập trình STL, LAD, FBD, SCL với các tập lệnh lô-gic cơ bản

Tác giả cố gắng miêu tả những gì cơ bản ĩihất giúp bạn đọc hiểu và lựa chọn ngôn ngữ lập trình phù hợp.

Tập lệnh bit lô-gic: Instructions — + Basic instructions —♦ Bit Logic

Với ngôn ngữ lập trình STL khai báo các tập lệnh cơ bản, nếu bạn đọc không tìm thấy các tập lệnh trình bày trong sách có thể tìm theo đường dẫn: Instructions —* ■ Basic instructions —>

PLC TAG VÀ KHỐI DỮ LIỆU DB

4.1.1 Làm việc VỚI PLC tag

4.1.1.1 Giới thiệu về PLC Tag

PLC Tag là tên tượng trưng, gợi nhớ cho các vùng nhớ (I/Q/M/DB) và địa chỉ phần cứng (hardware identifier) của PLC

TIA Portal cho phép người dùng truy vấn dữ liệu thông qua PLC tag một cách dễ dàng Điều này có nghĩa là khi có lỗi xảy ra trong chương trình người dùng, các vùng địa chỉ I/O bị hư thì chỉ cần thay đổi vùng I/O khác trong bảng Tag table.

Lưu ý: nên tạo Tag table để quản lý Tag trước khi lập trình.

4.1.1.2 Hướng dẫn tạo PLC Tags

Bước 1: tạo bảng Tag table để quản lý Tag: Project tree —ằ•

Device —> CPU —► PLC Tags —ằ Add new tag table.

Bước 2: đổi tên Tag table để dễ quản lý Tag và vùng nhớ dữ liệu cùng kiểu dữ liệu sử dụng tương ứng.

Tựđộng hóa PLC S7 - 1500 với TIA Portal ► MyPLC [CPU 1512C-1 PN] ► PLC tags ► Tag_CPU_AI [5]

Marne II|I * IỀ|>>H>Ề Data' typeằA>i^ộ * wMi 1 Ad dress-1 Ềi hl Retain** Accessĩố^|wrớtabl.-^Visible In-= *|

Lưu ý: các hardware identifier có thể kiểm tra trong PLC tag

—► Default tag table —► System constants.

4.1.1.3 Hướng dẫn định địa chỉI/O trong phần cứng

Bước 1: kiểm tra địa chỉ phần cứng: CPU —> Device configuration —> chọn CPU hoặc mô-đun muôn định lại địa chỉ —>

Properties -* General —> tùy thuộc phần cứng thực tế mà hiển thị các thông tin sau Input/Output

Bước 2: định địa chỉ I/O theo mong muôn người lập trình: I/O addresses —► định địa chỉ bắt đầu start address của mô-đun.

4.1.2 Khối dữ liệu DB toàn cục

4.1.2.1 Giới thiệu khối dữ liệu DB

Khôi dữ liệu DB được sử dụng trong chương trình người dùng theo hai định dạng: DB toàn cục (global) và instance DB.

■ DB toàn cục: người dùng có thể khởi tạo các biến hoặc vùng nhớ chứa biến dữ liệu tương tự như biến M Khôi dữ liệu DB toàn cục có thể được truy cập (đọc và ghi) dữ liệu bởi tất cả các khôi hàm OB, FB, FC

Instance DB: được chỉ định tới một FB và chứa các dữ liệu cục bộ được gán cho FB đó.

Hình 4.1 Khôi dữ liệu DB toàn cục và ĨDB

Bảng 4.1 So sánh giữa DB toàn cục và Instance DB

DB toàn cục Instance DB

Tất cả các khôi OB, FB, FC có thể truy cập trong chương trình Chỉ định tới một FB cụ thể.

Người dùng có thể tạo DB toàn Chỉ có thể tạo iDB khi liên cục độc lập với các khối (block) kết với một FB có trong khác trong chương trình chương trình.

Không thể khai báo (declare) Các biến tĩnh cục bộ có thể các biến tĩnh cục bộ (static khai báo trong FB. local).

Có thể thêm, bớt hoặc xóa các biến trong khối dữ liệu.

Chỉ có thể thêm, bớt hoặc xóa các biến thông qua khôi FB liên kết với iDB.

Có thể thay đổi các giá trị ban đầu và hiện tại của biến trong DB.

Không thể thay đổi giá trị ban đầu và hiện tại của iDB vì phụ thuộc vào khối FB.

Cấu trúc dữ liệu trong DB có thể được tùy chỉnh.

Cấu trúc dữ liệu trong DB được khai báo trước thông qua FB liên kết.

Nội dung chương sẽ giúp bạn đọc hiểu khôi dữ liệu DB toàn cục và cách sử dụng như thế nào.

4.1.2.2 Kiểu dữ liệu khối dữ liệu DB toàn cục hỗ trợ

Việc sử dụng biến M trong chương trình người dùng cơ bản đã đáp ứng hầu hết yêu cầu lập trình cơ bản của người dùng Tuy nhiên, việc vùng nhớ M bị giới hạn vì sự rời rạc, tốn công sức trong việc quản trị biến dữ liệu, hoặc bị giới hạn về các kiểu dữ liệu của PLC Bởi vậy, biến DB toàn cục sử dụng để thay cho các vùng nhớ M.

Bảng 4.2 Kiểu dữ liệu của DB toàn cục hỗ trợ

Kiểu dữ liệu Miêu tả

Kiểu dữ liệu Miêu tả

USInt (sôi interger không dấu 8 bit)

Sint (số interger có dấu 8 bit).

UInt (số interger không dấu 16 bit)

Int (số interger có dấu 16 bit).

UDInt (số interger không dấu 32 bit)

Dint (số interger có dấu 32 bit).

Số thực - Real Real - số thực dấu chấm động 32 bit.

LReal — số thực dấu chấm động 64 bit.

1 Date là kiểu dữ liệu 16 Bit chỉ số ngày có tầm từ D#1990-l-l đến D#2168-12-31.

DTL (date and time long) bao gồm dữ liệu với 12 Byte lưu giữ thông tin về ngày, tháng, năm

Kiểu dữ liệu Miêu tả

■ Weekday (USInt): 1 —> 7 (1 là ngày chủ nhật).

■ Time chiếm 32 Bit được miêu tả theo chuẩn IEC Time tầm giá trị lên

■ TOD (Time of day) chiếm 32 Bit có tầm giá trị từ TOD#0:0:0.0 đến TOD#23:59:59.999.

Char và String Char là kiểu dữ liệu ký tự với 8 Bit.

String là kiểu dữ liệu chuỗi lên tới 254 char.

■ Array là kiểu dữ liệu mảng bao gồm nhiều thành phần đơn giống nhau về kiểu dữ liệu

Mảng có thể tạo trong giao diện interface của OB, FB, FC, DB.

■ Struct là kiểu dữ liệu định dạng với cấu trúc thành phần có thể bao gồm nhiều kiểu dữ liệu khác nhau.

PLC data type PLC Data type hay còn gọi là UDT là dạng dữ liệu cấu trúc được định nghĩa bởi người dùng.

Pointer ■ Pointer hay con trỏ sử dụng với định địa chỉ gián tiếp hoặc vùng địa chỉ.

*) ■ BCD 16 có giá trị từ -999 — > 999.

Khối dữ liệu DB toàn cục có thể được sử dụng theo hai định dạng:

■ Chế độ Optimized block access: cho phép sử dụng dung lượng bộ nhớ DB tối ưu hơn nếu bộ nhớ tổ chức không cấu trúc, điều này giúp chế độ Optimized nhẹ hơn so với chế độ Standard - compatible with S7-300/400 (Non-Optimized) Dữ liệu truy cập từ các màn hình HMI/SCADA hoặc truyền thông truy xuất bằng tên Tag (tag name).

■ Chế độ Non-Optimized: cho phép người dùng biết thông tin các vùng nhớ (địa chỉ của các tag) để sử dụng theo yêu cầu trong kết nôi PLC — PLC hoặc PLC với thiết bị hãng khác.

Cột Offset trong chế độ Non-Optimized của DB toàn cục là địa chỉ của tag trong DB Và cách đọc địa chỉ sẽ được truy vấn như đây:

Bảng 4.3 Định dạng vùng nhớ của khối dữ liệu DB

DB1.DBX0.1 DB1.DBB1 DB1.DBW2 DB1.DBD4

4.1.2.3 Khởi tạo khối dữ DB toàn cục a Khởi tạo và truy cập khối dữ liệu toàn cục - Global DB

Bước 1: khởi tạo khối dữ liệu DB_Logic [DB100]: Program blocks —> Add new block —> Data block, chọn kiểu (type) là Global DB, chọn chế độ Manual —► DB100 và đặt tên DB_Logic

—> chọn OK để hoàn thành việc khởi tạo.

115 liệu DB Ví dụ, khai báo biến Trigger với mảng dữ liệu 16 biến BOOL.

■ Data type: Array[1 16] of Bool.

Lưu ý: khi tag trong khôi dữ liệu toàn cục DB chọn Retain thì giá trị tag được lưu và không mất dữ liệu khi CPU mất điện.

Bước 3: truy xuất biến dữ liệu của khôi dữ liệu DB trong chương trình OB, FB, FC giống như vùng nhớ M.

< b Bật/tắt chế độ Optimized của DB toàn cục

Bước 1: chọn khối dữ liệu DB muôn chuyển chế độ —>

Properties —ằ General -> Attributes —> bỏ dấu chọn Optimized.

Bước 2: đọc địa chỉ biến trong DB: bảng cảnh báo hiện ra ->

OK -> OK -> mở khôi dữ liệu DB -> biên dịch (compile) và lưu lại.

1 1 Name Datatype Offset Stan value Retain

|o Static ịo ■ Trigger Arrayf1 16] of Bool 0.0 □

■ Trigger{4] Bool 0.3 false □ Ì43 ■ Triggerf5] Bool 0.4 false □

43 ■ Triggered] Bool 1.0 false □ i Network 1.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

"DB_Logic”.Z[lJ := "DB_Logic".A[lJ AND "DB_Logic".B[l] AND

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 1.

Ví dụ 2: chuyển mạch thiết kế số sau đây sang mạch lập trình

Thực hiện phép chuyển đổi tương ứng giữa thiết kế số và PLC, ta được chương trình trong các khối FC như sau:

Network 2: Ví dụ 2: X and (not Y) = X X Ỹ = z Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 2.

■DB_Logic".X[2] ■DB_Logic'.Y[2] -DB_Logic'2[2]

Ngôn ngữ lập trình FBD: FC_Logĩc_FBD —> Network 2.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh.

”DB_Logic".Z[2] := "DB_Logic".X[2] AND NOT("DB_Logic".Y[2]);

Ngôn ngữ lập trình STL: FC_Logic_STL —* Network 2.

Toán tử OR sẽ trả về 1 nếu có ít nhất một trong các trạng thái bit là 1, tất cả các trường hợp khác OR sệ tạo ra một bit 0.

Ví dụ 3: chuyển mạch thiết kế số sau đây sang mạch lập trình

Thực hiện phép chuyển đổi tương ứng giữa thiết kế số và PLC, ta được chương trình trong các khối FC như sau:

ví dụ 3: X or Y or s = X + Y + s = z

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 3.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —t Network 3.

Ngụn ngữ lập trỡnh FBD: FC_Logic_FBD —ằ Network 4.

Ngôn ngữ lập trình SCL: FC_Logic_SCL mã lệnh.

"DB_Logic".Z[3] := "DB_Logic".X[3] OR "DB_Logic".Y[3] OR "DB_Logic".S[3]; ’

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 3. o "DB_Logic".X[3J o "DB_Logic".Y[3J o "DB_Logic".S[3J

Ví dụ 4: chuyển mạch thiết kế số sau đây sang mạch lập trình

Thực hiện phép chuyển đổi tương ứng giữa thiết kế sô' và PLC, ta được chương trình trong các khối FC như sau:

Network 4: ví dụ 4: X or (not Y) = X + Y = z Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 4.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh.

"DB_Logic".Z[4J := ”DB_Logic".X[4] OR NOT (”DB_Logic".Y[4]);

Ngôn ngữ lập trình STL: FC_Logic_STL —► Network 4. o "DB_Logic".X[4J ON "DB_Logic".Y[4J

Ví dụ 5: cho mạch thiết kế số (A and B) or (C and D) = z Lập trình PLC với mạch thiết kê số tương ứng.

Thực hiện phép chuyển đổi tương ứng giữa thiết kế số và PLC, ta được chương trình trong các khôi FC như sau:

ví dụ 5: (A and B) or (C and D) = z

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 5.

'DB_ Logic" A[5] "DB_ Logic" ,B(5| "DB_Logic"2(5|

”DB_Logic".CI5] "DB_Logic"£>[5]

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 5.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

”DB_Logic".Z[5] := ("DB_Logic".A[5] AND ”DB_Logic".B[5])

OR ("DB_Logic".C[5J AND "DB_Logic".D[5J);

Ngôn ngữ lập trình STL: FC_Logic_STL —+ Network 5.

Cũng giống OR, toán tử thao tác bit XOR (hay OR có loại trừ - exclusive OR) là một toán tử hai ngôi Toán tử XOR sẽ trả về 1 nếu chỉ có một trong hai bit là 1, ngược lại XOR trả về bit 0.

Ví dụ 6: chuyển mạch thiết kế sô' sau sang mạch lập trình PLC:

Thực hiện phép chuyển đổi tương ứng giữa thiết kế số và PLC, ta được chương trình trong các khối FC như sau:

ví dụ 6: X xor Y = X XỸ + X X Y = z

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 6.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 6.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

"DB_Logic".Z[6] := "DB_Logic".X[6J XOR "DB_Logic".Y[6J;

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 6.

Toán tử thao tác bit NOT còn được gọi là toán tử lấy phần bù

{complement) là toán tử một ngôi có nhiệm vụ phủ định trạng thái đầu vào của nó - tức đảo 0 thành 1 và ngược lại.

Lệnh NAND là lệnh logic phủ định lại kết quả phép toán AND của các toán hạng Giả sử có A NAND B = A X B = z.

Thực hiện phép chuyển đổi tương ứng giữa thiết kế số và PLC, ta được chương trình trong các khối FC như sau:

ví dụ 7: A NAND B = A X B = z

Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 7.

”DB_Logic"A[7] ”DB_ Logic” B[7] ”DB_Logic“2(7]

Ngôn ngữ lập trình FBD: FC_Logic_FBD —► Network 7.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

"DB_Logic".Z[7J := NOT ("DB_Logic".A[7J AND "DB_Logic".B[7J);

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 7.

Lệnh NOR là lệnh lô-gic phủ định lại kết quả phép toán OR của các toán hạng Giả sử có c NOR D = c + D= Y.

Thực hiện phép chuyển đổi tương ứng giữa thiết kế sô và PLC, ta được chương trình trong các khôi FC như sau:

ví dụ 8: c NOR D = C + D= Y

Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 8.

Ngôn ngữ lập trình FBD: FC_Logic_FBD Network 8.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

”DB_Logic".Z[8] := NOT C’DB_Logic".C[8] OR "DB_Logic".D[8]);

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 8. o "DB_Logic".C[8J o "DB_Logic".D[8J

4.3 LẬP TRÌNH VỚI TẬP LỆNH SET, RESET Bảng 4.6 Các tập lệnh Set, Reset theo các ngôn ngữ lập trình

Kiểu dữ liệu Miêu tả

Khai báo theo ngôn ngữ LAD

—(s ) — Out Bool Đặt địa chỉ ngõ ra lên mức 1.

"tag" Đặt n bit ngõ ra lên mức 1,

— í SET BF u Out Bool n bắt đầu tại địa chỉ OUT.

— Out Bool Đặt địa chỉ ngõ ra về mức 0.

“tag" Đặt n bit ngõ ra về mức 0

— ( RESET BF )- Out Bool n bắt đầu tại địa chỉ OUT.

Bool Mạch chót RS ưu tiên Set.

■ s Q - Bool Mạch chót SR ưu tiên Reset,

Khai báo theo ngôn ngữ FBD

Ký hiệu , * “ báo liệu Miêu tả

#tag s Khai báo lệnh SET theo ngôn ngữ lập trình FBD.

Khai báo lệnh RESET theo

ngôn ngữ lập trình FBD/

Khai báo lệnh SET_BF theo ngôn ngữ lập trình FBD.

Khai báo lệnh RESET_BF theo ngôn ngữ lập trình FBD.

Khai báo mạch chốt SR theo ngôn ngữ lập trình FBD.

Khai báo mạch chót RS theo ngôn ngữ lập trình FBD.

Khai báo theo ngồn ngữ SCL IF #điều_kiện THEN

Khai báo lệnh SET theo ngôn ngữ lập trình SCL.

Khai báo lệnh RESET theo ngôn ngữ lập trình SCL.

Ký hiệu * Miêu tả báo liệu

Không hỗ trợ lệnh SET_BF Không hỗ trợ lệnh RESET_BF

END IF; Ưu tiên Reset.

END IF; Ưu tiên Set.

Khai báo theo ngôn ngữ STL

#điều_kiện Khai báo lệnh SET theo s #tag ngôn ngữ lập trình STL.

#điều_kiện Khai báo lệnh RESET theo

R #tag ngôn ngữ lập trình STL.

Không hỗ trợ lệnh SET BF Không hỗ trợ lệnh RESETJBF

#điều_kiện_2 R #tag Ưu tiên Reset.

#đỉề u_kiệ n_2 s #tag Ưu tiên Set.

Tiếp tục viết các lệnh SET, RESET trong các hàm FC tương ứng theo các ngôn ngữ lập trình.

Giá trị của bit trạng thái ngõ ra bằng 1 khi đầu vào của lệnh này bằng 1, và khi đầu vào của lệnh về 0 thì bit này vẫn giữ nguyên trạng thái ngõ ra ở mức 1.

sử dụng tập lệnh SET

Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 9.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 9.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh.

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 9.

Giá trị của bit trạng thái ngõ ra bằng 0 khi đầu vào của lệnh này bằng 1 và khi đầu vào của lệnh về 0 thì bit này vẫn giữ nguyên trạng thái ngõ ra ở mức 0, nếu không nhận thêm tác động khác ảnh hướng tới ngõ ra.

sử dụng tập lệnh RESET

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 10.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 10.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh.

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 10.

4.3.3 Lệnh flipflop SR và RS

Khôi lệnh SR và RS là tổ hợp lệnh từ 2 lệnh SET và RESET nhưng có xét tới sự ưu tiên.

Trong khôi SR hoặc RS flipflop thì ctoán hạng> được sử dụng có thể là một trong những vùng nhớ Q, M, D Bạn đọc có thể hiểu thêm về việc thay đổi kết quả của phép toán lô-gic nếu thay đổi vị trí các tập lệnh xử lý chương trình lô-gic ứng với vòng quét PLC.

Bảng 4.7 Mô tả tập lệnh SR và RS

Miêu tả liệu Vùng nhớ s In Bool I, Q, M, D,

Ngõ vào cho phép lệnh SET thực hiện.

Ngõ vào cho phép lệnh RESET thực hiện.

Out Bool Q, M, D, L Toán hạng thực thi khi tác động ngõ vào.

Q Out Bool Q, M, D, L Trạng thái tín hiệu của toán hạng.

4.3.3.1 Lệnh SR Flipflop - - ƯU tiên RESET s (IN) R (IN) (OUT)

sử dụng tập lệnh SR

Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 11.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —► Network 11.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh.

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 11.

4.3.3.2 Lệnh RS Flipflop - ưu tiên SET

sử dụng tập lệnh RS

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 12.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —► Network 12.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh.

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 12.

4.4 LẬP TRÌNH VỚI LỆNH NHẬN BIẾT CẠNH TÍN HIỆU

Bảng 4.8 Mô tả các lệnh nhận biết cạnh tín hiệu

Kiểu dữ liệu Miêu tả

Khai báo theo ngôn ngữ LAD

—|P|— In Bool Nhận biết xung cạnh

"M_BIT" lên tín hiệu đâu vào.

—|N|— In Bool Nhận biết xung cạnh xuống tín hiệu đầu vào.

M-BIT Nhận biết xung cạnh

—p TRÍQ—I lên tín hiệu đầu ra.

Nhận biết xung cạnh xuống tín hiệu đầu ra.

Khai báo theo ngôn ngữ FBD

Khai Kiểu dữ báo liệu Miêu tả

— lêri tỉn hiệu đầu ra. p=

— xuống tín hiệu đầu ra.

Khai báo theo ngôn ngữ SCL

Ngôn ngữ lập trình SCL không hỗ trợ các khai báo cho lệnh p và N mà chỉ hỗ trợ lệnh R_TRIG và F_TRIG với tính năng tương đương Tuy nhiên, lệnh R_TRIG và F_TRIG phải tốn thêm khối dữ liệu iDB, bởi vậy tác giả không trình bày trong sách Bạn đọc khảo sát thêm trong phần mềm TIA Portal.

// Ngõ ra của lệnh p với Out_p

"OutJP" := "Input" AND NOT "Edge_Aux";

// Cập nhật trạng thái tín hiệu đầu vào

// Ngõ ra của lệnh N với Out_N

"Out_N” := NOT ’Input" AND "Edge.Aux";

// Cập nhật trạng thái tín hiệu đầu vào

Khai báo theo ngôn ngữ STL

Khai báo lệnh p trong ngôn ngữ STL

Khai báo lệnh N trong ngôn ngữ STL

Chỉ định toán hạng được truy vấn với ở vị trí trên, và bít nhớ trạnị5 thái ở vị trí dưới.

Kiểu dữ liệu Vùng nhớ Giải thích

< tín hiệu > In Bool I, Q, M, T, Tín hiệu ngõ vào c, D, L để quét kiểm tra.

< Bít nhớ > In/Out Bool M, D, L Bit nhớ.

Lưu ý: bit nhớ trạng thái (Edge Aux.) không được lặp lại và chỉ sử dụng một lần duy nhất Bit nhớ trạng thái nên sử dụng các vùng nhớ M hoặc D thuận tiện quản lý chương trình.

Có khá nhiều kiểu khai báo cho các tập lệnh nhận biết cạnh tín hiệu với lệnh p (positive) hoặc N (negative), nhưng đều cho kết quả giống nhau Bởi vậy, tác giả sẽ chỉ trình bày những gì thực sự cần thiết nhất và đơn giản nhất, phần còn lại bạn đọc tham khảo thêm phần help của phần mềm TIA Portal.

Hình 4.2 Trạng thái tín hiệu p và N

Tác giả sẽ tiếp tục viết các lệnh p và N trong các hàm FC tương ứng với các ngôn ngữ lập trình.

4.4.1 Nhận biết cạnh lên của tín hiệu

Lệnh (P) được sử dụng để phát hiện sự thay đổi trạng thái tín hiệu từ 0 lên 1 Lệnh so sánh trạng thái hiện tại của với trạng thái trước khi quét đã được lưu trong Nếu có sự thay đổi từ “0” lên “1” - có xung cạnh lên, thì ngõ ra của lệnh sẽ trả về tín hiệu “1” trong một chu kỳ quét của OB Main.

Chương trình trong các hàm FC vởi các ngôn ngữ lập trình:

sử dụng lệnh p Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 13

Mô tả lệnh dưới dạng giản đồ thời gian - Timing:

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 13.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —► mã lệnh

"DB_Logic".Memory[3J := "Input 124" AND

NOT ("DB_Logic".Edge_Aux[lJ);

"DB_Logic".Edge_Aux[lJ := "Input 124";

JF "DB_Logic”.Memory[3] THEN

Ngôn ngữ lập trình STL: FC_Logic_STL Network 13.

FP "DB_Logic".Edge_Aux[lJ

4.4.2 Nhận biết cạnh xuống của tín hiệu

Lệnh (N) sử dụng để phát hiện sự thay đổi trạng thái từ 1 về 0

Lệnh so sánh trạng thái hiện tại của với trạng thái trước khi quét đã được lưu trong Nếu có sự thay đổi từ “1” về “0” - có xung cạnh xuống, thì ngõ ra của lệnh sẽ trả về tín hiệu “1” trong một chu kỳ quét của OB Main

Chương trình trong các hàm FC với các ngôn ngữ lập trình:

sử dụng lệnh N

R1 Mô tả lệnh dưới dạng giản đồ thời gian — Timing:

Ngôn ngữ lập trình FBD: FC_Logĩc_FBD —► Network 14.

Ngôn ngữ lập trình SCL: FC_Logici_SCL —> mã lệnh

"DB_Logic".Memory[4] := NOT "Input 124" AND

"DB_Logic".Edge_Aux[2J := "Input 124";

IF "DB_Logic".Memory[4J THEN

Ngôn ngữ lập trình STL: FC_Logic_STL —► Network 14.

4.4.3 Một số vídụ mẫu về cách sử dụng lệnh p và N

Các lệnh nhận biết cạnh tín hiệu (cạnh lên/xuống) được sử dụng để kết hợp với các đếm, các lệnh dịch dữ liệu, phép toán học để cho phép lệnh được thực hiện một lần duy nhất với các điều kiện đầu vào, tránh các phép toán lặp lại nhiều lần làm sai lệch hệ thống.

Việc áp dụng các lệnh cần sự linh động và hiểu rõ các lệnh Bởi vậy, bạn đọc khảo sát các lệnh trước khi áp dụng, giúp việc lập trình trở nên đơn giản hóa nhất từ đó giúp PLC có tốc độ quét nhanh nhất.

Tác giả trình bày một vài ví dụ minh họa mà lệnh p và N được sử dụng trong chương trình PLC.

4.4.3.1 Bài toán một nút nhấn hai trạng thái

Bài toán một nút nhấn hai tác động: trạng thái ban đầu đèn tắt, khi tác động nút nhấn đèn sáng và tác động lần tiếp theo đèn tắt, trạng thái cứ thế lặp lại.

Chương trình trong các hàm FC với các ngôn ngữ lập trình:

một nút nhấn 2 trạng thái

Ngôn ngữ lập trình LAD: FC_Logic_LAD —> Network 15.

Ngôn ngữ lập trình FBD: FC_Logic_FBD —> Network 15.

Ngôn ngữ lập trinh SCL: FC_Logic_SCL —> mã lệnh

"DB_Logic".Memory[6J := "Input 125" AND

NOT("DB._Logic".Edge_Aux[3]);

"DB_Logic".Edge_Aux[3J := "Input 125";

IF "DB_Logic".Memory[6] & NOT "Output Q24" THEN

ELSIF "DB_Logic".Memory[6J & "Output Q24" THEN

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 15.

FP "DB_Logic".Edge_Aux[3]

// Thực hiện lưu lại trạng thái trước khi tiếp tục A "DBJLogic" Memory [6]

AN "Output Q24" s "DB_Logic".Memory[5J A "DB_Logic".Memory [6]

R "DB_Logic".Memory[5J A "DB_Logic" Memory[5]

4.4.3.2 Sử dụng trong các phép toán

Một trong những bài toán thực tế và dễ dàng để bạn đọc hiểu hơn về việc sử dụng lệnh p và N đó là: các phép toán sô học.

Sử dụng Edge (trigger) trong các lệnh xử lý toán học Ngôn ngữ lập trình LAD: FC_Logic_LAD —► Network 16

AddSum — INI Q(JỊ—Add Sum 1 — IN2 *

Ngôn ngữ lập trình FBD: FC_Logic_FBD —► Network 16.

Ngôn ngữ lập trình SCL: FC_Logic_SCL —> mã lệnh

”DB_Logic”.Memory[7] := ’’Input 126” AND

NOT ("DB_Logic".Edge_Aux[4]);

"DB_Logic".Edge_Aux[4] := "Input 126";

"DB_Logic".AddSum := "DB_Logic".AddSum + 1;

Ngôn ngữ lập trình STL: FC_Logic_STL —> Network 16.

FP "DB_Logic".Edge_Aux[4]

JNB bypass // Nếu không phát hiện p thì không thực hiện phép cộng

T "DB_Logic".AddSum bypass : NOP 0

1 So sánh những ngôn ngữ lập trình LAD, FBD, SCL và STL với nhau Và trình bày ưu điểm của từng ngôn ngữ lập trình.

2 So sánh đặc điểm giữa các vùng nhớ nội M và DB? Ưu điểm của vùng nhớ DB toàn cục là gì?

3 Trình bày cách khởi tạo vùng nhớ đặc biệt: vùng nhớ hệ thống và vùng nhớ xung clock.

4 Phân tích nguyên lý hoạt động của bài toán một nút nhấn hai trạng thái Trường hợp bỏ biến "DB_Logic".Memory[5J thay trực tiếp bằng "Output Q24" mạch còn hoạt động không? Tại sao?

5 Trong trường hợp bỏ lệnh (P) thay bằng tiếp điểm NO, khi tác động "Input 126" thì "DB_Logic".AddSum bằng bao nhiêu?

6 Lệnh JNB có tác dụng gì trong Network 16?

Chương 5 LẬP TRÌNH VỚI BỘ ĐỊNH THÌ

Nội dung chương này chúng ta cùng tìm hiểu và làm việc với các bộ định thì (thời) - Timer của SIMATIC S7 - 1500.

Bộ định thì dùng để định trước một khoảng thời gian cho hệ thông chạy/dừng, hoặc chuyển từ trạng thái này sang trạng thái kia, tạo thời gian trễ cho hệ thống trước khi bắt đầu chu kỳ mới

Bộ định thì của S7 - 1500 có thể khai báo theo chuẩn SIMATIC (dạng S5TIME hoặc mã BCD) hoặc theo chuẩn IEC 61131-3.

Sử dụng các tập lệnh của bộ định thì:

■ IEC: Instructions —* Basic instructions —> Timer operations.

■ SIMATIC: Instructions —> Basic instructions —> Timer operations —>Legacy.

5.1 QUẢN TRỊ CHƯƠNG TRÌNH NGƯỜI DÙNG 5.1.1 Tạo chương trình con FC

Tương tự chương trước, tác giả định hướng cho bạn đọc về cách quản trị chương trình trước khi lập trình PLC.

Bước 1: khởi tạo các hàm chức năng FC_Timer, FC_Timer_LAD,

FC_Timer_FBD, FC_Timer_SCL và FC_Timer_STL ứng với các ngôn ngữ lập trình LAD, FBD, SCL và STL cho các lệnh timer.

Bước 2: gọi chương trình FC_Timer [FC5] trong OB Main [OB1]:

Bước 3: tạo khôi dữ liệu DB_Timer [DB5] với kiểu DB toàn cục.

Bước 4: khai báo các thông số và kiểu dữ liệu muốn sử dụng: ị Data type I Start value DBLTimer Ị {Na me*

|o • ► Currĩíme jo • ► ET lo' a ► Start jo ■ ► Stop

Bool Bool Bool Bool Arrayfl-16] of Bool Arrayfl-16] of Bool Arrayfl-16] of Word Arrayf1„16] of Bool Arrayfl.16] of Int Arrayf1„16] of Word Arrayfl 16] of S51Í—

Arrayfl-16] of Time Arrayfl 8] of Bool Arrayfl -8] of Bool Arrayfl 8] of Bool Bool

{Retain false □ a false a false a false a

Lưu ý: các hàm chức năng FC ứng với các ngôn ngữ lập trình tương ứng sẽ cho cùng kết quả nên tại một thời điểm sử dụng bạn đọc chỉ được kích hoạt cho một hàm hoạt động.

Bước 5: gọi các chương trình FC tương ứng với các ngôn ngữ lập trình trong FC_Timer [FC5J: OB Main [OBI] —> FC_Timer [FC5]

—ằchọn cỏc FC tương ứng với cỏc Network.

Network 1: Lâp trinh Timer với ngôn ngữ LAD

5.1.2 Quản trị chương trình người dùng Để quản trị chương trình thành các nhóm, người dùng có thể thực hiện thao tác sau đây:

Bước 1: tạo nhóm chương trình: chọn Program blocks —> chuột phải —> Add new group —> đặt tên theo nhóm chương trình.

Bước 2: đưa các chương trình FC và DB vào nhóm chương trình tương ứng với mục đích gợi nhớ.

Gc? Program blocks Add new block

5.2 BỘ ĐỊNH THÌ THEO CHUAN SIMATIC

Bộ định thì SIMATIC gồm có 5 bộ định thì: trễ cạnh lên không nhớ, trễ cạnh lên có nhớ, tạo xung không nhớ, tạo xung có nhớ,

155 trễ cạnh xuống Bộ định thì SIMATIC khi sử dụng không làm phát sinh thêm dung lượng bộ nhớ chương trình.

Kiểu dữ liệu S5TIME được sử dụng để biểu diễn cho giá trị cài đặt cho bộ định thì Giá trị cài đặt S5TIME có thể là GIỜ (H), PHÚT (M), GIÂY (S), MILI GIÂY (MS), tuỳ thuộc vào thời gian cài đặt mà chúng ta có thể khai báo hết tham số hay không cần khai báo hết.

■ Sô' lượng bộ định thì phụ thuộc CPU: TO, Tl , T1024,

■ Độ phân giải Timer: ms (mili giây), s (giây), m (phút), h (giờ) Thời gian tối thiểu là 10 ms và tối đa là 2H46M30S ứng với thời gian 9990S.

- Khai báo cho TV: S5T#aHbMcSdMS.

Bảng 5.1 Tham sốcủa bộ định thì SIMATIC

In/Out Timer T Tên bộ định thì s In Bool M, L, D

Tín hiệu cho phép bộ định thì hoạt động.

TV In SõTime M, D, hoặc hằng số Giá trị cài đặt

R In Bool I, Q, M, D Khởi động lại bộ định thì

BI Out Word Q, M, L, D Thời gian thể hiện theo Interger

BCD Out Word Q, M, L, D Thời gian thể hiện theo số BCD

Q Out Bool Q, M, L, D Ngõ ra bộ định thì

Bảng 5.2 Khai báo bộ định thì theo chuẩn SIMATIC

Khai báo theo ngôn ngữ LAD và FBD

Bộ định thì khai báo theo LAD và FBD.

Khai báo theo ngôn ngữ SCL

TV := #TV, R := #Reset, BI => # Value_Time_BCD,

Bộ định thì khai báo theo SCL.

Lưu ý: trong khai báo SCL cần sử dụng lệnh trả về (return) cho bộ định thì, kiểu dữ liệu trả về của CurrTimer là S5Time

Khai báo theo ngôn ngữ STL

SP #Timer_No // Bộ định thì SP

A #Reset R #Timer_No L #Timer_No T #Value_Time_BI LC #Timer_No T #Value_Time_BCD A #Timer_No

Bộ định thì khai báo theo STL.

Bộ định thì SIMATIC tích hợp sẵn trong bộ nhớ CPU, cho nên không chiếm thêm dung lượng của CPU khi sử dụng Số lượng bộ định thì phụ thuộc vào CPU S7 — 1500, và trình bày với khai báo đầy đủ nhất cho các ngôn ngữ lập trình, người dùng có thể khai báo rút gọn mà không cần khai báo hết các tham số nếu không sử dụng.

Bạn đọc vui lòng khảo sát thêm các dạng khai báo rút gọn với các lệnh coil để hiểu hơn, giúp cho chương trình trông đơn giản nhất.

5.2.1 Bộ định thì trễ cạnh lên không nhớ

Bộ định thì trễ cạnh lên không nhớ được sử dụng khi muôn cài đặt một khoảng thời gian trễ, ngõ vào được tác động và duy trì trạng thái cho phép với khoảng thời gian đặt trước TV thì tiếp điểm của bộ định thì sẽ chuyển trạng thái: tiếp điểm thường đóng NC sẽ mở (mức 0) và tiếp điểm thường mở NO sẽ đóng (mức 1).

Nếu ngõ vào ngừng tác động, bộ định thì trở về trạng thái ban đầu.

Hình 5.1 Đồ thị Timing của bộ định thì S_ODT (SD)

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

sử dụng bộ định thì SIMATIC trễ cạnh lên không nhớ

Ngụn ngữ lập trỡnh LAD: FC_Timer_LAD —ằ Network 1.

Bộ định thì S_ODT hoạt động khi ngõ vào Input[lJ tác động và duy trì trạng thái mức 1 Nếu giá trị đặt trước TV = 10S đếm hết thì tiếp điểm của bộ định thì TI chuyển trạng thái, ngõ ra

Q2.5 = 1 Khi ngõ vào Input[l] chuyển trạng thái từ 1 về 0 thì các tiếp điểm của bộ định thì trở về trạng thái ban đầu.

Nếu ngõ vào Reset[l] tác động, bộ định thì trở lại trạng thái ban đầu, và giá trị đếm là 0 Nếu bộ định thì muôn hoạt động trở lại phải kích hoạt lại tín hiệu đầu vào Input[lJ.

Ngụn ngữ lập trỡnh FBD: FC_Timer_FBD —ằ Network 1.

Input! 11 — ị 5 Bl— 'DB_Tĩmer'.BI[11

Ngôn ngữ lập trình SCL: FC_Tĩmer_SCL -+ mã lệnh.

T-NO := "Timer_Tl", s := "DB_Timer".Input[l], TV := S5T#10S,

R := "DB_Timer".Reset[l], BI => ”DB_Timer".BCD[l], Q => "DB_Timer".Output[lJ);

"Output Q25" := "DB_Timer".Output[lJ;

Ngôn ngữ lập trình STL: FC_Timer_STL —► Network 1.

5.2.2 Bộ định thì trễ cạnh lên có nhớ

Bộ định thì trễ cạnh lên có nhớ bắt đầu hoạt động khi có tín hiệu ngõ vào cho phép chuyển từ trạng thái 0 lên 1, sau khoảng thời gian đặt trước TV thì tiếp điểm của Timer chuyển trạng thái: thường đóng NC mở (mức 0) và thường mở NO đóng lại (mức 1).

Nếu ngõ vào ngừng tác động, bộ định thì vẫn tiếp tục trạng thái cho tới khi có tín hiệu R hoạt động.

Hình 5.2 Đồ thị Timing của bộ định thì S_ODTS (SS)

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

sử dụng bộ định thì SIMATIC trễ cạnh lên có nhớ

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 2.

DB_Timer" "Tĩmer_T2 lnput(2) SOOTS

Bộ định thì S_ODTS hoạt động khi ngõ vào Input[2] chuyển trạng thái từ 0 lên 1, và không cần duy trì trạng thái ngõ vào.

Nếu giá trị đặt trước TV = 10S đếm hết thì tiếp điểm của bộ định thì T2 sẽ chuyển trạng thái, ngõ ra Q2.6 = 1 Bộ định thì chỉ ngừng hoạt động khi có tín hiệu ngõ vào Reset[2J tác động

Nếu bộ định thì muôn hoạt động trở lại, phải kích tín hiệu đầu vào Input[2].

Ngụn ngữ lập trỡnh FBD: FC_Timer_FBD —ằ Network 2

"DB-ĩímer" lnput[2] s S5T#1OS — IV

Ngôn ngữ lập trình SCL: FC_Timer_SCL —► mã lệnh.

T_NO := "Timer_T2", s := "DB_Timer".Input[2J, TV := S5T#10S,

R := "DB_Timer".Reset[2J, BI => "DB_Timer".BCD[2J, Q => "DB_Timer".Output[2D;

Ngụn ngữ lập trỡnh STL: FC_Timer_STL —ằ Network 2.

L S5T#10S ss "Timer_T2" A "DB_Timer".Reset[2J R "Tĩmer_T2"

5.2.3 Bộ định thì tạo xung không nhớ

Bộ định thì tạo xung không nhớ hoạt động khi có tín hiệu ngõ vào cho phép s hoạt động.

■ Nếu ngõ vào cho phép có thời gian duy trì nhỏ hơn thời gian cài đặt TV (TEnabie < Tpv) thì ngõ ra Q tạo ra một xung có thời gian bằng thời gian duy trì ngõ vào (Tsnabie)-

■ Nếu ngõ vào cho phép có thời gian duy trì lớn hơn hoặc bằng thời gian cài đặt TV (Tsnabie - Tpv) thì ngõ ra tạo ra một xung bằng thời gian cài đặt TV.

Hình 5.3 Đồ thị Timing của bộ định thì SJPULSE (SP)

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì SIMATIC tạo xung không nhớ

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 3.

%T3 DB_Iímer" "ĩímer_T3" lnputJ31 s PULSE

Khi có tác động Input[3] chuyển trạng thái từ 0 lên 1, bộ định thì S_PULSE sẽ tạo xung với một trong hai trường hợp sau:

■ Thời gian Input[3] duy trì trạng thái mức 1 có TEnable >

TV thì T3 tạo ra một xung có thời gian bằng thời gian TV.

■ Thời gian Input[3] duy trì trạng thái mức 1 có TEnab|e <

TV thì T3 tạo ra một xung có thời gian bằng thời gian của ngõ vào Input[3] hoạt động.

Khi có tín hiệu Reset[3J tác động, bộ định thì sẽ khởi động lại.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 3.

Ngôn ngữ lập trình SCL: FC_Timer_SCL —* mã lệnh.

T_NO := "Timer_T3.", s := "DB_Timer".Input[3J, TV := S5T#10S,

R := "DB_Timer".Reset[3J, BI => ”DB_Timer".BCD[3], Q => "DB_Timer".0utput[3D;

Ngôn ngữ lập trình STL: FC_Timer_STL —► Network 3.

T "DB_Timer".BI[3J LC "Timer_T3"

5.2.4 Bộ định thì tạo xung có nhớ

Bộ định thì tạo xung có nhớ hoạt động gần tương tự như tạo xung không nhớ, cả hai bộ định thì đều tạo ra một xung khi có tín hiệu cho phép s hoạt động Tuy nhiên, bộ định thì tạo xung có nhớ tạo ra xung có thời gian bằng thời gian cài đặt TV trong mọi tác động của tín hiệu ngõ vào s.

Hình 5.4 Đồ thị Timing của bộ định thì S_PEXT (SE)

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì SIMATIC tạo xung có nhớ

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 4.

%T4 DB_rtmer" Timer_T4' lnput[4] fcWSSis

Khi có tác động ngõ vào Input[4] chuyển trạng thái từ 0 lên 1, bộ định thì T4 sẽ tạo một xung với thời gian đặt TV = 10S bất chấp

Input[4J chuyển trạng thái từ 1 về 0 Khi có tín hiệu Reset[4J tác động, bộ định thì sẽ khởi động lại trạng thái ban đầu.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 4

"DB-Timer” Input(4] _ 5 S5T#1OS—IV

Ngôn ngữ lập trình SCL: FC_Timer_SCL mã lệnh.

T_NO := "Timer_T4", s := "DB_Timer".Input[4J, TV := S5T#10S,

R := "DB_Timer".Reset[4], BI => "DB_Timer".BCD[4J, Q => "DB_Timer".Output[4]);

Ngôn ngữ lập trình STL: FC_Timer_STL -> Network 4.

L S5T#10S SE "Timer_T4"- A "DB_Timer".Reset[4]

5.2.5 Bộ định thì trễ cạnh xuống

Bộ định thì trễ cạnh xuống hoạt động khi ngõ vào cho phép s được tác động, đồng thời tiếp điểm ngõ ra Q chuyển trạng thái: tiếp điểm thường mở NO đóng lại (mức 1) và tiếp điểm thường đóng NC mở ra (mức 0).

Khi ngõ vào cho phép s ngừng tác động thì sau khoảng thời gian cài đặt TV, bộ định thì sẽ trở về trạng thái ban đầu.

Hình 5.5 Đồ thị Timing của bộ định thì S_OFFDT (SF)

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì SIMATIC trễ cạnh xuống

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 5

Nếu ngõ vào Input[5] chuyển trạng thái từ 0 lên 1, ngay lập tức tiếp điểm của T5 chuyển trạng thái tiếp điểm, ngõ ra Q3.1 = 1.

Khi ngõ vào Input[5] chuyển trạng thái từ 1 về 0, thì sau thời gian cài đặt TV = 10S, tiếp điểm của bộ định thì T5 trở lại trạng thái cũ và ngõ ra Q3.1 = 0.

Nếu ngõ vào Input[6] tác động, bộ định thì khởi động lại trạng thái ban đầu.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 5.

”DB_Tímef hput[5) — s BI —■OB_Timer’BI[5)

Ngôn ngữ lập trình SCL: FC_Timer_SCL —► mã lệnh.

T-NO := "Timer_T5", s := "DB_Timer".Input[5J, TV := S5T#10S,

R := ”DB_Timer".Reset[5], BI => "DB_Timer".BCD[5], Q => "DB_Timer".Output[5]);

Ngôn ngữ lập trình STL: FC_Timer_STL —> Network 5.

5.2.6 Bộ định thì SIMATIC theo khai báo BCD

Trong một số ứng dụng, người dùng cần thay đổi thời gian cài đặt thì khai báo S5TIME không hỗ trợ, để giải quyết vấn đề này chúng ta có thể khai báo bộ định thì theo định dạng BCD.

Bộ định thì sử dụng 1 Word để lưu trữ thông tin Trong đó:

■ Bít 0 - 11: là giá trị cài đặt với tầm giá trị từ 000 - 999.

■ Bit 12 - 13: cài đặt thời gian cơ bản của bộ định thì.

■ Bit 14 - 15: không sử dụng. Để đơn giản khai báo cho giá trị cài đặt của bộ định thì (TV) sử dụng cấu trúc sau TV = W#16#wxyz Trong đó:

■ w: tầm giá trị từ 0 - 3, là thời gian cơ bản (time base).

■ xyz: tầm giá trị từ 000 — 999, là giá trị cài đặt. Để bạn đọc hiểu hơn, chúng ta có thể tham khảo bảng quy định về thời gian cài đặt theo định BCD cho bộ định thì SIMATIC như sau:

Bảng 5.3 Quy định thời gian đặt theo định dạng BCD

và 13 Định

Time Base Tầm giá trị

00 0 10 ms Từ 10MS đến 9S990MS

Ví dụ: khai báo thời gian theo định dạng BCD.

Time Giá trị Timer đặt trước trong khai báo BCD

Giá trị cài đặt của bộ định thì TV = W#16#0550, như vậy giá trị bộ định thì TO = 550*10 ms = 5,500 ms = 5.5s. Để đơn giản hóa khai báo TV từ màn hình HMI/SCADA, chúng ta chỉ cần thay đổi các giá trị cài đặt trên giao diện điều khiển còn trong PLC thực hiện phép OR Word như sau:

■ Thời gian cơ bản là 10 ms khi W0R_W với W#16#0000.

■ Thời gian cơ bản là 100 ms khi W0R_W với W#16#1000.

- Thời gian cơ bản là ls khi W0R-W với W#16#2000.

■ Thời gian cơ bản là 10 s khi W0R_W với W#16#3000.

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

thay đổi giá trị thời gian cài đặt từ HMI

Ngôn ngữ lập trinh LAD: FC_Timer_LAD —> Network 6. ì

5WW0 - oưĩ —"DB-Iímer/ĨVlô]

Giá trị MWO có tầm giá trị từ 000 - 999 với khai báo Word, được đưa lên giao diện điều khiển HMI.

Giá trị cài đặt của bộ định thì TV[6] = MWO OR W#16#2000, tương ứng với việc chọn thời gian cơ bản (time base) là ls.

Tương tự, bạn đọc có thể thay đổi cho các thời gian cơ bản khác.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 6.

Ngôn ngữ lập trinh SCL: FC_Tímer_SCL —► mã lệnh.

"DB_Timer".TV[6] := "HMI_Time" OR W#16#2000;

T_NO := "Timer_T6", s := "DB_Timer".Input[6], TV := "DB_Timer".TV[6], BI => "DB_Timer".BCD[6J, Q => "DB_Timer".Output[6J);

Ngôn ngữ lập trình STL: FC_Timer_STL —► Network 6.

T "DB_Timer".TV[6J A ”DB_Timer".Input[6]

L "DB_Timer".TV[6J SD "Timer_T6"

5.3 BỘ ĐỊNH THÌ THEO CHUAN IEC

Bộ định thì theo chuẩn IEC được sử dụng dưới dạng khôi (block) đầy đủ hoặc sử dụng thể rút gọn với ngõ ra coil.

Bộ định thì IEC cần khối dữ liệu iDB để lưu trữ dữ liệu cho bộ định thì, và định dạng dữ liệu với kiểu TIME.

Biến của kiểu dữ liệu TIME được lưu trong 1 DWORD của PLC S7 Các kiểu dữ liệu TIME được định nghĩa theo các đơn vị:

Ngày (D), Giờ (H), Phút (M), Giây (S), và Mili giây (MS) được thực hiện bởi khai báo TIME hay T.

Bảng 5.4 Tham số của bộ định thì IEC

Kiểu dữ liệu Vùng nhớ Miêu tả

IN In Bool I, Q, M, L, D Tín hiệu cho phép bộ định thì hoạt động.

R In Bool I, Q, M, D, L hoặc hằng sô Khởi động lại bộ định thì.

PT In Time I, Q, M, D, L hoặc hằng số Giá trị cài đặt.

Q Out Bool Q, M, L, D Ngõ ra bộ định thì.

ET Out Time Q, M, L, D Thời gian hiện hành.

Các bộ định thì IEC được khai bao theo ngôn ngữ lập trình:

Bảng 5.5 Khai báo bộ định thì theo chuẩn IEC

Khai báo theo ngôn ngữ LAD và FBD

Bộ định thì khai báo theo LAD và FBD.

Khai báo theo ngôn ngữ SCL

IN:= #Enable, R:= #Reset, PT:= #PT,

Bộ định thì khai báo theo SCL.

Lưu ý: bộ định thì IEC cần khôi dữ liệu ĨDB để lưu dữ liệu của bộ định thì.

Khai báo theo ngôn ngữ STL

Data type := Time IN := #Enable

R := #Reset Bộ định thì khai báo theo STL.

PT := #PT Q := #Output ET := #Currenttime

Lưu ý: kiểu dữ liệu khai báo Data type chọn Time hoặc

5.3.1 Bộ định thì tạo xung TP

Khi ngõ vào IN cho phép bộ định thì TP hoạt động, thì ngõ ra Q sẽ tạo ra một xung bằng giá trị đặt của bộ định thì Khi giá trị hiện hành ET = PT thì kết thúc quá trình phát xung.

Lưu ý: trong thời gian bộ định thì hoạt động, ngõ vào IN tác động không ảnh hưởng.

Hình 5.6 Đồ thị Timing của bộ định thì TP

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

Network 7: bộ định thì IEC tạo xung TP.

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 7.

Tít 1 OS — FT Eĩ —”DB_límer"£Tl1)

Khi ngõ vào Input[7] tác động, ngõ ra Q của bộ định thì TP sẽ tạo ra một xung bằng thời gian đặt PT = 10 s Và Output[7J =

Khi bộ định thì đang hoạt động thì tín hiệu đầu vào Input[7] có tác động lại cũng không ảnh hưởng tới việc phát xung.

Người dùng sử dụng trực tiếp ngõ ra Q của bộ định thì, hoặc sử dụng tiếp điểm của bộ định thì với khai báo "".Q.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —► Network 7.

■DB_Tímer- ị Inputp] — N Ệj'—■DB_Timer"£TI11

Ngụn ngữ lập trỡnh SCL: FC_Timer_SCL —ằ mó lệnh.

"ĨEC_TP".TP(IN := "DB_Timer".Input[7J,

PT := T#10S, Q => "DB_Timer".Output[7J, ET => ”DB_Timer".ET[l]);

Ngôn ngữ lập trình STL: FC_Timer_STL —> Network 7.

Time_type:=Time IN :="DB_Timer".Input[7]

5.3.2 Bộ định thì trễ cạnh lên TON

Khi ngõ vào IN tác động và duy trì trạng thái cho phép TON hoạt động tới khi giá trị ET > PT thì ngõ ra Q đổi trạng thái lên mức 1.

Khí ngõ vào IN chuyển trạng thái từ 1 về 0 thì Timer TON kết thúc hoạt động.

Hình 5.7 Đồ thị Timing của bộ định thì TON

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì IEC trễ cạnh lên TON Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 8

T#1OS — Pf ET—"DB_ĩímer *£Tl2]

Ngõ vào Input[8J tác động và duy trì hoạt động ET > 10s thì ngõ ra Q chuyển trạng thái và Output[8J = 1.

Khi ngõ vào Input[8] ngừng tác động, ngõ ra Q trở về trạng thái ban đầu và Output[8J = 0.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 8.

Ngụn ngữ lập trỡnh SCL: FC_Timer_SCL —ằ mó lệnh.

"iEC_T0N".T0N(IN:="DB_Timer".Input[8J,

PT:=T#10S, Q => "DB_Timer".Output[8J, ET => ”DB_Timer".ET[2]);

Ngôn ngữ lập trình STL: FC_Tímer_STL —► Network 8.

CALL TON , "iEC_TON" time_type:=Time IN :="DB_Timer".Input[8]

PT :=T#10S Q :="DB_Timer".Output[8J ET :="DB_Timer".ET[2]

5.3.3 Bộ định thì trễ cạnh xuống TOF

Bộ định thì trễ cạnh xuống bắt đầu hoạt động khi ngõ vào cho phép chuyển trạng thái từ 0 lên 1, đồng thời tiếp điểm của bộ

179 định thì chuyển trạng thái: tiếp điểm thường mở đóng lại (mức 1) và tiếp điểm thường đóng mở ra (mức 0).

Khi ngõ vào cho phép hoạt động chuyển trạng thái từ 1 về 0 thì sau khoảng thời gian T# đặt trước thì trạng thái tiếp điểm của bộ định thì trở về trạng thái ban đầu (tắt).

Hình 5.8 Đồ thị Timing củabộ định thì TOF

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì IEC trễ cạnh xuống TOF

Nếu ngõ vào Input[9] chuyển trạng thái từ 0 lên 1 thì tiếp điểm của bộ định thì TOF chuyển trạng thái và ngõ ra

Khi ngõ vào Input[9] chuyển trạng thái từ 1 về 0, sau đó 10s tiếp điểm của bộ định thì TOF sẽ chuyển về trạng thái ban đầu.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 9.

Ngôn ngữ lập trình SCL: FC_Tĩmer_SCL mã lệnh.

"ÌEC_TOF".TOF(IN := ”DB_Timer".Input[9]

PT := T#10S Q => "DB_Timer".Output[9J ET => "DB_Timer".ET[3])

Ngôn ngữ lập trình STL: FC_Timer_STL —> Network 9.

Time_type:=Time IN :="DB_Timer".Input[9]

5.3.4 Bộ định thì trễ cạnh lên có nhớ TONR

Bộ định thì trễ cạnh lên có nhớ bắt đầu đếm thời gian khí ngõ vào IN chuyển từ trạng thái 0 lên 1, nếu thời gian tác động của ngõ vào IN < PT thì giá trị thời gian vẫn lưu tại ET và được cộng dồn cho tới khi IN > PT thì ngõ ra của bộ định thì sẽ chuyển trạng thái: thường đóng NC sẽ mở và thường mở NO sẽ đóng lại.

Nếu ngõ vào cho phép chuyển trạng thái từ 1 về 0, bộ định thì vẫn tiếp tục trạng thái tới khi có tín hiệu khởi động lại bộ định thì.

Hình 5.9 Đồ thị Timing của bộ định thì TONR

Xét ví dụ sau đây được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bộ định thì IEC trễ cạnh lên TONR

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 10

‘DB_Timer‘ TONR lnput[10] T to

Bộ định thì TONR cộng dồn thời gian tác động của Input[10J tới khi ET > 10s thì ngõ ra chuyển trạng thái và Output[10] = 1.

Ngõ ra Q duy trì trạng thái ở mức 1 cho tới khi có tín hiệu Reset[10] tác động, bộ định thì sẽ trở về trạng thái ban đầu.

Ngôn ngữ lập trình FBD: FC_Timer_FBD —> Network 10.

Ngôn ngữ lập trình SCL: FC_Timer_SCL —> mã lệnh.

"iEC_TONR".TONR(IN := ”DB_Timer".Input[10],

Q => "DB_Timer".Output[10], ẼT => "DB_Timer".ET[4]);

Ngôn ngữ lập trình STL: FC_Timer_STL —> Network 10

Time_type:=Time IN :="DB_Timer".Input[10]

Q :="DB_Timer".Output[10] ẼT :="DB_Timer".ET[4]

Bài tập 1 : nhấn Start đèn Lĩght_A sáng/tắt (flash) với chu kỳ

4s với thời gian đèn sáng bằng thời gian tắt Trong quá trình hoạt động nếu nhấn Stop thì đèn ngừng hoạt động.

Hướng dẫn’, bài tập 1 được trình bày với các ngôn ngữ lập trình tương ứng trong các hàm FC_Timer:

bài tập 1

Ngôn ngữ lập trình LAD: FC_Timer_LAD —> Network 11.

Ngôn ngữ lập trình STL: FC_Timer_STL —> Network 11.

A ”DB_Timer".Start[l] s "DB_Timer" Memory [ 1]

A "DB_Timer".Stop[lJ R "DB_Timer" Memory! 1]

Bài tập 2: nhấn Start đèn B sáng 10s rồi tắt Trong quá trình hoạt động nếu nhấn stop thì hệ thống dừng.

Hướng dẫn: bài tập 2 được trình bày với các ngôn ngữ lập trình

LAD trong hàm FC_Timer_LAD, bạn đọc hoàn thiện các ngôn ngữ lập trình còn lại.

bài tập 2

Ngôn ngữ lập trình LAD: FC_Tĩmer_LAD —► Network 12

Bài tập 3: nhấn Start động cơ chạy 10s rồi dừng, sau 3s động chạy lại, sau 7 giây thì dừng hẳn Trong quá trình hoạt động nếu nhấn Stop thì ngừng hoạt động.

Hướng dẫn: bài tập 3 được trình bày với các ngôn ngữ lập trình

LAD trong hàm FC_Timer_LAD, bạn đọc hoàn thiện các ngôn ngữ lập trình còn lại.

bài tập 3

1 Bộ định thì được sử dụng cho những bài toán như thê nào?

Hãy so sánh giữa bộ định thì SIMATIC và IEC.

2 Trình bày nguyên lý hoạt động của bộ định thì TON và TOF.

3 Tại sao giá trị cài đặt TV của bộ định thì SIMATIC lại chỉ có thể đạt được từ 10MS tới 2H46M30S.

4 Hãy viết lại chương trình của bài tập 1 và 2 với các ngôn ngữ lập trình còn lại mà tác giả chưa viết trong sách.

5 Lập trình PLC điều khiển cửa lò đốt hoạt động theo yêu cầu sau đây:

■ Cửa lò đốt có chức năng đóng, mở và dừng lại (standstill) được điều khiển bởi xylanh Trạng thái ban đầu cửa đóng và được mở khi nút nhấn SI được tác động, cửa sẽ dừng lại khi nhấn nút stop hoặc tới giới hạn hành trình Nếu cửa mở tới vị trí cuối cùng thì sẽ tự động đóng lại sau 6s hoặc nút S2 được nhấn thì cửa đóng lại và dừng lại khi nhấn nút stop hoặc tới giới hạn hành trình Bên cạnh đó việc đóng cửa sẽ dừng lại nếu the light barrier bị ngắt, khi light barrier hoạt động trở lại thì quá trình đóng cửa tiếp tục thực hiện.

■ Với trạng thái bảng biến được miêu tả như sau:

SI Nút nhấn cho phép mở cửa - Open Tác động thì Sl = 1

S2 Nút nhấn cho phép đóng cửa

S3 Nút nhấn dừng hệ thống - Stop Tác động thì S3 = 0

S4 Trạng thái cửa mở Cửa mở thì S4 = 0

S5 Trạng thái cửa đóng Cửa đóng thì thì S5 = 0 BI Light barrier Light barrier free = 1

Y1 Kích cho valve soneloid mở

Y2 Kích cho valve soneloid đóng

6 Điều khiển hệ thống bơm điều áp sử dụng PLC thực hiện theo yêu cầu sau:

■ Hệ thống gồm 4 máy bơm cung cấp nước cho hệ thống đường ông (pipeline system) Trạng thái của 4 máy bơm sẽ mở hoặc tắt để giữa áp suất trong đường ống nằm trong giới hạn cho phép.

■ Để đảm bảo trạng thái áp suất đạt yêu cầu và hệ thông hoạt động ổn định thì khi trạng thái switch on hoặc switch off được tác động vẫn duy trì trong một khoảng thời gian nhất định:

■ Khi áp suất thấp hơn áp suất ở trạng thái bình thường — áp suất ngưỡng thấp - được phát hiện thì sau 5s bơm sẽ hoạt động.

■ Khi áp suất cao hơn áp suất ở trạng thái bình thường - áp suất ngưỡng cao - được phát hiện thì sau 5s bơm sẽ ngừng hoạt động.

■ Để đảm bảo độ bền của thiết bị thì yêu cầu thời gian hoạt động và tần số chuyển mạch của các bơm càng đồng bộ càng tốt.

- Với trạng thái bảng biến được miêu tả như sau:

Miêu tả ý nghĩa của biến

Sl.l Áp suất ngưỡng thấp

7 Điều khiển việc khởi động động cơ không đồng bộ 3 pha với slipring rotor bằng PLC chạy tuần tự hoạt động như sau:

■ Khởi động động cơ không đồng bộ 3 pha với slipring rotor thực hiện trong 3 bước thông qua điện trở của rotor Khi tác động Sl, động cơ hoạt động với 3 điện trở rotor Rl, R2 và R3 được kết nối liên tiếp Sau đó, các contactor K2, K3 và K4 chuyển trạng thái tắt (short - circutting) Rl, R2 và R31ần lượt với khoảng thời gian 5s Sau khi tất cả các contactor đóng lại thì Motor hoạt động bình thường.

■ Khi đang hoạt động nếu tác động so, động cơ trở lại trạng thái trước đó Khi hoạt động quá tải relay F2 sẽ được kích hoạt và động cơ dừng hoạt động.

Chương 6 LẬP TRÌNH VỚI BỘ ĐẾMLẬPTRÌNH VỚI BỘ ĐẾM

Bộ đếm PLC chia thành 2 loại: bộ đếm thường (nhận xung có tần số tính bằng Hz) và bộ đếm tốc độ cao (HSC - nhận xung có tần số tính bằng KHz).

Nội dung chương này trình bày về bộ đếm thường Bộ đếm được sử dụng đếm sản phẩm, sô' vòng lặp, số lần thực hiện một quy trình nào đó trong một hệ thống.

Bộ đếm có thể khai báo theo chuẩn SIMATIC hoặc chuẩn IEC.

Sử dụng các tập lệnh của bộ đếm:

■ IEC: Instructions —► Basic instructions —> Counter operations.

■ SIMATIC: Instructions —> Basic instructions —► Counter operations —> Legacy.

Ngoài ra, bạn đọc cũng cần tìm hiểu thêm về các tập lệnh khác như so sánh, toán học, chuyển đổi để hỗ trợ cho việc lập trình và xử lý các tập lệnh liên quan tới bộ đếm.

6.1 CÁC TẬP LỆNH SO SÁNH VÀ TOÁN HỌC 6.1.1 Các tập lệnh so sánh

Phần này chúng ta cùng tìm hiểu các tập lệnh so sánh được TIA Portal hỗ trợ cho S7 - 1500 Các kiểu dữ liệu và các tập lệnh so sánh được hỗ trợ như:

■ Các kiểu dữ liệu: Int, Dint, Real, Word, DWord, Time, UDT

■ 6 tập lệnh so sánh cơ bản: So sánh bằng (==), so sánh khác (), so sánh lớn hơn (>), so sánh lớn hơn bằng (>=), so sánh nhỏ hơn ( nếu thoả điều kiện thì sẽ cho ngõ ra RLO bằng 1, còn ngược lại ngõ ra bằng 0.

Bảng 6.1 Tham sô của tập lệnh so sánh

Vùng nhớ Miêu tả ctoán hạng

Int, Dint, Real, Word, DWord, Time

Giá trị thứ nhất đem so sánh

Int, Dint, Real, Word, DWord, Time

Giá trị thứ hai để so sánh

Bảng 6.2 Khai báo tập lệnh so sánh

Khai báo theo ngôn ngữ LAD

Tập lệnh so sánh khai báo theo LAD.

Khai báo theo ngôn ngữ FBD

Tập lệnh so sánh khai báo theo FBD.

Khai báo theo ngôn ngữ SCL

Khai báo theo ngôn ngữ STL

Khai báo so sánh cho UDT:

Tập lệnh so sánh khai báo theo STL.

Lưu ý: bạn đọc cần biết các kiểu dữ liệu (data type) cơ bản và cách viết tắt để hiểu cách sử dụng trong các tập lệnh so sánh ở chương này và các bài tập/ứng dụng sau này.

Ngoài các tập lệnh so sánh cơ bản trên thì TIA Portal hỗ trợ người dùng nhiều tập lệnh so sánh khác như: IN_RANGE, OUT_RANGE, kiểm tra toán học số thực OK và Not OK Và một số lệnh so sánh cho biến Variant Bạn đọc tham khảo thêm trong phần help.

6.1.2 Các tập lệnh xử lý toán học

Các tập lệnh xử lý toán học —Math functions, được sử dụng để thực hiện các phép toán cơ bản như: Cộng (+), Trừ (—), Nhân (*) và Chia (/) Các tập lệnh xử lý toán học trong TIA Portal:

Instructions —> Basic instructions —> Math function hoặc ngôn ngữ STL: STL Mnemonic -+ Math function.

Bảng 6.3 Khai báo các lệnh xử lý toán học cơbản

Khai báo theo ngôn ngữ LAD

EN - ENO IN1 OƯT IN2 *

#“Operator2" — toán học khai báo

Khai báo theo ngôn ngữ FBD

Tập lệnh xử lý toán học khai báo

Khai báo theo ngôn ngữ SCL

#Value := #"Operator 1" + #"Operator 2"; toán học khai báo theo SCL.

Khai báo theo ngôn ngữ STL

L # Operator 2 v y toán học khai báo

Ngoài các phép toán cơ bản thì TIA Portal cũng như S7 - 1500 hỗ trợ nhiều phép toán 'học khác và nhiều kiểu dữ liệu Bạn đọc tham khảo thêm trong manual hoặc phần help.

6.1.3 Các tập lệnh chuyển đổi

Khi các toán hạng không đồng nhất về kiểu dữ liệu thì việc thực hiện các phép so sánh, xử lý tính toán giữa các giá trị sẽ trở lên khó khăn, bởi vậy việc chuyển đổi đồng nhất về một kiểu dữ liệu là cần thiết Các tập lệnh thực hiện chuyển đổi dữ liệu trong TIA Portal: Instructions —> Basic instructions —*

Bảng 6.4 Tham sô" của tập lệnh chuyển đổi

Kiểu dữ liệu Vùng nhớ Miêu tả

Giá trị cần chuyển đổi

BCD Q, M, D, L, p Kết quả sau khi chuyển đổi.

Lưu ý: vùng nhớ L chính là vùng nhớ tạm Temporary, vùng nhớ D chính là vùng nhớ DB và p chính là con trỏ Pointer.

6.1.3.1 Lệnh chuyển đổi giá trị - Convert

Tập lệnh Convert được sử dụng chung cho hầu hết các kiểu dữ liệu cần chuyển đổi Ví dụ:

■ Int chuyển đổi qua Dint, Real.

■ BCD chuyển đổi qua Integer, Real.

■ Byte chuyển đổi qua Bool, Char, Int, Dint.

Và còn rất nhiều kiểu dữ liệu khác nữa mà chúng ta có thể thực hiện chuyển đổi kiểu dữ liệu (data type) theo mục đích sử dụng của bài toán thực tế Bạn đọc vui lòng tham khảo thêm trong manual, hoặc phần help của TIA Portal. Để thực hiện chuyển đổi giá trị thì chúng ta cần chọn giá trị phù hợp đôi với đầu vào và đầu ra.

Bảng 6.5 Khai báo các lệnh chuyển đổi

Khai báo theo ngôn ngữ LAD

Tập lệnh chuyển đổi khai báo theo LAD.

Khai báo theo ngôn ngữ FBD

Tập lệnh chuyển đổi khai báo theo FBD.

Khai báo theo ngôn ngữ SCL

#Value := DTypel_TO_DType2(_Input_); Tập lệnh chuyển

Ví dụ: đổi khai báo theo

#Value := INT TO REAL(#"Operator 1"); SCL-

Khai báo theo ngôn ngữ STL

ITD đổi khai báo theo

Lưu ý: lệnh chuyển đổi dùng ngôn ngữ STL phải theo nguyên tắc chuyển đổi chứ không trực tiếp giông như các ngôn ngữ khác V1 dụ: I —> DI —> R.

6.1.3.2 Lệnh làm tròn giá trị số thực về sốnguyên

Một số trường hợp người dùng muốn lấy phần nguyên của số thực có thể sử dụng các tập lệnh chuyển đổi từ số thực sang số nguyên như:

■ Round: làm tròn giá trị số thực về số nguyên gần nhất.

■ Ceil: làm tròn giá trị số thực về số nguyên lớn gần nhất.

■ Floor: làm tròn giá trị số thực về số nguyên nhỏ gần nhất.

■ Trunc: lấy phần nguyên của số thực.

Ngoài ra, các ngôn ngữ lập trình khác nhau sẽ hỗ trự thêm các tập lệnh chuyển đổi khác nhau Trong đó, các tập lệnh được hỗ trợ đầy đủ nhất là STL và SCL.

Các tập lệnh chuyển đổi: Scale_x, Norm_x, Scale và UnScale được trình bày chi tiết trong phần xử lý tín hiệu tương tự.

6.2 QUẢN TRỊ CHƯƠNG TRÌNH NGƯỜI DÙNG 6.2.1 Tạo chương trình con FC

Bước 1: khởi tạo các hàm FC_Couiiter, FC_Counter_LAD,

FC_Counter_FBD, FC_Counter_SCL và FC_Counter_STL ứng với các ngôn ngữ lập trình LAD, FBD, SCL và STL cho lệnh Counter.

Bước 2: gọi chương trình FC_Counter [FC6] trong OB Main

Bước 3: tạo khối dữ liệu DB_Counter [DB6] với kiểu DB toàn cục.

Bước 4: khai báo các thông số và kiểu dữ liệu muôn sử dụng:

DB— Counter ì 1 Name - “ Datatype - -• [startvalue • ■’ (Retain d Static

□ d Enable_LAD Bool false a id Enable_FBD Bool false 8 d Enable_SCL Bool false a d Enable_SB_ Bool false a d ► cu Arrayfl -16] of Bool ; a d ► CD Arrayfl -16] of Bool a d ► s Arrayfl -16] of Bool •_ 0 d ► PV_5IMAT1C Arrayfl „16] of Word ' 0 d ► PVJEC Arrayfl _1 6] of 1 nt 0 d ► R Array! 1 -1 f>l of Bool t 0 d ► Q Arrayfl-16] of Bool 0 d ► cv Arrayfl-16] of Int 0

!d ► CV-BCD Arrayfl 16] of Word 0

Lưu ý: các hàm chức năng FC ứng với các ngôn ngữ lập trình tương ứng sẽ cho cùng kết quả, nên tại một thời điểm sử dụng bạn đọc chỉ kích hoạt cho một hàm hoạt động.

Ngày đăng: 30/08/2024, 17:38

w