CAFE

카운트 시그널을 이용한 RPM 계산 소스입니다.

작성자Air Force One|작성시간07.12.21|조회수1,431 목록 댓글 2

아래 소스는 제가 첨에 공부할때 만들어 봤던 소스입니다.

이소스와 함께 서보드라이버의 이송거리를 통신으로 읽어서 서브 모터를 동기제어 하려고 계획 했었는데..

당시 사용했던 인버터가 1:N통신이 안되는 인버터여서 장비에 이식도 못해보고 사장되 버린 소스네요.

첨에 개념이 잘 잡히질 않아서 개념잡는데만 3일 걸리고.. 여러번의 테스트를 거쳐서 완성한겁니다.

P0E 는 운전중확인, P0F 는 카운터신호, P55는 공회전(메인일시정지) 입니다.

1번째 상승에지부터 2번째 상승에지까지의 시간을 잡으려니 타이머를 살렸다죽였다다시살리는 요부분이 불확실하다고

판단되서 ON시간과 OFF 시간을 따로 재서 합하는 방식을 사용하여 1~2번째 상승에지간 시간을 계산하였습니다.

(아마도 이부분에 대한 설명이 이해가 안되셨을듯 싶네요.)

RPM이 좀 빠른지라 T 디바이스는 10ms 용을 사용했구요

값이 10000 인건 10초를 의미하는데... 저희 장비는 20~150RPM(1회전 1.5~0.3초) 을 사용하므로 1회전에 걸리는 시간보다

훨신 긴 시간입니다.

님이 사용하실 장비의 1회전 시간이 10초가 넘을경우는 값을 크게 해 주셔야 오동작을 안합니다.

맨 아랫줄의 "공회전중 리셋" 부분은 제가 접점을 실수로 삭제했네요.. OR로 P55(M257을 사용해도 무방)가 하나 더 있습니다.

M255는 계산 종료와 함께 타이머값을 리셋합니다.. 리셋하지 않으면 오동작 하겠죠?

XGT로 사용하신다면.. 아주 간단하겠네요... PLC에서는 설정할것이 없고

XGT 작화시 테그에 plc국번, 디바이스에 D256 으로 입력하시고, 자리수만 결정해 주시면 바로 표시됩니다.

포토센서를 통해 제품이 통과하는 시간을 잡아서 계산하신다면 아래 소스를 그대로 사용하시면 될듯 싶네요.

속도가 빠른데다 들쭉날쭉 한다면 표시치가 눈에 보이지않을정도로 빠르게 변할수 있으니 

이경우는 D256을 2~5번정도 시프트해서 초단위로 평균을 구해서 표시하면 불편하지 않게 보실수도 있습니다.

아래 소스는 매회전마다 계산하여 표시하는 소스입니다.

 

혹 제가 실수한 부분이나 스텝을 줄일수 있는 방법이 있다면 답글 주셔서 한수 가르쳐 주시면 감사하겠습니다.

그리고 멜섹에는 TMR 명령이 없는걸로 아는데.... 멜섹에선 어떻게 해야 할지... 감이 안서네요.

1스켄시간동안 타이머 값이 리셋 되지만 않는다면 TON 명령을 사용해도 될텐데...

제가 테스트는 안해봤지만 마스터케이 명령어 메뉴얼을 보니 입력이 죽으면 타이머 값이 0가 되버리는것 같아서...

다른 명령은 사용도 안해보고 TMR 명령을 사용했습니다.

 

이미지를 클릭하면 원본을 보실 수 있습니다.

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자Air Force One 작성자 본인 여부 작성자 | 작성시간 07.12.23 어떻게 리플이 하나도 안달릴수있는지.... ㅠㅠ 슬프군요... 조언하나 없으시다니... ㅠㅠ
  • 작성자염형진 | 작성시간 11.10.20 저는초급이라 ㅠ ㅠㅠ
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