안녕하세요.
CIMON 입니다.
Xpanel에서 스케줄 기능 관련 함수와 기능 사용 방법에 대한 예제입니다.
[이럴 때 사용하시면 됩니다]
특정 스케줄에 따라 동작을 실행시키고 싶을 때 사용하시면 됩니다.
[프로젝트 예제 작성 버전 및 주의사항]
Xpanel Ver 2.33(R130814)
Ver 2.33 프로젝트는 하위버전에서 프로젝트가 열리지 않습니다. 상위버전 사용자들은 프로젝트 업그레이드로 사용 하실 수 있습니다.
[예제 설명]
이 예제는 스케줄 관련 함수와 기능들을 모두 사용합니다.
스케줄 시간 설정에서 시간과 반복을 선택한 후 스케줄을 등록할 수 있습니다.
시스템메모리 데이터 설정의 시간 데이터는 미리 설정된 시간을 불러옵니다.
등록된 모든 스케줄에 대해 일괄적으로 같은 시간을 등록할 수도 있습니다.
특정 시간을 특정 번호의 스케줄에만 적용할 수도 있습니다.
스케줄 활성/비활성을 각각의 스케줄에 대해 설정할 수 있습니다.
1. 스케줄 변경 예제 프로젝트의 화면을 설명하겠습니다.

- 스케줄 선택 : 버튼을 클릭하여 등록된 스케줄 번호를 선택합니다. (SCHEDULE_INDEX 태그)
- 시간 설정 : 반복/년/월/일/시/분/요일버튼을 클릭하면 시간 데이터를 임의로 설정 할 수 있습니다.
(스케줄에 임의의 시간 설정을 하기 위해서는 SYSTEM MEMORY 태그 7개를 연속하여 등록하여야 합니다.) - 시스템 메모리 데이터 설정
A. 시간데이터(1) : 임의의 시간 지정된 데이터 입력 버튼
B. 시간데이터(2) : 임의의 시간 지정된 데이터 입력 버튼
(각 변수에 대한 값을 명령식에 직접 입력하여 사용하는 경우입니다.) - 스케줄 목록 창 열기 : 스케줄 목록이 표시되는 창을 엽니다.(ScheduleConfig() 함수를 실행하여 스케줄 목록 창을 엽니다.)
- 시간정보 일괄 적용 : 시간설정에 입력된 시간 데이터를 등록된 모든 스케줄의 시간정보에 동일하게 적용시킵니다.
(반복문과 SetScheduleSysMem(R1, R2) 함수를 활용합니다. R1: 스케줄번호, R2: SYSTEM MEMORY 시작주소) - ??? 번 항목에 적용 : 사용자가 선택한 항목의 스케줄 시간정보를 시간 설정에 입력된 시간 데이터로 변경 합니다. (SetScheduleSysMem(R1, R2) 함수를 이용합니다.)
- 모든 항목 활성화 : 등록된 모든 스케줄 항목을 활성화 시킵니다.
(반복문과 SetScheduleState(R1, R2) 함수를 사용합니다. R1: 스케줄번호, R2: [0]비활성화/[1]활성화) - 모든 항목 비활성화 : 등록된 모든 스케줄 항목을 비 활성화 시킵니다. (반복문과 SetScheduleState(R1, R2) 함수를 사용합니다.)
- ???번 활성화 : 사용자가 선택한 항목의 스케줄을 활성화 시킵니다. (SetScheduleState(R1, R2) 함수를 사용합니다.)
- ???번 비활성화 : 사용자가 선택한 항목의 스케줄을 비활성화 시킵니다. (SetScheduleState(R1, R2) 함수를 사용합니다.)
- ???번 활성화 상태 : 사용자가 선택한 항목의 스케줄 활성화 상태를 얻어옵니다. (GetScheduleState(R1) 함수를 사용합니다.)
- ???번 활성화 상태 결과 : 1 활성화 상태, 0 비활성화 상태입니다. (GetScheduleState(R1, R2) 함수의 결과를 ENABLE_SC에 입력되며 태그값으로 표시됩니다.)
2. 스케줄 기능에 대해 설명하겠습니다.
스케줄에 따른 작업 설정이나 태그값 설정은 XpanelDesigner에서만 가능합니다. Run 상태에서는 스케줄의 시간정보, 황성화 상태만 변경 가능합니다.
스케줄의 동작 설정은 프로젝트를 Xpanel에 다운로드 하기 전에 설정해야 합니다.
스케줄 설정은 도구-스케줄-스케줄목록 에서 스케줄 번호에 따라 설정 가능합니다.

