기본 콘텐츠로 건너뛰기

라벨이 스크립트인 게시물 표시

싸이몬 CIMON SCADA FAQ - 스크립트 사용에 제한 유무

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 스크립트 편집기에 등록할 수 있는 스크립트의 개수에는 제한이 없습니다. 다음은 스크립트 작성 시 각 요소에서 사용 가능한 용량을 나타낸 표입니다. 표를 참고하시어 스크립트 작성에 유의하여 주시기 바랍니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 사용 시 자동 종료 되거나 느려지며 제어가 되지 않을 경우

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 스크립트를 작성하실 때, While문 또는 For 문의 중간에 Sleep 함수가 없을 경우 리소스를 계속 점유하여 CPU 사용률이 100%까지 올라가게 됩니다. While ~ WEnd문이 실행 중일 경우, 이 문장 사이에 sleep 함수가 있어야 이러한 현상을 방지할 수 있습니다. 예) Sub Test() While 1 SetTagVal “TAG1”, 1 SetTagVal “TAG2”, 1 Sleep(100) Wend End Sub ====================== 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 1년간의 적산합 나타내는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. CIMON-SCADA월보인 경우는 3개월을 저장하고 있습니다. 따라서 3개월 이전의 값을 유지 하시려면 가상태그를 만들어서 보관한 후 보고서로 출력할 때 사용 하십시오. [ 예제설명] 스크립트에서 TimeStr(51) 함수를 사용해서 현재 월을 가져옵니다. 예제는 ANA1 을 실 태그로 두시고, SUM01~SUM12 는 가상태그입니다. 보고서에 출력 전 스크립트를 사용해서 RunScript 를 사용 하시면 됩니다. [ 적용방법] ‘ SUM01, SUM02 ~ SUM12 까지가 ANA1 태그에 대한 월 적산합이 들어 갑니다. ‘ 보고서 셀에는 TLogVal(“SUM01~SUM12″,”-1 월“, 적산합) 이 아닌 그냥 SUM01, SUM02 처럼 쓰면 됩니다. prevMon$ = TimeStr(51) curMon$ = prevMon$ curMon$ = TimeStr(51) if curMon$ prevMon$ then ‘ 달이 바뀌었는지 체크 nSum = TLogVal (“ANA1″,”-1 월“,” 적산값“) ‘ 전월 적산값을 구한다 SetTagVal “SUM”+prevMon$ , nSum ‘ 전월 태그에 값을 밀어 넣는다 prevMon$ = curMon$ end if End Sub 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 엑셀시트의 Sheet(시트)이름을 확인하는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. VB 함수를 이용하여 스크립트를 작성하는 것으로 엑셀 파일의 시트 이름을 표시할 수 있습니다. 다음 예제를 참조하여 주시기 바랍니다. [사용 예제] 1. 시트 이름을 가져올 엑셀 파일의 위치를 확인합니다. 2. [도구]-[스크립트]에 진입하여 다음과 같이 스크립트를 작성합니다. Sub ReadExcelSheet() Dim ExcelApp As Object Dim DayRpt As Object ‘Read 파일 이름 fName$ = “C:\보고서\Test.xls” ‘Excel 실행 Set ExcelApp = CreateObject(“Excel.Application”) ‘Excel 파일 열기 Set DayRpt = ExcelApp.Workbooks.Open (fName$) ‘Excel 파일의 모든 시트를 돌며 시트의 이름을 가져와서 표시한다. For nIdx = 1 To DayRpt.Worksheets.Count shname = DayRpt.Worksheets(nIdx).Name msgbox shname Next nIdx ‘파일을 닫는다. DayRpt.Close ‘Excel 를 종료한다. ExcelApp.Quit End Sub ===================================== 위 스크립트를 다음 그림과 같이 등록합니다. 3. CimonX를 실행합니다. 스크립트를 실행하면, 경로의 엑셀 파일에 저장된 모든 시트 이름을 메시지 박스로 표시합니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - PC 시간을 변경하는 기능

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. CIMON-SCADA 스크립트를 사용해서 시간을 변경 할 수 있습니다. 아래와 같이 스크립트를 작성하면 됩니다. Sub PCTIMECHANGE() Date$ = “2012-07-07” Time$ = “14:00:22” End Sub 명령식이나 스크립트상에서 RunScript (“PCTIMECHANGE”)실행을 하면 pc 시간이 2012년7월7일 오후2시00분22초로 바뀝니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 사용자가 원할때만 데이터 수집하는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. Q: 사용자가 원할때만 데이터 수집을 할 수 있나요? A: 데이터 수집 기본 기능으로는 CimonX가 실행되는 순간부터 데이터 수집이 되지만 EnableDataLog 함수를 이용하면 가능 합니다. 데이터 수집 모델을 등록 합니다. 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 함수를 이용하여 데이터 수집을 할 수 있습니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사...

