기본 콘텐츠로 건너뛰기

싸이몬 CIMON SCADA FAQ- 어드레스에 데이터를 넣었는데 데이터 수치가 이상하게 나올 때 해결방법


안녕하세요.
싸이몬입니다!
PLC 관련 질문에 대한 답변을 드립니다.

어드레스에 데이터를 넣었는데 데이터의 수치가 이상하게 나올 때 해결방법입니다.

어드레스 값이 이상하게 출력되는 경우, 다음 사항을 확인하여 주시기 바랍니다.  
스캔 프로그램 내에서 어드레스를 중복으로 사용
산술 명령 이용 시 사용한 어드레스에 중복 영역이 발생
다음은 CICON에서 해당 증상을 확인 및 수정하는 방법입니다.

[점검 사항 - 크로스 레퍼런스 활용]
1. CICON의 크로스 레퍼런스란느 기능을 활용하여 프로젝트 내에서 중복된 어드레스가 있는지 확인합니다.
(1) 메인메뉴에서 [도구] - [Cross Reference] 메뉴를 선택합니다.
 
 
(2) '디바이스별 보기' 영역에서 [중복 사용] 버튼을 클릭합니다.

 
(3) 중복을 확인할 디바이스 영역을 선택합니다.

 
 
(4)  디바이스 확인 후, 중복으로 인해 잘못된 값이 쓰이는 경우 다른 어드레스를 이용하시기 바랍니다.
 
[점검 사항 - 명령어 오퍼랜드 확인]
1. 산술 명령이나 기타 더블워드 연산 관련 명령어 사용 시, 어드레스가 중복될 가능성이 있습니다.
 
 
워드와 워드 연산 시 두개의 워드롤 저장되는 경우
(S1 과 S2가 연산 시 -> D,D+1)
=16Bit Binary 사칙 연산 명령어 (DIV(P), MUL(P))
= BCD 4자리 사칙 연산 명령어 (BMUL(P), BDIV(P)
 
  • 두 개의 워드와 두 개의 워드 연산 시 두 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산 시 → D,D+1)
= 실수 사칙 연산 (EADD(P),ESUB(P),EMUL(P),EDIV(P))
= BCD 8자리 사칙연산 (DBADD(P), DBSUB(P), DBMUL(P), DBDIV(P))
= 32Bit Binary 사칙 연산 (DADD(P), DSUB(P), DWDIV(P))
 
  • 두 개의 워드와 두 개의 워드 연산 시 네 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산시 → D, D+1, D+2, D+3)
= 32Bit Binary 사칙 연산 (DDIV(P), DMUL(P))
 
(예제)
1. DIV(P)

.
 
내부 접점 신호 M00이 ON 하였을 때 D0000의 데이터와 D0001의 데이터를 나눗셈하여 D0003에 몫, D0004에 나머지를 저장하는 프로그램



2. DDIV(P)
 
내부 접점 신호 접점 M01이 ON 하였을 때 D0000, D0001의 데이터와 D0002, D0003의 데이터를 나눗셈하여 D0004, D0005에 몫, D0006, D0007에 나머지를 저장하는 프로그램



3.  MUL(P)
 
내부 접점 신호 M02이 ON 하였을 때 D0001의 데이터와 D0002의 데이터를 곱셈하여 D0020에 하위 워드 데이터, D0021에 상위 워드 데이터를 저장하는 프로그램

 
4. DMUL(P)

 
내부 접점 신호 접점 M03이 ON 하였을 때 D0000, D0001의 데이터와 D0002, D0003의 데이터를 곱셈하여 D0004, D0005, D0006, D0007에 결과 데이터를 저장하는 프로그램

 
 
각 명령어의 자세한 내용은 CICON 도움말에서 확인하여 주시기 바랍니다.
 
더 자세한 내용은 CIMON 홈페이지에서 만나보실 수 있습니다.
 
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.
 
 

댓글

이 블로그의 인기 게시물

