• 제품선택
  •  

       Q: 데이터베이스 경보태그의 발생 동작에 명령식을 한 개 이상 사용 할 수 있나요?

    A: 세미콜론을 이용하여 사용 가능 합니다. 

     

    1. 먼저 데이터베이스에서 경보태그를 만듭니다.

    1. 경보태그에서 발생동작을 지정 합니다.

    여기에서 가장 중요한 부분은 명령식을 쓰고 난 뒤에 다른 명령식을 쓸 때 ;;을 붙여줘야 합니다. 한 개가 아닌 두 개를 붙여줘야 적용이 됩니다.

     

    예시로 디지털태그를 1로 만드는 명령식을 사용 했지만 실제로는 일반 함수들도 사용이 가능 합니다.

     

     

     

     

     

  • Q:  태그가 어디에 속해 있는 지, 언제 동작하는 지 궁금합니다.

    A:   아래 그림과 같이 CimonD 실행 후 [도구]-[크로스 레퍼런스]에서 관련 정보를 확인할 수 있습니다.

    – 단, 임의의 페이지(.PGX)를 Open한 상태일 때만  [크로스 레퍼런스] 항목이 활성화됩니다.

     

     

     

    * 크로스레퍼런스(CrossReference)란,

    – 작화 프로젝트에서 사용 중인 태그들이 배치된 위치를 확인을 할 수 있는 기능을 제공하는 도구입니다.

    – 사용자가 작업 중인 프로젝트의 모든 페이지와 모듈에 포함된 태그 정보를 확인할 수 있습니다.

     

    [예제]와 함께 설명해드리겠습니다.

    – 데이터베이스에 등록된 (전체) 태그 목록입니다.

     

    – ‘크로스 레퍼런스’ 창을 열었을 때 모습입니다.

    : Designer 모듈(‘경보내용’/’경보태그1’/’경보태그2’/’경보태그3’)과 Script 모듈(‘경보확인’)에서 데이터베이스에 등록된 태그 5개를 전부 확인할 수 있습니다.

    : ‘대상‘ 옵션을 사용하면 리스트를 ‘모듈별’ 또는 ‘페이지별’로 구분하여 나타낼 수 있습니다.

    : 특정 태그가 궁금할 경우 ‘검색 태그‘에 해당 태그의 이름을 입력한 후 우측에 ‘ 검색’ 버튼을 누르시면 됩니다.

    : 검색 결과, 태그 이름과 함께 해당 태그가 속해 있는 1) 페이지, 2) 오브젝트, 3) (오브젝트의) 기능[-> 태그 동작] 에 대한 정보를 확인할 수 있습니다.

     

    : 위 그림의 빨간색 박스 안 태그(‘경보태그1‘)의 경우,

    PAGE 2‘ 페이지 내 ‘그림4‘ 오브젝트에 속해 있으며 해당 오브젝트를 ‘터치‘할 경우 ‘디지털값쓰기‘ 동작이 수행됨을 알 수 있습니다.

     

    * 제한 사항

    – 작화에 설정된 태그 수가 많으면, 크로스 레퍼런스 실행 시 약간의 부하가 걸릴 수 있습니다.

    시스템 페이지의 경우 크로스 레퍼런스의 태그 수집 / 일괄변경/ 위치 확인 기능을 사용할 수 없습니다.

    레이블이 설정된 스위치/램프와 관련된 태그는 크로스 레퍼런스에서 확인할 수 없습니다.

    – 스마트 라이브러리 각 항목당 사용된 동일한 태그들은 크로스 레퍼런스 목록에 단일항목으로 표시됩니다.

  • Q: 디지털 입력신호가 몇 분 동안 가동 되었는지 확인 하려면 어떻게 해야 하나요

    A: 보고서를 이용하여 가동시간을 출력 할 수 있습니다.

     

    1. 먼저 디지털 태그를 생성하고 보고서용 데이터 생성에 체크를 합니다. 보고서 사용시 반드시 보고서용 데이터 생성에 체크를 해야 합니다.

     

    2. CimonD – 도구 – 보고서에 들어가서 보고서 양식으로 사용할 양식을 등록하고 저장경로를 설정 합니다.

    3. 보고서 태그등록을 합니다.

    이렇게 설정을 하면 아침 9시에 보고서 파일이 생성되며 엑셀파일의 A1셀과, B1셀에 어제 오후 7시부터 8시까지의 가동시간이 분단위로 입력되어 나오게 됩니다.

     

    도움말에 TLogVal을 검색하면 보고서에서 사용 할 수 있는 시각 값과, 값 종류가 자세하게 나와 있습니다. 참고 하시면 됩니다.

  • 안녕하세요.

    CIMON입니다.

     

    비트를 워드로 바꾸거나 워드를 비트로 표현하려는 경우, AND 연산을 이용하여 스크립트를 작성하는 것으로 가능합니다.

    다음 예제를 참고하여 주시기 바랍니다.

    [예제]

    1. 데이터베이스에서 아날로그 태그 1개와 디지털 태그 16개를 생성합니다. 태그 생성 시 ‘태그 동작을 지정함’, ‘태그값 변경 시 태그동작을 실행함’ 옵션을 선택합니다.

    2. [도구]-[스크립트]에 진입하여 두 개의 스크립트를 아래와 같이 작성합니다.

    [워드->비트]

    Sub Word2bit()

    worddata = GetTagVal(“WORD”)   ‘‘WORDDATA’태그를 변수 worddata에 저장 합니다.

    BitMask = 1                                         ‘변수 BitMask 에 1을 저장 합니다.

    For i = 00 To 15                                   ‘ i 에 0에서 15까지 저장 합니다.

    tagstr$ = “BIT”+Format(i,”00”)             ‘ ‘BIT00’~’BIT15’ 값을 변수 tagstr$ 에 저장 합니다.

    bitdata = worddata AND BitMask       ‘ 예를 들어 worddata에 5가 들어오면 000000000000101 AND 1 이면 bitdata에 1이 들어 갑니다.

    if(bitdata > 0) then

    SetTagVal tagstr$, 1                         ‘bitdata 0보다 크면 tagstr$ 1을 저장 합니다.

    else

    SetTagVal tagstr$, 0                         ‘bitdata 0이면 tagstr$ 0을 저장 합니다.

    end if

    BitMask = BitMask * 2                       ‘예를 들어 처음 1 이들어가면 000000000000101

    ‘2에 1승 이여서 두번째 비트를 의미 합니다.

    Next

    End Sub

    =================================================

    [비트->워드]

    Sub Bit2Word()

    BitMask = 1                                           ‘ 변수 BitMask 에 1을 저장 합니다.

    worddata = 0                                             ‘변수 worddata 에 0을 저장 합니다.

    For i = 00 To 15                                         ‘ i 에 0부터 15까지 저장 합니다.

    tagstr$ = “BIT”+Format(i,”00”)                   ‘‘BIT00’~’BIT15’ 값을 변수 tagstr$ 에 저장 합니다.

    BitVal = GetTagVal(tagstr$)                     ‘tagstr$ 값을 변수 BitVal 에 저장 합니다.

    For j=0 to (i-00)                                             ‘ j 에 i 값을 저장 합니다.

    BitMask = 2^j                                         ‘BitMask 에 2 에 j 승을 저장 합니다.

    Next

    worddata = worddata + BitMask * BitVal

    Next

    SetTagVal “WORD”,worddata

    End Sub

    =====================================================

    아래 그림과 같은 형식으로 각 스크립트를 등록합니다.

     

    3. 아날로그 태그의 태그 동작을 다음과 같이 입력합니다.

    RunScript(“Word2bit”)

    각 디지털 태그들의 태그 동작을 다음과 같이 입력합니다.

    RunScript(“Bit2Word”)

    4. CimonX를 실행하여 동작을 확인합니다.

    [워드->비트]

    아날로그 태그의 값(워드 값)을 변경하였을 때, 워드의 값에 해당되는 비트 값이 디지털 태그 값으로 표현됩니다.

    Ex) 아날로그 태그에 12345 값을 입력하였을 때, 다음 그림과 같이 BIT00, BIT03, BIT04, BIT05, BIT12, BIT13 태그의 값이 1로 변환됩니다.

    12345 = 2^0 + 2^3 + 2^4 + 2^5 + 2^12 + 2^13

    [비트->워드]

    디지털 태그의 값(비트 값)을 변경하였을 때, 비트의 값에 해당되는 워드 값이 아날로그 태그 값으로 출력됩니다.

    Ex) BIT00, BIT03, BIT05 태그의 값을 1로 변경하였을 때, 다음 그림과 같이 WORD 태그의 값이 41로 나타납니다.

    2^0 + 2^3 + 2^5 = 41

     

    언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.

    감사합니다.

  • 안녕하세요.

    CIMON입니다.

     

    CommStatus 내부함수를 이용하여 통신 상태를 확인할 수 있습니다.

    다음 예제를 참조하여 주시기 바랍니다.

     

    [사용 예제]

    1. 데이터베이스에서 디지털 태그를 생성합니다.

    2. [도구]-[스크립트]에 진입하여 다음과 같이 스크립트를 작성합니다.

    Sub main()

    While 1

    A = CommStatus(“plc.ST”)

    ‘A가 0일 때 통신 상태 정상, 1일 때 통신 상태 비정상, -1일 때 통신상태 Disable
    if A = 0 then

    Settagval “DIG1”, 0

    else

    Settagval “DIG1”, 1

    ‘통신상태가 정상일 때 DIG1의 값이 0이고 비정상이거나 Diable상태일 때 1

    end if

    sleep(500)

    Wend

    End Sub

    =======================================

    아래 그림과 같이 스크립트를 등록합니다.

    Commstatus 함수에 대한 설명은 다음을 참고바랍니다.

    Commstatus 지정된 디바이스 또는 스테이션의 통신 상태를 출력합니다.
    수치함수 연산식 표기 Commstatus (디바이스이름”)

    Commstatus (“디바이스이름.스테이션이름”)

    Commstatus (“”)

    스크립트 표기 n = Commstatus (디바이스이름”)

    n = Commstatus (“디바이스이름.스테이션이름”)

    n = Commstatus (“”)

    기능 지정된 디바이스 또는 스테이션의 통신 상태를 출력합니다. 디바이스 이름을 지정하지 않으면 시스템 전체적인 통신 상태를 출력합니다.
    -1 통신이 비활성화된 상태입니다.
    0 통신이 정상적인 상태입니다.
    1 통신이 비정상적인 상태입니다.
    사용 예제 디바이스 이름이 ‘PLC’일 때, 해당 디바이스의 통신 상태를 확인합니다.

    연산식 입력: Commstatus (“PLC”) = n

    스크립트 입력: n = Commstatus (“PLC”)

    3. CimonX를 실행하여 동작을 확인합니다.

    통신 상태가 정상일 경우에는 태그의 값이 0으로 나타나며, 통신 이상 발생시 태그 값이 1이 되는 것을 확인할 수 있습니다.

     

    언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.

    감사합니다.

     

     

     

  • Q: 사용자가 원할때만 데이터 수집을 할 수 있나요?

    A: 데이터 수집 기본 기능으로는 CimonX가 실행되는 순간부터 데이터 수집이 되지만 EnableDataLog 함수를 이용하면 가능 합니다.

     

    1. 데이터 수집 모델을 등록 합니다.

    2. 데이터 수집할 태그를 등록하고 디지털 태그 하나를 추가로 등록 합니다. 디지털 태그에는 태그동작을 하나 걸고 RunScript(“main”)을 등록 합니다.

    3. 스크립트를 작성 합니다. EnableDataLog함수 사용방법은 도움말에 나와 있습니다. EnableDataLog “데이터 수집 모델이름”, 1 혹은 EnableDataLog “데이터 수집 모델이름”, 0 입니다. 1일때는 데이터 수집 모델을 실행 시키고, 0일때는 데이터 수집 모델을 정지 시킵니다.

    Main 스크립트를 사용한 이유는 CimonX가 처음 시작 했을 때 D의 태그값의 초기값이 1일 수도 있기 때문에 Main 스크립트를 사용 하였습니다.

    4. CimonX를 처음 실행 했을때의 시스템 상태 화면 입니다.

    Main 스크립트가 돌고 데이터 수집이 Disable된 것을 확인 할 수 있습니다. 그리고 Main 스크립트가 정지 되었습니다. 데이터 수집이 Disable 된 이유는 D 태그의 초기값이 0이기 때문 입니다.

    5. 여기서 D의 태그값을 1로 바꾸고 시스템 상태 화면을 보았습니다.

    Main 스크립트가 돌고 데이터 수집이 Enable 되었습니다. D의 태그값이 1이고 D태그의 태그동작에 RunScript(“Main”)을 사용 하였기에 태그값이 바뀔 때마다 스크립트가 실행 됩니다.

     

    이와 같이 사용자가 원할 때만 EnableDataLog 함수를 이용하여 데이터 수집을 할 수 있습니다.

     

     

  • 안녕하세요.

    CIMON입니다.

     

    PulseOn 내부함수를 명령식 또는 스크립트로 사용하면 특정 태그를 ON으로 출력한 후, 일정 시간 후에 다시 OFF 전환할 수 있습니다.

    다음 함수 설명을 참조하여 주시기 바랍니다.

    PulseOn 지정된 태그를 주어진 Pulse 폭만큼 ON 출력한 후, OFF로 전환합니다.
    명령함수 명령식 표기 PulseOn(태그이름”, Pulse폭)
    스크립트 표기 PulseOn태그이름”, Pulse폭
    기능 지정된 태그를 지정한 Pulse 폭 (msec 단위)만큼 Pulse ON 출력합니다.
    사용 예제 “TEST” 태그를 1초동안 ON(1)출력한 뒤 다시 0(OFF)을 출력합니다.

    명령식으로 사용할 때: PulseOn(“TEST”,1000 )

    스크립트 내에서 사용할 때: PulseOn“TEST”,1000

     

    [적용방법]

    1. 데이터베이스에서 디지털 태그 ‘TEST’, ‘TEST1’을 생성합니다.

     

    2. [도구]-[스크립트]를 선택하여 다음과 같이 스크립트를 작성합니다.

    ‘TEST’ 태그가 1일 때 ‘TEST1’ 태그를 1초동안 ON 시킨 후 OFF 시키는 스크립트입니다.

    Sub Pulse()

    A= GetTagval(“TEST”) ‘TEST라는 태그를 A변수로 설정합니다

    if A = 1 then       ‘A 변수   값이 1일 때

    PulseOn “TEST1”, 1000   ‘TEST1 태그를 1초동안 ON시킵니다. (2000으로 했을시 2초)

    end if

    End Sub

    ================================================

    아래와 같이 스크립트를 등록합니다.

    
    

    3. CimonX를 실행하여 동작을 확인합니다.

    TEST 태그의 값이 1일 때 스크립트를 동작시키면, TEST1태그의 값이 1초 동안 ON으로 출력되었다가 다시 OFF로 전환됩니다.

     

    언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.

    감사합니다.

  • 안녕하세요.

    CIMON입니다.

     

    1워드를 16비트로 표현하려는 경우, AND 연산을 이용하여 스크립트를 작성하는 것으로 가능합니다.

    다음 예제를 참고하여 주시기 바랍니다.

    [예제]

    1. 데이터베이스에서 아날로그 태그 1개와 디지털 태그 16개를 생성합니다. 태그 생성 시 ‘태그 동작을 지정함’, ‘태그값 변경 시 태그동작을 실행함’ 옵션을 선택합니다.

     

    2. [도구]-[스크립트]에 진입하여 두 개의 스크립트를 아래와 같이 작성합니다.

    [워드->비트]

     

    Sub Word2bit()

     

    worddata = GetTagVal(“WORD”)   ‘‘WORD’태그를 변수 worddata에 저장 합니다.

    BitMask = 1                                         ‘변수 BitMask 에 1을 저장 합니다.

    For i = 00 To 15                                   ‘ i 에 0에서 15까지 저장 합니다.

    tagstr$ = “BIT”+Format(i,”00”)             ‘ ‘BIT00’~’BIT15’ 값을 변수 tagstr$ 에 저장 합니다.

    bitdata = worddata AND BitMask       ‘ 예를 들어 worddata에 5가 들어오면 000000000000101 AND 1 이면 bitdata에 1이 들어 갑니다.

    if(bitdata > 0) then

    SetTagVal tagstr$, 1                         ‘bitdata 0보다 크면 tagstr$ 1을 저장 합니다.

    else

    SetTagVal tagstr$, 0                         ‘bitdata 0이면 tagstr$ 0을 저장 합니다.

    end if

    BitMask = BitMask * 2                       ‘예를 들어 처음 1 이들어가면 000000000000101

    ‘2에 1승 이여서 두번째 비트를 의미 합니다.

    Next

    End Sub

    =================================================

    [비트->워드]

     

    Sub Bit2Word()

     

    BitMask = 1                                           ‘ 변수 BitMask 에 1을 저장 합니다.

    worddata = 0                                             ‘변수 worddata 에 0을 저장 합니다.

    For i = 00 To 15                                         ‘ i 에 0부터 15까지 저장 합니다.

    tagstr$ = “BIT”+Format(i,”00”)                   ‘‘BIT00’~’BIT15’ 값을 변수 tagstr$ 에 저장 합니다.

    BitVal = GetTagVal(tagstr$)                     ‘tagstr$ 값을 변수 BitVal 에 저장 합니다.

    For j=0 to (i-00)                                             ‘ j 에 i 값을 저장 합니다.

    BitMask = 2^j                                         ‘BitMask 에 2 에 j 승을 저장 합니다.

    Next

    worddata = worddata + BitMask * BitVal

    Next

    SetTagVal “WORD”,worddata

     

    End Sub

    =====================================================

    아래 그림과 같은 형식으로 각 스크립트를 등록합니다.

    3. 아날로그 태그의 태그 동작을 다음과 같이 입력합니다.

    RunScript(“Word2bit”)

    각 디지털 태그들의 태그 동작을 다음과 같이 입력합니다.

    RunScript(“Bit2Word”)

    4. CimonX를 실행하여 동작을 확인합니다.

    [워드->비트]

     

    아날로그 태그의 값(워드 값)을 변경하였을 때, 워드의 값에 해당되는 비트 값이 디지털 태그 값으로 표현됩니다.

    Ex) 아날로그 태그에 12345 값을 입력하였을 때, 다음 그림과 같이 BIT00, BIT03, BIT04, BIT05, BIT12, BIT13 태그의 값이 1로 변환됩니다.

    12345 = 2^0 + 2^3 + 2^4 + 2^5 + 2^12 + 2^13

     

    [비트->워드]

     

    디지털 태그의 값(비트 값)을 변경하였을 때, 비트의 값에 해당되는 워드 값이 아날로그 태그 값으로 출력됩니다.

    Ex) BIT00, BIT03, BIT05 태그의 값을 1로 변경하였을 때, 다음 그림과 같이 WORD 태그의 값이 41로 나타납니다.

    2^0 + 2^3 + 2^5 = 41

     

    언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.

    감사합니다.

  • 2024.03 리뉴얼

    안녕하세요, CIMON입니다.
    스크립트, 일정관리, 그룹일정기 기능으로 구현할 수 있습니다.
    내용은 아래와 같습니다.
     
    1. 스크립트를 이용한 방법.

    1) 스크립트를 이용하면 특정한 시각에 태그 값을 쓸 수 있습니다.

    먼저 아래 CIMOND->도구->데이터베이스를 실행합니다.

    2) 좌측 상단의 새 태그 생성 아이콘을 클릭해 “동작”이라는 디지털 태그를 생성합니다.

    3) CIMOND->도구->스크립트에 아래와 같이 작성합니다.

    SCADA 내부 함수를 통해 현재 시각 값을 받아오고 If조건문에 의해 특정 시각이 될 때 “동작” 태그를 ON 시키는 스크립트입니다.

    Sub MAIN() ‘특정 시간에 태그값 쓰기 예제

    while 1

    CurTime = TimeStr(53) & TimeStr(54) & TimeStr(55) ‘현재시간을 Curtime 변수에 저장

    If CurTime = “114100” then ’11시41분00초에 실행

    SetTagVal “동작”, 1 ‘동작 태그 ON

    Sleep(1000) ‘중복 동작 방지

    End if

    Sleep(900)

    Wend

    End Sub

    4) 아래와 같이 작성하면 태그 값으로 동작할 시각을 설정할 수 있습니다.

    “시”, “분”, “초” 태그의 값을 CurTime 변수와 비교하여 동작하는 스크립트입니다.

    “시”, “분”, “초” 이름의 아날로그 태그 추가 후 동작하면 됩니다.

    Sub OnTimeWrite()

    while 1

    CurTime = TimeStr(53) & TimeStr(54) & TimeStr(55) ‘현재시간을 Curtime 변수에 저장

    H = FormatStr(“%02d”, 0, GeTtagVal(“시”))

    M = FormatStr(“%02d”, 0, GeTtagVal(“분”))

    S = FormatStr(“%02d”, 0, GeTtagVal(“초”))

    If CurTime = H & M & S then ‘태그로 설정한 시각값과 현재 시각값 비교

    SetTagVal “동작”, 1 ‘동작 태그 ON

    Sleep(1000) ‘중복 동작 방지

    End if

    Sleep(900)

    Wend

    End Sub

    2. 일정관리를 이용한 방법.

    1) CIMOND->도구->일정관리를 실행합니다.

    2) 좌측 하단의 모델 추가를 클릭해 모델을 추가합니다.

    3) 추가를 클릭해 시각과 동작을 설정 후 확인을 클릭합니다.

    4) 모델편집에서 “기본 일정으로 사용” 기능을 체크해야 일정을 등록하지 않아도 모델이 동작됩니다.

    3. 그룹일정기를 이용한 방법.

    1) CIMOND->도구->그룹일정기를 실행합니다.

    2) 그룹 목록에서 “추가” 버튼을 눌러 아래와 같이 동작을 등록합니다.

    3) 생성된 그룹을 선택하고 추가 버튼을 눌러 동작 그룹으로 이동시킵니다.

    4) 동작 시간을 설정하고 일정을 등록합니다.

    5) 등록된 일정을 클릭하여 일정에 설정된 동작 그룹을 확인합니다.
    아래와 같이 등록하면 09시00분00초에 등록된 일정이 동작되어 “동작” 태그의 태그 값이 1로 변하게 됩니다.


    위 방법 중 원하시는 방법으로 구성 바라며 각 기능에 대한 자세한 설명은 CIMOND 도움말과 사용자 매뉴얼을 참고 바랍니다.
    사용자 매뉴얼은 홈페이지->다운로드 센터에서 확인 가능합니다.
     
    언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
    감사합니다.