GX Works2를 사용한 Mitsubishi 인버터 프로그래밍 입문 / 산업용 자동화를 위한 Mitsubishi 인버터 활용 전략 / Mitsubishi 인버터: 에너지 절감과 비용 효율성을 동시에

2024. 7. 17. 16:44충남 인력개발원

https://www.youtube.com/results?search_query=mitsubishi+fr+e700+setup+tutorial+

 

https://www.youtube.com/results?search_query=mitsubishi+fr+e700+setup+tutorial+

 

www.youtube.com

유튜브 검색어 링크입니다 :)

 

Mitsubishi 재생목록 시리즈 링크입니다



https://www.notion.so/6ad7dd3a8173435bba566ee85da7c44c?pvs=4

!개인노션 링크입니다 인버터 시리즈 관련 정보들을 넣어놨습니다!


초기 설정 래더입니다.

라인 0

  • H_정회전 (M0): 정회전 명령이 활성화되면
    • *정회전지령 (Y1000)**를 SET하여 정회전 명령을 실행합니다.
    • *역회전지령 (Y1001)**을 RST하여 역회전 명령을 리셋합니다.

라인 5

  • H_역회전 (M1): 역회전 명령이 활성화되면
    • *역회전지령 (Y1001)**를 SET하여 역회전 명령을 실행합니다.
    • *정회전지령 (Y1000)**을 RST하여 정회전 명령을 리셋합니다.

라인 10

  • H_정지 (M2): 정지 명령이 활성화되면
    • *정회전지령 (Y1000)**을 RST하여 정회전 명령을 리셋합니다.
    • *역회전지령 (Y1001)**을 RST하여 역회전 명령을 리셋합니다.

라인 15

  • SM400: PLC의 항상 켜짐 플래그로 모든 사이클 동안 참(true) 상태입니다.
    • H_주파수 (D0): 주파수를 설정합니다.
    • 요구 주파수 (D12286): 주파수 요구 값을 K100으로 설정합니다.
    • *요구 주파수 (D12286)**를 **설정 주파수 (D2001)**로 이동합니다.
    • *주파수 설정 지령 (Y100D)**을 활성화합니다.

요약

  • 라인 0: 정회전 명령이 들어오면 정회전 지령을 설정하고, 역회전 지령을 리셋합니다.
  • 라인 5: 역회전 명령이 들어오면 역회전 지령을 설정하고, 정회전 지령을 리셋합니다.
  • 라인 10: 정지 명령이 들어오면 정회전 및 역회전 지령을 모두 리셋합니다.
  • 라인 15: 항상 참인 플래그가 활성화된 상태에서 주파수 값을 설정하고, 이를 인버터에 전달하는 명령을 실행합니다.

이 래더 프로그램은 Mitsubishi 인버터의 주파수를 설정하고, 정회전 및 역회전 명령을 처리하며, 정지 명령이 들어오면 모든 명령을 리셋하는 기능을 수행합니다.


 

 

Mitsubishi 인버터에서 모니터 코드에 따라 모니터 값 1과 2가 어떻게 표시되는지에 대한 설명입니다. 인버터의 모니터링 기능은 다양한 코드 입력에 따라 특정 상태나 값을 표시합니다.

모니터 코드에 따른 표시

모니터 코드 301

  • 301: 출력 주파수를 나타냅니다.
    • 모니터 값 1: 인버터의 현재 출력 주파수 (Hz).
    • 모니터 값 2: 사용되지 않음 (보통 이 경우 0으로 표시됨).

모니터 코드 103

  • 103: 출력 전류를 나타냅니다.
    • 모니터 값 1: 인버터의 현재 출력 전류 (A).
    • 모니터 값 2: 사용되지 않음 (보통 이 경우 0으로 표시됨).

예시 화면 설정

모니터 코드를 301로 설정한 경우:

  • 모니터 값 1: 현재 출력 주파수 (예: 50.00 Hz)
  • 모니터 값 2: 0

모니터 코드를 103으로 설정한 경우:

  • 모니터 값 1: 현재 출력 전류 (예: 5.00 A)
  • 모니터 값 2: 0

HMI 설정 화면에서 설정 방법

  1. 모니터 코드 입력:
    • 모니터 코드에 해당하는 값 (301 또는 103)을 입력 필드에 설정합니다.
  2. 모니터 값 1과 2:
    • 모니터 값 1에 해당하는 주소 (예: D1001 또는 D1002)를 설정합니다.
    • 모니터 값 2는 보통 사용되지 않으므로, 설정하지 않거나 0으로 표시됩니다.

시각적 예시

모니터 코드 301 설정 시:

  • 출력 주파수: 50.00 Hz
  • 모니터 값 2: 0

모니터 코드 103 설정 시:

  • 출력 전류: 5.00 A
  • 모니터 값 2: 0

원리와 설정 방법

  1. 모니터 코드 설정:
    • 모니터 코드란 인버터가 특정 데이터를 메모리 주소에 기록하도록 지시하는 코드입니다. 예를 들어, 출력 주파수를 모니터링하려면 모니터 코드 301을 사용하고, 출력 전류를 모니터링하려면 모니터 코드 103을 사용합니다.
  2. 모니터 코드에 따른 데이터 저장:
    • 인버터는 지정된 모니터 코드에 따라 관련 데이터를 내부 메모리 주소에 기록합니다. 예를 들어, 모니터 코드 301을 설정하면 인버터는 현재 출력 주파수를 해당 메모리 주소에 기록합니다.
    • 이러한 메모리 주소는 보통 PLC나 HMI와의 통신을 통해 접근할 수 있습니다.
  3. PLC/HMI 설정:
    • PLC 또는 HMI에서 해당 메모리 주소를 읽어와서 화면에 표시합니다. 이때 HMI 화면에서 데이터 표시기를 설정하여 특정 메모리 주소를 참조하도록 합니다.
    • 예를 들어, 주파수 값을 읽어오려면 PLC 프로그램에서 D1000 주소에 저장된 값을 참조하도록 설정하고, HMI에서 이 값을 표시하도록 구성합니다.

