예제 1

 | 윈도우 버전 | DOS 버전 | 웹 브라우저 버전 |


외부 버튼 중의 하나를 눌렀을 때 PLC가 시간에 따라 "Good Morning"(아침인사), "Good Afternoon"(오후인사) 또는 "Good Evening" (저녁인사) 인사를 LCD 디스플레이 창을 통하여 표시하는 프로그램을 보기로한다. 이것은 Ladder + BASIC를 사용하여 구성할 수 있다.:

1) "Greetings"이라는 이름을 갖는 입력 접점으로 Ladder 로직 회로를 생성한다. 이 로직 회로는 이 입력에 연결된 버튼을 눌렀을 때 Custom function #10을 트리거하는데 사용한다.

Note:  아래 Circuit #1은 "Start"가 순간적으로 "On"되었을 때마다 출력이 "On"되는 자기보지(自起保持: 플립플롭)회로이다. "Run" 출력은 NC (Normal close)접점인 "Stop" 입력이 여기(Energized) 되어졌을 때 만이 OFF가 된다. Circuit #2에서 "Run" 과  "Greetings" 입력 모두 ON이 되었을 때 만이 Custom Function #10을 트리거(실행) 시킨다. Custom Function #10은  "one-shot" (단 한번만 실행)으로 알려진 기능으로 트리거가 되어졌을 때 단 한번만 실행하는 타입이다.

 

example1.gif (9224 bytes)

 



Circuit#1 -->

 


Circuit#2 -->

 

 

 

2) 다음에는 Custom Function #10을 편집하기 위하여 다음과 같이 TBASIC 프로그램 코드를 입력한다.:

example2.gif (7687 bytes)

이것으로 프로그램은 모두 끝난 것입니다 !  이와 같은 기능을 얻기위해 다른 프로그램 언어로 작성된 것과 비교를 해보시기 바랍니다. 당연히 BASIC 프로그램으로 작성된 것이 편하다는 것을 느낄 것입니다. 단일 비트 입력 처리를 하는 데에는 BASIC 자체로 하는 것 보다는 Ladder로직과 함께 사용하는 경우 훨씬 손쉽게 원하는 기능을 얻을 수가 있습니다. 또한 Super PLC와 같이 내장된 LCD 명령이 없다면 LCD 디스플레이 장치의 14개의 핀을 제어하는 I/O포트를 설계하는데 시간을 많이 써야하며 상당히 번거로운 작업이 될 것 입니다.

다른 메이커의 기존 PLC에서 제공하는 순수 Ladder 로직 코드로는 어떻게 해야할까요? 우선 여러분은 애매모호한 메모리 번지내에 해당 메시지들을 위한 ASCII코드들을 어떻게 저장하여야 하는지 알아보기 위해 두꺼운 프로그램 매뉴얼을 들척거려야 할 것이며 몇시간 후 틀림없이 두꺼운 책을 덮어 버리고 한숨만 쉬게 되기 쉽상일 것 입니다.

Note: 복잡한 기능이 요구되어질 때 상기 예제에서 본 것처럼 여러분은 Supr PLC의 BASIC 언어를 사용하여 간단하게 설계할 수가 있습니다. 다른 한편으로 PLC의 Ladder 로직 회로는  AND, OR, NOT, timer, counter 등과 같은 단지 간단한 사항만을 처리하게 되어 쉽고 빠르게 원하는 기능을 구성할 수 있으며 PLC 또한 가볍고 행복하게 일을 처리할 것입니다.

여전히 납득이 잘 안된다구요? 그러하시다면 이러한 결과를 직접 확인하여 보기위하여 여러분의 PC에 TRiLOGI 소프트웨어를 다운로드 받아 위의 예제 프로그램을 만들어 직접 실행하여 보시기 바랍니다. 이 소프트웨어는 PLC를 배우고자 하는 수많은 대학의 학생들이 사용하고 있습니다. LCD 디스플레이 및 리얼타임 클럭을 포함하여 거의 모든 것을 시뮬레이션 해볼 수가 있습니다.

 

다른 예제

아래에 기존의 전통적인 방식의 Ladder PLC들에서 실현하기에 아주 지루하고 또는 거의 불가능한 작업들을 얼마나 쉽게 TBASIC 언어로 프로그램하는지를 몇가지 예를 통하여 보여 주고 있습니다.

1. 내장된 LCD상에 메시지 띄우기 2. 아나로그 입력값 읽기
SETLCD row, column, string

e.g.
SETLCD 1,1,"Hello World"
SETLCD 2,3,"Hour ="+STR$(TIME[1])

x = ADC(n)

n = 1 to 4 (the analog input channel #)
It returns a value ranging from 0 to 4096 which can be assigned to any variable x or used in expression.
e.g.     C = ADC(1)
     DM[I] = ADC(2)*1000/30

3. 아나로그 출력값 쓰기 4. PWM 출력 쓰기 (PWM: Pulse Width Modulated)
SETDAC n, x
       n = 1 (D/A #1)
      x =
output value 0 to 4096

e.g.
      
SETDAC 1, (X+Y)/100
SETPWM n, x, freq
       n = 1 or 2 (PWM Channel #)
       x
= output value 0-10000 (0-100%)
       freq
= frequency in Hz
e.g.
     
SETPWM 1, 2550, 10000
5. 스텝퍼 모터 (Stepper Motor) 운전 6. 리얼타임 클럭 읽기
STEPSPEED n, pps, acc
       n = 1 or 2 (Stepper controller channel)
     pps = Maximum pulses per second
       acc = acceleration steps to reach max pps.

STEPMOVE n, count, rly
       n = 1 or 2 (Stepper controller channel)
       count = No. of steps to move
      rly = the internal relay bit to turn ON after
               motion ended.

e.g.  STEPSPEED 1, 5000, 100
        STEPMOVE 1, 25000, 10

Super PLC의 리얼타임 클럭 (RTC)는 날자와 시간을 변수 DATE[1] ~ DATE[3] 그리고 TIME[1] ~ TIME[3]를 통하여 얻을 수가 있습니다.

Year  - DATE[1]
Month-
DATE[2]
Day  -
DATE[3]
Day of Week -
DATE[4]
Hour    -
TIME[1]
Minutes  -
TIME[2]
Seconds -
TIME[3]

e.g.    IF DATE[4] > 5 THEN … :ENDIF