Using the dictionary editor
 변수목록 편집기 사용법

ISaGRAF 변수목록은 내부적으로 선언된 변수(I/O, Function, Function Block, 예약어...)를 편집하는 도구이다.

기본사항

메인 윈도우

변수 관리

객체 설명

빠른 설정

Modbus SCADA 주소 할당

다른 응용 프로그램과 정보교환

기타 ISaGRAF 도구 연결


Basics
기본사항

변수, function block, 예약어 는 소스 코드에서 사용 전에 반듯이 변수목록에 선언 되어야 합니다. 변수 ,예약어 는 다음의 어느 언어 에서도 사용 가능 합니다 :  SFC, FBD, LD, ST , IL.

FBD에서 사용할 Function block은 미리 선언 되지 않아도 됩니다. 왜냐면 ISaGRAF  FBD , Quick LD 가 자동적으로 선언을 하기 때문 입니다.

변수

예약어

Function block

네트웍 주소


Variables
변수

변수는 영역(range) 또는 타입에 따라 분류 됩니다. 동일한 영역과 타입의 변수만이 동일한 입력란에 설정 가능 합니다. 다음은 기본적인 영역 입니다.

 전역	현재 프로젝트내의 어떤 프로그램에서도 호출 가능

 지역	한 프로그램에서 만 사용가능

기본적인 타입의 소개 입니다

 BOOLEAN	true/false 이진값

 ANALOG	실/정수 값

 TIMER	타임값(시변수)

 MESSAGE	문자열

변수는 이름(변수명), 주석, 속성, 네트워크  주소...등으로 분류 합니다.

다음은 기본적인 변수의 속성 입니다.

INTERNAL	메모리 변수

INPUT	입력디바이스와 연결된 변수

OUTPUT	출력디바이스와 연결된 변수

CONSTANT	읽기전용 내부 변수

Note:	타임값(시변수) 은 항상 내부 변수 입니다.  입력 과 출력 는 항상 전역 영역 입니다.


Defined words
예약어

예약어는 문자열을 대신하는 별명 이다. 예약어는 영역에 따라 분류 되며 동일한 타입,영역에 의해서만 동일한 입력란에 설정 가능 합니다. 다음은 기본 영역 입니다.

 공통	모든 프로젝트에서 가능

 전역	현제 프로젝트내의 모든 프로그램에서 가능

 지역	하나의 프로그램에서만 가능


Function block instances
Function block

ST 와 IL 언어를 사용하는 function block 의 예는 반듯이 변수목록에 선언 되어 있어야 합니다. 이유는 function block은 내부 "숨김" 데이타로 각각의 function block 을 구분 해야 하기 때문이다. 아래의 예제는 라이브러리에 정의 되어 있는 function block "R_TRIG" (rising edge detection)을 이용하는 것을 보여 준다.각각의 block 유일한 이름 으로 구분 된다. 라이브러리 관리자를 이용하여 각각의 이름을 구분하여 설정 해 놓는다.:

Block name:	R_TRIG

Parameters:	Input=CLK

Output=Q

변수목록 편집기를 이용하여 이름 붙이기 예

Instance name:	TRIG_B1	Block name:	R_TRIG

Instance name:	TRIG_B2	Block name:	R_TRIG

ST 프로그램에서 사용된 선언 예..:

TRIG_B1 (b1);

edge_b1 := TRIG_B1.Q;	(* b1 variable edge detection *)

TRIG_B2 (b2);

edge_b2 := TRIG_B2.Q;	(* b2 variable edge detection *)

선언된 function block은 전역 또는 지역 이다. FBD 또는 LD에서 사용된 Function blocks 은 미리 정의 할 필요는 없는데, 이유는 ISaGRAF FBD 가 자동으로 사용된 Block을 설정 하기 때문 이다.

(*  function blocks 은 항상 라이브러리에 정의 된 이름을 사용 한다. ISaGRAF FBD / Quick LD 편집기는 자동적으로 선언을 한다. *)

FBD 또는 LD에서 자동적으로 정의된Function block 은 항상 지역 으로 선언 된다.