설정 예시

  1. 모니터 코드 설정:
    • 인버터 매뉴얼을 참고하여 원하는 모니터링 항목에 대응하는 모니터 코드를 확인합니다.
    • PLC 프로그램에서 해당 모니터 코드를 인버터에 설정합니다. 예를 들어, **D2000**에 **301**을 써서 인버터가 출력 주파수를 **D1001**에 기록하도록 설정합니다.
  2. PLC 프로그램:
  3. ladder코드 복사 // 모니터 코드 설정 MOV K301 D2000 // 모니터 코드 301을 D2000에 설정하여 출력 주파수를 모니터링 MOV K103 D2000 // 모니터 코드 103을 D2000에 설정하여 출력 전류를 모니터링
  4. HMI 설정:
    • HMI에서 데이터 표시기(Data Display)를 설정하여 PLC의 메모리 주소를 참조합니다.
    • 주파수 값의 경우, D1001 주소를 참조하여 실시간으로 출력 주파수를 표시합니다.
    • 전류 값의 경우, D1001 주소를 참조하여 실시간으로 출력 전류를 표시합니다.

데이터 통신

  • 프로토콜: Mitsubishi 인버터와 PLC/HMI 간의 통신은 일반적으로 Modbus, CC-Link, 또는 독자적인 Mitsubishi 프로토콜을 사용합니다.
  • 주소 매핑: 인버터의 특정 데이터는 PLC의 데이터 레지스터(D 레지스터)에 매핑되어 저장됩니다. 예를 들어, 주파수는 D1001 레지스터에, 전류는 D1002 레지스터에 매핑될 수 있습니다.
  • 데이터 읽기/쓰기: PLC 프로그램은 주기적으로 인버터의 데이터를 읽어오고, 필요한 경우 데이터를 인버터에 써서 제어 명령을 보냅니다.

이러한 방식으로, 인버터는 실시간으로 운영 데이터를 PLC나 HMI에 제공하며, 사용자는 HMI 화면에서 이를 시각적으로 모니터링할 수 있습니다.

참고 자료

이와 같이 설정과 통신을 통해 인버터의 다양한 운영 데이터를 실시간으로 모니터링할 수 있습니다. 추가적인 설정이나 문제가 있으면 언제든지 말씀해 주세요.


Q1: Mitsubishi Q 시리즈 PLC와 E700 인버터를 통합하기 위한 하드웨어 연결 방법은 무엇인가요?

Mitsubishi Q 시리즈 PLC와 E700 인버터를 통합하려면 다음과 같은 하드웨어 연결이 필요합니다:

  1. 전원 공급:
    • E700 인버터에 전원을 공급합니다. 이 인버터는 주로 3상 AC 전원을 사용합니다.
  2. 통신 케이블 연결:
    • CC-Link 케이블을 사용하여 Q 시리즈 PLC와 E700 인버터를 연결합니다. CC-Link 마스터 모듈 (예: QJ61BT11N)을 PLC에 설치하고, CC-Link 슬레이브 모듈을 인버터에 연결합니다.
    • 통신 케이블은 CC-Link 표준 케이블을 사용하며, 신호 선과 접지 선을 정확히 연결해야 합니다.
  3. 디지털 입출력 연결:
    • 필요한 경우, Q 시리즈 PLC의 디지털 출력 모듈을 인버터의 제어 입력 단자에 연결하여 RUN/STOP, 정/역회전 명령을 제어할 수 있습니다.
    • 디지털 입력 모듈을 사용하여 인버터의 상태 신호(예: 알람 신호, 운전 상태 등)를 PLC로 받아올 수 있습니다.
  4. 아날로그 입출력 연결:
    • 주파수 설정을 아날로그 신호로 제어하려면, Q 시리즈 PLC의 아날로그 출력 모듈을 인버터의 아날로그 입력 단자에 연결합니다.
    • 아날로그 입력 모듈을 사용하여 인버터의 아날로그 출력 신호(예: 출력 전류)를 PLC로 받아올 수 있습니다.

Q2: Q 시리즈 PLC와 E700 인버터 간의 CC-Link 네트워크 설정 과정은 어떻게 되나요?

CC-Link 네트워크 설정은 다음과 같은 단계를 따릅니다:

  1. CC-Link 마스터 모듈 설정:
    • Q 시리즈 PLC에 CC-Link 마스터 모듈(QJ61BT11N)을 설치합니다.
    • GX Works2 소프트웨어를 사용하여 마스터 모듈의 파라미터를 설정합니다. 네트워크 번호, 스테이션 번호, 통신 속도 등을 설정합니다.
  2. CC-Link 슬레이브 모듈 설정:
    • E700 인버터의 CC-Link 슬레이브 설정을 합니다. DIP 스위치를 사용하여 슬레이브 스테이션 번호를 설정합니다.
    • 인버터의 파라미터 설정에서 통신 파라미터를 설정합니다. (예: Pr.117, Pr.118, Pr.119 등)
  3. 네트워크 파라미터 설정:
    • GX Works2에서 네트워크 파라미터를 설정합니다. 슬레이브 모듈의 파라미터를 설정하여 인버터가 네트워크에서 인식되도록 합니다.
  4. 데이터 링크 설정:
    • 데이터 링크 파라미터를 설정하여 Q 시리즈 PLC와 E700 인버터 간의 데이터 교환을 설정합니다. 링크 리프레시 방법과 데이터 할당을 설정합니다.
  5. 프로그램 작성:
    • Q 시리즈 PLC에서 인버터를 제어할 수 있도록 프로그램을 작성합니다. 디바이스 주소를 지정하고, 인버터 제어 명령을 작성합니다.

