주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

Simulink의 Modbus Client 블록을 사용하여 원격으로 물의 pH 제어

R2024b 이후

이 예제는 Simulink®의 Modbus Client ReadModbus Client Write 블록을 사용하여 Modbus 서버에서 센서 데이터를 읽고 써서 정수장의 pH 수준을 조절하는 방법을 보여줍니다.

정수장에서 센서를 사용하여 물의 pH 수준, 주 펌프의 유량, 예비 펌프의 밸브 상태 등을 점검함으로써 시설의 상태를 모니터링합니다. 측정된 pH 값이 권장 범위 내에 있지 않을 경우, pH 수준을 최적화하기 위해 다음과 같은 조치를 취합니다.

  • 주 산 펌프와 염기 펌프의 유량을 제어합니다.

  • 주 펌프로 pH 수준을 복원할 수 없는 경우 예비 산 및 염기 펌프를 작동합니다.

  • pH 수준이 심각하게 낮거나 높아서 주 펌프와 예비 펌프를 모두 사용해도 제어할 수 없는 경우, 수동 개입을 위한 경보를 울립니다.

펌프를 제어하거나 경보를 울리려면 액추에이터를 통해 제어 신호를 제공해야 합니다. 원격 모니터링 및 제어를 위해 센서와 장치를 PLC에 연결하십시오. PLC는 Modbus 네트워크를 통해 데이터를 송수신합니다.

선행 조건

  • Modbus TCP/IP 서버 설정: MATLAB® 세션에서 이 예제를 실행하려면 로컬 네트워크에 Modbus® TCP/IP 서버를 설치해야 합니다.

  • Modbus Client Read 블록과 Modbus Client Write 블록 구성: Modbus 서버에서 데이터를 읽거나 쓰려면 Modbus 클라이언트를 구성해야 합니다. 자세한 내용은 Simulink에서 Modbus 클라이언트 구성 항목을 참조하십시오.

모델 설명

이 예제에 포함된 WaterTreatmentPlant 모델에는 다음과 같은 블록이 있습니다.

  • Subsystem 블록 - pH 센서 데이터를 생성하고 해당 데이터를 Modbus 서버에 씁니다. 이 블록에는 pHLevelSimulator라는 레이블이 붙어 있습니다.

  • Modbus Client Read 블록 - Modbus TCP/IP 서버에서 센서 데이터를 읽습니다.

  • MATLAB Function 블록 - 읽은 데이터를 처리하고 사용자가 정의한 임계값을 기반으로 액추에이터용 제어 신호를 생성합니다. 이 블록에는 pHControlAlgorithm이라는 레이블이 붙어 있습니다.

  • Modbus Client Write 블록 - 제어 신호를 Modbus 서버의 대응하는 레지스터에 기록합니다.

  • Dashboard 및 Scope 블록 - 센서 데이터와 제어 신호를 시각화합니다.

Simulink Model to control water pH using Modbus Client blocks

다음 이미지는 Modbus Client Read 블록의 파라미터 창을 보여줍니다. 이 예제에서 블록은 현재 물의 pH 수준, 산 및 염기 화학 펌프의 유량, 예비 산 및 염기 펌프의 밸브 상태가 포함된 5개 레지스터에서 데이터를 읽습니다

Modbus Client Read Block Parameters

다음 이미지는 Modbus Client Write 블록의 파라미터 창을 보여줍니다. 이 예제에서 블록은 4개의 레지스터에 데이터를 기록하며, 이 레지스터의 값으로 주 산 및 염기 펌프, 예비 산 및 염기 펌프를 제어할 수 있습니다.

Modbus Client Write Block Parameters

대시보드 블록은 정수장의 현재 상태를 시각화합니다. Half Gauge (Simulink) 블록은 물의 pH 수준과 주 펌프의 유량을 표시합니다. Lamp (Simulink) 블록은 pH 수준이 심각하게 낮거나 높을 때 발생하는 경보 상태를 보여주며, 이는 수동 개입이 필요함을 나타냅니다.

시뮬레이션 결과 이해

Scope 블록을 사용하여 제어 신호와 pH 수준 센서 데이터를 볼 수 있습니다. 이 예제는 pH가 6에서 9로 변하는 것, 주 펌프의 유량이 50에서 100 m3/s으로 변하는 것, 그리고 경보 및 예비 펌프의 작동 상태(켜짐/꺼짐)를 보여줍니다.

예를 들어, pH 수준이 최적 범위인 7~8을 초과하면 pH 값을 낮추기 위해 기본 펌프 유량이 감소합니다. 유량의 최솟값은 50 m3/s로 정의됩니다. 염기 펌프 유량이 최소치에 도달해도 pH가 최적 범위로 돌아오지 않으면 산성 펌프 유량을 증가시킨다. 유량의 최대값은 100 m3/s로 정의됩니다. 산 펌프 유량이 최대치에 도달해도 pH가 최적 범위로 돌아오지 않으면 예비 산 펌프가 작동됩니다. 이러한 모든 조치에도 불구하고 최적의 pH를 회복하지 못하면 수동 개입이 필요함을 알리는 경보가 울립니다.

Sensors and control systems data

모델을 위한 시뮬레이션 앱 만들기

선택적으로, 현재 모델에 대한 MATLAB 앱을 생성하려면 Simulink 툴스트립에서 저장 아래에 있는 다음으로 모델 내보내기: 시뮬레이션 앱을 선택하십시오.

참고: 이 옵션을 사용하려면 Simulink® 컴파일러를 설치해야 합니다.

Simulink save options

다음 이미지는 현재 모델에 대해 생성된 시뮬레이션 앱(MLAPP 파일)을 보여줍니다.

Simulink model converted to app

앱 디자이너를 사용하여 앱을 사용자 지정하고 공유할 수 있습니다. 자세한 내용은 Generate, Modify, and Deploy a MATLAB App for a Simulink Model (Simulink Compiler) 항목을 참조하십시오.

Customize generated app

참고 항목

블록

도움말 항목