싸이몬 CIMON SCADA FAQ - 태그를 이용하여 통신 상태를 확인하는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 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 함수에 대한 설명은 다음을 참고바랍니다. 3. CimonX를 실행하여 동작을 확인합니다. 통신 상태가 정상일 경우에는 태그의 값이 0으로 나타나며, 통신 이상 발생시 태그 값이 1이 되는 것을 확인할 수 있습니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 비트를 워드로 바꾸거나 워드를 비트로 바꾸는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 비트를 워드로 바꾸거나 워드를 비트로 표현하려는 경우, 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 = wo...

싸이몬 CIMON SCADA FAQ - 스크립트를 사용하지 않고, 장비A의 값을 장비B로 옮기는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 아래와 같은 방법으로 할 수 있습니다. 1. 장비A의 값을 저장할 태그를 만듭니다. 태그 설정은 다음과 같습니다. 1) ‘태그 동작을 지정함’, ‘태그 값 변경 시 태그 동작을 실행함’ 을 체크합니다. 2) ‘태그 동작을 지정함’ 을 체크하면 생성되는 ‘태그동작’ 탭을 클릭한 후 아래와 같이 입력합니다. BTAG는 장비B의 값을 저장하는 태그입니다. ATAG의 값을 BTAG에 넣는 연산 식을 등록합니다. 2. 위의 작업을 마치면 아래와 같이 등록됩니다. 3. CiMonX 실행 시 장비A의 ATAG 값이 변경될 때마다, 장비B의 BTAG 값에 반영됩니다. ※주의사항 위와 같이 설정한 태그의 개수가 많거나, 태그 값의 변화가 빈번한 경우 시스템에 부담이 되어 성능 저하의 원인이 될 수 있습니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - CimonX 운영 중 태그 입력값의 최대범위를 변경하는 방법

 안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. CimonX 운영 중 태그 입력값의 최대범위를 설정하여 사용자별로 내부데이터 범위를 다르게 입력 할 경우 사용 방안입니다. CimonX 운영 중 태그의 최대값을 Settagvalex 함수와 태그변수(MAX, MIN)를 이용하여 변경 할 수 있습니다. 아래와 같은 방법을 이용하여 구성하시면 됩니다. [예제] 1) CimonD에서 스크립트 화면으로 이동합니다. 2) 스크립트에 아래와 같이 입력합니다.      Sub maxchange()      SetTagValex “A1”, “MAX” ,”100″      ‘A1태그를 태그변수인 MAX 를 이용 하여 내부데이터 최대값을 100으로 변경합니다.      End Sub      * 도움말 – Settagvalex, 태그변수 참고. 3) 해당 스크립트 등록 후 CimonX 실행합니다. 4) CimonX 운영 중 “maxchange” 스크립트를 동작 합니다. 5) 스크립트 동작 후 A1 태그의 내부데이터 최대값은 100으로 설정되어있는 것을 확인 할 수있습니다. A1 태그에 200을 입력 할 경우 아래와 같이 오류창이 발생된 것을 확인 할 수있습니다. ※주의 사항 해당 태그의 최대값은 CimonX 상에서만 변경됩니다. 역률값 및 Scale 사용할 경우 최대값을 -100 이상 100 이하의 범위의 값으로 설정 할 수 있습니다. 이점 참고하시어 사용 바랍니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 스크린 세이버와 같이 자동으로 화면을 전환하는 기능을 구현하는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 해당 기능은 Script를 이용하여 매우 쉽게 구현할 수 있습니다. 페이지 자동 전환 기능을 구현하기 위한 Script 작성 예시. 위 예시에 구현되어 있듯이 OpenPage 와 ClosePage를 이용하여 Page 열고 닫음을 제어할 수 있습니다. ( 위 예시는 3초마다 PAGE 1 부터 PAGE 5 까지 순차적으로 열고 닫음을 반복 ) OpenPage와 ClosePage 사이의 Sleep은 페이지가 열려있는 시간을 조절할 수 있습니다. 위 예시의 STOP Tag는 Do while ~ Loop 문을 멈추게 하기 위한, 즉 페이지 자동 전환 기능을 멈추는 조건이 됩니다. STOP Tag가 1이 되면 해당 Do while ~ Loop 문은 종료 되고 Script 또한 종료 됩니다. 해당 Script를 특정 오브젝트 속성에서 Runscript 함수를 이용하여 호출하거나, 특정 Tag의 속성 중 Tag값 변경 시 명령식 동작 기능으로 Script를 실행 시킬 수 있습니다. 1. 특정 오브젝트의 터치 동작을 이용하여 Script를 실행 시키는 방법. 페이지에 특정 오브젝트를 생성하고 오브젝트 속성 중 “터치” 시 동작 정의에 위와 같이 Runscript 명령식을 실행하면 Script를 실행시킬 수 있습니다. 위와 같이 설정된 오브젝트는 CimonX에서 터치(마우스 클릭) 시마다 스크립트가 실행됩니다. 2. Tag값 변경 시 Script를 실행 시키는 방법 위와 같이 태그값 속성의 “태그값 변경시 태그 동작을 실행함” 과 “태그 동작을 지정함”을 체크 하면 좌측 화면의 “태그 동작” 탭이 생깁니다. 태그 동작 안에 Runscript 명령식을 이용하여 Script를 실행 시켜줍니다. (태그값 변경 시마다 스크립트 실행됨) 페이지 제어 관련 스크립트 함수는 도움말의 스크립트 명령식을 참조 하시기 바랍니다. 해당 기능을 구현할 샘플 프로젝트는 아래 ...

