Bugtech

Lập Trình PLC Siemens S7-1500: Hướng Dẫn 7 Bước Từ A-Z

Trong bối cảnh sản xuất hiện đại, việc tối ưu hóa quy trình là yếu tố sống còn. Trung tâm của mọi hệ thống tự động hóa là tủ điều khiển PLC. Để vận hành hiệu quả, kỹ năng lập trình PLC là cực kỳ quan trọng. SIMATIC S7-1500 của Siemens là thế hệ bộ điều khiển mạnh mẽ. Nó mang lại hiệu suất cao và khả năng kỹ thuật vượt trội. Bắt đầu làm quen với S7-1500 có thể dễ dàng nếu đi đúng hướng. Bài viết này sẽ hướng dẫn bạn từng bước chi tiết.

SIMATIC S7-1500 được thiết kế để tăng năng suất và hiệu quả kỹ thuật. Nền tảng TIA Portal giúp thực hiện mọi tác vụ tự động hóa. Việc sử dụng SCL (Structured Control Language) giúp việc lập trình trở nên hiệu quả hơn.

1. Bước 1: Chuẩn Bị Phần Cứng Cần Thiết

Để bắt đầu, bạn cần các thành phần phần cứng cơ bản:

Thành phầnMô tảMã sản phẩm (Ví dụ)
CPU S7-1500Bộ xử lý trung tâm6ES7511-1AK02-0AB0
Nguồn Tải (Load Current Supply)Cung cấp nguồn cho các module I/O6EP1332-4BA00
Thẻ Nhớ SIMATIC (SIMATIC Memory Card)Lưu trữ dự án và dữ liệu6ES7954-8LC03-0AA0
Thanh Gắn (Mounting Rail)Nền để lắp các module6ES7590-1AB60-0AA0
Module Đầu Vào Số (DI)Nhận tín hiệu số từ trường6ES7521-1BH50-0AA0
Module Đầu Ra Số (DQ)Xuất tín hiệu số ra trường6ES7522-1BH01-0AB0
Đầu Nối Phía Trước (Front Connector)Dùng để đấu dây vào module6ES7592-1AM00-0XB0
Cáp EthernetKết nối CPU với máy tính lập trình/mạng

Đảm bảo bạn có đủ số lượng đầu nối phía trước cho tất cả các module.

2. Bước 2: Lắp Ráp Phần Cứng

Việc lắp ráp PLC S7-1500 khá đơn giản.

  1. Gắn thanh gắn vào vị trí mong muốn trong tủ điều khiển.
  2. Gắn bộ nguồn (Load Current Supply) vào thanh gắn.
  3. Gắn CPU vào thanh gắn, đặt nó bên cạnh bộ nguồn.
  4. Gắn các module I/O số (DI, DQ) vào thanh gắn, đặt chúng bên cạnh CPU. Các module sẽ tự động kết nối với nhau qua bus phía sau.

3. Bước 3: Đấu Dây Nguồn và Tín Hiệu

Đấu dây là bước quan trọng, tuân thủ quy tắc an toàn là ưu tiên hàng đầu.

  1. Đấu dây nguồn chính (Mains): Mở nắp đầu nối nguồn. Đấu dây nguồn chính (ví dụ: 230VAC) vào các cực tương ứng trên đầu nối. Đóng nắp và siết vít.
  2. Đấu dây nguồn tải (PM) đến CPU: Đấu dây từ bộ nguồn (PM) đến các cực nguồn của CPU (thường là 24VDC). Kiểm tra sơ đồ đấu dây trên tài liệu module.
  3. Đấu dây tín hiệu cho module I/O: Gắn đầu nối phía trước vào các module DI/DQ. Đấu dây tín hiệu từ cảm biến, nút nhấn (đầu vào số) và đến contactor, van (đầu ra số) vào các cực trên đầu nối. Chú ý cực tính (nếu có) và sơ đồ chân của module.

Quy tắc đấu dây quan trọng:

  • Tuân thủ các tiêu chuẩn an toàn điện (ví dụ: IEC 60204-1).
  • Sử dụng đúng loại và tiết diện dây cáp.
  • Sử dụng ferrules (đầu cốt) cho dây mềm để đảm bảo kết nối chắc chắn.
  • Kiểm tra lại tất cả các kết nối trước khi cấp nguồn.
