[SCADA][스크립트] 총시간 데이터가 초단위로 일,시,분,초로 나누는 방법 예제

안녕하세요.
CIMON 입니다.

스크립트를 이용하여 초단위로 들어온 시간 데이터를 일, 시, 분, 초로 나누는 방법에 대한 예제입니다.

[이럴 때 사용하시면 됩니다]
이 예제는 초단위로 받은 시간 데이터를 일,시,분,초로 표현하고 싶을 때 사용하시면 됩니다.

[프로젝트 예제 작성 버전 및 주의사항]
SCADA Ver 2.10(R100618), SCADA Ver 3.04(R160224)
v3.04에서 작성된 프로젝트는 하위버전에서 열리지 않습니다.
v2.10을 받으셔서 프로젝트 업그레이드를 하시기 바랍니다.
명령어와 함수를 작성할 때, 데이터형식을 확인해주세요.

[예제 설명]
SetTagVal “태그명”, [지정값] 명령어와 GetTagVal(“태그명”) 내부함수를 이용합니다.
Basic Script의 연산명령어 A\B와 A Mod B를 사용합니다.
초 단위 데이터를 60으로 나눠서 분 단위 데이터를 만들고, 다시 60으로 나눠서 시간 단위 데이터로 만들고, 24로 나눠서 일 단위 데이터를 만들어, 나머지를 구해 일, 시, 분, 초로 표현하는 간단한 예제입니다.

1. 데이터베이스에 태그들을 등록합니다.
초 단위로 들어오는 RAW 데이터 태그와 변환하여 표현할 일(DAY), 시(HR), 분(MIN), 초(SEC) 태그를 등록합니다.
초 단위의 RAW 데이터는 2 Word로 가정하여, UINT32 아날로그 태그로 등록하였습니다.

2. 데이터베이스에서 간단히 볼 수도 있지만, 일, 시, 분, 초 각각의 태그 변환하는 것을 볼 수 있도록 작화를 합니다.

초단위 데이터는 RAW 태그값을 표시하고, 각각 태그에 대응되게끔 태그값을 작화합니다.
버튼을 만들어 스크립트를 실행하도록 합니다.

3. 스크립트를 작성합니다.
변수들은 선언해도 되고, 선언하지 않아도 됩니다. (A\B 연산명령어는 기본적으로 Long 자료형으로 처리되기 때문에 변수를 선언하려면 반드시 Long형으로 선언해주세요.)

A\B 명령어는 Basic Script 명령어로 A/B를 하여 몫을 정수값(Long)으로 반환합니다. RawSec 데이터를 60으로 나누어 몫을 RawMin에 저장합니다.
A Mod B 명령어는 A/B를 하여 나머지를 정수값(Long)으로 반환합니다. RawSec 데이터를 60으로 나누고 남은 나머지는 SEC의 태그값에 씁니다.
이 방식으로 초단위 데이터를 일, 시, 분, 초로 표현할 수 있습니다.

4. CimonX를 실행하여, 정상적으로 동작하는지 확인합니다.
Long 자료형은 -2147483648 ~ 2147483647까지의 값을 가지므로, 최대값은 2147483647 초입니다.

[적용 방법]
기존 프로젝트에 사용하시려면 다음과 같이 작업하시면 됩니다.
예제의 스크립트와 데이터베이스를 그대로 복사하셔서 사용하시면 됩니다.
RAW 태그만 기존 프로젝트의 초단위 데이터로 변경해주시면 됩니다.
첨부 1. ConvHrMinSec-v304.zip
첨부 2. ConvHrMinSec-v210.zip
감사합니다.

 

#스크립트#데이터단위#초단위#초단위스크립트#프로젝트예제#샘플프로젝트#SCADA샘플프로젝트#SCADA스크립트#스카다스크립트#SCRIPT#SCADA SCRIPT#스카다 SCRIPT

[PLC] CICON 로더프로그램 V3.04 Update

[PLC] CICON 로더프로그램 V3.04

■ 기능 추가
1. plcS D/A변환 모듈 회로 보정 기능 추가
2. plcS A/D D/A 변환 모듈 회로 보정 기능 추가
3. plcS 위치 결정 모니터 모드 &ldquo인칭 이동량&rdquo 표시 추가
4. 펌웨어 업그레이드 화면 표시 생산 버전 추가(TR/Relay 파일 동시 표시 기능)
5. 특수 카드 초기화 프로그램 추가(자동스캔/IO예약Load/IL변환 기능 제공)
■ 기능 수정
1. 펌웨어 업그레이드 화면 표시 수정(SP32MRV -> SP16MRV)
2. 제거된 특수 프로그램 화면 표시중 프로젝트에 추가하는 기능 수정
2.1. PID / CM2-BP32A /CM2-BP32B / 특수 카드 초기화 특수 프로그램

#PLC로더프로그램#PLC소프트웨어#PLC소프트프로그램#V3.04#PLC로더프로그램V3.04#PLC소프트웨어V3.04#PLC소프트프로그램V3.04#PLC로더프로그램3.04#PLC소프트웨어3.04#PLC소프트프로그램3.04#3.04#PLC3.04#PLC V3.04

[SCADA][스크립트] 간단한 형식 변환 예제

안녕하세요.

CIMON 입니다.

