• 제품선택
  • 안녕하세요, CIMON입니다.

     

    보고서 사용시 데이터베이스에 있는 “적산값 수동 리셋” 기능은 리셋 전의 값을 기억하고자 할 때 사용합니다.

    다음은 “적산값 수동 리셋” 기능을 사용하지 않은 예제와 사용한 예제로, 동작을 비교할 수 있습니다.

     

    [“적산값 수동 리셋” 미사용 예제]

    값은 스크립트를 사용하여 자동으로 리셋할 수 있습니다. 다음 예제를 참조하시기 바랍니다.

     

    1. 데이터베이스에서 보고서용 태그를 등록하고 적산값 수동 리셋에 체크를 하지 않습니다.

    2.  ANA1의 최대값을 1000으로 설정 합니다.

    3. 스크립트를 다음과 같이 작성합니다.

    ====

    Sub Main()

    While 1

    If (GetTagVal(“ANA1”)) >= 1000 Then

    SetTagVal “ANA1”, 0

    End IF

    Sleep 1000

    Wend

    End Sub

    ====

     

    위 스크립트는 ANA1의 데이터가 1000보다 크거나 같을 때, ANA1의 값을 0으로 리셋 시킵니다.

    리셋 이후 ANA1의 값이 0에서 300으로 증가하면 다음 그림과 같이 적산값  300이 기록됩니다.

     

     

    [“적산값 수동 리셋” 사용 예제]

     

    1. 데이터 베이스에 보고서용 태그를 등록 하고 “적산값 수동 리셋”에 체크합니다.

    이전 예제와 달리 최대값을 설정하지 않습니다.

    3. 스크립트를 다음과 같이 작성합니다.

    ====

    Sub Main()

    While 1

    If (GetTagVal(“ANA1”)) >= 1000 Then

    SetTagVal “ANA1”, 0

    End IF

    Sleep 1000

    Wend

    End Sub

    ====

    위 스크립트는 ANA1의 데이터가 1000보다 크거나 같을 때, ANA1의 값을 0으로 리셋 시킵니다.

    ANA1의 초기값은 0이고 0에서 1000이 찍히면 스크립트에 의해 태그의 값이 바로 0으로 설정됩니다.

    리셋 이후 ANA1의 값이 0에서 300으로 증가하면 다음 그림과 같이 적산값  1300이 기록됩니다.

     

     

    [추가 설명]

    적산값 수동 리셋을 체크하지 않고 데이터 최소, 최대값을 0 ~ 1000으로 설정합니다. 태그값이 1000이 되면 스크립트에 의해 값이 0으로 바뀌고 다시 증가한 값이 300이라고 가정하였을 경우,

    보고서에는 0 + 300 = 300이 찍히게 됩니다.

    반대로, 적산값 수동 리셋을 체크하고 데이터 최소, 최대값을 0 ~ 1000으로 설정합니다. 이후 태그값이 1000이 되면 스크립트에 의해 값이 0으로 바뀌고 다시 증가한 값이 300이라고 하였을 경우,

    보고서에는 1000 + 300 = 1300이 찍히게 됩니다.

     

    결론적으로, 적산값 수동리셋을 체크하면 리셋이 되기 전의 값을 기억하고, 반대로 체크를 하지 않않으면 리셋이 되기 전의 값을 잃어버리게 됩니다.

     

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

    감사합니다.

  • 안녕하세요, CIMON입니다.

    다음은 보고서 적산값 사용 시, 전 시간보다 값이 줄어드는 경우에 대한 예제입니다.

     

    [사용 예제]

    1. 데이터베이스에서 ‘ANA1’ 이라는 아날로그 태그를 등록하고 ‘보고서용 데이터 생성’ 옵션을 선택합니다.

    이후 해당 태그를 이용하여 보고서 모델을 등록합니다.

    2. [보고서] 창에서 [태그등록] 버튼을 눌러 다음과 같이 시간 설정을 합니다.

     

    3. ANA1 태그의 초기값에 500을 입력합니다.

    15시 00분 ANA1의 값이 500 입니다. 15시 적산값은 15시00분 ~ 15시59분까지의 총 증가량이 찍히게 됩니다.

     

    4. 500에서 값이 200으로 감소하였습니다.

     

    5. 보고서를 출력하고 데이터를 확인 합니다.

    65526이라는 값이 표기된 것을 확인할 수 있습니다.

    ANA1의 값이 500에서 200으로 줄어들어 총 300이라는 값이 줄어들었으나 표기된 값이 65236인 이유는

    값이 줄어든 경우에 사용되는 별도의 식이 존재하기 때문입니다. 해당 식은 다음과 같습니다.

    65535 + 1 – 줄어든값 = 보고서에 찍히는 값

    해당 식을 위의 예시에 적용할 경우

    65535 + 1 – 300= 65236

    이므로 보고서 파일에 65236이 기록됩니다.

     

    정상적으로 값이 계속 증가하는 경우에는 위의 식이 적용되지 않으며, 증가한 만큼의 데이터만 기록됩니다.

     

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

    감사합니다.

  •  

          Q: CimonD에서 프로젝트가 열리지 않아요.

         A: 프로젝트가 깨진 경우도 있지만 다른 경우에도 열리지 않는 경우가 있습니다.

     

    이번 FAQ는 CimonD에서 프로젝트가 열리지 않을 때 긴급복구가 가능한 경우에 작성된 FAQ 입니다.

     

    우선 프로젝트가 깨졌을 때 프로젝트 폴더 내에 모든 파일들이 알 수 없는 문자로 나오는 경우가 있습니다. 이런 경우에는 프로젝트를 복구 할 수 없습니다.

    프로젝트 폴더 내에 파일들이 정상적으로 존재함에도 불구하고 프로젝트가 열리지 않는 경우는 대부분 비정상적으로 프로젝트를 백업 받을 때 발생하는 현상입니다.

     

     

     

    프로젝트 이름.prj 파일이 프로젝트를 실행 시키는 파일입니다. 위 그림을 보면 크기가 3KB로 나와 있습니다. 하지만 파일이 0KB로 되어 있는 경우에는 CimonD에서 해당 프로젝트를 열 수 없습니다.

    예를 들어, TEST라는 프로젝트가 있다고 가정을 합니다.

    TEST 프로젝트를 정상적으로 사용 하다가 다른 PC에서 TEST 프로젝트를 열면 아래와 같이 [ XXX.prj 파일을 읽는 도중 에러가 발생 하였습니다. (2004) ] 라는 오류 팝업이 뜹니다. (아래의 그림은 다른 프로젝트이니 참고만 하면 됩니다.)

     

     

    *해결 방법*

     

    1. 열고자 하는 프로젝트의 경로와 다른 곳에 TEST라는 새 프로젝트를 만듭니다.

     

         새 프로젝트를 만들게 되면 TEST.prj 가 생깁니다.

        

    1. 새 프로젝트에 있는 TEST.Prj 파일을 기존의 TEST 프로젝트 폴더 내의 TEST.prj 파일에 덮어쓰기를 합니다.

     

         TEST.Prj를 덮어쓰기 하면 기존에 0KB였던 TEST.Prj가 3KB로 바뀌게 됩니다.

     

    간단히 말해, 정상적인 프로젝트의 prj파일의 크기가 0KB이며 CimonD에서 프로젝트가 열리지 않을 경우 해당 프로젝트와 동일한 이름으로 새 프로젝트를 만듭니다. 그리고 새 프로젝트 폴더에 있는 Prj 파일을 기존 프로젝트에 덮어쓰기 하면 됩니다.

     

     

  •     Q: CimonD에서 CimonX 실행시, CimonD에서 작업중인 프로젝트가 실행되지 않고 이전에 작업했던 프로젝트가 실행되거나 초기 프로젝트인 DEMO 프로젝트가 실행됩니다.

     

        A: 해당 문제는 Windows 설정에서 사용자 계정 컨트롤 설정을 변경하여 해결 가능합니다.

     

         작업한 프로젝트가 열리지 않는 상황의 경우 CimonX에서 해당 프로젝트를 열고자 하면 “작업이 중지되었습니다”라는 문구가 뜨면서 프로젝트가 열리지 않습니다.

     

    1. [제어판 – 사용자 계정 – 사용자 계정 컨트롤 설정 변경]의 경로를 통해 사용자 계정 컨트롤 설정 변경 항목에 들어갑니다.

     

     

    1. 사용자 계정 컨트롤 설정 변경에 들어가면 알림 조건이 ‘기본값’으로 설정되어있습니다.

     

    1. 알림 조건을 ‘기본값’에서 ‘알리지 않음’으로 수준을 하향합니다.

     

     

    위 (3)의 그림처럼 ‘알리지 않음’으로 설정할 경우 어플리케이션이 사용자의 허락 없이 실행되어도 사용자가 이를 감지 할 수 없으므로 어플리케이션이 시스템의 모든 영역에 접근할 수 있게 됩니다.

     

    일반적으로는 Windows에서 사용자 계정 컨트롤 설정이 기본값으로 설정되어 있어도 관리자 권한 없이 어플리케이션을 실행할 수 있습니다. 그러나 기본값에서 실행되지 않는 일부 어플리케이션의 경우 위의 그림과 같이 사용자 계정 컨트롤 수준을 낮추면 경고 및 팝업을 거치지 않고 어플리케이션을 실행할 수 있습니다.

     

     

     

  •      Q: 보고서 출력 시 OneNote, XPS 관련하여 출력이 되지 않을때가 있습니다.

     

         A: 시작프로그램 – 제어판 – 장치 및 프린터에서 프린터 설정을 바꾸면 됩니다.

            이 문제는 SCADA의 문제가 아니라 Windoows OS 사용시 Microsoft의 프로그램이 자동으로 설치되는 이유로 빈번하게 발생하게 되는 현상 입니다.

     

    * 보고서 출력 시 아래와 같이 원노트 프로그램이 열리게 됩니다.

     

     

    OneNote는 Microsoft 프로그램 입니다. OneNote 프로그램이 열리면서 프린터 출력이 되지 않습니다.

    XPS 뷰어 또한 Microsoft 프로그램이며 .XPS 파일을 찾을 수 없다고 하면서 출력이 되지 않는 경우가 있습니다.

     

    1. 시작프로그램 – 제어판 – 장치 및 프린터에 들어 갑니다.

     

     

    장치 및 프린터에 들어가면 OneNote로 보내기에 기본프린터가 설정되어 있습니다.

    OneNote로 잡혀있는 설정을 변경 합니다.

     

    1. 프린터 설정을 변경 합니다.

     

     

    사용 할 프린터를 클릭하고 마우스 오른쪽 버튼을 누른 뒤 기본 프린터로 설정(A)를 클릭 합니다.

    설정변경이 되면 그림과 같이 기본 프린터가 바뀌게 됩니다.

    기본 프린터가 OneNote로 잡혀 있으면 모든 프린터 출력시 OneNote 프로그램이 열리기 때문에 바로 출력이 되지 않습니다.

    OneNote 뿐만 아니라 XPS 뷰어도 마찬가지 입니다. 단순 설정 변경으로 해결 가능 합니다.

     

     

  • 안녕하세요. 싸이몬 입니다.

    CimonD 실행시 Side by Side 오류가 나올때, 기존에는  Microsoft Visual C++ 2008 Redistributable를 재설치 하였습니다.

    이는 Microsoft Visual C++ 2008 Redistributable  설치가 되지 않을때의 해결 방법 입니다.

    그 외에 Side by Side 오류가 발생하는 경우는 새로 구매한 PC에서 나오는 현상이며, 매우 극히 드문 경우이니 하단의 방법 또는 첨부된 FAQ 파일을 참고 하시기 바랍니다.

     

    [해결 방법]

    1. [제어판] – [Windows Update]에 진입하여 업데이트를 확인합니다.

    위 그림의 경우 중요 업데이트가 모두 완료되었다고 나타났으나,

    Side by Side 오류가 나타난 PC에서는 지속적인 업데이트 실패와 표시된 영역에 0x80070308 오류가 표기되는 경우가 있습니다.

     

    2. Window Update에서 업데이트 기록 보기를 클릭합니다.

    [업데이트 기록 보기] 화면에서 각 업데이트마다 KB로 시작하는 일련번호가 있음을 확인할 수 있습니다.

    업데이트 항목 중 KB2952664, KB4034664, KB4019112 항목의 설치 상태가 ‘실패’ 로 표시되어 있는지 확인하시기 바랍니다.

    이 중 특히 KB2952664, KB4019112 항목이 설치되지 않으면 SCADA 프로그램을 실행할 수 없습니다.

     

    3. [Windows + R] 키를 눌러 레지스트리 편집기를 실행하고 regedit을 입력합니다.

    이후 표시되는 레지스트리 편집기에서 HKEY_LOCAL_MACHINE을 클릭합니다.

    이후 표시되는 하위 폴더 중 COMPONENTS 폴더 내의 Pendingrequired1 이라는 레지스트를 삭제합니다.

    이후 Windows Update를 재시도하여 정상적으로 설치 및 PC 재부팅이 되면 Microsoft Visual C++ 2008 Redistributable 설치가 가능합니다.

     

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

    감사합니다.

  • 안녕하세요.  싸이몬 입니다.

    간혹 새 PC에서 혹은 사용중인 PC에서 윈도우 업데이트를 해야되는 상황에서 업데이트 확인이 지연되는 경우가 있습니다.

    이 경우는 Windows Update가 처리해야 하는 업데이트가 과다하게 몰리게 되면서 발생하는 현상 입니다.

    인터넷 상에 자료가 많지만 종합적으로 작성한 FAQ 입니다.

    파일로 소유하여 필요 시 참고 하시면 됩니다.

    감사합니다.

     

     

     

  •     Q:  Windows 자체원격을 이용하여 SCADA를 사용 할 수 있나요?

     

        A:  SCADA가 설치되어 있는 PC 한 대당 1개의 키락이 필요 합니다.

     

     

     SCADA의 키락은 다중 PC에서 동시접속을 막기 위한 시스템이 내포되어 있습니다.

    예를들어) A 회사에 있는 TEST_1이라는 PC 한 대에 DS 혹은 RS키락을 인식 시켰습니다. TSET_1 PC에서 CimonX를 정상적으로 사용중 A 회사의 같은 서버에 있는 TEST_2 PC가  Windows 원격을 통해 TEST_1 PC에 접속을 하게 되면 TEST_1 PC의 CimonX는 그 순간 데모모드로 동작하게 됩니다.

    반대로, TEST_2 PC에서 Windows 원격을 이용하여 DS 혹은 RS 키락이 꽂혀있는 TEST_1 PC에 설치된 CimonX를 실행하면 마찬가지로 데모모드로 동작하게 됩니다. 원격지에서 사용 할 수 있는 키락(WS, CS, VS)이 있기 때문에 일반적으로 DS, RS 키락으로는 Windows 원격접속이 불가능하며 반드시 각 PC에 키락이 꽂혀 있어야 합니다. 설령 각 PC에 키락이 꽂혀 있다 하더라도 Windows 원격을 사용하는 순간 키락인식이 안되어 데모모드로 동작하게 됩니다.

     

    • 서버클라이언트 및 FEP는 위에서 언급한 내용과는 무관 합니다.
    • 서버클라이언트 및 FEP는 양쪽 PC에 키락이 존재해야 하기 때문에 Windows 원격과는 다른 내용 입니다.
    • 종합적으로 SCADA 사용시 Windows 원격을 사용하게 되면 데모모드로 인식을 하기 때문에 Windows 원격 사용을 금합니다.
  •  

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

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

     

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

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

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

     

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

     

     

     

     

     

  • 스크립트를 사용하여 문자열에서 숫자 또는 숫자에서 문자열로 변환할 수 있습니다.

    아래는 변환 스크립트 예시입니다.

     

    1. 문자열을 숫자로 변환

    2. 숫자를 문자열로 변환

     

    3. FormatStr 함수를 사용하여 변환형식(정수, 실수, 문자열)에 맞추어 변환

     

     

    추가로 다른 변환함수는 아래와 같습니다.

    CDbl
    CDbl(expression)
    Converts any expression to a Double

    Cint
    CInt(expression)
    Converts expression to an Integer

    CLng
    CLng(expression)
    Converts expression to a Long

    CSng
    CSng(expression)
    Converts expression to a single

    CStr
    CStr(expression)
    Converts expression to a String

    Cvar
    Cvar(expression)
    Converts expression to a Variant

     

    첨부된 프로젝트를 참고하시어 스크립트 이용에 도움이 되시길 바랍니다.

    ※해당프로젝트는 SCADA V3.04에서 작성되었습니다.

     

     

     

     

     

     

     

     

     

    다운로드