3. 각 함수의 적용방법에 대해 설명하겠습니다.
도구-시뮬레이터로는 ‘스케줄 목록 창 열기’가 동작하지 않으므로 Xpanel에 다운로드 하셔서 확인하셔야 합니다.
SetScheduleSysMem(R1,R2) GetScheduleSysMem(R1,R2) 함수를 사용하기 위해 System Memory의 연속된 어드레스 7개를 태그로 등록하여야 합니다.(자세한 사항은 도움말-함수일람을 참고하세요.)
태그 이름과 어드레스 시작번호는 임의로 정할 수 있습니다.
예제 프로젝트는 이해가 쉽도록 System Memory 태그 이름을 적용범위와 일치시켰으며, System Memory 태그의 시작어드레스를 0으로 하였습니다.
R1은 스케줄번호, R2는 System Memory의 시작번호 입니다.

해당 태그들을 임의로 값을 변경하고 SetScheduleSysMem(R1, R2) 함수를 사용하여 특정 스케줄 번호의 시간정보를 변경할 수 있습니다.
다음과 같이 스케줄의 System Memory 태그값을 데이터입력 기능으로 변경할 수 있게 합니다.

한 번 클릭으로 지정된 시간값이 System Memory 태그값으로 설정되도록 버튼을 만들 수도 있습니다.

스케줄 목록 창을 여는 함수 ScheduleConfig() 를 사용합니다.
Xpanel Run 상태에서 스케줄 목록창을 통해 각각의 스케줄 활성화/비활성화, 시간정보가 변경 가능합니다.

스크립트를 활용하여 스케줄 시간정보를 변경할 수도 있습니다.

SetScheduleState(R1, R2) 함수로 해당 스케줄 번호(SCHEDULE_INDEX 태그값)의 스케줄을 활성화/비활성화 시킬 수 있습니다.

GetScheduleState(R1) 함수는 활성화/비활성화 상태를 반환하므로 ENABLE_SC 태그에 값을 저장하도록 합니다. 0(비활성화 상태) 또는 1(활성화 상태)을 반환합니다.

예제를 Xpanel에 다운로드 하셔서 스케줄 기능을 파악할 수 있도록 합시다.
예제 설명으로 충분하지 않으시다면 첨부된 ‘Schedule_메뉴얼’ 을 참고하시기 바랍니다.
[적용 방법]
기존 프로젝트에 사용하시려면 다음과 같이 작업하시면 됩니다.
기존 프로젝트에 ‘’도구-스케줄-목록창’ 에서 스케줄을 등록합니다.
스케줄의 동작을 설정합니다.
스케줄의 동작은 스케줄 번호와 함께 따로 정리해놓도록 합니다.
(Xpanel 상에서 스케줄 동작이 무엇인지 표시되지 않습니다.)
스케줄 시간을 임의로 자주 조정하신다면 예제프로젝트의 페이지를 복사하여 사용합니다.
스케줄을 자주 조정하지 않으신다면 ScheduleConfig() 함수로 스케줄 목록창을 이용하여 설정하는 것으로 충분합니다.
첨부 1. ScheduleV233.zip
첨부 2. Schedule_매뉴얼.pdf
감사합니다.
#스케줄메뉴얼#스케줄기능#XPANEL스케줄기능#XPANEL스케줄#프로젝트예제#샘플프로젝트#XPANEL프로젝트예제#XPANEL샘플프로젝트#엑스판넬프로젝트예제#엑스판넬샘플프로젝트