간단한 데이터의 형식을 변환하는 예제입니다.

 

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

문자열로 입력받은 태그값을 10진수로 변환할 때나 입력 받은 문자열의 아스키 코드를 10진수로 변환할 때 사용하시면 됩니다.

 

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

SCADA Ver 3.04(R160224)

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

 

[ 예제 설명 ]

1. 변환하고 싶은 아스키 코드를 에디트 컨트롤 박스에 넣고 ASC to NUM 버튼을 누르면 ASCII 스크립트가 실행됩니다. 또한 NUM to ASC 버튼을 누르면 NUM2ASC 스크립트가 실행되고, 변환된 10진수가 다시 아스키 코드로 변환되어 확인이 가능합니다.

아스키 코드 변환 예제에 사용된 스크립트는 각각 다음과 같습니다.

먼저 ASCII 스크립트입니다. Asc() 함수를 사용하여 아스키 문자를 10진수로 변환해줍니다.

다음은 NUM2ASC 스크립트입니다. Chr() 함수를 사용하여 10진수를 아스키 문자로 변환해줍니다. 즉 Asc() <-> Chr() 관계라고 이해하시면 됩니다.

 

2. 아스키 코드 예제와 마찬가지로 에디트 컨트롤 박스에 숫자를 입력하고 STR to NUM 버튼을 누르면 문자열 숫자가 10진수로, NUM to STR 버튼을 누르면 그 반대로 작동합니다. 아스키와는 달리 태그값 표현만으로는 어떤 것이 정수인지 문자열인지 알 수 없기 때문에 + 연산을 하여 결과를 비교할 수 있도록 하였습니다.

먼저 STR to NUM 버튼을 누르면 실행되는 StoN스크립트입니다.

Val() 함수를 사용하여 숫자 문자열을 십진수로 바꾸어줍니다.

NUM to STR 버튼을 누르면 실행되는 NtoS 스크립트는 Str() 함수를 사용하여 입력받은 숫자를 정수 표현 문자열로 바꾸어줍니다. 즉 Val() <->  Str() 관계입니다.

태그값의 결과가 둘 다 같기 때문에 10진수 혹은 문자열이 맞는지 판별하기 위해 + 버튼을 추가하였습니다. 10진수를 확인하는 +버튼을 누르면 NPLUS 스크립트가 실행됩니다.

N과 N을 더한 결과가 정상적으로 50+50 으로 100이 나옵니다.

이 경우는 50 + 50이 5050으로 나오는데 이는 Visual Basic에서 +가 정수 연산에 쓰이면 더하기, 문자열 연산에 쓰이면 문자열 붙이기로 작동하기 때문입니다.

문자열을 확인하는 +버튼을 누르면 SPLUS 스크립트가 실행이 되며 위와 같이 +를 사용하지만 결과는 두 문자열의 접합으로 반환됨을 알 수 있습니다.

 

[ 적용 방법 ]

통신 시에 HTTP 프로토콜에 의해 아스키 코드를 주고받습니다.

이 받은 데이터로 정수 연산을 하고 싶을 시에 Asc() 함수를 이용하여 정수로 변환하고 연산하시면 됩니다.

또한 숫자가 입력된 문자열 가상태그끼리 사칙연산이 필요할 시 Val() 함수를 사용하여 정수로 변환한 뒤 사칙연산을 하시면 됩니다.

이 값을 다시 문자열로 표현하시려면 Str() 함수를 사용하시면 됩니다.

 

첨부 1. ASCII2NUM.zip
#ASCII변환#아스키변환#숫자변환#정수변환#문자열변환#아스키연산#문자열연산#프로젝트예제#샘플프로젝트#SCADA프로젝트예제#SCADA샘플프로젝트#SCADA스크립트사용예제#SCADA스크립트사용방법#SCADA스크립트사용샘플#SCADA스크립트

[PLC] CICON 로더프로그램 V3.03 Update

CICON 프로그램이  V3.03(R20110503) 버젼으로 업데이트 되었습니다.

■ 기능 추가
1. 특정 프로그램을 동일 프로젝트에 이중으로 등록 할 수 없는 기능
– 초기화 프로그램(Cold/Hot) / PID 특수 프로그램 / 특수 카드 초기화 프로그램
– PLCS용 고속 카운터 / PLCS용 위치 결정
– BP32A 입출력 설정 프로그램 / BP32B 입출력 설정 프로그램
2. 컴파일시 이중으로 등록된 프로그램 발견시 경고 및 컴파일 중지 처리
3. plcS 위치 결정 프로그램 Dwell Time / 운전정보 / 목표위치 디바이스 입력 기능
4. 찾기 & 바꾸기 실행시 커서 위치 접점 디바이스 입력 기능

■ HELP 추가 (CICON Version 3.03)
1. PLCS 매뉴얼 수정(내부 자료 삭제)
2. 위치 결정 전용 명령어 TEACH 추가
3. Version 3.03 이슈 추가

#PLC로더프로그램#PLC소프트웨어#PLC소프트프로그램#V3.03#PLC로더프로그램V3.03#PLC소프트웨어V3.03#PLC소프트프로그램V3.03#PLC로더프로그램3.03#PLC소프트웨어3.03#PLC소프트프로그램3.03#3.03#PLC3.03#PLC V3.03