Q3: Q 시리즈 PLC에서 E700 인버터의 주파수 설정 및 변경을 위한 프로그래밍 방법은?

  1. 데이터 레지스터 설정:
    • 주파수 설정값을 저장할 데이터 레지스터를 설정합니다. 예를 들어, D100 레지스터를 주파수 설정값으로 사용할 수 있습니다.
  2. 주파수 설정 명령:
    • MOV 명령을 사용하여 주파수 설정값을 인버터로 전송합니다. 예를 들어, 주파수를 50Hz로 설정하려면:
    • ladder코드 복사 MOV K500 D100 // 주파수 설정값을 50.00Hz로 설정
    • 주파수 값을 설정한 후, 인버터에 주파수 설정 명령을 전송합니다.
  3. 인버터 제어 명령:
    • PLC 프로그램에서 주파수 설정값을 인버터로 전송하는 명령을 작성합니다. CC-Link 통신을 통해 주파수 설정값을 전송합니다:
    • ladder코드 복사 // 주파수 설정값을 인버터에 전송 MOV D100 D2001 // D2001은 인버터의 주파수 설정 레지스터
    • 주파수 설정 명령을 전송한 후, 인버터를 기동합니다:
    • ladder코드 복사 // 인버터 RUN 명령 SET Y0 // RUN 명령 신호

프로그램 예시:Q4: Q 시리즈 PLC를 사용하여 E700 인버터의 정/역회전 및 정지 명령을 제어하는 방법은 무엇인가요?1. 하드웨어 연결

  • PLC의 디지털 출력 모듈을 인버터의 제어 입력 단자에 연결합니다.
    • 정회전 입력: 인버터의 정회전 단자에 PLC의 출력 신호(Y0)를 연결합니다.
    • 역회전 입력: 인버터의 역회전 단자에 PLC의 출력 신호(Y1)를 연결합니다.
    • 정지 입력: 인버터의 정지 단자에 PLC의 출력 신호(Y2)를 연결합니다.

2. PLC 프로그램 작성

  • 정회전:
  • // 정회전 명령 LD M0 // 정회전 명령을 위한 내부 릴레이 OUT Y0 // 정회전 신호 출력 RST Y1 // 역회전 신호 리셋
  • 역회전:
  • // 역회전 명령 LD M1 // 역회전 명령을 위한 내부 릴레이 OUT Y1 // 역회전 신호 출력 RST Y0 // 정회전 신호 리셋
  • 정지:
  • // 정지 명령 LD M2 // 정지 명령을 위한 내부 릴레이 RST Y0 // 정회전 신호 리셋 RST Y1 // 역회전 신호 리셋 OUT Y2 // 정지 신호 출력

Q5: E700 인버터의 가속 및 감속 시간을 Q 시리즈 PLC를 통해 설정하는 방법은?

Q 시리즈 PLC를 사용하여 E700 인버터의 가속 및 감속 시간을 설정하려면 인버터의 가속/감속 파라미터를 변경하는 명령을 PLC 프로그램에서 전송합니다.

1. 하드웨어 및 통신 설정

  • CC-Link 또는 다른 통신 방법을 사용하여 PLC와 인버터 간의 통신을 설정합니다.
  • PLC에서 인버터의 파라미터를 변경하기 위한 주소를 설정합니다.

2. PLC 프로그램 작성

  • 가속 시간 설정:
  • // 가속 시간 설정 (예: 10초) MOV K100 D2003 // 가속 시간을 10초로 설정 (K100은 10.0초를 의미)
  • 감속 시간 설정:
  • // 감속 시간 설정 (예: 10초) MOV K100 D2004 // 감속 시간을 10초로 설정 (K100은 10.0초를 의미)

Q6: Q 시리즈 PLC와 E700 인버터 간의 통신 장애를 해결하는 방법은 무엇인가요?

통신 장애를 해결하기 위해서는 다음과 같은 단계를 수행합니다:

1. 물리적 연결 확인

  • 통신 케이블이 올바르게 연결되어 있는지 확인합니다.
  • 커넥터와 케이블에 손상이 없는지 점검합니다.

2. 파라미터 설정 확인

  • PLC와 인버터의 통신 파라미터 (보드레이트, 슬레이브 주소 등)가 일치하는지 확인합니다.
  • CC-Link 네트워크 설정에서 모든 디바이스가 올바르게 구성되었는지 확인합니다.

3. 진단 도구 사용

  • PLC 및 인버터의 진단 기능을 사용하여 통신 상태를 확인합니다.
  • 오류 코드 및 경고 메시지를 확인하여 문제를 파악합니다.

4. 프로그램 및 설정 확인

  • PLC 프로그램에서 통신 명령이 올바르게 작성되었는지 확인합니다.
  • 인버터의 파라미터 설정이 올바른지 확인합니다.

5. 재부팅 및 초기화

  • 모든 장치를 재부팅하여 일시적인 오류를 해결합니다.
  • 필요한 경우, 인버터와 PLC의 설정을 초기화하고 재설정합니다.

참고 자료

  • Mitsubishi FR-E700 Inverter Manual
  • Mitsubishi Q Series PLC Programming Manual

이러한 단계들을 통해 Q 시리즈 PLC와 E700 인버터 간의 통신을 설정하고 제어할 수 있으며, 발생할 수 있는 문제를 해결할 수 있습니다. 추가적인 설명이나 도움이 필요하면 언제든지 말씀해 주세요.

Q7: E700 인버터의 주요 모니터링 파라미터를 Q 시리즈 PLC로 읽어오는 방법은 무엇인가요?

E700 인버터의 주요 모니터링 파라미터를 Q 시리즈 PLC로 읽어오기 위해서는 CC-Link 통신을 설정하고, 인버터의 상태 및 동작 데이터를 PLC로 전송받도록 프로그램을 작성해야 합니다.

1. 하드웨어 및 통신 설정

  • CC-Link 네트워크 설정:
    • Q 시리즈 PLC의 CC-Link 마스터 모듈(QJ61BT11N)을 설치합니다.
    • E700 인버터에 CC-Link 슬레이브 모듈을 연결합니다.
    • 통신 케이블을 연결하고, 네트워크 파라미터를 설정합니다.

