사용자 도구

사이트 도구

English

comfilehmi:hmieditor_function:index

시스템 함수

ComfileHMI Editor에서 사용할 수 있는 함수들입니다. 수식의 일부로 사용할 수 있습니다.

내부메모리

내부메모리란 HMI기기 내부의 특정 메모리영역입니다. 휘발성이며, 전원이 꺼지면 지워집니다.

최초상태에서 번지는 0부터 1023까지 사용가능하며, set_mem_size함수로 확장가능합니다.

  • set_mem_size(20000) - 20000개까지 사용가능함. 최대 1,000,000(백만)개까지 설정가능
  • 확장후 데이터는 0으로 초기화됩니다.

각 번지에 64비트 정수및 실수형 수치를 저장할 수 있습니다.

  • set_mem(번지,값) : 내부 메모리 특정번지에 값을 기록.
  • mem(번지) : 내부 메모리 특정번지에서 값을 읽어옴.

다음과 같이 연속된 번지에 계속 값을 기록할 수도 있습니다.

  • set_mem(번지,값1,값2,값3….)

기본 수학함수

인수가 1개인 함수입니다.

  • sin : 사인
  • cos : 코사인
  • tan : 탄젠트
  • asin : 아크사인
  • acos : 아크코사인
  • atan : 아크탄젠트
  • sinh : 하이퍼블릭 사인
  • cosh : 하이퍼블릭 코사인
  • tanh : 하이퍼블릭 탄젠트
  • floor : 소수점이하를 버린 정수값 리턴
  • ceil : 소수점 반올림한 정수값 리턴
  • exp : 익스포넨셜(exponential), 자연로그의 밑 e의 거듭제곱승 리턴.
  • log : 자연로그
  • log10 : 사용로그
  • fabs : 절대값
  • sqrt : 제곱근

인수가 2개인 함수입니다.

  • pow(x,y) : x의 y제곱
  • fmod(x,y) : x를 y로 나눈 나머지

인수가 여러개인 함수입니다.

  • max(x,y,z,…) : 가장 큰 값
  • min(x,y,z,…) : 가장 작은 값
  • max_index(x,y,z,…) : 가장 큰 값의 인덱스(순번을 말하며 0부터 시작합니다.)
  • min_index(x,y,z,…) : 가장 작은 값의 인덱스(순번을 말하며 0부터 시작합니다.)
  • avg(x,y,z,…) : 평균값
  • stdev(x,y,z,…) : 표준편차값
  • scale(입력값, 입력 최소값, 입력 최대값, 출력 최소값, 출력 최대값)

시스템 함수

시스템과 관련된 함수입니다.

인수가 없는 함수들입니다.

  • tick_count() : 기기가 부팅한 이후로 경과된 1000분의 1초 단위의 시간(ms)
  • touch_duration() : 마지막으로 터치를 누른 채로 현재까지 경과된 시간(ms). 만약 터치가 눌려져 있는 상태가 아니라면 -1.0을 반환.
  • action_group_repeat_index() : 사용자 액션그룹을 반복 실행할 경우 현재 반복된 순번(0부터 시작). 실행된 사용자 액션그룹에 소속된 액션 내부에서 이 함수를 호출하여 값을 얻습니다.
  • idle_seconds() : 현재까지 얼마나 오랫동안 터치 입력이 없었는지 나타내는 함수(초 단위)
  • idle_minutes() : (분 단위)
  • prev_screen_id() : 이전 화면 번호
  • screen_id() : 현재 화면 번호
  • timeout_result() : 가장 최근 통신의 결과 타임아웃이 발생했을 경우 1을 리턴. 발생하지 않았거나 통신내역이 없다면 0을 리턴.
  • timeout_count() : 프로젝트 실행후 현재까지의 타임아웃 총 발생횟수를 리턴.
  • reset_timeout_count() : 위 timeout_count()함수로 얻을 수 있는 횟수를 0으로 초기화 합니다.
  • cpu_usage() : 현재 시스템의 CPU 점유율을 백분율로 나타냅니다.
  • reboot_system() : 시스템을 재부팅합니다.
  • firmware_version() : 현재 펌웨어 버전을 반환합니다. 예를 들어 2.73일 경우 273을 반환합니다.
  • keypad_state() : 현재 동적 키패드가 띄워져 있는지 여부를 반환합니다. 띄워져 있을 경우 1, 그렇지 않으면 0을 반환합니다.

