본문 바로가기
  • IT & Factory Automation
Factory Automation

Codesys 펑션블록(토글 스위치) 만들기 (How to create Function block)

by EasyMotion 2023. 3. 13.
반응형

안녕하세요. IT & 자동화 정보를 하나하나 쉽게 알려드리는 이지원 입니다. 

 

지난 시간에는 PLC 특수 릴레이로 많이 사용하는 주기 클록을 Codesys에서 구현하기 위해 "Blink" 펑션블록을 이용했습니다.

Codesys 펑션블록 Blink 사용방법

 

이번 시간에도 PLC에서 자주 사용하는 명령어 중, 출력을 반전시키는 기능(Flipflop, Toggle)을 Codesys에서 사용하는 방법을 알려드리겠습니다. 

이 기능은 처음 입력신호가 들어오면 출력을 ON 상태로 만들고, 두번째로 입력신호가 들어오면 출력을 OFF 상태로 만드는 것을 말합니다. 토글 기능이라고도 하고, Melsec PLC에는서는 명령어 FF (플립플롭) 으로 구현이 가능합니다. 

 

 

Melsec PLC의 FF 명령어 사용예

 

 

하지만, Codesys 에서는 이에 해당하는 펑션블록이나 명령어가 존재하지 않습니다.

따라서, 직접 로직을 구현해야 합니다.

펑션블록으로 만들어서 저장해주면 다른 프로젝트에서도 사용이 가능하기 때문에 우선 펑션블록을 만드는 방법을 소개하겠습니다.

 

 

1. 펑션블록 만드는 방법

Codesys 화면 좌측의 [Application] 을 마우스 오른쪽 버튼으로 클릭하면 메뉴가 나옵니다.

[Add Object] 를 선택하고,  하위 메뉴에서 [POU] 를 클릭합니다. 

 

 

 

 

[Add POU] 창이 나타나면, 펑션블록 이름을 입력합니다.

"Type" 항목에서는 반드시 [Function block] 을 선택합니다. 

"Implementation language" 항목에서는 본인이 편한 프로그램 언어 형태를 선택합니다. 

Ladder 프로그램으로 선택하였습니다.

 

 

 

펑션블록은 프로그램과 다르게 입력변수와 출력변수가 반드시 존재합니다. 

Toggle 기능을 만들기 위해서, 입력변수 1개와 출력변수 1개를 선언합니다. 

 

 

 

2. Toggle 기능 구현

이제 Toggle 로직을 구현해 보겠습니다.

입력신호는 한번 들어올 때마다 반응하기 때문에 상승엣지로 만들어야 합니다.  

입력 접접을 추가하고 마우스 오른쪽 버튼을 클릭하여 [Edge Detection] 을 눌러 상승엣지로 변경해줍니다. 

 

 

 

입력/출력이 아닌 일반변수로 코일을 만듭니다. 

 

 

 

 

위와 같이 프로그램을 만들면 토글기능 펑션블록이 완성됩니다. 

 

 

 

3. 펑션블록 적용

펑션블록을 만들었으면, 이제 이 펑션블록을 프로그램에 가져와서 사용해야 합니다. 

[PLC_PRG] 프로그램 화면으로 와서, 만들어진 펑션블록을 선언해줍니다. 

그 다음, 프로그램에서 해당 펑션블록을 추가하여 프로그램을 만듭니다. 

 

 

 

 

프로그램을 테스트 해보겠습니다. [Simulation] 모드로 설정하고 [Login] 을 하여 프로그램을 전송합니다.

 

 

 

 

입력 변수에 값을 넣어 결과를 테스트 해봅니다. 

 

 

 

 

문제없이 출력값이 변경되는 것을 확인할 수 있습니다. 

 

 

 

 

이번 시간에는 Toggle 펑션블록을 만드는 방법을 알아보았습니다.

펑션블록을 다른 프로젝트에서 사용하려면, 아래 포스팅을 참고하기시 바랍니다. 감사합니다.

Codesys 내보내기 / 불러오기 방법

 

반응형

댓글