Network addresses
네트웍 주소

네트웍 주소는 옵션의 설정입니다. ０이외의  주소를 설정하면 외부시스템（HMI시스템 등）에서 이 변수를 감시할 수 있습니다. 네트워크 주소는 각각의 변수에 설정되어야만 합니다.「도구」-「주소 재설정 」명령어 에 따라 네트워크 주소의 번호부치기를 자동으로 할수 있습니다. 이 명령어  실행전에 번호를 부치고 싶은 변수를 리스트에서 사전에 선택해 둘 필요가 있습니다.  16진수로 pace address（그룹의 선두address）를 입력 함으로서 선택된 변수가 연속번호로 나눠져 부쳐집니다. pace address에 ０을 입력하면 선택중인 변수의 네트워크 주소는 전부 ０으로 설정 됩니다.


The dictionary main window
변수목록 메인 창

변수목록 편집기 의 메인 창 에서는 동일타입으로 동일범위의 변수리스트가 표시됩니다. 변수의 타입과 범위는 항상 윈도우 타이틀 바에 표시됩니다. 아래에서 윈도우를 나타냅니다.

이 윈도우에서는 변수에 관한 주된 필드를 나타내고 있습니다. 즉 이름, 속성, 네트워크 주소, 텍스트 명령어 입니다. 변수 각각의 완전한 기술은 윈도우 하부의 상태바에 표시됩니다. 또한, 각 필드의 폭은 필드사이를 마우스로 드래그( [image] 마크가 표시 )하면 폭을 변경할 수 있습니다.

이하의 도구 바 아이콘에 따라 변수범위를 선택할 수 있습니다.

 공통	어떤 프로젝트에서도 다룰 수 있습니다.

전역	프로젝트내의 프로그램에서도 다룰 수 있습니다.

 지역	하나의 프로그램에서만 다룰 수 있습니다.

아래의 더블컨트롤에 따라 변수타입을 선택할 수 있습니다.

도구 바 아이콘 좌측의 텍스트 입력필드에 입력하는 것으로, 입력된 텍스트가 선두에 포함되어 있는 변수명 검색을 합니다. 검색대상은 표시중인 변수 전체입니다.「찾기」메뉴인 두개의 방향성을 가진「찾기」명령어 에 따라 검색하고 싶은 문자열을 포함한 변수명 또는 명령어  내용을 검색합니다. 변수가 나타나면 포커스가 리스트 가운데서 검색된 변수명 으로 이동합니다. 검색에는 대소문자의 구별은 없습니다.　검색에는 전방검색（↓）과 후방검색（↑）이 있습니다.


Managing variables
변수 관리

「파일」메뉴명령어 은 선택중인 변수그룹에 대한 기능을 합니다.「파일」-「다른것」명령어 에서는 선택중인 변수범위와 타임변경이 가능합니다.

인쇄

새변수

변경

 	자르기 / 붙여넣기

분류

네트웍 주소 설정

참/거짓 문자열 가져오기


Printing variables
인쇄

「파일」-「인쇄」명령어 에 따라 현재 표시되어 있는 변수（또는 정의워드）의 인쇄가 가능합니다. 인쇄항목에는 변수에 정의한 내용도 모두 포함됩니다.


Creating new variables
새변수

「편집」-「새변수」명령어 에 따라 새로운 변수, 펑션블록 instance, 정의워드를 작성할 수 있습니다. 새 변수는 리스트상에서는 현재 선택중인 변수 앞에 삽입됩니다. 이 명령어 이 선택되면, 변수정의 다이아로그박스가 열립니다. 필요한 사항을 기술, 선택후 [저장] 버턴을 선택하면 리스트에 삽입됩니다. 이때 다이아로그박스는 다시 열리고, 계속해서 변수를 추가합니다. [취소] 버턴으로 변수설정을 취소 해서 되돌립니다.


Modifying existing variables
수정