2. 파라미터 설정

  • 인버터 설정:
    • 인버터의 파라미터를 설정하여 필요한 모니터링 데이터를 CC-Link 네트워크를 통해 전송하도록 합니다. 예를 들어, Pr.117, Pr.118, Pr.119 등을 설정합니다.

3. PLC 프로그램 작성

  • 모니터링 데이터 읽기:
    • 인버터에서 제공하는 데이터 레지스터 주소를 사용하여 PLC 프로그램에서 데이터를 읽어옵니다. 예를 들어, 출력 주파수, 출력 전류 등을 읽어올 수 있습니다.
    ladder코드 복사
    // 예시: 출력 주파수 읽기
    MOV D2000 D1000  // 인버터의 출력 주파수 데이터(D2000)를 PLC의 D1000에 저장
    // 예시: 출력 전류 읽기
    MOV D2001 D1001  // 인버터의 출력 전류 데이터(D2001)를 PLC의 D1001에 저장
    
    

Q8: Q 시리즈 PLC와 E700 인버터의 유지보수 및 문제 해결을 위한 팁과 트릭은 무엇인가요?

1. 정기적인 점검 및 유지보수

  • 하드웨어 점검:
    • 전원 공급 장치, 통신 케이블, 연결 상태를 정기적으로 점검하여 물리적인 문제를 예방합니다.
    • 인버터와 PLC의 냉각 시스템(팬, 환기구)을 청소하여 과열을 방지합니다.

2. 소프트웨어 점검

  • PLC 프로그램 검사:
    • PLC 프로그램의 오류 로그를 정기적으로 확인하여 예상치 못한 오류를 조기에 발견합니다.
    • 프로그램 백업을 주기적으로 만들어 중요 데이터를 보호합니다.

3. 문제 해결 팁

  • 오류 코드 확인:
    • 인버터의 디스플레이에 표시되는 오류 코드를 확인하고, 해당 코드의 원인과 해결 방법을 인버터 매뉴얼에서 찾아 적용합니다.
  • 통신 상태 점검:
    • CC-Link 네트워크의 통신 상태를 점검하고, 통신 오류 발생 시 진단 도구를 사용하여 문제를 해결합니다.
  • 재부팅 및 초기화:
    • 간단한 문제는 인버터와 PLC를 재부팅하여 해결할 수 있습니다. 필요한 경우 공장 초기화 설정을 통해 문제를 해결합니다.

Q9: Q 시리즈 PLC를 사용한 E700 인버터의 에너지 절감 및 효율성 최적화 방법은 무엇인가요?

1. 에너지 절감 설정

  • 주파수 최적화:
    • 인버터의 주파수를 실제 요구 사항에 맞게 최적화하여 에너지를 절감합니다. 필요한 경우, 가변 주파수 드라이브를 사용하여 모터의 속도를 조절합니다.
    ladder코드 복사
    // 예시: 주파수 최적화 설정
    MOV K400 D100  // 주파수 40Hz로 설정 (필요에 따라 조정)
    
    

2. 가속 및 감속 시간 최적화

  • 가속/감속 시간 설정:
    • 가속 및 감속 시간을 최적화하여 에너지를 효율적으로 사용합니다. 예를 들어, 부하 조건에 맞게 가속/감속 시간을 조정합니다.
    ladder코드 복사
    // 가속 시간 설정 (예: 5초)
    MOV K50 D2003  // 가속 시간을 5초로 설정 (K50은 5.0초를 의미)
    // 감속 시간 설정 (예: 5초)
    MOV K50 D2004  // 감속 시간을 5초로 설정 (K50은 5.0초를 의미)
    
    

3. 부하 조건에 따른 제어

  • 부하 조건에 따른 제어 로직 작성:
    • 부하 조건을 감지하여 필요한 경우 인버터의 출력을 조정하는 로직을 작성합니다. 예를 들어, 부하가 낮을 때는 인버터의 출력을 낮춰 에너지를 절감합니다.
    ladder코드 복사
    // 부하 조건에 따른 출력 제어
    LD M1000  // 부하가 낮을 때 조건 (예: 센서 입력)
    MOV K200 D100  // 주파수를 20Hz로 설정하여 에너지 절감
    
    

참고 자료

이와 같은 방법들을 통해 Q 시리즈 PLC와 E700 인버터를 효율적으로 운영하고, 에너지 절감을 실현할 수 있습니다. 추가적인 설명이나 도움이 필요하면 언제든지 말씀해 주세요.


PID는 제어 시스템에서 널리 사용되는 제어 알고리즘입니다. PID 제어기는 프로세스 제어에서 설정값(목표값)과 측정된 실제 값(프로세스 변수) 사이의 오차를 줄이기 위해 사용됩니다. PID는 비례(Proportional), 적분(Integral), 미분(Derivative) 제어 요소를 결합하여 시스템의 제어 품질을 향상시킵니다.

PID 제어의 구성 요소

  1. 비례 제어 (Proportional, P):
    • 현재 오차 값에 비례하는 제어 출력 생성.
    • 오차가 클수록 제어 출력도 커짐.
    • 주로 시스템의 빠른 응답을 유도.
  2. 적분 제어 (Integral, I):
    • 오차의 누적 값에 비례하는 제어 출력 생성.
    • 일정 시간 동안 발생한 오차의 합계를 통해 시스템의 안정성을 향상.
    • 오프셋을 제거하여 목표값에 정확히 도달하게 함.
  3. 미분 제어 (Derivative, D):
    • 오차 변화율에 비례하는 제어 출력 생성.
    • 오차가 빠르게 변할 때 제어 출력을 크게 하여 시스템의 과도 응답을 억제.
    • 주로 시스템의 진동 및 오버슈트를 줄임.

PID 제어기 수식