Top phần mềm thiết kế tủ điều khiển chuyên nghiệp

4. Bước 4: Cấp Nguồn và Cấu Hình IP Ban Đầu Qua Màn Hình

Sau khi lắp ráp và đấu dây xong, bạn có thể cấp nguồn cho hệ thống.

  1. Cắm thẻ nhớ SIMATIC vào khe cắm trên CPU.
  2. Bật nguồn cho bộ nguồn tải (PM). CPU sẽ khởi động và thường vào chế độ STOP.
  3. Cấu hình địa chỉ IP: Sử dụng màn hình tích hợp trên CPU (nếu có) để cấu hình địa chỉ IP ban đầu.
    • Điều hướng đến mục “Settings”.
    • Chọn “Addresses”.
    • Chọn giao diện Ethernet (ví dụ: “X1 (IE/PN)”).
    • Chọn “IP Addresses”.
    • Nhập địa chỉ IP (ví dụ: 192.168.0.10) và Subnet Mask (ví dụ: 255.255.255.0).
    • Áp dụng cài đặt.

Bạn đã hoàn thành việc chuẩn bị phần cứng và cấu hình mạng cơ bản.

5. Bước 5: Tạo Dự Án và Cấu Hình Phần Cứng Trong TIA Portal

TIA Portal là môi trường lập trình tích hợp cho SIMATIC.

  1. Mở TIA Portal. Chọn “Create new project”.
  2. Đặt tên dự án và lưu vào thư mục phù hợp.
  3. Chọn “Configure a device”.
  4. Thêm CPU S7-1500 (ví dụ: CPU 1511-1 PN) vào dự án. Chọn phiên bản firmware phù hợp.
  5. Trong giao diện “Devices & networks” hoặc “Device view”, thêm các module I/O số (DI, DQ) đã lắp vào CPU. Kéo thả module từ Hardware catalog.
  6. (Tùy chọn) Thực hiện dò tìm phần cứng (“hardware detection”) để TIA Portal tự động nhận diện các module vật lý.
  7. Cấu hình địa chỉ I/O: Kiểm tra và điều chỉnh địa chỉ đầu vào/ra cho các module nếu cần. Các module mới thường có địa chỉ mặc định.
  8. Cấu hình IP: Đảm bảo địa chỉ IP trong TIA Portal khớp với địa chỉ đã cấu hình trên màn hình CPU.

Lưu ý về Optimized Blocks:

S7-1500 hỗ trợ Optimized Blocks, giúp truy cập dữ liệu tối ưu và chỉ sử dụng địa chỉ ký hiệu (symbolic). Điều này cải thiện hiệu suất và độ an toàn. Nên ưu tiên sử dụng Optimized Blocks và địa chỉ ký hiệu.

6. Bước 6: Lập Trình Logic Bằng Ngôn Ngữ SCL

SCL là ngôn ngữ lập trình bậc cao, dựa trên tiêu chuẩn IEC 61131-3. Nó giống như Pascal. SCL rất phù hợp cho các tác vụ phức tạp.

Cấu trúc cơ bản của chương trình SCL:

Chương trình PLC được tổ chức thành các khối (Blocks):

  • OB (Organization Block): Giao diện giữa hệ điều hành CPU và chương trình người dùng. Ví dụ: OB1 (chạy chu kỳ).
  • FC (Function): Khối mã không có bộ nhớ riêng (không cần Instance DB). Thường dùng cho các tác vụ không cần lưu trạng thái. Có thể trả về một giá trị duy nhất.
  • FB (Function Block): Khối mã có bộ nhớ riêng (cần Instance DB). Thường dùng cho các đối tượng cần lưu trạng thái (ví dụ: Timer, Counter, PID, Motor).
  • DB (Data Block): Khối chỉ chứa dữ liệu. Có thể là Global DB (dữ liệu chung) hoặc Instance DB (dữ liệu cho một FB cụ thể).
  • UDT (User-Defined Data Type) / PLC Data Type: Định nghĩa cấu trúc dữ liệu tùy chỉnh.

Mỗi khối SCL có phần khai báo (Declaration Section) và phần mã (Code Section).

  • Phần khai báo: Định nghĩa biến cục bộ (Local variables – VAR_TEMP, VAR) và tham số (Parameters – VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT).
  • Phần mã: Chứa các lệnh logic thực thi (bắt đầu bằng BEGIN, kết thúc bằng END_…).

