Release 0.9

This new release contains a lot of changes under the hood. These changes include some bug fixes as well as improvements to make the buffered reporting and file server module more compliant with UCA test cases. There are also some enhancements to the .NET API. A new feature of this release is the sampled values (SV – IEC 61850-9-2) subscriber implementation and the experimental publisher implementation. There are also new examples to show how to use the new features.

30 thoughts on “Release 0.9

  1. zhangxiao

    Hello! I use 0.9.01,with cmake 3.5.1 vs2013 want try the SV fuction.But not successed.I have copyed the winpcap “include”and “lib”directory into third_party->winpcap.In vs2013 workspeace have no SV and GOOSE space.why?

    1. Michael Zillgith Post author

      Hi! I don’t know. For me it works. I am using cmake 2.8.11.2, win7 and vs2013. Is there any error message?

  2. zhangxiao

    D:\iec61850\libiec61850\libiec61850-0.9.0.1>cmake -G “Visual Studio 12”
    — The C compiler identification is MSVC 18.0.30501.0
    — The CXX compiler identification is MSVC 18.0.30501.0
    — Check for working C compiler using: Visual Studio 12
    — Check for working C compiler using: Visual Studio 12 — works
    — Detecting C compiler ABI info
    — Detecting C compiler ABI info – done
    — Check for working CXX compiler using: Visual Studio 12
    — Check for working CXX compiler using: Visual Studio 12 — works
    — Detecting CXX compiler ABI info
    — Detecting CXX compiler ABI info – done
    — Looking for clock_gettime in rt
    — Looking for clock_gettime in rt – not found
    — Check if the system is big endian
    — Searching 16 bit integer
    — Looking for sys/types.h
    — Looking for sys/types.h – found
    — Looking for stdint.h
    — Looking for stdint.h – found
    — Looking for stddef.h
    — Looking for stddef.h – found
    — Check size of unsigned short
    — Check size of unsigned short – done
    — Using unsigned short
    — Check if the system is big endian – little endian
    — Performing Test COMPILER_HAS_DEPRECATED_ATTR
    — Performing Test COMPILER_HAS_DEPRECATED_ATTR – Failed
    — Performing Test COMPILER_HAS_DEPRECATED
    — Performing Test COMPILER_HAS_DEPRECATED – Success
    — Configuring done
    — Generating done
    — Build files have been written to: D:/libiec61850/libiec61850-0.9.0.1
    do you find something wrong?

    1. Michael Zillgith Post author

      Hi,
      I think the problem is that the directory where cmake runs has to be a direct subdirectory of the libiec61850 folder.

      This is because of the line

      if(EXISTS “../third_party/winpcap/Lib/wpcap.lib”)

      in CMakeLists.txt. I will check if I can change this.

      1. Michael Zillgith Post author

        You have to replace the lines
        if(EXISTS “../third_party/winpcap/Lib/wpcap.lib”)
        by

        if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/winpcap/Lib/wpcap.lib")

  3. zhangxiao

    Found winpcap -> compile examples for GOOSE and SV
    CMake Error at examples/CMakeLists.txt:30 (add_subdirectory):
    The source directory

    D:/iec61850/libiec61850/libiec61850-0.9.0.2/examples/goose_publisher

    does not contain a CMakeLists.txt file.

    Found winpcap -> can compile with GOOSE support
    — Performing Test COMPILER_HAS_DEPRECATED_ATTR
    — Performing Test COMPILER_HAS_DEPRECATED_ATTR – Failed
    — Performing Test COMPILER_HAS_DEPRECATED
    — Performing Test COMPILER_HAS_DEPRECATED – Success
    — Configuring incomplete, errors occurred!
    Something changed ,but somethint worng?

  4. sainuddin

    can you please change enum type below.

    /** the reason for inclusion is unknown */
    REASON_UNKNOWN = 6

    in windows this already being used.
    for the moment I change this to IEC61850_REASON_UNKNOWN.

  5. Cedric

    Hi
    There is a build issue on debian with cmake 3.0.2. When I run cmake ., if fails with :
    CMake Error at examples/CMakeLists.txt:39 (add_subdirectory):
    The source directory
    /home/cedric/Apps/libiec61850-0.9.0.2/examples/goose_publisher
    does not contain a CMakeLists.txt file.
    It comes from the fact that libiec61850-0.9.0.2/examples/goose_publisher/CMakeLists.txt is missing.

    Build can succeed by launching cmake . -DBUILD_EXAMPLES=OFF, but in this case examples are not built.
    BR
    Cedric

  6. Andrew Rusinov

    Exuse me, can you help me? I don`t undastand how i can subscribe to more than one report.
    For example : in you example code client_example_reporting.c
    we subscribe only one report and than we waiting recive report

    while (running) {
    Thread_sleep(10);

    IedConnectionState conState = IedConnection_getState(con);

    if (conState != IED_STATE_CONNECTED) {
    printf(“Connection closed by server!\n”);
    running = 0;
    }
    }

    How we can subscribe to the next report ?
    I think we must use some thread, Is it true?
    May be Do you have some example ?

    Thank you for your concern.

  7. zhangxiao

    Michael Zillgith says:Values that are provided when a client requests them are handled internally by the IedServer instance. Most of them are stored in a data structure I call the MMS server cache. You can get access to this values by the getValue-method of IedServer. MmsValue objects can be complex tree structures. In this case the nodes of the tree are of the types MMS_STRUCTURE or MMS_ARRAY and the leaves are of one of the basic types (like MMS_INTEGER or MMS_VISIBLE_STRING).I think you must step by step call the report your needed.when you active them ,just receive them.somehow ,the example_server3,model are array report ,I alse want get something in it.

  8. zhangxiao

    The points are:Buffered report where I can handle ,what I can buffer,How much I can buffered?I run the example-server3 whole days ,but I can not see the memery added so much in windows task management?Mr Michael Zillgith whould you gaves something to me?

  9. zhangxiao

    tip of the day.
    /* BUFFERING OF REPORTS: */
    /* For Buffered Report Controls, buffering is automatic (no user */
    /* intervention). For each BRCB, all reports are stored in a linked */
    /* list “rpt_list”. Also, “rpt_list_next” points to the next report to */
    /* send. If all reports have been sent, rpt_list_next==NULL. */
    /* */
    /* The maximum number of bytes to store in the buffer is a */
    /* user-configurable parameter. When the maximum number of bytes is */
    /* exceeded, the oldest report in the buffer is discarded. */

  10. lucy

    Hello! I open dotnet.sln in VS2013, but it comes a problem:“System.EntryPointNotFoundException”类型的未经处理的异常在 iec61850dotnet.dll 中发生 其他信息: 无法在 DLL“iec61850”can not find the entrance “IedConnection_create”。.why? how can i solve it?

    1. Michael Zillgith Post author

      I think it is because the native library iec61850.dll cannot be found. Have you built and installed the native library before?

      1. lucy

        thanks, i am from china. i have put the IEC61850.dll in the c:\windows\system32. this is the first time to use your lib, so i have not built and installed the native library before. dose not the dotnet.sln built before? or how i can buit and install? thanks.

  11. David

    2 issues:
    * When set a ReportControlBlock to enabled, error code MMS_ERROR_UNKNOWN returned, but the Report was enabled successfully.
    * When a value of DAI updated and a new Buffered Report is generated. It often crash in the enqueueReport() function.

    1. Michael Zillgith Post author

      I didn’t observer this behavior. Can you provide more information about the problem and your configuration? Exact library version used, OS, data model, wireshark capture files. You can send file by email to info@libiec61850.com. Thanks!

  12. Guiliano

    We found a import bug of libiec61850:
    When we do the test as following steps, the application of libiec61850 will broken.
    step1: More than one client connect to libiec61850 application (we use IEDScout create 5 client connect to libiec61850 application)
    step2: Disconnect all client connection at the same time (close IECScout)
    Then libiec61850 will broken.
    Can you kindly check the libiec61850?

    1. Michael Zillgith Post author

      Thanks for the bug report. I will provide a fix with the next release coming soon.

      1. Michael Zillgith Post author

        As a workaround you can set CONFIG_MMS_SINGLE_THREADED to 1 in stack_config.h.

  13. zhangxiao

    Noting said to you but THANKS your cool works Mr Michael Zillgith !I could learn whole 61850 works by your lib.

Comments are closed.