PID 제어기의 제어 출력 𝑢(𝑡)u(t)는 다음과 같은 수식으로 표현됩니다: 𝑢(𝑡)=𝐾𝑝𝑒(𝑡)+𝐾𝑖∫𝑒(𝑡) 𝑑𝑡+𝐾𝑑𝑑𝑒(𝑡)𝑑𝑡u(t)=Kp**e(t)+Ki∫e(t)dt+Kd**dtde(t) 여기서:

  • 𝐾𝑝Kp: 비례 게인
  • 𝐾𝑖Ki: 적분 게인
  • 𝐾𝑑Kd: 미분 게인
  • 𝑒(𝑡)e(t): 시간에 따른 오차 (설정값 - 실제값)

Q 시리즈 PLC에서 PID 제어 구현

Q 시리즈 PLC에서 PID 제어를 구현하려면, PLC 프로그램에 PID 제어 알고리즘을 작성하고, 프로세스 변수와 제어 변수를 설정하여 인버터와 통신해야 합니다.

예제 프로그램 (Ladder Logic):

ladder코드 복사
PROGRAM Main
VAR
    setpoint: REAL := 50.0;  // 목표 주파수 (설정값)
    processVariable: REAL;   // 실제 주파수 (프로세스 변수)
    controlVariable: REAL;   // 제어 출력
    Kp: REAL := 1.0;         // P 게인
    Ki: REAL := 0.1;         // I 게인
    Kd: REAL := 0.01;        // D 게인
    error: REAL;             // 오차
    integral: REAL;          // 적분값
    derivative: REAL;        // 미분값
    prevError: REAL;         // 이전 오차값
    dt: REAL := 0.1;         // 샘플링 시간
END_VAR

// 실제 주파수 값을 인버터로부터 읽어옴
processVariable := ReadProcessVariable();

// 오차 계산
error := setpoint - processVariable;

// 적분값 계산
integral := integral + error * dt;

// 미분값 계산
derivative := (error - prevError) / dt;

// PID 제어 출력 계산
controlVariable := Kp * error + Ki * integral + Kd * derivative;

// 이전 오차값 업데이트
prevError := error;

// 제어 출력값을 인버터에 전송
WriteControlVariable(controlVariable);

END_PROGRAM


PID 제어의 중요성

  1. 정밀한 제어: PID 제어는 설정값과 실제값 간의 오차를 최소화하여 매우 정밀한 제어를 가능하게 합니다. 이는 온도, 속도, 유량 등 다양한 공정에서 필수적입니다.
  2. 안정성: PID 제어는 시스템의 진동과 오버슈트를 줄여 안정적인 제어를 제공합니다. 이는 복잡한 공정에서 시스템의 안정성을 높이는 데 도움이 됩니다.
  3. 응답 속도: PID 제어는 빠른 응답을 제공하며, 공정 변화에 신속하게 대응할 수 있습니다.

PID 제어의 기본 원리

PID 제어는 다음 세 가지 요소를 결합하여 작동합니다:

  • 비례 제어 (P): 현재 오차에 비례하여 제어 신호를 생성합니다. 오차가 클수록 제어 신호도 커집니다.
  • 적분 제어 (I): 오차의 누적 값을 통해 시스템의 장기적인 오프셋을 제거합니다.
  • 미분 제어 (D): 오차의 변화율을 사용하여 시스템의 과도 응답을 줄입니다.

PLC에서 PID 제어의 구현

많은 PLC 제조사들은 PID 제어를 쉽게 구현할 수 있도록 내장된 PID 기능 블록을 제공합니다. 이러한 기능 블록을 사용하면 복잡한 수학적 계산을 직접 코딩하지 않고도 PID 제어를 구현할 수 있습니다.

예제: Mitsubishi Q 시리즈 PLC에서 PID 제어 블록 사용

  1. PID 기능 블록: Mitsubishi Q 시리즈 PLC에는 PID 제어를 위한 기능 블록이 내장되어 있습니다. 이를 사용하면 PID 제어 루틴을 쉽게 구현할 수 있습니다.
  2. 설정: PID 기능 블록을 설정하여 비례, 적분, 미분 게인을 입력하고, 제어할 프로세스 변수를 지정합니다.
  3. 프로그램 작성: PID 기능 블록을 호출하고, 필요한 입력 값을 제공하여 제어 루틴을 작성합니다.

Ladder Logic 예제 (Mitsubishi Q 시리즈 PLC)

ladder코드 복사
// PID 제어 블록 설정
|----[PID    D0    D1    D2    D3    D4    D5    D6    D7]----|
|    |   |   |    |     |     |     |     |     |     |      |
|    |   |   |    |     |     |     |     |     |     |      |
|    |   |   |    |     |     |     |     |     |     |      |
|----[설정] [설정값][실제값][출력][Kp][Ki][Kd][샘플링 시간]----|

 


https://www.youtube.com/watch?v=hMOh6bwFcw4

pid 구현에 대한 plc과넘에서의 예시입니다.

간단한 온-오프 제어나 비례 제어와 PID 제어를 사용한 정밀 제어 구현 방식의 차이점

온-오프 제어, 비례 제어(P 제어), 그리고 PID 제어는 각각의 제어 시스템의 요구 사항과 복잡성에 따라 선택됩니다. 각 방식은 특정 상황에서 효과적일 수 있지만, 정밀도와 안정성 측면에서 차이가 있습니다.

1. 온-오프 제어 (On-Off Control)

원리

  • 설정값(목표값)과 실제값을 비교하여 제어 출력이 특정 임계값을 초과하면 출력이 켜지고, 임계값 이하로 떨어지면 출력이 꺼집니다.
  • 매우 단순한 제어 방식으로, 히스테리시스(온-오프 전환 지점의 차이)를 통해 불필요한 빈번한 스위칭을 방지할 수 있습니다.

구현 예시

c코드 복사
double setpoint = 50.0; // 목표값
double processVariable = 45.0; // 실제값

if (processVariable < setpoint) {
    controlOutput = 1; // 켬
} else {
    controlOutput = 0; // 끔
}

장점

  • 구현이 매우 간단합니다.
  • 제어기 설계가 쉽고, 계산 자원이 거의 필요하지 않습니다.

