안녕하세요.
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스크립트