「편집」-「편집」명령어에 따라 리스트 가운데 선택중인 변수의 기술수정이 가능합니다.「신규작성」명령어 과 같은 모양으로 변수의 기술입력을 합니다.[저장] , [취소]버턴 이외에 [다음으로] 및 [앞으로] 버턴이 있고, 계속적인 변수수정은 불가능합니다.


Cut and paste
 	자르기/붙여넣기

ISaGRAF변수목록 편집기 에서는 복수행의 동시선택이 가능하고, 선택된 내용에 대해서 이하의 명령어 도 다룰 수 있습니다.

복사	선택된 복수변수를 모음클립보드로 복사합니다.

잘라내기	선택된 복수변수를 모음클립보드로  복사해서 편집리스트에서 삭제합니다.

삭제	선택된 복수변수를 편집리스트에서 삭제합니다.

붙이기	모음클립보드의 내용을 리스트에 삽입합니다.

복사／잘라내기／붙이기 명령어 은 동일 타입, 변수사이의 조작에 한합니다.


Sorting variables
분류

도구 - 분류 명령어에 따라 편집중인 변수와 정의워드를 줄 바꾸기 할 수 있습니다.

줄 바꾸기 키는 변수의 속성이 됩니다.

•	최초는 내부변수

•	다음은 입력변수

•	마지막은 출력변수

또한 동일 속성내의 변수는 알파벳순입니다.

단 정의워드는 항상 알파벳순이 됩니다.


Setting network addresses
네트웍 주소 설정

네트워크 주소는 옵션의 설정입니다. ０이외의  주소를 설정하면 외부시스템（HMI시스템 등）에서 이 변수를 감시할 수 있습니다. 네트워크 주소는 각각의 변수에 설정되어야만 합니다.「도구」-「주소 고치기」명령어 에 따라 네트워크 주소의 번호부치기를 자동으로 할수 있습니다. 이 명령어  실행전에 번호를 부치고 싶은 변수를 리스트에서 사전에 선택해 둘 필요가 있습니다. 16진수로 pace 주소（그룹의 선두address）를 입력 함으로서 선택된 변수가 연속번호로 나눠져 부쳐집니다. pace address에 ０을 입력하면 선택중인 변수의 네트웍 주소는 전부 ０ 으로 설정 됩니다.


Importing boolean "true/false" strings
참/거짓 문자열 가져오기

정의 워드의 편집중에 [도구] - [TREU/FALSE정의 가져오기]  명령어 에 따라 TRUE,  FALSE 형 변수에 나눠부쳐진 TRUE, FALSE상태의 키워드를 정의워드로서 바꿔둘 수 있습니다. 이들 변수(TRUE,FALSE라고 정의된)는 주로 디버깅 시에 사용됩니다. 프로그램 중에 변수로 사용되어지는 것이 있으면 정의워드로 준비해 둘 필요가 있습니다.

이 명령어 은 설정종료의 TRUE, FALSE 형 변수 중에 TRUE/FALSE문자열을 검색하는 것으로 TRUE/FALSE정의워드를 작성합니다.


Description of objects
오브젝트 요약

변수목록 오브젝트 [변수, 펑션블록 instance, 정의워드] 빠짐없이 기술할 필요가 있습니다. 기술 필드는 각각의 오브젝트 타입이라도 구별합니다.

이하에서는 변수에 대한 공통적인 필드를 나타냅니다.

이름	변수명으로 최초의 문자는 반각영문자(a - z)로 후반각 영문자, 숫자 중에 하나는 필요합니다.

네트웍 주소	16진수 네트워크  주소는 옵션에서 다룹니다. 제로이외의 숫자가 입력된 변수는 타겟이 실행시에 외부의 SCADA시스템에서 모니터가 가능합니다.

명령어 	변수명령어 의 자유영력

        유지	유지지정은 밧데리 저장된 메모리에 대해 scan때마다 변수를 보관하는 것을 의미합니다.（입력, 출력변수에 이 보지지정은 할 수 없습니다.）

이진 변수 설정에 필요한 것들..:

속성	내부, 입력, 출력, 정수 중에 설정

"False" 문자열	디버그 시에 FALSE상태 시에 대입되는 문자열