단점

  • 정밀한 제어가 어렵습니다.
  • 목표값 근처에서 계속 켜졌다 꺼졌다를 반복하여 시스템이 불안정할 수 있습니다.

2. 비례 제어 (Proportional Control, P 제어)

원리

  • 현재 오차(설정값 - 실제값)에 비례하여 제어 출력을 생성합니다.
  • 오차가 클수록 제어 출력도 커집니다.

구현 예시

c코드 복사
double setpoint = 50.0; // 목표값
double processVariable = 45.0; // 실제값
double Kp = 1.2; // 비례 게인
double error = setpoint - processVariable;
double controlOutput = Kp * error;

장점

  • 온-오프 제어보다 정밀합니다.
  • 설계가 비교적 간단합니다.

단점

  • 오프셋(steady-state error)이 존재할 수 있습니다.
  • 비례 게인이 너무 크면 시스템이 불안정해질 수 있습니다.

3. PID 제어 (Proportional-Integral-Derivative Control)

원리

  • 비례, 적분, 미분 제어 요소를 결합하여 시스템의 오차를 최소화합니다.
  • 비례 제어는 현재 오차에 비례하는 제어 출력을 생성하고, 적분 제어는 오차의 누적 값을 사용하여 장기적인 오프셋을 제거하며, 미분 제어는 오차의 변화율을 사용하여 과도 응답을 줄입니다.

구현 예시

double setpoint = 50.0; // 목표값
double processVariable = 45.0; // 실제값
double Kp = 1.0; // 비례 게인
double Ki = 0.1; // 적분 게인
double Kd = 0.01; // 미분 게인
double error = setpoint - processVariable;
double integral = 0.0;
double derivative = 0.0;
double prevError = 0.0;
double dt = 0.1; // 시간 간격

// 오차 계산
error = setpoint - processVariable;

// 적분 계산
integral += error * dt;

// 미분 계산
derivative = (error - prevError) / dt;

// PID 제어 출력 계산
double controlOutput = Kp * error + Ki * integral + Kd * derivative;

// 이전 오차 업데이트
prevError = error;

장점

  • 정밀하고 안정적인 제어가 가능합니다.
  • 오프셋을 제거할 수 있습니다.
  • 시스템 응답 속도와 안정성을 동시에 조절할 수 있습니다.

단점

  • 설계와 튜닝이 복잡합니다.
  • 계산 자원이 많이 필요합니다.

비교

특성 온-오프 제어 비례 제어 (P 제어) PID 제어

구현 난이도 매우 간단 간단 복잡
정밀도 낮음 중간 높음
안정성 낮음 (진동 발생 가능) 중간 높음
오프셋 제거 불가능 불가능 가능
응답 속도 조절 불가능 부분적 가능 가능
계산 자원 매우 적음 적음 많음

결론

  • 온-오프 제어는 매우 간단한 제어가 필요한 경우 사용됩니다.
  • 비례 제어는 단순하지만 오프셋이 존재할 수 있는 경우에 사용됩니다.
  • PID 제어는 정밀하고 안정적인 제어가 필요한 경우 사용됩니다.

인버터 제어 시스템을 위한 래더 로직 프로그램 분석

 

1. 정회전 및 역회전 제어

  • 정회전: H_정회전(M0) 비트가 ON될 때 Y1000(정회전 지령) 신호가 SET됩니다.
  • 역회전: H_역회전(M1) 비트가 ON될 때 Y1001(역회전 지령) 신호가 SET됩니다.
  • 정지: H_정지(M2) 비트가 ON될 때 Y1000(정회전 지령)과 Y1001(역회전 지령) 신호가 RST됩니다.

2. 주파수 설정 및 요청 주파수 처리

  • 주파수 설정: H_주파수(D0) 값이 100(K100)일 때, D12286(요구 주파수)로 이동.
  • 요구 주파수 처리: D12286에 저장된 값을 D2001(설정 주파수)로 이동하고, 주파수 설정 지령(Y100D)을 ON.

3. 모니터링 제어

  • 모니터 지령: 모니터 지령(Y100C)을 ON시키고, H1 모니터 코드 값을 D2000으로 이동.
  • 모니터 코드 전송: 출력 전류 버튼(M11) 및 출력 전압 버튼(M12) 비트에 따라 H1, H2, H3 모니터 코드 값을 D2000으로 이동.

4. 모니터링 값 처리

  • 모니터링 값 이동: 주파수값 버튼(M10)이 ON일 때, D1000(모니터값1)을 D10(출력 주파수)로 이동하고, D1000을 D11(출력 전류)로 이동.
  • 모니터링 단위 설정: K1, K2, K3 모니터링 단위를 각각 D20(모니터링 단위)로 이동.

상세 분석

1. 정회전 및 역회전 제어

  • 설명: 이 섹션은 인버터의 회전 방향을 제어합니다. 정회전(M0)이 활성화되면 정회전 지령(Y1000)이 SET되고, 역회전(M1)이 활성화되면 역회전 지령(Y1001)이 SET됩니다. 정지(M2)가 활성화되면 두 지령 신호는 모두 RST됩니다.
  • 주요 코드:
  • ladder코드 복사
  • |----[ ]----[SET Y1000]----| // H_정회전 |----[ ]----[RST Y1000]----| // H_정지 |----[ ]----[SET Y1001]----| // H_역회전 |----[ ]----[RST Y1001]----| // H_정지

2. 주파수 설정 및 요청 주파수 처리

  • 설명: 주파수를 설정하고, 요청된 주파수를 처리하여 인버터에 전달합니다.
  • 주요 코드:
  • ladder코드 복사
  • |----[ ]----[MOV K100 D12286]----| // H_주파수 = 100 |----[ ]----[MOV D12286 D2001]----| // 설정 주파수로 이동 |----[ ]----[SET Y100D]----| // 주파수 설정 지령 ON

