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

Bài tập Một khối cảnh báo cho mọi cảnh báo: đào tạo PLC SCADA

Mới, đã thấy, đã hết: một vòng lặp đưa mọi cảnh báo qua cùng các trạng thái và đánh dấu cảnh báo xuất hiện đầu tiên.

Viết khối cảnh báo đứng sau danh sách cảnh báo của nhà máy: một vòng lặp đưa từng cảnh báo trong năm cảnh báo qua các trạng thái mới, đã thấy và đã hết, đếm số cảnh báo đang hoạt động và chưa được xác nhận, báo mức ưu tiên cao nhất và đánh dấu cảnh báo xuất hiện đầu tiên.

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 nhà máy mô hình 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

Mới, đã thấy, đã hết

Bài kiểm tra 1 trên 6
Do bài kiểm tra đặtDo bài kiểm tra kiểm traBước 8/8 · 1.9 s
Level
Chuyên gia
Thời gian
Giới thiệu 45 phút
Phần thưởng
+800 XP
Hệ thống máy
nhà máy mô hình 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
44. SCADA 2: một khối cảnh báo cho mọi cảnh báo
Hành vi bắt buộc

Một khối cảnh báo cho mọi cảnh báo: những gì code của bạn phải làm

Phần điều khiển nhà máy, năm điều kiện cảnh báo Cond[0] đến Cond[4] và mức ưu tiên của chúng Prio[0] đến Prio[4] đã được viết sẵn. Viết một vòng lặp FOR qua năm cảnh báo để duy trì AlarmState[0] đến AlarmState[4]: 0 Bình thường, 1 Mới (đang hoạt động, chưa xác nhận), 2 Đã xem (đang hoạt động, đã xác nhận), 3 Đã hết, chưa xem. Từ 0, điều kiện xuất hiện cho ra 1. Ở 1, một lần nhấn Ack cho ra 2; điều kiện biến mất cho ra 3. Ở 2, điều kiện biến mất cho ra 0. Ở 3, một lần nhấn Ack cho ra 0; điều kiện quay lại cho ra 1. Mỗi cảnh báo chuyển tối đa một lần mỗi chu kỳ quét, và Ack tác động khi được nhấn, không phải khi đang bị giữ. ActiveCount là số cảnh báo ở trạng thái 1 hoặc 2. UnackCount là số cảnh báo ở trạng thái 1 hoặc 3. TopPriority là mức ưu tiên khẩn cấp nhất trong các cảnh báo không ở trạng thái 0: 1, 2 hoặc 3, hoặc 0 nếu không có. FirstOut là số thứ tự của cảnh báo đã gây ra sự cố, đếm từ 1: khi một cảnh báo rời trạng thái 0 trong lúc FirstOut là 0, FirstOut trở thành số của nó. Nếu hai cảnh báo bắt đầu trong cùng một chu kỳ quét, cảnh báo đứng trước trong bảng được ưu tiên. FirstOut chỉ trở về 0 khi mọi cảnh báo đều ở trạng thái 0 trở lại. Trong tab Màn hình vận hành, hãy chọn cách danh sách xử lý một cảnh báo đã hết, cảnh báo đầu tiên và các trạng thái.

Trạng thái
0 Bình thường, 1 Mới, 2 Đã thấy, 3 Đã hết, chưa thấy.
Ack
Khi nhấn: 1 thành 2, và 3 thành 0.
Tổng số
ActiveCount: trạng thái 1 và 2. UnackCount: trạng thái 1 và 3. TopPriority: mức khẩn cấp nhất trong các cảnh báo khác 0.
Cảnh báo đầu tiên
Được đặt bởi cảnh báo đầu tiên rời trạng thái 0; xóa khi tất cả lại về 0.
Bảng tag

Một khối cảnh báo cho mọi cảnh báo: đầu vào và đầu ra

