[LS PLC#2-9] ST 언어로 함수블록(R_TRIG)과 버튼 2개로 업다운 카운터를 만들어 보기!(녹칸다 멋대로 PLC ST 실습 예제)

이번 실습 예제는 녹칸다와 함께 LS산전의 PLC인 XEM-DN32H2를 이용하여 함수블록을 이용한 업다운카운터를 구현해보도록 합시다~~~! 직전 실습 예제를 살펴보면 ST 언어로 작성된 디바운스 코드로 채터링 현상을 방지했는데, 이번에는 함수블록을 사용하여 편하게 해보는 것입니다~~! 그러려면 함수블록을 사용하는 방법을 알아야겠죠?IOLINK의 A1에 업카운트 버튼을 연결하고 B1에 다운카운트 버튼을 연결합니다~~!A1의 주소가 %IX 0.0.0이 되고, B1의 주소는 %IX 0.0.1이 됩니다~~!업카운트 버튼을 누르면 PLC 내부의 메모리 값이 하나씩 증가하고, 다운카운트 버튼을 누르면 감소하는 것이 업다운 카운터입니다~~~!btn1과 btn2는 누름버튼입니다~~~! btn1_edge라는 변수명을 작성해서 type부분에 R_TRIG라고 입력해줍니다~~! 여기서 R_TRIG가 함수블럭(FB)입니다~~! btn2_edge도 같이 추가해서 cnt는 카운터입니다~~~! 부호있는 16bit 상수의 INT로 하겠습니다~!R_TRIG는 상승 에지를 검출하는 함수 블록입니다~~!누름 버튼을 눌렀을 때 LOW에서 HIGH로 상승하는 신호를 검출하는 블록입니다~~!(직전 예로 ST 언어로 작성된 코드가 함수화되었다고 생각하시면 됩니다) 아래 ST 언어로 작성된 코드를 PLC에 업로드 해줍니다~!//버튼 1의 상승 에지 검출을 하는 함수 블록의 인스턴스//버튼 1을 눌렀을 때 상승 에지 검출을 한다!btn1_edge(CLK:=btn1); // 설정btn2_edge(CLK:=btn2); // 설정IF btn1_edge.Q THEN//btn1에 상승엣지가 발생했다!cnt:=cnt+1;END_IF;IF bTN2_edge.Q THEN//bTn2에 상승엣지가 발생했다!cnT=cnT:cnT=IF-1;IFD_1END_1END;아래는 실습 예제 프로젝트 파일입니다~~! 첨부 파일 example2_9.zip파일 다운로드 내의 컴퓨터를 저장네이버 MYBOX에 저장PLC 실습 예제 작동 결과는 녹칸다 유튜브 라이브 방송으로 해당 위치를 링크하도록 하겠습니다~~! https://youtu.be/zzEiieag7Os?t=8317PLC 실습 예제 작동 결과는 녹칸다 유튜브 라이브 방송으로 해당 위치를 링크하도록 하겠습니다~~! https://youtu.be/zzEiieag7Os?t=8317

error: Content is protected !!