Table of Contents
기본 로직
레더로직을 어떻게 C언어로 표현하는지 알아보겠습니다.
| 레더로직 표현법 | C언어 표현법 | |
|---|---|---|
| A접점 | | Y01 = X01; |
| B접점 | | Y01 = !X01; |
| AND | | Y02 = X01 & X02; |
| OR | | Y03 = X01 | X02; |
| 타이머 | | onTimer(X01,1,100); Y04 = Tstat[1]; |
| 카운터 | | counter(X01,0,X02,1,100); |
실행가능한 코드로 기술하면 다음과 같습니다.
#include "cfManagedBase.h" void user_setup() { } void loop() { } void logic_proc() { Y01 = X01; Y02 = X01 & X02; Y03 = X01 | X02; onTimer(X01,1,100); Y04 = Tstat[1]; counter(X01,0,X02,1,100); }
접점 상태(또는 변수값) 모니터링
다음 커맨드를 사용해서 변수 또는 접점상태를 시리얼 모니터에서 볼 수 있습니다.
- debug(“문자열”,변수); “문자열:변수값”형태로 표시해줍니다.
- 줄바꿈은 debugcr로 사용할 수 있습니다.
접점상태를 시리얼 모니터 창에 표시하도록 해보겠습니다.
#include "cfManagedBase.h" void user_setup() { Serial.begin(115200); } void loop() { debug ("X01",X01); debug ("X02",X02); debug ("Y01",Y01); debug ("Y02",Y02); debug ("Y03",Y03); debug ("Y04",Y04); debugcr; delay(100); } void logic_proc() { Y01 = X01; Y02 = X01 & X02; Y03 = X01 | X02; onTimer(X01,1,100); Y04 = Tstat[1]; counter(X01,0,X02,1,100); }
응용 로직
| 상승에지 | | Y01 = rTrig(X01,0); |
| 하강에지 | | Y01 = fTrig(X01,1); |
| Set상태 유지 | | if (X01==1) Y01=1; |
| ReSet상태 유지 | | if (X01==1) Y01=0; |
AND 상황이 여러개가 있다면, 괄호를 사용하세요.
| Y01 = (X01 | X02) & X03; |
| Y01 = (X01 | X02) & (X03 | X04); |
OR도 마찬가지 입니다.
| Y01 = (X01 & X03) | (X02 & X04); |
