Đ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ụ 59 · PRO (cần Pro)

Bài tập Lấy trung bình 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. Chỉ lấy trung bình các giá trị đọc bạn đang có, và bỏ giá trị cũ nhất.

Tính SmoothedLevel là trung bình của WindowSize giá trị Level gần nhất. Lưu chúng trong một mảng REAL, một danh sách các giá trị có đánh số. Cộng chúng lại bằng một vòng lặp FOR không vượt ra ngoài mảng. Khi Sample là ON, lấy một giá trị đọc mỗi chu kỳ quét. Cho đến khi cửa sổ đầy, hãy chia cho ValidCount, không phải N. Reset được ưu tiên và đặt kết quả về 0.

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

Giai đoạn khởi động chỉ dùng các giá trị đọc hợp lệ

Bài kiểm tra 1 trên 11
Do bài kiểm tra đặtDo bài kiểm tra kiểm traBước 18/18 · 360 ms
Level
Nâng cao
Thời gian
Giới thiệu 25 phút
Phần thưởng
+450 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 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. 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 và kích thước cửa sổ
Đặt WindowSize thành một số nguyên từ 1 đến 8 trước khi Reset. Giữ nguyên nó cho cả mẻ. Sample ON lấy một giá trị Level mỗi chu kỳ quét. Sample OFF giữ nguyên SmoothedLevel và ValidCount.
Đầy dần và quay vòng
Khi đã lưu ít hơn N giá trị đọc, chỉ lấy trung bình những giá trị đó. Khi đã đầy, lấy trung bình N giá trị mới nhất. ValidCount là số giá trị đã lưu, tối đa là N. Giữ lại phần thập phân. Bố trí bộ đệm thế nào là tùy bạn.
Reset
Khi Reset đang ON, SmoothedLevel và ValidCount là 0 ở mỗi chu kỳ quét, kể cả khi Sample ON. Một mẻ mới chỉ được dùng các giá trị đọc mới.
Bảng tag

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

Chương trình của bạn đọc 4 đầu vào và điều khiển 2 đầ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
ResetBOOLĐọcMột đầu vào mà code của bạn cầnNút nhấn Reset
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.
WindowSizeDINTĐọcMột đầu vào mà code của bạn cầnSố giá trị đọc để lấy trung bình (N), từ 1 đến 8. Đặt nó trước khi Reset và giữ nguyên cho cả mẻ.
ValidCountDINTGhiMột đầu ra mà code của bạn đặt giá trịSố giá trị đọc đã được lưu đến giờ. Không bao giờ vượt quá WindowSize.
SmoothedLevelREALGhiMột đầu ra mà code của bạn đặt giá trịTrung bình của 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: #Reset. Rockwell và TwinCAT dùng tên không kèm gì: Reset.

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

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

  1. Hoạt động với mọi N từ 1 đến 8, khi đang đầy dần và sau khi quay vòng nhiều lần.
  2. Khi Sample OFF, giá trị trung bình và số đếm giữ nguyên. Khi giữ Sample ON, mỗi chu kỳ quét thêm một giá trị đọc.
  3. Reset làm rỗng cửa sổ, kể cả khi Sample ON. Giữ lại phần thập phân trong các 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 vài giá trị đọc gần nhất giúp làm mượt gợn sóng. Tính cả các ô trống sẽ cho giá trị đọc thấp giả. Giữ giá trị đọc cũ quá lâu sẽ 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