Chương trình của bạn đọc 19 đầu vào và điều khiển 20 đầu ra. Một đầu vào nữa điều khiển mô phỏng hoặc hiện một số đo, để bạn kiểm tra. 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
StartBOOLĐọcMột đầu vào mà code của bạn cầnKhởi động nhà máy
StopBOOLĐọcMột đầu vào mà code của bạn cầnDừng nhà máy tại chỗ
ResetBOOLĐọcMột đầu vào mà code của bạn cầnĐặt lại sau dừng khẩn cấp hoặc sau khi màn chắn sáng tác động
EStopBOOLĐọcMột đầu vào mà code của bạn cầnĐã nhấn dừng khẩn cấp
CompressorFaultBOOLĐọcMột đầu vào mà code của bạn cầnThử xem: máy nén bị ngắt
AirPressureREALĐọcMột đầu vào mà code của bạn cầnÁp suất bình chứa khí, bar
SteamPressureREALĐọcMột đầu vào mà code của bạn cầnÁp suất hơi lò hơi, bar
VesselLevelREALĐọcMột đầu vào mà code của bạn cầnMức bồn trộn, %
VesselTempREALĐọcMột đầu vào mà code của bạn cầnNhiệt độ mẻ, °C
SugarAddedREALĐọcMột đầu vào mà code của bạn cầnLượng đường máy cấp định lượng đã thêm vào mẻ này, kg
BufferLevelREALĐọcMột đầu vào mà code của bạn cầnMức bồn đệm của máy chiết, %
BadBottleBOOLĐọcMột đầu vào mà code của bạn cầnCamera: một chai không có nhãn đang đi qua
GateEyeBOOLĐọcMột đầu vào mà code của bạn cầnCó một chai trước cổng loại bỏ
AccumFullBOOLĐọcMột đầu vào mà code của bạn cầnBa lốc đang chờ robot
CurtainClearBOOLĐọcMột đầu vào mà code của bạn cầnTia sáng của màn chắn sáng không bị cắt
PalletFullBOOLĐọcMột đầu vào mà code của bạn cầnMột pallet đầy đang chờ hoặc đang đến máy quấn màng
PalletOnWrapperBOOLĐọcMột đầu vào mà code của bạn cầnCó một pallet trên bàn xoay của máy quấn màng
WrapDoneBOOLĐọcMột đầu vào mà code của bạn cầnPallet trên máy quấn màng đã được quấn
AckBOOLĐọcMột đầu vào mà code của bạn cầnNút trên màn hình: xác nhận các cảnh báo
PersonInCellBOOLKhông cầnDùng để kiểm tra hoặc theo dõi; code của bạn có thể bỏ quaThử xem: có người đi vào khu vực robot
CompressorBOOLGhiMột đầu ra mà code của bạn đặt giá trịChạy máy nén khí
BoilerOnBOOLGhiMột đầu ra mà code của bạn đặt giá trịBật lò hơi
WaterValveBOOLGhiMột đầu ra mà code của bạn đặt giá trịCấp nước vào bồn trộn
FeederBOOLGhiMột đầu ra mà code của bạn đặt giá trịChạy máy cấp định lượng đường
AgitatorBOOLGhiMột đầu ra mà code của bạn đặt giá trịChạy máy khuấy
SteamValveBOOLGhiMột đầu ra mà code của bạn đặt giá trịCấp hơi vào vỏ áo bồn
TransferPumpBOOLGhiMột đầu ra mà code của bạn đặt giá trịBơm mẻ đến bồn đệm
LineRunBOOLGhiMột đầu ra mà code của bạn đặt giá trịChạy dây chuyền chiết chai
RejectGateBOOLGhiMột đầu ra mà code của bạn đặt giá trịKích cổng loại bỏ
RobotEnableBOOLGhiMột đầu ra mà code của bạn đặt giá trịCho robot xếp pallet
PalletOutBOOLGhiMột đầu ra mà code của bạn đặt giá trịChuyển pallet đầy đến máy quấn màng
WrapBOOLGhiMột đầu ra mà code của bạn đặt giá trịChạy máy quấn màng
AGVCallBOOLGhiMột đầu ra mà code của bạn đặt giá trịGọi AGV đến lấy pallet đã quấn màng
GreenLampBOOLGhiMột đầu ra mà code của bạn đặt giá trịĐèn tháp: đang sản xuất
AmberLampBOOLGhiMột đầu ra mà code của bạn đặt giá trịĐèn tháp: đang khởi động hoặc đang chờ
RedLampBOOLGhiMột đầu ra mà code của bạn đặt giá trịĐèn tháp: dừng khẩn cấp hoặc màn chắn sáng tác động
ActiveCountINTGhiMột đầu ra mà code của bạn đặt giá trịDanh sách cảnh báo: các cảnh báo có điều kiện đang bật
UnackCountINTGhiMột đầu ra mà code của bạn đặt giá trịDanh sách cảnh báo: các cảnh báo chưa ai xác nhận
TopPriorityINTGhiMột đầu ra mà code của bạn đặt giá trịDanh sách cảnh báo: mức ưu tiên khẩn cấp nhất đang hiển thị, 1 đến 3, hoặc 0
FirstOutINTGhiMột đầu ra mà code của bạn đặt giá trịDanh sách cảnh báo: cảnh báo xuất hiện đầu tiên, 1 đến 5, hoặc 0

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: #Start. Rockwell và TwinCAT dùng tên không kèm gì: Start.

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