싸이몬 CIMON SCADA FAQ - 문자열에서 숫자 또는 숫자에서 문자열로 변환하는 방법

 안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 스크립트를 사용하여 문자열에서 숫자 또는 숫자에서 문자열로 변환할 수 있습니다. 아래는 변환 스크립트 예시입니다. 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에서 작성되었습니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 적산값 수동리셋 사용 시기

 안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 보고서 사용시 데이터베이스에 있는 “적산값 수동 리셋” 기능은 리셋 전의 값을 기억하고자 할 때 사용합니다. 다음은 “적산값 수동 리셋” 기능을 사용하지 않은 예제와 사용한 예제로, 동작을 비교할 수 있습니다. [“적산값 수동 리셋” 미사용 예제] 값은 스크립트를 사용하여 자동으로 리셋할 수 있습니다. 다음 예제를 참조하시기 바랍니다. 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보다 크거나 같을 ...

싸이몬 CIMON SCADA FAQ - 원하는 시간에 태그값을 쓰는 방법

 안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 스크립트를 이용하면 특정한 시각에 태그값을 쓸 수 있습니다. [도구]-[스크립트]에 진입하여 다음과 같이 두 스크립트를 작성 및 등록합니다. Sub Main() RunScript(“OnTimeWrite”) End Sub ====================================== Sub OnTimeWrite() while 1 CurTime# = Now() HH = Hour(CurTime#) MM = Minute(CurTime#) SS = Second(CurTime#) if ((HH = 14) AND (MM = 05) AND (SS = 00)) Then SetTagVal “TIME”, 100 End if Sleep(100) wend End Sub ======================================= 다음 그림과 같이 각 스크립트를 작성합니다. HH = 15 MM = 15 SS = 00 위의 3개의 숫자(시, 분, 초)를 원하는 시각으로 변경하여 지정할 수 있습니다. PC의 시각이 스크립트 내에 등록된 시각과 동일하게 맞춰졌을 때, 다음과 같이 ‘TIME’ 태그의 값이 100으로 변경되는 것을 확인할 수 있습니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >> 홈페이지 가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 전월의 마지막날을 태그값으로 표현하는 방법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 텍스트 파일 생성 시, 최근의 데이터를 최상위에 표시하고자 할 때  다음 예제의 스크립트를 사용할 수 있습니다. [예제] 1. [도구]-[스크립트]에 진입하여 다음과 같이 스크립트를 입력합니다. Sub TxtFileReadWrite() Dim Arr(0 to 32767)                                                    ‘배열 선언   UFILENAME$ = “D:\TESTSCADA.txt” ‘txt파일위치   If(fileExists(UFILENAME$)=True) then                                  ‘txt파일이 있을 경우 UFileNum = FreeFile Open UFILENAME For Input As UFileNum                            ‘txt 파일 열기 txtRecordNum% = 0                                                            ...