-
제품선택
-
안녕하세요.
CIMON입니다.
SCADA 영문 버전에서 보고서 기능 사용 시, Tlogval 함수에 입력되는 값 종류는 다음과 같습니다.
순간값 C_VAL 적산값 I_VAL 평균값 A_VAL N번째 가동시간 ON_TIMEN 가동시간 ON_TIME 가동횟수 ON_CNT 가동시간합 T_SUM 가동횟수합 N_SUM [적용 방법]
1. 데이터베이스에서 아날로그 태그 ‘ANA1’을 생성 후 ‘Create data for Report(보고서용 데이터 생성)’ 옵션을 선택합니다.
2. [도구]-[보고서]에 진입하여 보고서 설정을 합니다.
‘Resister Tag(태그 등록)’ 버튼을 눌러 나타나는 ‘Resister Report Data(보고서 데이터 등록)’ 화면에서 다음과 같이 태그 등록을 합니다.
일은 ‘D’, 시간은 ‘H’로 표기합니다.
전일 0시 순간값을 사용할 때, TLogVal(“ANA1”, “-1 D 1 H”, “C_VAL”)을 입력합니다.
전일 0시 적산값을 사용할 때, TLogVal(“ANA1”, “-1 D 1 H”, “I_VAL”)을 입력합니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
-
안녕하세요.
CIMON입니다.
‘찾아 바꾸기’ 기능을 사용하여 실태그를 가상태그로 한 번에 바꿀 수 있습니다.
다음 방법을 참조해 주시기 바랍니다.
[적용 방법]
1. 데이터베이스 편집기 화면 내에서 [편집]-[바꾸기] 또는 단축키 ‘Ctrl’ + ‘H’를 누릅니다.
아래 그림과 같은 화면이 나타납니다.
2. ‘찾을 문자열’에 1을 입력합니다. (실태그는 1로 정보가 저장됩니다.)
‘바꿀 문자열’에 0을 입력합니다. (가상태그는 0으로 정보가 저장됩니다.)
‘찾을 위치’를 ‘실/가상 태그’로 선택합니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
-
안녕하세요.
CIMON입니다.
스크립트를 작성하여 아날로그 숫자를 시간의 형태로 표현할 수 있습니다.
다음 방법을 참조하시기 바랍니다.
[적용 방법]
1. 데이터베이스에서 아날로그 태그 ‘숫자시간’과 문자열 태그 ‘문자시간’을 생성합니다.
2. [도구]-[스크립트]에 진입하여 다음과 같이 스크립트를 작성합니다.
숫자 ‘1234’를 ’12:34’와 같은 시간 형식으로 표시할 수 있는 스크립트입니다.
Sub 시간표시()
‘숫자시간 값을 변수 ana에 숫자 형태로 저장합니다.
ana# = GetTagVal(“숫자시간”)
‘숫자 형태 ana 값을 result 문자열 형태로 저장합니다.
result$ = CStr(ana#)
‘result 문자열 길이가 4개 미만이면 0을 입력합니다.
while (Len(result$) < 4)
result$ = “0” & result$
wend
‘result 값을 각각 2개로 나누어 가운데 : 을 넣습니다.
hour_val$ = Left(result$, 2)
min_val$ = Right(result$, 2)
result$ = hour_val$ & “:” & min_val$
‘result 값을 문자시간 문자열에 입력합니다.
SetTagVal “문자시간”, result$
End Sub
================================================
다음 그림과 같이 스크립트를 등록합니다.
3. 버튼 오브젝트를 생성합니다.
[버튼정의]-[동작정의]에서 ‘명령식’ 동작을 선택하고 스크립트 실행 명령식을 입력합니다.
RunScript(“시간표시”)
4. CimonX를 실행합니다.
아날로그 태그의 값을 ‘1234’로 변경 후 스크립트를 실행하면 ’12:34’가 문자열로 출력됩니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
-
안녕하세요.
CIMON입니다.
아날로그 태그를 생성하여 경보 태그로 설정한 후, (ANA1:ALARMHIHI)를 사용하여 경보 설정 값을 변경 가능합니다.
프로젝트 동작 중 HIHI 값이 바뀐 후, CimonX를 재실행하였을 때 데이터베이스 경보의 HIHI 값으로 동작될 때의 해결 방법은 다음과 같습니다.
실태그는 종료 시 최종 상태 저장이 불가능한 관계로, 가상 태그를 생성하여 원하시는 기능을 사용할 수 있습니다.
[예제]
1. 데이터베이스에서 아날로그 태그 2개(ANA1, ANA2)를 생성 후, 경보 태그로 설정합니다.
ANA1 태그의 HIHI 알람을 800, ANA2 태그의 HIHI 알람을 400으로 설정합니다.
ANA2 태그에서 ‘태그 동작을 지정함’, ‘태그 값 변경 시 태그동작을 실행함’ 옵션을 선택합니다.
ANA2 태그의 ‘태그 동작’에 RunScript(“HIHI값적용”)을 입력합니다.
ANA2 태그의 값이 변경될 때마다 스크립트가 실행됩니다.
2. [도구]-[스크립트]에 진입하여 다음과 같이 두 스크립트를 작성합니다.
Sub main()
RunScript(“HIHI값적용”) ‘CIMONX 재실행 할 때 마다 적용
End Sub===================================================
Sub HIHI값적용()
hival = GetTagVal(“ANA2”) ‘ANA2값을 변수로 가져옵니다.
SetTagValEx “ANA1”, “ALARMHIHI”, hival ‘지정된 태그의 태그변수에 값을 설정합니다.
End Sub
================================================
아래 그림과 같이 두 스크립트를 등록합니다.
3. CimonX를 실행합니다.
ANA2 태그의 값을 변경하였을 때, ANA1 태그의 HIHI 값이 ANA2 태그의 태그값으로 변경됩니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
-
안녕하세요.
CIMON입니다.
스크립트에서 태그를 변수로 직접 사용할 수는 없습니다.
GetTagVal(“태그이름”) 함수를 이용하여 해당 태그 값을 변수에 옮긴 후 사용 가능합니다.
그 후 SetTagVal(“태그이름”, 태그값) 함수를 이용하여 지정된 태그에 값을 설정할 수 있습니다.
다음 예제는 스크립트에서 지정된 태그에 값을 설정하는 방법입니다.
[예제]
[도구]-[스크립트]에 진입하여 스크립트를 아래와 같이 작성합니다.
Sub ValueChange()
‘가상태그로 태그_1, 태그_2가 있습니다.
Tag1 = GetTagVal(“태그_1″)
SetTagVal “태그_2″, Tag1
End Sub
===============================
다음 그림과 같이 스크립트를 등록합니다.
“태그_1”의 값을 GetTagVal() 함수를 사용하여 가져온 후, 변수 Tag1에 저장합니다.
SetTagVal() 함수를 사용하여 “태그_2”에 변수 Tag1의 값을 씁니다.
언제나 고객을 먼저 생각하는 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이 되겠습니다.
감사합니다.
-
Formatstr() 함수를 이용하시면 됩니다.
Formatstr(“변환형식”,값종류,값)
[변환방식]
“%04d”, “%5.2f” 등 Format형식과 동일합니다. 단 매개변수는 1개로 제한합니다.
[값종류]
0 : 뒤에 오는 값이 소수점이 없는 정수인 경우
1 : 뒤에 오는 값이 부동소수점을 갖는 실수인 경우
-
안녕하세요.
CIMON입니다.
스크립트를 이용하면 10초 단위로 태그를 스캔하고 30초마다 평균값을 출력하는 것이 가능합니다.
1. 데이터베이스에서 아날로그 태그 4개(순시값, 평균값, 카운트, B평균값)를 생성합니다.
2. [도구]-[스크립트]에 진입하여 다음과 같이 스크립트를 작성 및 등록합니다.
Sub Main()
While 1
‘현재시간을 구함
CurTime# = Now()
CurVal# = GetTagVal(“순시값”)
AvrVal# = GetTagVal(“평균값”)
Count% = GetTagVal(“카운트”)
Avr = GetTagVal(“B평균값”)
’10초 단위로 스캔하여 순시값을 평균값에 더함
If ((Second(CurTime#) mod 10) = 0) Then
SetTagVal “평균값”, CurVal# + AvrVal#
SetTagVal “카운트”, Count% + 1
end if
sleep(500)
If Count% = 3 Then
SetTagVal “B평균값”, AvrVal#/3
SetTagVal “카운트”, 0
SetTagVal “평균값”, 0
End If
Sleep(500)
Wend
End Sub
===================================
위 스크립트는 다음과 같은 형식으로 등록됩니다.
3. CimonX를 실행하였을 때, 10초마다 아날로그 태그의 값변화를 스캔하고, 30초 경과 시 카운트가 초기화되고 해당 카운트의 평균값이 출력됩니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
-
스크립트를 이용하여 구현 가능합니다. 자세한 내용은 밑에 예제에서 바랍니다.
[예제]
1. 스크립트 작성
2. A, B 태그 등록 및 태그동작 지정
3. C 태그 등록
1. 스크립트 작성합니다.
Sub Sc1()
A = Gettagval(“A”)
B = GetTagVal(“B”)
If A = 1 or B = 1 Then ‘A 또는 B 가 1일 때
SetTagVal “C”, 1
End If
End Sub
If 구문과 연산자 OR를 이용하여 스크립트 작성합니다
2. A, B 태그 등록 및 태그동작 지정합니다.
태그종류 : 디지털
태그동작을 지정함 체크
태그값 변경시 태그 동작을 실행함 체크
태그동작 탭 이동
Runscript(“스크립트이름”) 함수를 사용하여 태그동작 지정
A,B태그 모두 태그동작을 걸어 줍니다.
3. C태그 등록합니다.
종류: 디지털
4. Cimon X 구동 시 A 또는 B 태그 값이 1이되면 C 태그 값이 1이 되는 것을 확인 하실 수 있습니다.
-
안녕하세요, CIMON입니다.
다음은 CIMON PLC 와 CIMON SCADA, OPC 통신 예제입니다.
[CIMON PLC 설정]
1. http://www.cimon.co.kr/plc-cimon-plc-opc-server-v3-0/ 에서 Cimon PLC OPC Server V3.0를 설치합니다.
2. 설치가 완료되면 설치 경로 내의 “PlcEnetOpc.exe” 파일을 실행한 다음, 작업표시줄에서 다음 아이콘을 우클릭 후 [열기] 를 눌러 실행합니다.
3. [파일] – [새 파일]을 선택합니다.
4. [편집] – [채널 추가]를 선택합니다.
5. [마스터 포트 설정] 창의 기본 포트에 PC의 IP 어드레스를 입력합니다.
6. [편집] – [스테이션 추가]를 선택합니다.
7. 스테이션 설정 창을 아래와 같이 설정 합니다.
- 스테이션이름: 사용자가 지정한 스테이션 명
- IP 어드레스 : PLC의 IP 주소
- 통신방식 : TCP 선택
8. [편집] – [태그 추가]를 선택합니다.
9. 태그편집에 다음과 같이 입력합니다.
- 태그이름 : 사용자가 지정할 태그명
- 데이터 형태 : PLC 디바이스에 맞는 데이터 형태 선택
- 어드레스 : PLC 디바이스 주소 입력
10. [도구] – [통신시작]을 선택합니다.
11. OPC Server와 CIMON PLC 이 통신하는 것을 확인 할수있습니다.
[CIMON SCADA]
1. [도구] – [I/O디바이스]에서 [새 디바이스]를 선택합니다.
2.“OPC Client” 를 선택하고 디바이스 이름을 입력한 뒤 [확인]을 누릅니다.
3. 이어 나타나는 화면에서 [그룹 추가] 버튼을 누르고 다음과 같이 설정합니다.
- 서버노드 : 로컬
- 서버검색을 클릭한 후에 서버선택에서 앞서 설정한 서버를 선택하고 [확인]을 누릅니다.
4. [도구] – [데이터베이스] 에서 다음과 같이 태그를 추가합니다.
- I/O디바이스 : OPC Client로 생성한 I/O디바이스 선택
- I/O어드레스: PLCOPCServer 프로그램에서 생성한 “스테이션명.태그명”으로 입력합니다.
5. CimonX를 구동하여 통신을 확인합니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.