Một khối cảnh báo cho mọi cảnh báo: các bài kiểm tra kiểm tra gì

  1. Mọi cảnh báo đều theo cùng bốn trạng thái: 0 Bình thường, 1 Mới, 2 Đã thấy, 3 Đã hết, chưa thấy.
  2. Một cảnh báo hết trước khi Ack vẫn nằm trong danh sách với trạng thái 3 cho đến khi Ack; cảnh báo quay lại trước khi Ack sẽ lại là Mới.
  3. Ack tác động khi nhấn: giữ Ack không xác nhận một cảnh báo đến sau đó.
  4. ActiveCount, UnackCount và TopPriority khớp với danh sách ở mọi chu kỳ quét.
  5. FirstOut ghi cảnh báo xuất hiện đầu tiên và giữ nó cho đến khi danh sách trống.
  6. Danh sách giữ một cảnh báo đã hết cho đến khi nó được thấy, đánh dấu cảnh báo đầu tiên và ghi từng trạng thái bằng chữ.
  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

Máy chủ SCADA của nhà máy giữ một bảng cảnh báo, mỗi dòng có trạng thái, mức ưu tiên và thời gian. Dấu cảnh báo đầu tiên (first out) là thứ ca ngày đọc sau một đêm có nhiều lần dừng máy.

Một lần ngắt có thể sinh ra hai mươi cảnh báo trong vài giây. Không có trạng thái và dấu cảnh báo đầu tiên, người vận hành xác nhận tất cả để tắt còi và nguyên nhân bị mất.

Bạn sẽ gặp nó ở đâuMột bộ điều khiển cho cả nhà máy: khi nào mỗi máy được chạy, và điều gì giữ nó an toàn

Một nhà máy đồ uống nhỏ làm nước cam. Đường và nước được định lượng thành mẻ và thanh trùng, rồi bơm đến máy chiết. Chai được chiết, đóng nắp, dán nhãn và kiểm tra, đóng gói theo lốc sáu, robot xếp lên pallet, quấn màng và xe nâng không người lái đưa ra bến xuất hàng. Mỗi máy có bộ điều khiển riêng; bộ điều khiển nhà máy quyết định khi nào mỗi máy được chạy, chuyển công việc từ máy này sang máy kế tiếp, và dừng mọi thứ một cách an toàn.

  1. BatchTrộn và thanh trùng
  2. FillChiết, đóng nắp, dán nhãn
  3. Kiểm traLoại bỏ chai lỗi
  4. Đóng góiRobot xếp lốcBạn đang ở đây
  5. Vận chuyểnQuấn màng, AGV đến bến
Tại nhà máy thật: khu vực, bộ phận và an toàn
  • Xưởng chiết nước ngọt và nước trái cây
  • Nhà máy nước sốt, sữa và thực phẩm lỏng
  • Chất lỏng gia dụng và chăm sóc cá nhân

Dừng khẩn cấp được nối qua một rơ le an toàn tự cắt điện. Sau đó chương trình phải giữ mọi thứ ở trạng thái tắt và chờ một lần Reset và Start có chủ ý, để không có gì chuyển động bất ngờ.

Khu vực robot được rào chắn. Màn chắn sáng và cửa khóa liên động dừng robot khi có người đi vào, và việc khởi động lại cần đặt lại từ bên ngoài khu vực, theo tinh thần ISO 10218 và ISO 13849.

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