사용자 도구

사이트 도구

English

cublocapp:an31010:index

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
cublocapp:an31010:index [2017/10/16 00:11]
Comfile Technology 만듦
cublocapp:an31010:index [2017/10/16 00:12] (현재)
Comfile Technology
줄 1: 줄 1:
 +====== AN31010 - 레더 타이머를 이용해서 일정시간동안 펄스 출력 ======
 +
 +큐블록 베이직에는 Pulsout 이라는 명령이 있습니다. 일정한 시간 간격동안 펄스를 출력하는 명령입니다.
 +
 +<code xbasic>
 +Const Device = CB280
 +Low 16
 +Do
 +If In(24) = 1 Then
 +    Pulsout 16,5000
 +Endif
 +Loop
 +</​code>​
 +
 +이렇게 하면 P24에 입력이 왔을때 대략 2초동안 P16포트가 On 됩니다. ​
 +
 +얼핏보면 쓸만하지만,​ 문제점이 있습니다.
 +
 +Pulsout명령은 펄스를 출력하는 2초동안 대기하기 때문에, 그 사이에는 아무일도 처리할 수 없습니다. 즉, 프로그램의 흐름을 방해하고 있는 것입니다.
 +
 +이런식으로 잠시동안 신호를 출력해야 하는일은 자동화 현장에서 자주 발생되는 상황입니다. 입력이 들어왔을때,​ 문을 오픈하기 위한 모터를 작동하려면 일정시간 모터를 구동해주어야 합니다. 모터가 구동하는 동안에 다른 입력들도 처리할 필요가 있는데, Pulsout 을 쓴다면 아무것도 못하고 모터구동이 끝날때까지 기다려야 하는 것입니다.
 +
 +===== 레더로직과의 협동 =====
 +
 +레더로직을 활용하면 이런 문제점을 해결할 수 있습니다. ​
 +
 +레더에는 타이머 기능이 있습니다. TMON 명령을 쓰면 일정시간동안 포트를 On할 수 있습니다.
 +
 +아래와 같이 프로그래밍하세요.
 +
 +<code xbasic>
 +Const Device = CB280
 +Usepin 16,Out
 +Set Ladder On
 +Do
 +If In(24) = 1 Then
 +    _M(0) = 1
 +Else
 +    _M(0) = 0
 +Endif
 +Loop
 +</​code>​
 +
 +{{ :​cublocapp:​an31010:​tmontest.png?​nolink |}}
 +
 +베이직 프로그램을 잘 보세요. P16에 2초동안 High출력을 하고 싶을때, M0 를 On 하면 됩니다. 그 뒷일은 레더한테 맡겨두면 됩니다. 레더가 알아서 P16을 2초동안 On시키고,​ 2초가 지나면 Off해줍니다.
 +
 +베이직은 M0만 1 로 만들고 바로 다음행으로 넘어가 다른 처리를 할 수 있게 됩니다. ​
 +
 +<​html><​center>​
 +<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​2RpQbe3Flrg"​ frameborder="​0"​ allowfullscreen=""></​iframe>​
 +</​center>​
 +</​html>​
 +[[cublocapp:​index|큐블록 어플리케이션 노트]]