Bình luận trong SCL:

  • Bình luận trên một dòng: Bắt đầu bằng //.
  • Bình luận khối: Nằm trong cặp (* và *).

Ví Dụ Lập Trình SCL Thực Tế:

Chúng ta sẽ xem xét hai ví dụ phổ biến trong công nghiệp: tính toán thể tích bồn và hàm scale tín hiệu analog.

Ví Dụ 1: Tính Toán Thể Tích Bồn Trụ

Giả sử cần tính thể tích chất lỏng trong bồn trụ dựa vào đường kính (Diameter), chiều cao (Height) và mức đo được (Filling_level).

  • Mục tiêu: Tạo một hàm (FC) tính toán thể tích.
  • Công thức: Thể tích = π * (Đường kính / 2)^2 * Mức chất lỏng. Cần nhân thêm 1000 để đổi sang lít nếu đơn vị đầu vào là mét.
Tham sốKiểu dữ liệuMô tả (Đơn vị mét/lít)
Input:
HeightREALChiều cao bồn (mét)
DiameterREALĐường kính bồn (mét)
Filling_levelREALMức chất lỏng đo được (mét)
Output:
VolumeREALThể tích chất lỏng (lít)
erBOOLCờ báo lỗi (TRUE nếu có lỗi dữ liệu nhập)

Các bước lập trình (trong TIA Portal):

  1. Thêm khối FC mới (ví dụ: “Calculate_Volume”). Chọn ngôn ngữ lập trình là SCL.
  2. Vào phần khai báo (Interface). Thêm các tham số Input (Height, Diameter, Filling_level) và Output (Volume, er) với kiểu dữ liệu REAL/BOOL như bảng trên.
  3. Viết code trong phần Code Section (BEGIN … END_FUNCTION).

FUNCTION “Calculate_Volume” : Real // Có thể trả về Volume trực tiếp

VAR_INPUT

    Height : Real; // Chiều cao bồn (mét)

    Diameter : Real; // Đường kính bồn (mét)

    Filling_level : Real; // Mức chất lỏng đo được (mét)

END_VAR

VAR_OUTPUT

    er : Bool; // Cờ báo lỗi

    Volume : Real; // Thể tích chất lỏng (lít)

END_VAR

VAR_TEMP // Biến tạm

    radius : Real;

    area : Real;

END_VAR

BEGIN

    // Kiểm tra dữ liệu đầu vào

    IF Diameter <= 0.0 OR Filling_level < 0.0 OR Filling_level > Height THEN

        er := TRUE; // Báo lỗi

        Volume := -1.0; // Giá trị lỗi

    ELSE

        er := FALSE; // Không lỗi

        radius := Diameter / 2.0;

        area := 3.141593 * radius * radius; // Diện tích đáy (sử dụng giá trị PI)

        Volume := area * Filling_level * 1000.0; // Tính thể tích (đổi sang lít)

    END_IF;

    // Nếu muốn hàm trả về giá trị (FUNCTION “Calculate_Volume” : Real)

    // “Calculate_Volume” := Volume;

END_FUNCTION

  1. Gọi hàm này từ khối OB1 hoặc FB khác. Trong OB1 (thường là FBD hoặc LAD để gọi các khối khác), kéo thả khối FC “Calculate_Volume” vào một Network. Kết nối các tham số Input/Output của khối hàm với các Tag (biến) trong Global DB chứa dữ liệu bồn.

Ví Dụ 2: Hàm Scale Tín Hiệu Analog

Trong nhà máy, tín hiệu từ cảm biến analog (ví dụ: 4-20mA) thường có giá trị thô (RAW value, ví dụ: 0-27648). Cần chuyển đổi sang giá trị thực tế (Scaled value) trong khoảng engineering unit (ví dụ: 0-12 mét cho mức bồn).

  • Mục tiêu: Tạo một hàm (FC) chuyển đổi tín hiệu analog.
  • Công thức: ScaledValue = (RawValue * (MaxEU – MinEU) / (MaxRaw – MinRaw)) + MinEU. Với Siemens S7-1500, MaxRaw mặc định là 27648.