"True"문자열	디버그 시에 TRUE상태 시에 대입되는 문자열

초기화 True	이 옵션을 체크하면 초기화 치를 TRUE로 설정가능 합니다.

정/실수형 변수에 필요한 것들..

속성	내부, 입력, 출력, 정수 중에 설정

포맷	정수 또는 실수선택. 이 포맷은 디버그 시에도 활용가능 합니다.

유니트	디버그 시에 사용할 단위를 나타내는 문자열

변환	입/출력변수에 설정할 변환관수, 변환테이블의 이름

초기치	변수의 초기치（정수, 실수 형식을 맞출 필요가 있습니다.）

타임변수에 필요한 필드:

속성	내부, 정수의 설정

초기치	변수의 초기치

문자열형 변수에 필요한

속성	내부, 입력, 출력, 정수 중에 설정.

최대장	최대 문자열 길이를 지정합니다.

초기치	변수의 초기치

정의워드에 필요한 필드:

이름	ST스테이트먼트에 사용된 명칭, 최초 문자는 반각 영문자(a-z)로 후반각 영문자, 숫자 중에서 필요합니다.

정의	ST언어 문법에 있던 문자열로 정의워드를 컴파일 앞에 이 문자열로 바꿔둘 수 있습니다.(예: Name = PI - Equivalence = 3.14159걂

명령어 	자유로운 명령어

FunctionBlock instance에 필요한 필드

이름	instance명, ST스테이트먼트로 사용됩니다. 최초의 문자는 반각영문자(a-z )로 후 반각영문자, 숫자 중에서 필요합니다.

타입	대응할 라이브러리 내의 FunctionBlock 명

명령어 	자유로운 명령어


Exchanging information with other applications
다른 프로그램과 정보 교환

ISaGRAF변수목록 편집기 에는 다른 어플리케이션（워프로, spread시트, 데이터페이스 등）과의  정보교환을 목적으로 가져오기／보내기 를 갖추고 있습니다.「편집」-「텍스트 보내기」명령어 에 따라 변수리스트를 어스키텍스트 기술로 변환시켜, 클립보드 또는 파일 형식으로 보관합니다.「편집」-「텍스트  가져오기」명령어 에 따라 구조를 포맷으로 클립보드 또는 파일 형식으로 보관된 내용에서 변수 설정내용의 필드를 꺼냅니다.

보내기

가져오기

텍스트 형식

키워드


Exporting data
보내기

「텍스트 보내기」 명령어 에 따라 보내기 텍스트 다이아로그박스가 열립니다. 여기서 보내기 메커니즘을 설정합니다.

모든 리스트 를  ON하는 것으로 현재 선택되어 있는 변수리스트는 무시되고, 리스트 전부가 export됩니다.선택된 변수 를 ON하는 것으로 선택된(하이라이트 부분)변수만이 보내기 됩니다.

클립보드  를 ON하는 것으로 보내기 되는 정보는 ASCII 텍스트 포맷으로 윈도우  클립보드에 보관됩니다. 이후 베스트 명령어 으로 다른 어플리케이션을 꺼 낼 수 있습니다. 파일  을 ON 하는 것으로 보내기 되는  정보는 ASCII 파일로서 보관됩니다. 이때 pass명부착 파일명을 지정할 필요가 있습니다.일관 버턴에 따라 디렉토리 내용을 체크하는 것도 가능합니다.

또한, export 어스키 텍스트의 포맷을 선택합니다. 포맷의 종류에 대해서는 나중에 서술합니다. OK버턴으로 export되고,취소 버턴으로 보내기 되지 않게 다이아로그박스는  닫힙니다.

export된 테이타에는 필드명이 추가되어 있습니다. 데에타 최초의 행은 필드명을 나타내고 있습니다. 각각의 변수 오브젝트 데이터는 １행의 텍스트로 표현되고 있습니다. 행의 마지막은 ＭＳ-ＤＯＳ표준의“0d-0a”가 됩니다. 최초의 행 필드명 으로 불리는 항목은“키워드”버턴을 선택하면 변경가능 합니다.“키워드”에 관해서는 나중에 서술합니다. 아무것도 하지 않는 경우는 디폴트파일명이 붙어 있습니다.


Importing data
가져오기

「텍스트 가져오기」명령어 에 따라 import텍스트 다이아로그박스가 열립니다. 여기서 import 메커니즘을 설정할 수 있습니다..

클립보드 을 ON하는 것으로 import된 정보는 ASCII텍스트 포맷 상태로 윈도우의 클립보드에서 집어냅니다. 파일을 ON하는 것으로 import된 정보는 ASCII 파일에서 읽어 냅니다. 이때 pass명부착 파일명을 지정할 필요가 있습니다. 일관 버턴으로 디렉토리 내용을 체크할 수 있습니다.

또한, import ASCII텍스트로 사용되고 있는 세퍼레이터는 자동적으로 인식해서 꺼냅니다. 포맷의 종류에 대해선 나중에 서술합니다. 확인 버턴으로 보내기 되고 취소 버턴으로 가져오기 되지 않게 다이아로그박스는  닫힙니다.

import된 데이터에는 필드명이 추가 되어 있어야 합니다. 데이터 최초의 행은 필드명을 나타냅니다. 각각의 변수 오브젝트 데이타는 １행의 텍스트로 표현됩니다. 행의 마지막은 ＭＳ-ＤＯＳ표준“0d-0a”가 됩니다. 필드명 나열순의 특별한 지정은 없습니다. 만약 필드가 빠져 있을 경우, 그 필드 데이터에는 기본값이 들어갑니다. 만약, import된 테이타가 이미 리스트 중에 있을 경우에는 겉표지에 쓸 것인지 어떻할 것인지는 체크할  필요가 있습니다. 이때 빠져 있는 필드가 있으면 그 필드 데이터는 갱신되지 않습니다. 최초 행의 필드명으로 불리는 항목은“키 워드”버턴을 선택하면 변경 가능 합니다.“키워드”에 관해서는 나중에 서술합니다. 아무것도 하지 않는 경우는 디폴트 필드명이 붙어 있습니다.


Available text formats
텍스트 형식

이하에서는 보내기 명령어 에 따라 만들어진 텍스트 파일의 예를 나타냅니다.

보내기 명령어 에서 형식은 자동 인식됩니다.

•	터부세퍼레이터

설명:	포맷사이가 더블로 구분됩니다.

예:	Name	Attribute	Comment

level	internal	internal calculated water level

alrm1	output	main alarm output

•	comma세퍼레이터

설명:	포맷 사이가 comma로 구분됩니다.

예:	Name,Attribute,Comment

level,internal,internal calculated water level

alrm1,output,main alarm output

•	세미콘세퍼레이트

설명:	포맷 사이가 세미콘으로 구분됩니다.

예:	Name;Attribute;Comment

level;internal;internal calculated water level

alrm1;output;main alarm output

•	comma와 쌍따옴표

•	설명:	필드 사이가 comma로 구분되고, 각 필드명은 쌍따옴표로 둘러싸입니다.

예:	"Name","Attribute","Comment"

"level","internal","internal calculated water level"

"alrm1","output","main alarm output"


Keywords
키워드

보내기/가져오기의 처음 행은 필드명이라 하고, 키워드에 등록되어 있습니다.

또한, “키 워드”버턴으로“키워드”다이아로그박스가 열리고, 여기에서 변경 가능합니다

키워드 다이아로그박스는 오브젝트명과 키워드가 어 있습니다. 키워드 를 변경할 경우는 변경하고 싶은 필드를 선택해서 수정 버턴을 누릅니다. 여기에 새로운 키 워드를 입력합니다. 기본 버턴은 원래의 키 워드로 변경합니다.이 키 워드 붙이는 법에는 이하의 룰이 있습니다.

•	16반각문자 이내

•	처음 문자는 반각영문자(a ~ z)

•	연결 문자는 영문자, 숫자 중에

•	동일 키 워드는 다른 포맷에는 적용 불가능합니다.

이하에서는 ISaGRAF 기본 키 워드를 나타냅니다.

변수명	Name

텍스트 명령어 	Comment

네트워크  주소	Address

속성 (내부, 입력, 출력)	Attribute

'False' 문자형	False

'True' 문자열	True

정/실수 포맷	Format

정/실수 단위	Unit

수치 변환명	Conversion

문자열 최대장	MaxLength

FB 라이브러리 타입	Library

공식 정의	Equivalence

내부속성	Internal

입력속성	Input

출력속성	Output

정수속성	Constant

실수형 포맷	Real

정수형 포맷	Integer


Link to other ISaGRAF tools
기타 ISaGRAF 도구

"도구"는 유용한 다른 ISaGRAF명령어들을 포함 하고 있습니다:

"I/O 연결" 명령어는 user가 ISaGRAF I/O 연결편집기를 사용할 수 있도록 합니다. 현재 I/O 변수 가 이미 사용중인 경우엔 해당하는 보드를 열어서 보여 줍니다.

"변환테이블" 명령어는 편환테이블 편집기를 열어서 변수목록에 있는 실/정수 I/O변수의 할당을 가능 하게 합니다.

"크로스 래퍼런스"명령어는 열려 있는 프로젝트의 교차 편집을 지원 합니다.


Quick declaration
빨리 만들기

[도구] - [빨리 만들기] 로 복수변수를 한번에 정의할 수 있습니다.

[빨리만들기] 로 작성된 변수에는 통과번호가 붙어 있습니다. 이하의 항목을 설정해 주세요.

-변수에 매겨진 처음과 마지막 번호

-변수명의 처음과 마지막에 기입된 문자열

-변수명에 사용된 숫자의 수（문자수）

또한 변수의 기본속성(내부, 입력, 출력0과 변수타입에 따른 고유의 정보(정/실수형의 유지 와 가변문자열의 문자열 최대장) 등 도 설정 가능합니다.

변수명은 숫자로 시작할 수 없기 때문에 반드시  첫머리에 문자열을 설정해야 합니다.「행수」（숫자의 문자수）가 auto으로 되어 있으면 자동적으로 최소의 문자수가 할당됩니다.「행수」가 설정되면 첫머리부터 0을 넣어 행수가 정리됩니다. 이와 같이 변수명의 문자수를 고정시켜 두면, short시에 편리합니다. 이하에 그 편리의 예를 열거합니다.：

예:	문자수가 변하는 예:

이 설정에서는 이하의 3가지 변수가 가능합니다.

Var9xx	Var10xx	var11xx

예:	문자수가 고정되는 예


Modbus SCADA addressing map
Modbus SCADA 주소

(네트워크  주소)는 ISaGRAF과 SCADA소프트의 사이 등에서 Modbus protocol을 사용해서 통신할 경우에 사용됩니다. 이 경우 SCADA소프트쪽이 마스터가 되고, ISaGRAF타겟이slave가 됩니다. 네트워크  주소는 SCADA쪽에서 컨트롤 되는 변수의 가상mapping해서 사용됩니다. 도구 - SCADA Modbus 주소」을 사용하면 각 변수를 간단히 mapping할 수 있습니다.

SCADA Modbus  주소map 다이아로그박스에는 두개의 리스트가 있습니다. 위의 리스트는 (segment) 0~*FFF=4096개 분의 mapping정보로 네트워크  주소가 할당되어 있는 변수가 표시됩니다. 아래의 리스트에는 mapping되어 있지 않는 변수가 표시되어 있습니다. 네트워크  주소 0에는 변수를 mapping할 수 없습니다.

편집 - 선택변수 map 과 map에서 삭제 로 변수가 리스트 사이로 이동해서 mapping합니다. 리스트 되어 있는 변수를 더블클릭해도 같은 형식으로 처리 가능 합니다.  segment dropdown 리스트박스에서 다른 segment 의 리스트로 바꿀 수 있습니다.

옵션 메뉴로  주소10/16진 표시를 바꿉니다.

「편집」-「찾기」메뉴로 변수가 mapping되어 있는지 어떤지를 검색할 수 있습니다.