Pricing/Info    Download   
MENU 
 Home Products About Support Contact

SmartGridware® Java IEC61850 IED Simulator

Extensible Java-based IEC 61850 IED Simulator

Product Overview

The SmartGridware® Java IEC61850 IED Simulator is a user-extensible server for the simulation of IEC61850 Server instances. It provides support for all ACSI Services as defined in the IEC61850-8-1 MMS client/server and GOOSE/GSE profile. The simulator data and behavior is configurable through SCL ICD file and may be customized using the Mini61850 Server API or SmartGridware® Java IEC61850 Server SDK.




Product Features

 

As with the IEC61850 Server SDK, the IED simulator framework provides built-in server role support for the common IEC61850 ACSI services such that all the user only need to provide the data and configuration through an SCL ICD file. The ICD file provides all data definitions, initial data values, server addressing and configuration of some server behavior. In order to extend the IED simulator framework, the user simply writes custom behavior modules using the SmartGridware® Java Mini61850 Server API. or SmartGridware® Java IEC61850 Server SDK.

See some of the many features below:

  • All features of the SmartGridware® Java IEC61850 Server SDK
  • Includes the SmartGridware® Java Mini61850 Server API.
  • provides default CDC behavior for many common CDCs.
  • implements state modeling and standard control processing
  • report, GOOSE, Setting Group, and other control blocks
  • text based command line interface to access/modify simulator data
  • Under Development: web-interface for simulator configuration and control
  • uses the SmartGridware® Java MMS Stack as the MMS provider

Supported Standards

 

The functionality provided by the SmartGridware® IEC61850 IED Simulator is implemented in compliance with the following standards (click to view):

IEC61850 Standards

  • IEC 61850-7-1: Principles and models
  • IEC 61850-7-2: Abstract Communication Service Interface (ACSI)
  • IEC 61850-7-3: Common Data Classes
  • IEC 61850-7-4: Logical Node Classes
  • IEC 61850-8-1: Service Mapping: ACSI Mappings to MMS & GOOSE
  • IEC 61850-9-2: Sampled Values over ISO/IEC 8802-3
  • IEC 61850-6-1: Configuration Description Language (SCL)

IEC61850 Upper Layer Protocol Support

  • IEC61850-8-1 Client/Server Services (MMS) (6.2.1)
  • IEC61850-8-1 Client/Server A-Profile (6.2.2)
  • IEC61850-8-1 GOOSE/GSE A-Profile (6.2.2)
  • IEC61850-8-1 TCP/IP T-Profile (RFC1006) (6.2.3)
  • IEC61850-8-1 GOOSE over ISO/IEC 8802-3 (No link redundancy)
  • IEC61850-9-2 Sampled Values over ISO/IEC 8802-3 (No link redundancy)

Manufacturing Message Specification (MMS) Standards

  • ISO 9506-1: Manufacturing Message Specification - Service Definitions
  • ISO 9506-2: Manufacturing Message Specification - Protocol Definitions

OSI Stack and Lower Layer Standards

  • RFC 1006: OSI over TCPIP (CMIP/OSI over TCP/IP)
  • ITU-T X.214 | ISO/IEC 8072: OSI - Transport Service Definition
  • ITU-T X.224 | ISO/IEC 8073: OSI - Transport Protocol Specification
  • ITU-T X.215 | ISO/IEC 8326: OSI - Session Service Definition
  • ITU-T X.225 | ISO/IEC 8327: OSI - Session Protocol Specification
  • ITU-T X.216 | ISO/IEC 8822: OSI - Presentation Service Definition
  • ITU-T X.226 | ISO/IEC 8823-1: OSI - Presentation Protocol Specification
  • ITU-T X.217 | ISO/IEC 8649:   ACSE Service
  • ITU-T X.227 | ISO/IEC 8650-1: ACSE Protocol
  • ITU-T X.680 | ISO/IEC 8824-1..4: Abstract Syntax Notation One (ASN.1)
  • ITU-T X.690 | ISO/IEC 8825-1: ASN.1 Encoding Rules (BER/DER/CER)

IED Simulator Examples

 

The following examples show how to configure and customize the SmartGridware® Java IEC61850 IED Simulator using the Mini61850™ Server API (click to view):