Tham sốKiểu dữ liệuMô tả (Khoảng giá trị)
Input:
Analog_perINTGiá trị thô từ I/O (0-27648)
mxREALGiá trị lớn nhất của thang mới (MaxEU)
mnREALGiá trị nhỏ nhất của thang mới (MinEU)
Output:
Analog_scalREALGiá trị sau khi scale (mn-mx)
erBOOLCờ báo lỗi (TRUE nếu có lỗi dữ liệu nhập)

Các bước lập trình (trong TIA Portal):

  1. Thêm khối FC mới (ví dụ: “Scale_Analog”). Chọn ngôn ngữ lập trình là SCL.
  2. Vào phần khai báo (Interface). Thêm các tham số Input (Analog_per, mx, mn) và Output (Analog_scal, er) như bảng trên.
  3. Viết code trong phần Code Section (BEGIN … END_FUNCTION).

FUNCTION “Scale_Analog” : Void // Hàm này không trả về giá trị Function Value

VAR_INPUT

    Analog_per : Int; // Giá trị thô (0 – 27648)

    mx : Real; // Giá trị max của thang mới

    mn : Real; // Giá trị min của thang mới

END_VAR

VAR_OUTPUT

    Analog_scal : Real; // Giá trị sau khi scale

    er : Bool; // Cờ báo lỗi

END_VAR

VAR_CONST // Hằng số

    MAX_RAW_VALUE : Int := 27648; // Giá trị thô lớn nhất

END_CONST

BEGIN

    // Kiểm tra dữ liệu đầu vào

    IF Analog_per < 0 OR Analog_per > MAX_RAW_VALUE OR mx <= mn THEN

        er := TRUE; // Báo lỗi

        Analog_scal := mn; // Gán giá trị min hoặc giá trị lỗi khác

    ELSE

        er := FALSE; // Không lỗi

        // Công thức scale: ScaledValue = (RawValue * (MaxEU – MinEU) / (MaxRaw – MinRaw)) + MinEU

        Analog_scal := (INT_TO_REAL(Analog_per) * (mx – mn) / INT_TO_REAL(MAX_RAW_VALUE)) + mn;

    END_IF;

END_FUNCTION

Lưu ý: Sử dụng INT_TO_REAL để chuyển đổi giá trị INT sang REAL trước khi thực hiện phép toán với số thực.

  1. Gọi hàm này từ khối OB1 hoặc FB khác, kết nối với Tag đầu vào Analog và Tag đầu ra Scaled Value.

Kiểu Dữ Liệu VARIANT:

S7-1500 (từ FW4.1) hỗ trợ kiểu dữ liệu VARIANT. VARIANT là con trỏ có kiểm tra kiểu tại runtime. Nó linh hoạt hơn con trỏ ANY cũ. VARIANT hữu ích khi viết khối mã xử lý nhiều kiểu dữ liệu khác nhau. Có các lệnh VARIANT như TypeOf(), VariantGet/VariantPut. VARIANT tăng tính linh hoạt và hiệu quả tái sử dụng mã.

7. Bước 7: Biên Dịch, Tải Xuống và Kiểm Tra

Sau khi hoàn thành lập trình, bạn cần biên dịch và tải chương trình xuống PLC.

  1. Biên dịch (Compile): Trong TIA Portal, chọn CPU hoặc thư mục Program blocks. Nhấn phải chuột và chọn “Compile” -> “Hardware and software (only changes)”. TIA Portal sẽ kiểm tra cú pháp và tạo mã máy.
  2. Tải xuống (Download): Sau khi biên dịch thành công. Nhấn phải chuột vào CPU và chọn “Download to device” -> “Hardware and software (only changes)”. Chọn giao diện kết nối (ví dụ: Ethernet) và tìm PLC. Xác nhận tải xuống. CPU sẽ chuyển sang chế độ RUN. Có thể tải xuống mà không cần khởi tạo lại (Download without reinitialization) cho các khối Optimized.
  3. Giám sát (Monitor): Trong TIA Portal, mở các khối mã (OB1, FCs) hoặc Tag table. Bật chức năng “Monitoring on/off” để xem giá trị các biến trực tuyến. Có thể sử dụng Watch table để giám sát các biến quan trọng.
  4. Kiểm tra logic (Test): Kích hoạt các tín hiệu đầu vào thực tế hoặc sử dụng chức năng “Modify operand” trong TIA Portal để ghi giá trị trực tiếp vào các biến đầu vào của khối hàm. Quan sát giá trị đầu ra để xác nhận logic hoạt động đúng.

