프로그램 작성 창을 통해 간단한 프로그램을 하나 작성해 보도록 하겠습니다.
위 사진은 제가 어릴 때 친척집에 있었던 전등 을 챗 GPT로 구현한 것입니다. (아직 스위치 표현 부분에 약간 에러가 있는 것 같습니다. ^^) 3로 스위치 라고 검색하셔도 됩니다.
요지는 1층, 2층 스위치가 눌러질 때 마다 전등은 on/off를 변경합니다.
위와 같은 회로에서 전구를 켜기 위해선 스위치 1, 스위치 2가 같은 상태 (on, on / off, off) 일 때 동작하게 됩니다.
이를 각각 ST, LD, FBD 스타일로 프로그램 해 보겠습니다.
먼저, main program 에서 모든 프로그램을 작성하는 것은 시안성 및 관리 차원에서 좋지 않기 때문에 함수를 하나 만들어 줍니다.
아래 그림처럼 Application 을 우클릭 하면 Object 를 추가할 수 있고 여기서 POU(Program Organization Unit)을 추가합니다.
아래와 같이 추가할 함수의 이름과 어떤 언어로 작성할지 그리고 return 값의 데이터 형식을 지정해 줍니다.
Program, Function Block, Function 의 차이는 추후에 다른 페이지에서 기술하도록 하겠습니다.
추가한 함수는 아래와 같은 형식을 띄게 됩니다.
아까 메인 Prg 과 다르게 VAR_INPUT, VAR 가 있는 것을 알 수 있습니다.
VAR_INPUT : 외부에서 입력되는 데이터를 받아들이는 변수 입니다.
VAR : 함수 내부에서만 사용하는 변수 입니다.
우리는 main prg 에서 스위치 상태를 불러와야 되기 때문에 VAR_INPUT 에 xSwitch1, xSwitch2를 추가합니다.
x를 붙이는 이유, 데이터 형식도 나중에 기술하겠습니다.
일반적으로 C언어쪽 혹은 ST쪽 언어로 코딩하는 사람들은 위 프로그램 소스에 불편함을 못 느낍니다.
실제로 해당 프로그램에 문제가 있지는 않지만 향후 프로그램이 길어질 경우 오류가 발생할 소지를 가지고 있습니다.
위와 같은 표현이 되겠다.
하지만 최적의 코딩으로 작성하자면
다음과 같이 심플하게 갈 수도 있다.
output도 1개이고 가장 간결한 소스이다.
위와 같이 작성하고 login 후 run 하면 동작하지 않는다.
이유는 main에서 해당 함수를 언제 사용하는지 지정하지 않은 탓인데
다음과 같이 main prg 에서 작성해주면 xLight의 상태가 우리가 원하는 동작 하는 것을 확인할 수 있다.
Codesys #3-1 코드시스 규칙 Rule (변수타입, 헝가리안 표기법) (0) | 2025.07.21 |
---|---|
Codesys 프로그램 작성 #2-1 (LD, FBD) (0) | 2025.07.21 |
Codesys 프로그램 작성 #1 (0) | 2025.07.21 |
Codesys Install 코드시스 설치 (0) | 2025.07.21 |
Codesys 시작하기 (0) | 2025.07.15 |