Đang tải tiến độ trên máy…
PLC Gym
Trang chủ PLC GymCấp độ 1, 0 XP · tiến độ của bạn
Nhiệm vụ 58 · PRO (cần Pro)

Bài tập Lấy trung bình bốn giá trị đọc gần nhất: trung bình trượt

Làm mượt một tín hiệu mức bị nhiễu. Giữ bốn giá trị đọc, và để mỗi giá trị mới thay cho giá trị cũ nhất.

Tính SmoothedLevel là trung bình của bốn giá trị Level gần nhất. Lưu chúng trong Readings, một mảng REAL có bốn ô, từ 0 đến 3. Khi Sample là ON, lấy một giá trị đọc mỗi chu kỳ quét. Đặt nó vào ô mà WriteIndex chỉ đến, rồi tăng WriteIndex thêm một. Sau ô 3, quay WriteIndex về 0, để giá trị đọc mới nhất thay cho giá trị cũ nhất. Cộng bốn ô lại bằng một vòng lặp FOR và chia cho 4.

Nhiệm vụ này thuộc ProTạo tài khoản miễn phí: mọi tài khoản đều được Dùng thử Pro miễn phí đến 5 tháng 12.

Không cần thẻ. Không phải trả gì. Không cần hủy gì.

Official release: 5 December. Đứng đầu bảng xếp hạng vào ngày đó và thắng 3 tháng Pro, cộng 2 tuần Pro để tặng một người bạn. Hạng 2 thắng 4 tuần. Hạng 3 thắng 2 tuần. Thể lệ

  • Mọi bài học, từ con số 0
  • Mọi nhiệm vụ và bài học, khi bạn lên cấp
  • Một bài kiểm tra thực hành cho mỗi danh hiệu, kèm chứng chỉ
  • Tua lại bất kỳ bài kiểm tra nào, từng chu kỳ quét một
  • Lời giải chi tiết khi bạn bí
  • Công cụ chuyển đổi code, dùng thoải mái
Mô hình 3D bồn công nghệ mà nhiệm vụ này chạy trênPRO (cần Pro) nhiệm vụ
Bài kiểm tra chạy thế nào

Bốn giá trị đọc làm đầy cửa sổ

Bài kiểm tra 1 trên 4
Do bài kiểm tra đặtDo bài kiểm tra kiểm traBước 6/6 · 120 ms
Level
Ứng dụng
Thời gian
Giới thiệu 15 phút
Phần thưởng
+350 XP
Hệ thống máy
bồn công nghệ 3D
Trình soạn thảo Siemens
SCL
Trình soạn thảo Rockwell
Văn bản cấu trúc
Trình soạn thảo Beckhoff
Văn bản cấu trúc
Giai đoạn
18. Giữ các giá trị đọc mới nhất
Hành vi bắt buộc

Lấy trung bình bốn giá trị đọc gần nhất: những gì code của bạn phải làm

Một giá trị đọc mức bị nhiễu sẽ nhảy lung tung. Làm mượt nó giúp logic phía sau không phản ứng với mọi lần chập chờn. Xu hướng hiển thị Level và SmoothedLevel cạnh nhau, từng chu kỳ quét. Đây là nhiệm vụ đầu tiên trong hai nhiệm vụ về cùng một bộ lọc. Ở đây cửa sổ, tức số giá trị đọc bạn lấy trung bình, được cố định là bốn. Cả bốn ô đều bắt đầu từ 0.0, nên ba kết quả đầu tiên bị thấp. Nhiệm vụ tiếp theo sửa điều đó, và cho cửa sổ đổi kích thước. Bộ lọc của bạn chỉ tính ra một con số cho logic phía sau. Nó không bật tắt bơm hay van.

Sample
Sample ON lấy một giá trị Level mỗi chu kỳ quét. Sample OFF giữ nguyên SmoothedLevel.
Lưu và quay vòng
Mỗi giá trị đọc đi vào ô kế tiếp trong bốn ô. Sau ô thứ tư, quay lại ô đầu tiên, để giá trị đọc mới nhất thay cho giá trị cũ nhất. Bố trí bộ đệm thế nào là tùy bạn.
Trung bình
Sau mỗi giá trị đọc, SmoothedLevel là tổng của bốn ô chia cho 4. Giữ lại phần thập phân.
Ba giá trị đọc đầu tiên
Cả bốn ô đều bắt đầu từ 0.0, và SmoothedLevel cũng vậy. Một ô trống vẫn được tính là 0. Vì vậy khi mới lưu 10% và 30%, kết quả là 10%: 40 chia cho 4.
Bảng tag