IEC61850 IED Simulator API Initialization

  Mini61850Api api = new Mini61850Api();


   // -- 
   // -- Create a new server instance with the provided options... 
   // -- 
   Mini61850Server server = api.newServer("-scl:strict SGWDeviceA1.icd -xt MySim ;

   server.startServer();
         

Client Association Example


   // -- Attach an association listener to handle new associations 
   // -- and association changes

   server.setAssocHandler(new AssocHandler()
   {
      // -- authenticate an incoming association request using authentication 
      // -- info if provided. throw an exception to deny an association request.
     public String authenticate(AssocHandle assoc, 
                                String auth_info) throws MiniServiceException
      {
         System.out.println("[authenticate]:"+assoc+",auth-info:"+auth_info);
         return null;
      }

      // -- invoked when an association state changes. 
      public void associationChanged(AssocHandle assoc)
      {
         System.out.println("[association]["+assoc.getStatus()+"]:"+assoc);
      }
   });

         

IED Control Handler

      // -- 
  // -- Set an Operation handler to process test/operate states on controls
  // -- 
  server.setOpHandler(new OpHandler()
  {
     // -- performTest is invoked for PARAMETER, INTERLOCKING, SYNCHRO tests. 
     // --
     public boolean performTest(Op op, Object ctl_val, 
                                OPTEST op_test) throws MiniControlException
     {
        System.out.println(op+"[perform-test]:"+op_test+"/ctl-val="+ctl_val);
        // -- May throw a MiniControlException for failed tests
        return false; // tell the API to also perform default tests
     }

     // -- performOperate is invoked to operate the control once all tests 
     // -- have passed. If the operate fails, the MiniControlException may 
     // -- be thrown to notify the failure for enhanced security operations. 
     public Object performOperate(Op op, Object ctl_val) 
                                  throws MiniControlException
  
     {
        System.out.println(op+"[perform-operate]OPERATE/ctl-val="+ctl_val);

        // -- perform actual output control here... 
        return ctl_val;
     }
     // -- Setting the control handler for multiple controls
  }, "ExGGIO1.AnOut1", "ExGGIO1.SPCS01");

         

Data Simulation Functions SCL Configuration

  <DOI name="CntRs1">
    <Private type="MySim">
       <!-- To enable simulation use option '-xt MySim' -->
       <SvXt:CounterSim ref="actVal" maxVal="1000" 
                        minVal="0" inc="1" sample="5/m" 
                        updateTime="true" inhibitChange="false" />
    </Private>
    <DAI name="frPd">
       <Val>5000</Val>
       </DAI>
       <DAI name="frRs">
       <Val>false</Val>
    </DAI>
  </DOI>

  <DOI name="AnIn1">
     <Private type="MySim">
        <!-- To enable simulation use option '-xt MySim' -->
        <SvXt:FunctionSim ref="instMag" maxVal="100" minVal="0" 
                          freq="1/m" sample="0" function="sine" 
                          updateTime="false" inhibitChange="true" />
        </Private>
         

Simulator Command Line Interface

available commands:
            
   alias [{alias-name}]  |  alias add {alias} {cmd} {args}*  
                   |  alias del {alias} 
            
   assoc (-auth {auth-info-regex} | -abort | -release | -accept 
        | -reject | -noauth | -inhibit | -allow 
            
   control [OPTIONS] {control-DO}  :  configure a control
           
   help {command-name}

   info  [{ied-label}]   : print detailed info about the IED logging

   list {type} {regex}* : list. {type}= server|ld|ln|fc|vdo|da|ds|rcb|
   
   listen (-r[egister]  {ref}* ) | -i[nhibit] | -a[llow] | -u[nregister]

   print   {data-name}+   : print out the specified data

   quit  : exit the application .

   set [{da-name} {da-value}]+ : one or more DA values.

   status

   usage {command-name}

   verbose  [true|false]   : change verbose output status
            
   - history operations - 
            
   ! | h[istory]     : print command history
   
   !!                : exec last command

   !{cmd#}           : exec command # {cmd#}

   !{cmd#}  {alias}  : create an alias for command # {cmd#}
         

Platform Requirements

 

Java Platform Requirements:

The Core SmartGridware® Java IEC61850 software requires the following Java Development Kit in order to develop applications:

In order to install or upgrade your installed JDK version, please visit the Oracle Java Developers page at:


GOOSE and Sampled Value Requirements:

GOOSE and/or Sampled Value components are supported for Windows, Linux and MacOS with the following requirements :

Windows GOOSE/SV Requirements

MacOSX/Linux GOOSE/SV Requirements

Operating System Requirements:

The core Client API will work on any operating system which supports the Java versions listed in the Java Platform Requirements section above. Some of the operating systems commonly used with SmartGridware™ products are:

  • Microsoft Windows (95,98,XP,NT,2000,7,8)
  • Linux (Redhat, etc)
  • Hewlett Packard HP-UX
  • Sun Solaris (SPARC & x86)
  • IBM AIX
  • Apple MacOS X

Note that for GOOSE and Sampled Value support, only Windows, MacOSX and Linux are supported and require the use of the PCAP library as detailed above

Hardware Requirements:

Minimum Hardware
  • Physical memory (RAM): 256MB
  • Disk space: 30MB (distribution package size)