싸이몬 CIMON SCADA FAQ - 키락 Keylock 종류 및 사용법

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. Q: SCADA 페러럴(프린터포트) 키락을 사용할 때 문제점이 없나요? A: SCADA 페러럴 키락 관련해서 설명 드리겠습니다. [페러럴(프린터포트) 키락을 사용하는 경우] 1) Window XP까지 권장 하며, Window 7 이상에서 인식이 불가능할 수 있습니다. 2) USB 컨버터를 이용하여 사용하실 수 없습니다. 3) 장치관리자의 프린터포트(LPT)가 인식되는지 확인이 필요합니다. 키락의 Lamp가 점멸되지 않기 때문에 CimonD를 실행하기 전까지 확인이 불가능합니다. 4) CimonD에서 키락이 인식되면 SCADA 버전과 호환성은 무관합니다. 단, 예외의 경우가 있을 수 있으며 USB 키락으로 업그레이드를 권장 드립니다. 5) 현재까지의 Cimon SCADA 키락 제품입니다. Q: 키락의 종류의 대해서 궁금합니다. A: 키락의 종류 및 간단한 내용 설명, 유의점에 대해 설명 드리겠습니다. [키락의 종류와 간단한 내용 설명] 1) 키락의 종류 ㄱ. DS : 개발 및 실행용 키락 ㄴ. RS : 실행용 키락 ㄷ. VS : View를 구성하실 때 사용되는 키락(감시만 가능) ㄹ. CS : View를 구성하실 때 사용되는 키락(감시 및 제어가능) ㅁ. WS : Web을 구성하실 때 사용되는 키락(감시 및 제어가능) Mobile을 사용하시는 경우는 Option으로 추가하여 사용이 가능합니다. DS와 RS는 실태그(장비와 통신하는 태그)를 기준으로 구분됩니다. VS & CS & WS 의 경우 동시접속 가능유저를 기준으로 구분됩니다. 2) DS 및 RS 키락 사용시 유의점 ㄱ. RS 키락을 사용할 경우 반드시 DS키락으로 먼저 저장되어야 합니다. ㄴ. 먼저 저장되는 DS키락의 태그수의 따라서 RS키락의 사용이 제한될 수 있습니다. Q: SCADA가 데모모드로 동작합니다. 해결 방법은 없을까요?

싸이몬 CIMON SCADA FAQ - Script에서 태그를 변수로 사용 하는 방법

 안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 스크립트에서 태그를 변수로 직접 사용할 수는 없습니다. GetTagVal(“태그이름”) 함수를 이용하여 해당 태그 값을 변수에 옮긴 후 사용 가능합니다. 그 후 SetTagVal(“태그이름”, 태그값) 함수를 이용하여 지정된 태그에 값을 설정할 수 있습니다.   다음 예제는 스크립트에서 지정된 태그에 값을 설정하는 방법입니다.   [예제]   [도구]-[스크립트]에 진입하여 스크립트를 아래와 같이 작성합니다. Sub ValueChange() ‘가상태그로 태그_1, 태그_2가 있습니다. Tag1 = GetTagVal(“태그_1″) SetTagVal “태그_2″, Tag1 End Sub =============================== 다음 그림과 같이 스크립트를 등록합니다. “태그_1”의 값을 GetTagVal() 함수를 사용하여 가져온 후, 변수 Tag1에 저장합니다. SetTagVal() 함수를 사용하여 “태그_2”에 변수 Tag1의 값을 씁니다. 싸이몬 홈페이지에서 다양한 FAQ를 확인할 수 있습니다. >>홈페이지가기 언제나 고객을 먼저 생각하는 CIMON이 되겠습니다. 감사합니다.

싸이몬 CIMON SCADA FAQ - 내부함수 사용방법과 스크립트 함수 차이점

안녕하세요. 싸이몬 CIMON-SCADA 관련 FAQ를 소개 합니다. 명령식과 스크립트는 태그값 쓰기의 표현 형식 및 내부 함수 사용시 표현 형식에서 차이가 있습니다. [ 예문] 1. 태그값 쓰기 ( 예를 들어 TAG1 에 TAG2의 값을 넣을 경우 ) ex) Sub changevlaue() vlaue = gettagval(“TAG1”) settagval “TAG2”, value end sub 2. 내부함수 사용 내부 함수를 사용시 명령식은 도움말의 내부함수 표현을 그대로 사용하면 됩니다. 하지만 스크립트의 경우 함수를 사용하여 어떤 값을 쓰거나 지령을 내릴 경우 함수에 괄호가 들어가지 않으며, 그 반대로 값을 불러오거나 상태를 받아올 경우 괄호가 들어 갑니다. 예를 들어 다음 과 같은 경우 차이점이 발생 합니다. 1) 트렌드 모드 변경 함수를 이용하여 지령을 내릴 경우 ※ TrendSetPenVal() 의 자세한 내용은 도움말에 연산식 및 명령식에서 확인하실 수 있습니다. – 값 종류에 따라 다음과 같은 Pen에 관련된 값이 설정 됩니다. 0 : Pen의 이름 (설정값을 문자열로 입력합니다.) 1 : Pen의 주석 (설정값을 문자열로 입력합니다.) 2 : Pen에 설정된 최소값 3 : Pen에 설정된 최대값 4 : Pen의 연결방법 (0:표시없음, 1:선연결, 2:계단형) 2) 트렌드 모드 함수를 이용하여 펜의 상태를 확인하는 경우 ※ GetTrendMode()의 자세한 내용은 도움말에 연산식 및 명령식에서 확인하실 수 있습니다. – 지정된 Trend Object가 RealTime 트렌드인 경우에는 0을, Historical Trend인 경우에는 1을 출력합니다. [T I P] 스크립트 함수와 내부함수의 차이점 스크립트 : Microsoft 사의 Visual Basic 을 기반으로 만들어진 일종의 컴파일러( 컴퓨터가 인식할 수 있는 언어) 를 사용합니다. 여기서 제공되는