Danh Sách Kiểm Tra Cơ Bản Sau Khi Lập Trình (Áp dụng cho ví dụ trên):

Sử dụng Watch Table hoặc Monitoring online để theo dõi các biến sau khi tải chương trình.

STTMô tả hành độngBiến đầu vào thay đổiBiến đầu ra mong đợi (Ví dụ)Kết quả thực tếĐạt/Không Đạt
1Hàm Scale: Set Analog_per = 0Analog_per = 0, mx=12.0, mn=0.0Analog_scal = 0.0, er = FALSE
2Hàm Scale: Set Analog_per = 27648Analog_per = 27648, mx=12.0, mn=0.0Analog_scal = 12.0, er = FALSE
3Hàm Scale: Set Analog_per = 13824Analog_per = 13824, mx=12.0, mn=0.0Analog_scal = 6.0, er = FALSE
4Hàm Scale: Set Analog_per bất kỳ, mx <= mnmx = 0.0, mn = 0.0er = TRUE (Analog_scal giá trị không xác định)46
5Hàm Volume: Set Diameter = 0.0Diameter = 0.0, Height=12.0,…er = TRUE, Volume = -1.0
6Hàm Volume: Set Filling_level = -5.0Filling_level = -5.0,…er = TRUE, Volume = -1.0
7Hàm Volume: Set Filling_level > HeightFilling_level = 14.0, Height=12.0,…er = TRUE, Volume = -1.0
8Hàm Volume: Set Diameter, Height, Level hợp lệ (Ví dụ)Diameter = 3.5, Height=12.0, Level=6.0er = FALSE, Volume = ~57726.72
9Hàm Volume: Set Diameter, Height, Level hợp lệ (Ví dụ)Diameter = 3.5, Height=12.0, Level=12.0er = FALSE, Volume = ~115453.4

7. Tại Sao Lựa Chọn S7-1500 Cho Tủ Điều Khiển Của Bạn?

S7-1500 mang lại nhiều lợi ích then chốt cho các nhà máy:

  • Hiệu suất cao: Xử lý nhanh các tác vụ lập trình phức tạp.
  • Dễ lập trình: TIA Portal trực quan, SCL giúp viết code hiệu quả.
  • Chẩn đoán mạnh mẽ: Hệ thống chẩn đoán tích hợp giúp xác định lỗi nhanh chóng, giảm thời gian dừng máy.
  • Bảo mật: Các tính năng bảo mật phần cứng và phần mềm giúp bảo vệ chương trình và dữ liệu nhà máy.
  • Tích hợp: Dễ dàng kết nối với HMI, Motion Control, Safety và các hệ thống khác trong TIA Portal.

Việc đầu tư vào S7-1500 và đào tạo kỹ sư lập trình SCL là bước đi chiến lược. Nó giúp nâng cao đáng kể hiệu quả, độ tin cậy và khả năng cạnh tranh cho dây chuyền sản xuất của bạn.

Lập Trình PLC Siemens S7-1500: Hướng Dẫn 7 Bước Từ A-Z

8. Hỗ Trợ Chuyên Gia Cho Nhà Máy Của Bạn

Việc triển khai và tối ưu hóa hệ thống tự động hóa đôi khi đòi hỏi kinh nghiệm chuyên sâu. Nếu bạn cần hỗ trợ:

  • Nâng cấp tủ điều khiển PLC hiện có.
  • Tư vấn thiết kế giải pháp điều khiển tối ưu cho quy trình sản xuất.
  • Thi công lắp đặt hệ thống điện – tự động chuyên nghiệp.

Hãy liên hệ với các chuyên gia. Chúng tôi sẵn sàng cung cấp giải pháp phù hợp nhất cho nhà máy của bạn.

Liên hệ ngay hôm nay để được tư vấn miễn phí!

Nếu bạn thích bài viết này, hãy đăng ký kênh YouTube của chúng tôi để xem các video hướng dẫn về PLC và SCADA.

Bạn cũng có thể theo dõi chúng tôi trên Facebook LinkedIn để nhận các cập nhật hàng ngày.

Liên hệ

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *