[SCADA][스크립트] 특정 태그로 음원 재생 제어

 

안녕하세요.

CIMON 입니다.

간단히 SCADA로 음원 재생을 제어하는 예제입니다.

 

[ 이럴 사용하시면 됩니다 ]

경보 비트같이 특정한 비트의 상태에 따라 경보음 또는 원하는 음원을 재생/중지 시키고 싶을 때 사용하시면 됩니다.

 

[ 프로젝트 예제 작성 버전 주의사항 ]

SCADA Ver 3.04(R160224)

v3.04에서 작성된 프로젝트는 하위버전에서 열리지 않습니다.

 

[ 예제 설명 ]

예제를 실행시키기에 앞서 스크립트의 음원 플레이 경로에 원하는 음원을 넣어두셔야 합니다. 이 예제의 경우 C:\CIMON\SOUND\ALARM\Alarm1.wav 의 경로에 wav 파일을 넣어두었습니다. 해당 경로에 해당 파일이 없다면 음원은 재생되지 않습니다.

 

1. Alarm Start 버튼을 누르면 설정한 횟수만큼 음원이 재생되고 Alarm Stop 버튼을 누르면 해당 음원이 멈추는 예제입니다.

위와 같이 간단히 Alarm Start, Alarm Stop, 데이터 입력 창 3가지의 입력 오브젝트로 구성되어 있습니다.

원하는 알람 횟수를 설정하고 Alarm Start 버튼을 누르면 해당 버튼이 초록색으로 바뀌고 음원이 재생됩니다. 0회로 설정하고 재생하면 내부함수의 정의에 따라 무한히 반복됩니다.

Alarm Start 버튼을 누르면 실행되는 명령식입니다. 스크립트에서 알람을 키는 상황인지 판별하는 태그인 ALARMSTART 태그를 ON 시키고 ALARMSTOP 태그는 OFF 시킵니다.

또한 PlaySoundEx 함수가 포함된 PlaySound 스크립트를 실행시켜줍니다.

PlaySound 스크립트에는 ALARMSTART 상태에 따라, 또한 설정해준 알람 반복 횟수에 따라 지정 경로의 음원을 재생시키는 PlaySoundEx 함수를 실행시킵니다.

음원 재생 중 Alarm Stop을 누르면 ALARMSTOP 태그가 ON 되며 SoundPlay를 멈춥니다.

Alarm Stop을 누르면 실행되는 명령식입니다. Alarm Start와 반대로 ALARMSTART 태그를 OFF시키고 ALARMSTOP 태그를 ON 시키는 것을 알 수 있습니다. 똑똑하신 분은 태그가 두 개까지 필요한가 생각하실 수도 있습니다. 사실 두 개의 태그가 두 개의 상황에서 각각 하나의 비트만을 표현하기 때문에 단 하나의 비트를 Toggle 시켜도 같은 상황을 나타낼 수 있습니다. 저는 가독성을 위해 두 개의 태그를 사용하였지만 ALARMSTATUS 태그 하나를 사용하여 ON 일 때는 PlaySound, OFF 일 때는 StopSound 제어를 하는 것이 더 효율적입니다.

 

StopSound 스크립트가 실행되면 ALARMSTOP이 ON인지 판별하여 StopSoundEx를 실행시킵니다. StopSoundEx는 해당 경로의 파일의 재생을 멈추는 기능을 합니다.

 

[ 적용 방법 ]

경보 태그로 경고음을 낼 때 위의 예제를 응용하시면 경고음을 자동 또는 수동으로 제어할 수 있습니다. 또한 제어 Bit의 수를 늘리면

If Bit1 = 1 then

PlaySoundEx “음원”, “횟수”

Else if Bit2 = 1 then

PlaySoundEx “음원2”,“횟수”

End if

처럼 원하는 상황에 맞는 음원을 틀어줄 수 있습니다.

 

 

 

첨부 1. SoundControl.zip

 

#음원제어#PlaySoundEx#StopSoundEx#비트제어#PlaySound#StopSound#Script#프로젝트예제#샘플프로젝트#SCADA프로젝트예제#SCADA샘플프로젝트#SCADA스크립트사용예제#SCADA스크립트사용방법#SCADA스크립트사용샘플#SCADA스크립트

 

 

 

 

[SCADA][기능] 경보 발생시 경보 팝업을 표시하는 방법 예제

안녕하세요.
CIMON 입니다.

경보 발생시 경보태그의 명령식으로 OpenPageEx() 내부함수를 실행하여 경보 팝업창을 열고, 경보 발생 표시 문자열을 표시하는 방법에 대한 예제입니다.

[이럴 때 사용하시면 됩니다]
이 예제는 경보 발생시 경보팝업창을 표시하여 경보를 알리고 싶을 때 사용하시면 됩니다.

[프로젝트 예제 작성 버전 및 주의사항]
SCADA Ver 2.10(R100618), SCADA Ver 3.04(R160224)
v3.04에서 작성된 프로젝트는 하위버전에서 열리지 않습니다.
v2.10을 받으셔서 프로젝트 업그레이드를 하시기 바랍니다.

[예제 설명]
OpenPageEx(“페이지이름”, “태그이름목록”) 내부함수를 이용하여, “페이지이름”의 페이지를 엽니다. 그리고 “태그이름목록”의 경보 발생 표시 문자열을 태그값을 이용하여 표시합니다.
추가로 메인페이지는 트랜드와 경보요약을 넣어서 표시합니다.

1. 데이터베이스에 태그들을 등록합니다.
경보를 표시할 경보태그를 등록합니다. 예제는 D1, D2, D3 디지털태그로 등록하였습니다.
‘경보 태그로 지정’ 체크하시면 경보 탭이 탭 항목에 표시됩니다.
‘발생 표시’에 각 경보태그마다 경보 발생 시 표시할 메시지를 작성합니다.
‘발생 동작’에는 OpenPageEx(“경보팝업창”, “경보태그”)를 작성합니다. (D1 태그에는 D1 작성)
OpenPageEx(“페이지이름”, “태그이름목록”)는 “페이지이름”의 페이지를 열고, “태그이름목록”을 치환변수에 넣습니다.
“경보태그1, 경보태그2, …” 순으로 “태그이름목록” 자리에 작성하시면, $1, $2 순으로 치환변수에 해당 태그를 넣습니다.

2. 경보요약 페이지를 작화합니다.
페이지에서 그림-경보요약 오브젝트를 넣습니다. 예제에서 상세 설정은 필요하지 않습니다.
경보요약 오브젝트는 CimonX 실행 시 경보태그의 동작에 대해 보여줍니다.

3. 버튼을 디지털값쓰기-토글로 만들어 각 태그에 대해 ON/OFF 할 수 있도록 넣습니다.

4. 경보팝업창 페이지를 만듭니다.
새 페이지를 열고, 그림-태그값 오브젝트를 넣습니다.
‘태그이름’에 $1:AlarmLabel 태그변수를 작성합니다.
“A:AlarmLabel” 태그변수는 “A”경보태그의 발생표시 값을 나타냅니다. $1은 OpenPageEx() 내부함수와 연동되어 사용하는 치환변수 입니다.
치환변수는 OpenPageEx(“페이지이름”, “태그이름목록”)의 태그이름을 가져옵니다.
D1 경보태그가 경보 발생하면, OpenPageEx() 함수를 실행시키고, “태그이름목록”에 D1을 작성했으므로, $1이 D1을 가져와서 D1:AlarmLabel 태그변수가 됩니다.
D1의 발생 표시 값을 가져와서 태그값에 표현됩니다.(직접 눈으로 보시는게 빠를 수도 있습니다. – 예제를 실행해보세요.)

추가로, 보기-글꼴도구 여시면, 가운데 정렬과 문자 크기를 변경할 수 있습니다. 문자색은 태그값-그림구성 항목에서 변경해주시면 됩니다.

5. 페이지 크기 및 속성을 정합니다.
페이지 크기와 위치를 원하는대로 변경한 후에 도구-페이지환경설정에 들어가셔서 위치설정 탭의 적용버튼을 눌러주시면 변경한 크기와 위치가 적용됩니다.
스크롤바가 사라진 것을 확인할 수 있습니다.

6. 파일-다른이름으로저장 하여 “경보팝업창”으로 저장합니다.
OpenPageEx(“페이지이름”, “태그이름목록”) 내부함수의 페이지이름을 현재 페이지이름으로 바꾸셔도 됩니다.

7. CimonX를 실행하여, 경보를 발생시키면 팝업창이 나타나는지 확인해봅시다.
CimonX 실행하기 전에 도구-CimonX환경-초기화면 넣는 것 잊지 말아주세요.
경보해제 시 팝업창을 사라지게 하고 싶다면, 경보태그의 경보해제 탭에서 해제동작에 ClosePage(“경보팝업창”) 명령식을 넣어주시면 됩니다.
예제에서는 D3 경보태그만 경보해제 동작을 작성하였습니다.

[적용 방법]
기존 프로젝트에 사용하시려면 다음과 같이 작업하시면 됩니다.
예제의 경보태그와 같이 기존 프로젝트 경보태그의 발생표시와 발생동작을 수정합니다.
경보팝업창을 작화합니다.

 

첨부 1. PopupAlarm-v304.zip
첨부 2. PopupAlarm-v210.zip

 

감사합니다.

 

 

#경보상태#프로젝트예제경보#경보상태표시#OPENPAGEEX#프로젝트예제#샘플프로젝트#SCADA프로젝트예제#SCADA샘플프로젝트#스카다프로젝트예제#스카다샘플프로젝트

CAS CU-Series 사용자정의 통신드라이버

안녕하세요

케이디티시스템즈 입니다.

