사용자 도구

사이트 도구

English

cublocapp:an31010:index

AN31010 - 레더 타이머를 이용해서 일정시간동안 펄스 출력

큐블록 베이직에는 Pulsout 이라는 명령이 있습니다. 일정한 시간 간격동안 펄스를 출력하는 명령입니다.

Const Device = CB280
Low 16
Do
If In(24) = 1 Then
    Pulsout 16,5000
Endif
Loop

이렇게 하면 P24에 입력이 왔을때 대략 2초동안 P16포트가 On 됩니다.

얼핏보면 쓸만하지만, 문제점이 있습니다.

Pulsout명령은 펄스를 출력하는 2초동안 대기하기 때문에, 그 사이에는 아무일도 처리할 수 없습니다. 즉, 프로그램의 흐름을 방해하고 있는 것입니다.

이런식으로 잠시동안 신호를 출력해야 하는일은 자동화 현장에서 자주 발생되는 상황입니다. 입력이 들어왔을때, 문을 오픈하기 위한 모터를 작동하려면 일정시간 모터를 구동해주어야 합니다. 모터가 구동하는 동안에 다른 입력들도 처리할 필요가 있는데, Pulsout 을 쓴다면 아무것도 못하고 모터구동이 끝날때까지 기다려야 하는 것입니다.

레더로직과의 협동

레더로직을 활용하면 이런 문제점을 해결할 수 있습니다.

레더에는 타이머 기능이 있습니다. TMON 명령을 쓰면 일정시간동안 포트를 On할 수 있습니다.

아래와 같이 프로그래밍하세요.

Const Device = CB280
Usepin 16,Out
Set Ladder On
Do
If In(24) = 1 Then
    _M(0) = 1
Else
    _M(0) = 0
Endif
Loop

베이직 프로그램을 잘 보세요. P16에 2초동안 High출력을 하고 싶을때, M0 를 On 하면 됩니다. 그 뒷일은 레더한테 맡겨두면 됩니다. 레더가 알아서 P16을 2초동안 On시키고, 2초가 지나면 Off해줍니다.

베이직은 M0만 1 로 만들고 바로 다음행으로 넘어가 다른 처리를 할 수 있게 됩니다.

큐블록 어플리케이션 노트

cublocapp/an31010/index.txt · 마지막으로 수정됨: 2017/10/16 00:12 저자 Comfile Technology