3. 모니터링 제어

  • 설명: 모니터링 코드를 설정하고, 출력 전류와 출력 전압에 따라 모니터링 코드를 전송합니다.
  • 주요 코드:
  • ladder코드 복사
  • |----[ ]----[MOV H1 D2000]----| // 모니터 코드 이동 (출력 전류 버튼) |----[ ]----[MOV H2 D2000]----| // 모니터 코드 이동 (출력 전압 버튼)

4. 모니터링 값 처리

  • 설명: 주파수값 버튼을 통해 모니터링 값을 설정하고, 모니터링 단위를 설정합니다.
  • 주요 코드:
  • ladder코드 복사
  • |----[ ]----[MOV D1000 D10]----| // 모니터링 값1 -> 출력 주파수 |----[ ]----[MOV D1000 D11]----| // 모니터링 값1 -> 출력 전류 |----[ ]----[MOV K1 D20]----| // 모니터링 단위 설정

메뉴얼 추천 챕터

  1. 개요 (1장)
    • 1.3 인버터 배선방법과 설정 방법:
      • 1.3.2 인버터 설정 방법
  2. 파라미터 (4장)
    • 4.1 조작패널:
      • 4.1.4 주파수 설정 관련 항목
    • 4.2 파라미터에 대해:
      • 4.2.1 기본 파라미터
    • 4.4 제어 모드에 대해:
      • 4.4.1 기본 제어 모드
  3. 모니터링 (4장)
    • 4.10 모터의 상태 모니터링:
      • 4.10.1 모니터링 파라미터
      • 4.10.2 상태 모니터링
  4. 이상과 그 대책에 대해 (5장)
    • 5.2 이상 상태 대책:
      • 5.2.1 이상 상태의 종류와 그 대책

1. HMI 버튼 및 데이터 표시 설정

HMI는 주파수 설정, 모니터 코드, 모니터 값 1 및 2 등을 표시합니다. 각 버튼과 데이터 필드는 PLC와의 통신을 통해 해당 데이터를 읽고, 입력할 수 있도록 설정해야 합니다.

2. 주파수 설정

  • 주파수 설정 (PLC1): 주파수 설정 값은 16비트 Hex 형식으로 설정됩니다. 주파수를 설정하면 PLC에서 이를 받아들여 인버터에 전달합니다.
    • HMI 설정:
      • **모니터링 워드 어드레스**를 **PLC1:D0000000**으로 설정.
      • 데이터 종류를 **16비트 Hex**로 설정.

3. 모니터 코드 설정

  • 모니터 코드 (PLC1): 모니터 코드는 16비트 Dec 형식으로 설정됩니다. 이를 통해 인버터의 상태나 데이터를 모니터링할 수 있습니다.
    • HMI 설정:
      • **모니터링 워드 어드레스**를 **PLC1:D0002000**으로 설정.
      • 데이터 종류를 **16비트 Dec**로 설정.

4. 모니터 값 1 및 2 설정

  • 모니터 값 1 (PLC1): 모니터 값은 16비트 Dec 형식으로 설정되어 인버터의 상태 정보를 읽어옵니다.
    • HMI 설정:
      • **모니터링 워드 어드레스**를 **PLC1:D0001000**으로 설정.
      • 데이터 종류를 **16비트 Dec**로 설정.
  • 모니터 값 2 (PLC1): 모니터 값은 16비트 Dec 형식으로 설정되어 인버터의 상태 정보를 읽어옵니다.
    • HMI 설정:
      • **모니터링 워드 어드레스**를 **PLC1:D0001001**으로 설정.
      • 데이터 종류를 **16비트 Dec**로 설정.

5. 버튼 설정

  • 정회전 버튼 (PLC1): 정회전 버튼은 비트 스위치로 설정되어 있습니다. 이 버튼을 누르면 PLC에 신호를 보내 정회전을 시작합니다.
    • HMI 설정:
      • **비트 어드레스**를 **PLC1:X1000**으로 설정.
      • **비트 동작**을 **비트 셋**으로 설정.
  • 역회전 버튼 (PLC1): 역회전 버튼은 비트 스위치로 설정되어 있습니다. 이 버튼을 누르면 PLC에 신호를 보내 역회전을 시작합니다.
    • HMI 설정:
      • **비트 어드레스**를 **PLC1:X1001**으로 설정.
      • **비트 동작**을 **비트 셋**으로 설정.
  • 정지 버튼 (PLC1): 정지 버튼은 비트 스위치로 설정되어 있습니다. 이 버튼을 누르면 PLC에 신호를 보내 모든 동작을 정지시킵니다.
    • HMI 설정:
      • **비트 어드레스**를 **PLC1:X1002**으로 설정.
      • **비트 동작**을 **비트 셋**으로 설정.

데이터 설정 흐름 요약

  1. 데이터 입력 및 출력 설정: 각 데이터 필드와 버튼에 대해 PLC와의 통신을 설정합니다.
  2. 모니터링 워드 어드레스 설정: 각 데이터 필드에 대해 올바른 PLC 어드레스를 설정합니다.
  3. 데이터 종류 설정: 주파수, 모니터 코드, 모니터 값 등의 데이터 종류를 Hex 또는 Dec 형식으로 설정합니다.
  4. 비트 스위치 설정: 각 버튼에 대해 비트 어드레스와 동작 설정을 완료합니다.

 

Hex 또는 Dec 형식의 데이터타입 변환의 이해를 돕기위해 올려놓습니다. 