사용자정의 프로토콜로 구현된 CAS CU-Series 통신드라이버 입니다.

간단한 통신드라이버는 사용자 정의 프로토콜로 쉽게 구현이 가능합니다.

특히,  CAS 통신드라이버와 같이 시리즈마다 프로토콜 종류가 다양하고

구현상 어려움이 없는 드라이버는 사용자 통신드라이버를 이용할 수 있습니다.

( CAS 드라이버는 데이터의 변환이 필요하여, 스크립트를 같이 사용하였습니다. 참고하세요)

감사합니다.

#CAS CU Series#CAS CU Series사용자정의#사용자정의프로토콜#서용자통신드라이버#CAS드라이버

[SCADA][기능] 하나의 페이지에 여러 태그를 표현하는 방법

 

안녕하세요.

CIMON 입니다.

이번 예제는 하나의 페이지에 여러 태그를 표현하는 방법입니다.

 

[ 이럴 사용하시면 됩니다 ]

태그마다 기능이 달라지는 페이지를 만들 때 사용하시면 됩니다. 태그의 개수가 많다면 태그 수에 맞춰 1:1로 페이지 수를 늘리는 게 아니라 OpenPageEx 기능을 사용하시면 해당 태그의 정보를 넘겨 하나의 페이지로도 여러 태그를 표현할 수 있습니다.

 

[ 프로젝트 예제 작성 버전 주의사항 ]

SCADA Ver 3.04(R160224)

v3.04에서 작성된 프로젝트는 하위버전에서 열리지 않습니다.

 

[ 예제 설명 ]

 

1. 첫 번째 응용 예제는 각 라인을 제어하는 제어페이지를 띄워주는 예제입니다.

해당 라인을 누르면 제어페이지가 열리고 누른 라인 정보와 켜기 버튼, 끄기 버튼이 나타납니다.

해당 라인 정보에 켜기를 누르면 해당 라인 태그가 ON 됩니다.

아까와 다른 라인을 누르면 해당 라인 정보를 표시하는 제어페이지로 바뀌고, 켜기를 누르면 그 태그의 bit가 ON 됩니다.

태그 이름에 $1 의 표현을 사용하면 지정 항목을 태그 혹은 문자열로 대치시킨다는 뜻입니다. 이 표현을 켜기 버튼과 끄기 버튼에 사용하면 해당 태그값을 키고 끌 수 있고 위의 사진과 같이 태그값 표현에 $1:NAME 을 사용하면 해당 태그의 이름을 나타낼 수 있습니다.

 

2. 태그의 경보기능을 이용하여 해당 비트의 정보만을 표현하는 페이지를 만들 수 도 있습니다.

각 라인의 해당 속도를 정할 수 있습니다. 만약 속도가 50 이상이면 경보태그로 활성화되고 해당 태그의 위험을 경고하는 경고페이지가 뜹니다.

이 동작은 간단한 스크립트를 통해 작동합니다.

1번 예제와 마찬가지로 해당 태그에 관련한 정보를 표현하는 방법은 $1을 사용하여 OpenPageEx로 넘어온 태그 정보를 나타내는 것입니다.

$1:ALARMLABEL 은 OpenExPage를 통해 넘어온 해당 태그에 설정된 경보내역을 표현해줍니다.

 

[ 적용 방법 ]

태그에 따른 정보만 바뀌는 페이지를 구성할 때 태그 수에 일대일로 대응하여 페이지를 만들 필요 없이 OpenPageEx 내부함수를 사용하여 하나의 페이지로 여러 태그를 표현할 수 있습니다. 또한 OpenPageEx(“페이지”, “태그1”)의 형태 뿐 아니라 OpenPageEx(“페이지”, “태그1”,”태그2”,…,”태그n”) 처럼 여러 개의 태그 정보를 한 번에 넘길 수 있습니다. 대신에 해당 페이지에서 $1, $2, … , $n의 태그를 받아 대치시켜줘야합니다.

 

 

 

첨부 1. OpenPageEx.zip

#OpenPageEx예제#태그대응#태그표현#제어페이지#경고페이지#대표화면#페이지단축#프로젝트예제#샘플프로젝트#SCADA프로젝트예제#SCADA샘플프로젝트#SCADA스크립트사용예제#SCADA스크립트사용방법#SCADA스크립트사용샘플#SCADA스크립트

 

 

 

 

 

에이엔디 인디게이터(AD-4329) 사용자프로토콜 드라이버 예제

에이엔디 인디게이터(AD-4329) 사용자프로토콜 드라이버 예제 입니다.

예제 프로젝트와 매뉴얼을 참고하여 시스템 상황에 맞게 편집할 수 있습니다.

감사합니다.

#에이엔디인디게이터#AD-4329#사용자프로토콜#사용자프로토콜드라이버예제#에이엔디인디게이터드라이버#에이엔디인디게이터사용자프로토콜#사용자프로토콜메뉴얼#통신메뉴얼