Lấy trung bình bốn giá trị đọc gần nhất: đầu vào và đầu ra

Chương trình của bạn đọc 2 đầu vào và điều khiển 1 đầu ra. Tên giống nhau trong trình soạn thảo của mọi hãng.

TagKiểu dữ liệuCode của bạnÝ nghĩa trên máy
LevelREALĐọcMột đầu vào mà code của bạn cầnMức bồn, %
SampleBOOLĐọcMột đầu vào mà code của bạn cầnKhi đang ON, lấy một giá trị Level ở mỗi chu kỳ quét.
SmoothedLevelREALGhiMột đầu ra mà code của bạn đặt giá trịTrung bình của bốn giá trị đọc gần nhất, tính bằng %.

Trong Siemens SCL, viết các tag riêng của khối với dấu # phía trước, như TIA Portal: #Level. Rockwell và TwinCAT dùng tên không kèm gì: Level.

Bài kiểm tra tự động

Lấy trung bình bốn giá trị đọc gần nhất: các bài kiểm tra kiểm tra gì

  1. Sau mỗi giá trị đọc, SmoothedLevel là tổng của bốn ô chia cho 4. Giữ lại phần thập phân trong các giá trị đọc.
  2. Giá trị đọc thứ năm thay cho giá trị thứ nhất, và cứ thế vòng quanh bốn ô, dù có bao nhiêu giá trị đọc đến.
  3. Khi Sample OFF, giá trị trung bình giữ nguyên. Khi giữ Sample ON, mỗi chu kỳ quét thêm một giá trị đọc.
  1. Thử Dùng các nút bên dưới mô hình và xem hệ thống máy phản ứng.
  2. Kiểm tra lời giải Mọi bài kiểm tra chạy trên code của bạn chỉ với một lần nhấn.
  3. Tua lại PRO (cần Pro) Nếu một bài không đạt, hãy lùi lại từng chu kỳ quét để xem vì sao.

Bí ở nhiệm vụ này? Hãy hỏi các thành viên trong Phòng thay đồ.

Vì sao điều này quan trọng

Bạn sẽ gặp điều này ở đâu ngoài hiện trường

Gợn sóng trên mặt nước làm giá trị đọc mức của một bồn trong nhà máy nhảy lung tung. Người vận hành muốn một con số ổn định hơn trên màn hình.

Lấy trung bình bốn giá trị đọc gần nhất giúp làm mượt gợn sóng. Một giá trị đọc nằm sai ô, hoặc không bao giờ được thay, sẽ cho một con số sai che giấu một thay đổi thật.

Bạn sẽ gặp nó ở đâuLàm một mẻ nước uống

Tại một nhà máy nước giải khát, các van cho lượng nước và siro đã định lượng vào một bồn trộn. Một máy trộn điện trộn chúng thành một mẻ. Sau đó một van đầu ra đưa nước uống sang bồn chờ. Các máy chiết rót đóng chai từ đó.

  1. Bồn nguyên liệuChứa nước và siro
  2. Bồn trộnLàm đầy, trộn và đo một mẻBạn đang ở đây
  3. Bồn chờGiữ nước uống thành phẩm sẵn sàng
  4. Máy chiết rót chaiRót nước uống vào chai
Tại nhà máy thật: khu vực, bộ phận và an toàn
  • Nhà máy nước giải khát: pha trộn nước và siro
  • Nhà máy sơn: trộn nguyên liệu để được màu đồng nhất
  • Nhà máy xử lý nước: pha một hỗn hợp hóa chất đã định lượng
  • Nhà máy bia: đun nóng nước để rửa thiết bị

Bồn đầy không tự đóng đường vào của nó. Nước vẫn tiếp tục chảy vào cho đến khi van đóng, nên một đường vào đang mở có thể làm ngập phòng.

Bộ gia nhiệt không được chất lỏng ngập có thể quá nhiệt. Bồn thật có các thiết bị an toàn riêng bên cạnh chương trình PLC.

Kích thước, thời gian và hình cắt là lựa chọn để giảng dạy, không phải bản vẽ của một công trình thật cụ thể nào.

Tiếp tục nào

Tiếp theo trên chặng đường