Hex Calculator

  1. 데이터 타입 이해:
    • *Hexadecimal (Hex)**Decimal (Dec) 데이터 타입은 숫자를 다른 형식으로 표현하는 방법입니다. Hex16진수로, 0-9와 A-F까지의 숫자를 포함합니다. Dec는 10진수로, 우리가 일상적으로 사용하는 숫자 체계입니다.
    • HMI를 설정할 때, PLC나 다른 제어 시스템의 데이터를 올바르게 표시하거나 처리하기 위해 이 형식 간의 변환이 필요할 수 있습니다.
  2. HMI 설정:
    • HMI를 인버터와 같은 장치와 통신하도록 설정할 때, 데이터가 Hex 또는 Dec로 해석되어야 하는지 지정해야 합니다. 이를 통해 표시되거나 계산되는 숫자 값이 정확해집니다.
    • 예를 들어, 주파수를 설정할 때는 Dec 값이 필요할 수 있고, 상태 레지스터는 Hex 형식으로 관리하는 것이 더 직관적일 수 있습니다.
  3. 동영상 튜토리얼:
    • PLC247.com의 HMI Kinco와 Inovance MD200 튜토리얼은 Modbus RTU 프로토콜을 사용하여 연결하고 설정하는 과정을 설명합니다. 이 튜토리얼은 다양한 매개변수를 설정하고 Hex와 Dec 형식의 통신 주소를 이해하는 방법을 다룹니다.
    • PLC247.com의 HMI Kinco와 INVT GD20 튜토리얼은 또 다른 예제로, Modbus RTU 통신을 설정하고 매개변수를 구성하는 방법을 보여줍니다. 이 과정에서도 데이터 형식을 설정하는 방법을 포함하여 효과적인 제어와 모니터링 방법을 설명합니다.

https://www.youtube.com/watch?v=E4v5kBTNE3o

HMI 데이터 형식 Hex Dec 설정 튜토리얼관련 영상입니다 C#을 예시로 한 영상이지만 전반적인 값 변환의 매커니즘을 이해하시라는 의미에서 올려드립니다.


 


PLC 값을 HMI 상에서 Hex 및 Dec 값으로 변환하는 매커니즘

PLC(Programmable Logic Controller)와 HMI(Human-Machine Interface) 간의 데이터 통신은 공정 자동화 시스템에서 매우 중요한 역할을 합니다. 여기서는 PLC에서 값을 받아와 HMI 상에서 Hex 및 Dec 값으로 변환하는 매커니즘을 설명하겠습니다. 이 과정은 C 언어의 데이터 변환과 유사한 개념을 사용하지만, HMI와 PLC 간의 상호 작용은 더 고수준의 구현이 요구됩니다.

1. PLC에서 데이터 읽기

PLC는 다양한 센서 및 장비로부터 데이터를 수집합니다. 이 데이터는 주로 이진수 형태로 PLC 내부 레지스터에 저장됩니다. 예를 들어, 온도 센서가 10진수로 100도를 측정하면, 이 값은 이진수로 변환되어 PLC의 특정 메모리 주소에 저장됩니다.

2. HMI와 PLC 간의 통신

HMI는 PLC와 통신하기 위해 특정 프로토콜을 사용합니다. 가장 일반적인 프로토콜은 Modbus, Profibus, Ethernet/IP 등입니다. 이 프로토콜을 통해 HMI는 PLC의 메모리 주소에 접근하여 데이터를 읽어옵니다.

3. 데이터 형식 설정

HMI 소프트웨어에서 특정 데이터 주소를 설정하고, 해당 주소에서 데이터를 읽어옵니다. 예를 들어, 아래와 같이 설정할 수 있습니다:

  • PLC 주소: D0000 (온도 데이터)
  • 데이터 형식: 16비트 Hex 또는 10진수(Dec)

4. 데이터 변환

HMI는 PLC로부터 읽어온 데이터를 화면에 표시하기 전에 변환 과정을 거칩니다. 이 과정은 주로 HMI 소프트웨어 내부에서 이루어지며, C 언어에서의 데이터 변환과 유사한 원리를 따릅니다. HMI에서 데이터 변환은 다음과 같은 절차를 따릅니다:

예시: 10진수 -> 16진수 변환

  1. 10진수 데이터 읽기: 예를 들어, PLC에서 100이라는 값을 읽어옵니다.
  2. 16진수 변환: 이 값을 16진수로 변환합니다.위의 C 코드에서 10진수 **100**을 16진수로 변환하여 **0x64**로 저장합니다.
  3. c코드 복사 int decimalValue = 100; char hexValue[10]; sprintf(hexValue, "0x%X", decimalValue);

예시: 16진수 -> 10진수 변환

  1. 16진수 데이터 읽기: 예를 들어, PLC에서 0x64 값을 읽어옵니다.
  2. 10진수 변환: 이 값을 10진수로 변환합니다.위의 C 코드에서 16진수 **0x64**를 10진수로 변환하여 **100**으로 저장합니다.
  3. c코드 복사 char hexValue[] = "0x64"; int decimalValue; sscanf(hexValue, "%x", &decimalValue);

5. HMI 화면 표시

HMI는 변환된 데이터를 화면에 표시합니다. 사용자는 HMI를 통해 실시간으로 변환된 값을 확인할 수 있습니다.

고수준 구현의 이유

PLC와 HMI 간의 데이터 변환은 다음과 같은 이유로 고수준의 구현을 요구합니다:

  1. 실시간 데이터 처리: 데이터는 실시간으로 처리되어야 하므로, 빠르고 정확한 변환이 필수적입니다.
  2. 다양한 데이터 형식 지원: HMI는 다양한 형식의 데이터를 지원해야 하며, 이를 위해 복잡한 변환 알고리즘이 필요합니다.
  3. 안정성 및 신뢰성: 자동화 시스템에서 데이터의 정확성과 신뢰성은 매우 중요합니다. 잘못된 데이터 변환은 심각한 오류를 초래할 수 있습니다.
  4. 유연성: 다양한 PLC 모델과 HMI 소프트웨어 간의 호환성을 보장해야 하므로, 유연한 설계가 필요합니다.

결론

PLC와 HMI 간의 데이터 변환은 자동화 시스템에서 필수적인 요소이며, 이를 통해 사용자는 실시간으로 시스템 상태를 모니터링하고 제어할 수 있습니다. 이러한 변환 과정은 C 언어의 데이터 변환과 유사하지만, 더 높은 수준의 구현이 필요합니다. 이는 실시간 처리, 다양한 데이터 형식 지원, 안정성 및 유연성을 요구하기 때문입니다.