인수가 있는 함수들입니다.

  • float_to_bytes(값,“변수명1”,“변수명2”,“변수명3”,“변수명4”) : 특정 값을 float(32비트) 형식으로 변환한 후, 각각의 구성 바이트를 얻어냅니다. 변수명1은 최하위 바이트(리틀 엔디안 방식일 경우의 첫 바이트를 뜻함)이며 변수명4는 최상위 바이트를 뜻합니다. 변수명은 대소문자를 구분하며 반드시 따옴표로 감싸져야 합니다. 예) float_to_bytes(3.14+k,“a”,“b”,“c”,“d”)
  • verify_developer_key(개발자 키) : HMI 기기에 등록된 개발자 키의 일치 여부를 조사하여 결과를 반환합니다. 검사 결과가 일치할 경우 1을, 불일치할 경우 0을 반환합니다. HMI의 [런타임 설정>개발자 키 등록] 메뉴를 통해 HMI기기에 개발자 키를 미리 등록해놓을 수 있습니다. 예를 들어 프로젝트 시작시에 verify_developer_key(1234)==0 일 경우 에러 표시 화면으로 이동하게끔 작화를 할 수 있습니다. 이 기능은 개발자가 자신이 지정한 특정 기기에서만 자신의 프로젝트가 동작하게끔 하고 싶을 때 유용하게 쓸 수 있습니다.
  • set_data_processing_period(처리 주기 ms) : HMI 기기의 데이터 처리 주기를 조정하여 결과적으로 CPU 점유율을 낮춥니다. 데이터 처리 주기란 화면 갱신이나 통신 처리를 제외한 다른 모든 처리를 하는 주기를 말하며(1/1000초 단위) 이벤트나 액션의 갯수가 많아져서 CPU점유율이 높아진 경우 이 함수를 유용하게 사용할 수 있습니다. 일반적으로 프로젝트 시작시에 한번만 호출하면 되며 상황에 따라서 유동적으로 부하를 조절하고 싶을 경우 프로젝트 중간에 사용할 수도 있습니다. CPU 점유율이 높더라도 개의치 않고 최대의 성능을 내고 싶을 경우 이 함수를 호출하지 않거나 파라미터를 0으로 주면 됩니다.

액션 파라미터 관련 함수

액션추가에서 <사용자 액션 그룹 실행>의 <고급옵션>을 활성화시키면 <액션 파라미터>와 <보조 액션 파라미터>라는 항목이 나옵니다.

여기에 어떤 숫자를 넣으면, 이 숫자를 다음 함수로 읽어올 수 있습니다.

  • action_param : 사용자 액션그룹을 실행하는 시점에 세팅되는 임의의 값. 실행된 사용자 액션그룹에 소속된 액션 내부에서 이 함수를 호출하여 값을 얻습니다.
  • sub_action_param : 사용자 액션그룹을 실행하는 시점에 세팅되는 보조 값. 실행된 사용자 액션그룹에 소속된 액션 내부에서 이 함수를 호출하여 값을 얻습니다.

RTC (리얼타임클록) 관련 함수

인수가 없고, 리턴값이 있는 함수들입니다.

  • year : 현재 연도
  • month : 현재 월
  • day : 현재 일
  • day_of_week : 현재 요일 (일요일=0, 월요일=1, 화요일=2, …)
  • hour : 현재 시각
  • minute : 현재 분
  • second : 현재 초
  • rand : 0~ 32767 (0x7fff) 사이의 난수를 얻습니다.

인수가 1개이고 리턴값이 없는 함수들입니다.

  • set_year : 연도를 세팅
  • set_month : 월을 세팅
  • set_day : 일을 세팅
  • set_hour : 시를 세팅
  • set_minute : 분을 세팅
  • set_second : 초를 세팅
  • srand(seed) : rand() 함수에서 추후에 얻어질 값을 결정하기 위해 난수 체계를 초기화합니다. seed값에 따라 예측 가능한 시작값으로 난수 체계가 정해집니다.
  • srand(tick_count()); 라고 하면 예측 불가능한 시작값으로 시작됩니다. rand() 함수를 호출하기 위해 이 함수를 필수적으로 호출해야 되는 것은 아닙니다.

문자열 관련 함수

  • text_to_num(문자열) : 문자열을 넣으면 수치값을 반환.
    (예) “32.1”을 넣으면 32.1이 반환됨
  • num_to_text_int(수치) : 수치값을 넣으면 정수형태의 텍스트를 반환
    (예) 32.1을 넣으면 “32”가 반환됨
  • num_to_text_int(수치,자리수) : 수치값을 넣으면 자리수가 고정된 정수형태의 텍스트를 반환
    (예) 32.1과 4를 넣으면 “0032”가 반환됨
  • num_to_text_hex(수치) : 수치값을 넣으면 16진수형태의 텍스트를 반환
    (예) 10.1을 넣으면 “A”가 반환됨
  • num_to_text_hex(수치,자리수) : 수치값을 넣으면 자리수가 고정된 16진수 형태의 텍스트를 반환
    (예) 10.1과 4를 넣으면 “000A”가 반환됨
  • num_to_text_dec(수치,소수자리수) : 수치값을 넣으면 특정 소수자리수를 가진 실수 텍스트를 반환
    (예) 10.3과 4를 넣으면 “10.3000”이 반환됨
  • file_to_text(파일 경로) : 파일 경로를 넣으면 그 파일에 현재 담겨 있는 내용을 문자열로 반환. 파일 내용이 FF FE 로 시작할 경우 유니코드로 자동 인식. 파라미터로 문자열 변수 사용 가능.
  • text_to_file(문자열, 파일 경로) : 문자열과 파일 경로를 넣으면 문자열의 내용을 파일에 기록함(유니코드 형식). 파라미터로 문자열 변수 사용 가능.
  • file_exists(파일 경로) : 파일이 존재하는지 여부를 조사하여 결과값을 반환. 존재하면 1, 그렇지 않으면 0을 반환.

ComfileHMI 최초 페이지로 가기

comfilehmi/hmieditor_function/index.txt · 마지막으로 수정됨: 2019/08/18 21:57 저자 Comfile Technology