[스마트그리드] IEC 61850 표준규격에서 정의된 SCL 예

IEC 61850은 변전소의 모니터링, 제어 등을 위한 표준화된 통신기술로써, 변전소에 대한 재원을 기술하는 언어인 SCL(Substation Configuration description Language)을 정의하고 있습니다. XML 기반이므로 쉽게 읽을 수 있고 쓸 수 있습니다.

아래는 SCL에 대한 코드 예인데요.


    
        
            
                
                
            
            
                
                
            
        
    

위의 SCL에 대해 기술된 변전소의 재원은 E1-Q1이라는 이름의 Bay에서 차단기 QA1과 단로기 QB1은 모두 L1이라는 노드에 연결되어 있다는 내용입니다. QA1이 차단기라는 것은 CBR Type 속성을 갖기 때문이고, QB1이 단로기라는 것은 DIS Type 속성을 갖기 때문입니다.

이 글은 차세대전력기술연구센터의 김태완님이 작성한 IEC 61850에 대한 소개에서 가져왔습니다.

[Java] File에 대한 Zip 압축

여러개의 파일들을 하나의 Zip 파일로 압축하는 자바 코드입니다.

String zipFileName = "c:/file.zip";

String[] files = new String[3];

files[0] = "c:/a.so";
files[1] = "c:/b.dat";
files[2] = "c:/c.cfg";
		
byte[] buf = new byte[4096];

try {
    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));

    for (int i=0; i<files.length; i++) {
        FileInputStream in = new FileInputStream(files[i]);
        Path p = Paths.get(files[i]);
        String fileName = p.getFileName().toString();
	        	
        ZipEntry ze = new ZipEntry(fileName);
        out.putNextEntry(ze);
	      
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
	      
        out.closeEntry();
        in.close();

    }
	      
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}

a.so, a.dat, c.cfg 파일 세개를 file.zip으로 압축합니다. 특히, 19번 코드의 ZipEntry의 생성자의 인자에 경로가 들어갈 경우 압축 파일 내부에도 동일한 경로가 형성됩니다. 코드 최저화는 각자의 몫으로 남겨 둡니다.

참고로 위의 클래스들을 위해 필요한 import 문의 삽입을 위해 이클립스에서는 ^~O (Ctrl+Shift+O)를 입력하시면 됩니다.