diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 03326ad9..d787fb9b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -13,6 +13,7 @@ add_subdirectory(server_example_logging) add_subdirectory(server_example_files) add_subdirectory(server_example_substitution) add_subdirectory(server_example_service_tracking) +add_subdirectory(server_example_deadband) add_subdirectory(iec61850_client_example1) add_subdirectory(iec61850_client_example2) diff --git a/examples/Makefile b/examples/Makefile index a6d6d5d9..87cb1d8e 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -20,6 +20,7 @@ EXAMPLE_DIRS += server_example_threadless EXAMPLE_DIRS += server_example_setting_groups EXAMPLE_DIRS += server_example_files EXAMPLE_DIRS += server_example_substitution +EXAMPLE_DIRS += server_example_deadband EXAMPLE_DIRS += goose_subscriber EXAMPLE_DIRS += goose_publisher EXAMPLE_DIRS += sv_subscriber diff --git a/examples/server_example_deadband/CMakeLists.txt b/examples/server_example_deadband/CMakeLists.txt new file mode 100644 index 00000000..bab251a5 --- /dev/null +++ b/examples/server_example_deadband/CMakeLists.txt @@ -0,0 +1,21 @@ +include_directories( + . +) + +set(server_example_SRCS + server_example_deadband.c + static_model.c +) + +IF(MSVC) +set_source_files_properties(${server_example_SRCS} + PROPERTIES LANGUAGE CXX) +ENDIF(MSVC) + +add_executable(server_example_deadband + ${server_example_SRCS} +) + +target_link_libraries(server_example_deadband + iec61850 +) diff --git a/examples/server_example_deadband/Makefile b/examples/server_example_deadband/Makefile new file mode 100644 index 00000000..e1d5674c --- /dev/null +++ b/examples/server_example_deadband/Makefile @@ -0,0 +1,31 @@ +LIBIEC_HOME=../.. + +PROJECT_BINARY_NAME = server_example_deadband + +PROJECT_SOURCES = server_example_deadband.c +PROJECT_SOURCES += static_model.c + +PROJECT_ICD_FILE = cid_example_deadband.cid + +include $(LIBIEC_HOME)/make/target_system.mk +include $(LIBIEC_HOME)/make/stack_includes.mk + +all: $(PROJECT_BINARY_NAME) + +include $(LIBIEC_HOME)/make/common_targets.mk + +LDLIBS += -lm + +CP = cp + +model: $(PROJECT_ICD_FILE) + java -jar $(LIBIEC_HOME)/tools/model_generator/genmodel.jar $(PROJECT_ICD_FILE) + +$(PROJECT_BINARY_NAME): $(PROJECT_SOURCES) $(LIB_NAME) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROJECT_BINARY_NAME) $(PROJECT_SOURCES) $(INCLUDES) $(LIB_NAME) $(LDLIBS) + +clean: + rm -f $(PROJECT_BINARY_NAME) + + + diff --git a/examples/server_example_deadband/cid_example_deadband.cid b/examples/server_example_deadband/cid_example_deadband.cid new file mode 100644 index 00000000..e023dc0d --- /dev/null +++ b/examples/server_example_deadband/cid_example_deadband.cid @@ -0,0 +1,442 @@ + + +
+ + + +
+ + + +
+

1,1,1,999,1

+

12

+

00000001

+

0001

+

0001

+

0.0.0.0

+

255.255.255.0

+

0.0.0.0

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + on + + + + + + + + on + + + + + 10000 + + + 10 + + + 1000 + + + 10 + + + + + 1000 + + + 10 + + + 1000 + + + 10 + + + + + 10000 + + + 1000 + + + + + -5 + + + + + 5 + + + + + + + 1000 + + + 1000 + + + + + -100 + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + e1 + e2 + e3 + e4 + e5 + + + ExternalAreaClock + LocalAreaClock + GlobalAreaClock + + + not-supported + bay-control + station-control + remote-control + automatic-bay + automatic-station + automatic-remote + maintenance + process + + + status-only + direct-with-normal-security + sbo-with-normal-security + direct-with-enhanced-security + sbo-with-enhanced-security + + + operate-once + operate-many + + + none + m + kg + s + A + K + mol + cd + deg + rad + sr + Gy + q + °C + Sv + F + C + S + H + V + ohm + J + N + Hz + lx + Lm + Wb + T + W + Pa + + + m/s + m/s² + m³/s + m/m³ + M + kg/m³ + m²/s + W/m K + J/K + ppm + 1/s + rad/s + VA + Watts + VAr + theta + cos(theta) + Vs + + As + + A²t + VAh + Wh + VArh + V/Hz + + + Yocto + Zepto + Atto + Femto + Pico + Nano + Micro + Milli + Centi + Deci + zeroNoValue + Deca + Hecto + Kilo + Mega + Giga + Tera + Petra + Exa + Zetta + Yotta + + + normal + high + low + high-high + low-low + + + pulse + persistent + + + Ok + Warning + Alarm + + + on + blocked + test + test/blocked + off + + + on + blocked + test + test/blocked + off + + +
\ No newline at end of file diff --git a/examples/server_example_deadband/server_example_deadband.c b/examples/server_example_deadband/server_example_deadband.c new file mode 100644 index 00000000..a7d18bde --- /dev/null +++ b/examples/server_example_deadband/server_example_deadband.c @@ -0,0 +1,221 @@ +/* + * server_example_deadband.c + * + * - How to handle dead bands for measured values (MV) + * - Use variable and fixed dead band with db and dbRef (edition 2.1) + * - Use fixed dead band with db and rangeC (edition 2) + */ + +#include "iec61850_server.h" +#include "hal_thread.h" +#include +#include +#include +#include + +#include "static_model.h" + +/* import IEC 61850 device model created from SCL-File */ +extern IedModel iedModel; + +static int running = 0; +static IedServer iedServer = NULL; + +void +sigint_handler(int signalId) +{ + running = 0; +} + +static void +connectionHandler (IedServer self, ClientConnection connection, bool connected, void* parameter) +{ + if (connected) + printf("Connection opened\n"); + else + printf("Connection closed\n"); +} + +int +main(int argc, char** argv) +{ + printf("Using libIEC61850 version %s\n", LibIEC61850_getVersionString()); + + /* Create new server configuration object */ + IedServerConfig config = IedServerConfig_create(); + + /* Set buffer size for buffered report control blocks to 200000 bytes */ + IedServerConfig_setReportBufferSize(config, 200000); + + /* Set stack compliance to a specific edition of the standard (WARNING: data model has also to be checked for compliance) */ + IedServerConfig_setEdition(config, IEC_61850_EDITION_2); + + /* disable MMS file service */ + IedServerConfig_enableFileService(config, false); + + /* enable dynamic data set service */ + IedServerConfig_enableDynamicDataSetService(config, true); + + /* disable log service */ + IedServerConfig_enableLogService(config, false); + + /* set maximum number of clients */ + IedServerConfig_setMaxMmsConnections(config, 5); + + /* Create a new IEC 61850 server instance */ + iedServer = IedServer_createWithConfig(&iedModel, NULL, config); + + /* configuration object is no longer required */ + IedServerConfig_destroy(config); + + /* set the identity values for MMS identify service */ + IedServer_setServerIdentity(iedServer, "libiec61850.com", "deadband example", "1.5.0"); + + IedServer_setConnectionIndicationHandler(iedServer, (IedConnectionIndicationHandler) connectionHandler, NULL); + + /* Allow write access to CF parameters (here "db" and "rangeC") */ + IedServer_setWriteAccessPolicy(iedServer, IEC61850_FC_CF, ACCESS_POLICY_ALLOW); + + /* MMS server will be instructed to start listening for client connections. */ + IedServer_start(iedServer, 102); + + if (!IedServer_isRunning(iedServer)) { + printf("Starting server failed (maybe need root permissions or another server is already using the port)! Exit.\n"); + IedServer_destroy(iedServer); + exit(-1); + } + + running = 1; + + signal(SIGINT, sigint_handler); + + float t = 0.f; + + float an1InstMag = 5 * sinf(t); + float an2InstMag = 5 * sinf(t + 1.f); + float an3InstMag = 5 * sinf(t + 2.f); + float an4InstMag = 5 * sinf(t + 3.f); + + float an1Mag = an1InstMag; + float an2Mag = an2InstMag; + float an3Mag = an3InstMag; + float an4Mag = an4InstMag; + + float anIn1DbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_dbRef)); + float anIn1ZeroDbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDbRef)); + float anIn2DbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_dbRef)); + float anIn2ZeroDbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDbRef)); + + while (running) { + uint64_t timestamp = Hal_getTimeInMs(); + + t += 0.001f; + + an1InstMag = 5 * sinf(t); + an2InstMag = 5 * sinf(t + 1.f); + an3InstMag = 5 * sinf(t + 2.f); + an4InstMag = 5 * sinf(t + 3.f); + + Timestamp iecTimestamp; + + Timestamp_clearFlags(&iecTimestamp); + Timestamp_setTimeInMilliseconds(&iecTimestamp, timestamp); + Timestamp_setLeapSecondKnown(&iecTimestamp, true); + + float dbValF; + float minValF; + float maxValF; + + IedServer_lockDataModel(iedServer); + + /* handle AnIn1 (using db and dbRef as in edition 2.1) */ + + dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_db)) / 1000.f; + + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag_f, an1InstMag); + + if (anIn1DbRef == 0) { /* dbRef = 0 */ + if (fabsf(an1InstMag - an1Mag) > (fabsf(an1Mag) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an1Mag = an1InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f, an1Mag); + } + } + else { + if (fabsf(an1InstMag - an1Mag) > (fabsf(anIn1DbRef) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an1Mag = an1InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f, an1Mag); + } + } + + IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_t, &iecTimestamp); + + /* handle AnIn2 (using db and dbRef as in edition 2.1) */ + + dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_db)) / 1000.f; + + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag_f, an2InstMag); + + if (anIn1DbRef == 0) { /* dbRef = 0 */ + if (fabsf(an2InstMag - an2Mag) > (fabsf(an2Mag) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an2Mag = an2InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f, an2Mag); + } + } + else { + if (fabsf(an2InstMag - an2Mag) > (fabsf(anIn2DbRef) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an2Mag = an2InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f, an2Mag); + } + } + + IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_t, &iecTimestamp); + + /* handle AnIn3 (using db and rangeC as in edition 2) */ + + dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_db)) / 1000.f; + minValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min_f)); + maxValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max_f)); + + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag_f, an3InstMag); + + if (fabsf(an3InstMag - an3Mag) > (fabsf(maxValF - minValF) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an3Mag = an3InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_mag_f, an3Mag); + } + + IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_t, &iecTimestamp); + + /* handle AnIn4 (using db and rangeC as in edition 2) */ + + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag_f, an4InstMag); + + dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_db)) / 1000.f; + minValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min_f)); + maxValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max_f)); + + if (fabsf(an4InstMag - an4Mag) > (fabsf(maxValF - minValF) * dbValF * 0.01f)) { + /* dead band condition -> updated "mag" attribute */ + an4Mag = an4InstMag; + IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_mag_f, an4Mag); + } + + IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_t, &iecTimestamp); + + IedServer_unlockDataModel(iedServer); + + Thread_sleep(10); + } + + /* stop MMS server - close TCP server socket and all client sockets */ + IedServer_stop(iedServer); + + /* Cleanup - free all resources */ + IedServer_destroy(iedServer); + + return 0; +} /* main() */ diff --git a/examples/server_example_deadband/static_model.c b/examples/server_example_deadband/static_model.c new file mode 100644 index 00000000..77faa997 --- /dev/null +++ b/examples/server_example_deadband/static_model.c @@ -0,0 +1,1288 @@ +/* + * static_model.c + * + * automatically generated from cid_example_deadband.cid + */ +#include "static_model.h" + +static void initializeValues(); + +extern DataSet iedModelds_LD1_LLN0_AnalogEvents; + + +extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda0; +extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda1; +extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda2; +extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda3; + +DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda0 = { + "LD1", + false, + "AnInGGIO1$MX$AnIn1", + -1, + NULL, + NULL, + &iedModelds_LD1_LLN0_AnalogEvents_fcda1 +}; + +DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda1 = { + "LD1", + false, + "AnInGGIO1$MX$AnIn2", + -1, + NULL, + NULL, + &iedModelds_LD1_LLN0_AnalogEvents_fcda2 +}; + +DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda2 = { + "LD1", + false, + "AnInGGIO1$MX$AnIn3", + -1, + NULL, + NULL, + &iedModelds_LD1_LLN0_AnalogEvents_fcda3 +}; + +DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda3 = { + "LD1", + false, + "AnInGGIO1$MX$AnIn4", + -1, + NULL, + NULL, + NULL +}; + +DataSet iedModelds_LD1_LLN0_AnalogEvents = { + "LD1", + "LLN0$AnalogEvents", + 4, + &iedModelds_LD1_LLN0_AnalogEvents_fcda0, + NULL +}; + +LogicalDevice iedModel_LD1 = { + LogicalDeviceModelType, + "LD1", + (ModelNode*) &iedModel, + NULL, + (ModelNode*) &iedModel_LD1_LLN0 +}; + +LogicalNode iedModel_LD1_LLN0 = { + LogicalNodeModelType, + "LLN0", + (ModelNode*) &iedModel_LD1, + (ModelNode*) &iedModel_LD1_LPHD1, + (ModelNode*) &iedModel_LD1_LLN0_Mod, +}; + +DataObject iedModel_LD1_LLN0_Mod = { + DataObjectModelType, + "Mod", + (ModelNode*) &iedModel_LD1_LLN0, + (ModelNode*) &iedModel_LD1_LLN0_Beh, + (ModelNode*) &iedModel_LD1_LLN0_Mod_stVal, + 0 +}; + +DataAttribute iedModel_LD1_LLN0_Mod_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_LLN0_Mod, + (ModelNode*) &iedModel_LD1_LLN0_Mod_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Mod_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_LLN0_Mod, + (ModelNode*) &iedModel_LD1_LLN0_Mod_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Mod_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_LLN0_Mod, + (ModelNode*) &iedModel_LD1_LLN0_Mod_ctlModel, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Mod_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_LD1_LLN0_Mod, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_LLN0_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_LD1_LLN0, + (ModelNode*) &iedModel_LD1_LLN0_Health, + (ModelNode*) &iedModel_LD1_LLN0_Beh_stVal, + 0 +}; + +DataAttribute iedModel_LD1_LLN0_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_LLN0_Beh, + (ModelNode*) &iedModel_LD1_LLN0_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_LLN0_Beh, + (ModelNode*) &iedModel_LD1_LLN0_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_LLN0_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_LLN0_Health = { + DataObjectModelType, + "Health", + (ModelNode*) &iedModel_LD1_LLN0, + (ModelNode*) &iedModel_LD1_LLN0_NamPlt, + (ModelNode*) &iedModel_LD1_LLN0_Health_stVal, + 0 +}; + +DataAttribute iedModel_LD1_LLN0_Health_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_LLN0_Health, + (ModelNode*) &iedModel_LD1_LLN0_Health_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Health_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_LLN0_Health, + (ModelNode*) &iedModel_LD1_LLN0_Health_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_Health_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_LLN0_Health, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_LLN0_NamPlt = { + DataObjectModelType, + "NamPlt", + (ModelNode*) &iedModel_LD1_LLN0, + NULL, + (ModelNode*) &iedModel_LD1_LLN0_NamPlt_vendor, + 0 +}; + +DataAttribute iedModel_LD1_LLN0_NamPlt_vendor = { + DataAttributeModelType, + "vendor", + (ModelNode*) &iedModel_LD1_LLN0_NamPlt, + (ModelNode*) &iedModel_LD1_LLN0_NamPlt_swRev, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_NamPlt_swRev = { + DataAttributeModelType, + "swRev", + (ModelNode*) &iedModel_LD1_LLN0_NamPlt, + (ModelNode*) &iedModel_LD1_LLN0_NamPlt_d, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_NamPlt_d = { + DataAttributeModelType, + "d", + (ModelNode*) &iedModel_LD1_LLN0_NamPlt, + (ModelNode*) &iedModel_LD1_LLN0_NamPlt_configRev, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LLN0_NamPlt_configRev = { + DataAttributeModelType, + "configRev", + (ModelNode*) &iedModel_LD1_LLN0_NamPlt, + NULL, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +LogicalNode iedModel_LD1_LPHD1 = { + LogicalNodeModelType, + "LPHD1", + (ModelNode*) &iedModel_LD1, + (ModelNode*) &iedModel_LD1_AnInGGIO1, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, +}; + +DataObject iedModel_LD1_LPHD1_PhyNam = { + DataObjectModelType, + "PhyNam", + (ModelNode*) &iedModel_LD1_LPHD1, + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_vendor, + 0 +}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_vendor = { + DataAttributeModelType, + "vendor", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_hwRev, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_hwRev = { + DataAttributeModelType, + "hwRev", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_swRev, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_swRev = { + DataAttributeModelType, + "swRev", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_serNum, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_serNum = { + DataAttributeModelType, + "serNum", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_model, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_model = { + DataAttributeModelType, + "model", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_location, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_location = { + DataAttributeModelType, + "location", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_name, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_name = { + DataAttributeModelType, + "name", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_owner, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyNam_owner = { + DataAttributeModelType, + "owner", + (ModelNode*) &iedModel_LD1_LPHD1_PhyNam, + NULL, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_LPHD1_PhyHealth = { + DataObjectModelType, + "PhyHealth", + (ModelNode*) &iedModel_LD1_LPHD1, + (ModelNode*) &iedModel_LD1_LPHD1_Proxy, + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_stVal, + 0 +}; + +DataAttribute iedModel_LD1_LPHD1_PhyHealth_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth, + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyHealth_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth, + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_PhyHealth_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_LPHD1_Proxy = { + DataObjectModelType, + "Proxy", + (ModelNode*) &iedModel_LD1_LPHD1, + NULL, + (ModelNode*) &iedModel_LD1_LPHD1_Proxy_stVal, + 0 +}; + +DataAttribute iedModel_LD1_LPHD1_Proxy_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_LPHD1_Proxy, + (ModelNode*) &iedModel_LD1_LPHD1_Proxy_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_Proxy_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_LPHD1_Proxy, + (ModelNode*) &iedModel_LD1_LPHD1_Proxy_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_Proxy_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_LPHD1_Proxy, + (ModelNode*) &iedModel_LD1_LPHD1_Proxy_d, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_LPHD1_Proxy_d = { + DataAttributeModelType, + "d", + (ModelNode*) &iedModel_LD1_LPHD1_Proxy, + NULL, + NULL, + 0, + IEC61850_FC_DC, + IEC61850_VISIBLE_STRING_255, + 0, + NULL, + 0}; + +LogicalNode iedModel_LD1_AnInGGIO1 = { + LogicalNodeModelType, + "AnInGGIO1", + (ModelNode*) &iedModel_LD1, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh, +}; + +DataObject iedModel_LD1_AnInGGIO1_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_LD1_AnInGGIO1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_stVal, + 0 +}; + +DataAttribute iedModel_LD1_AnInGGIO1_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh, + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh, + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_LD1_AnInGGIO1_AnIn1 = { + DataObjectModelType, + "AnIn1", + (ModelNode*) &iedModel_LD1_AnInGGIO1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag, + 0 +}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag = { + DataAttributeModelType, + "instMag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag = { + DataAttributeModelType, + "mag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_q, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_t, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_db, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_db = { + DataAttributeModelType, + "db", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_zeroDb, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDb = { + DataAttributeModelType, + "zeroDb", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_dbRef, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_dbRef = { + DataAttributeModelType, + "dbRef", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef = { + DataAttributeModelType, + "zeroDbRef", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_LD1_AnInGGIO1_AnIn2 = { + DataObjectModelType, + "AnIn2", + (ModelNode*) &iedModel_LD1_AnInGGIO1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag, + 0 +}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag = { + DataAttributeModelType, + "instMag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag = { + DataAttributeModelType, + "mag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_q, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_t, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_db, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_db = { + DataAttributeModelType, + "db", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_zeroDb, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDb = { + DataAttributeModelType, + "zeroDb", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_dbRef, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_dbRef = { + DataAttributeModelType, + "dbRef", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef = { + DataAttributeModelType, + "zeroDbRef", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_LD1_AnInGGIO1_AnIn3 = { + DataObjectModelType, + "AnIn3", + (ModelNode*) &iedModel_LD1_AnInGGIO1, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag, + 0 +}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag = { + DataAttributeModelType, + "instMag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag = { + DataAttributeModelType, + "mag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_q, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_t, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_db, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_db = { + DataAttributeModelType, + "db", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_zeroDb, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_zeroDb = { + DataAttributeModelType, + "zeroDb", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC = { + DataAttributeModelType, + "rangeC", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min = { + DataAttributeModelType, + "min", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max = { + DataAttributeModelType, + "max", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_LD1_AnInGGIO1_AnIn4 = { + DataObjectModelType, + "AnIn4", + (ModelNode*) &iedModel_LD1_AnInGGIO1, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag, + 0 +}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag = { + DataAttributeModelType, + "instMag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag = { + DataAttributeModelType, + "mag", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_q, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag_f, + 0, + IEC61850_FC_MX, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag, + NULL, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_t, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_db, + NULL, + 0, + IEC61850_FC_MX, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_db = { + DataAttributeModelType, + "db", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_zeroDb, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_zeroDb = { + DataAttributeModelType, + "zeroDb", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_INT32U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC = { + DataAttributeModelType, + "rangeC", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min = { + DataAttributeModelType, + "min", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max = { + DataAttributeModelType, + "max", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC, + NULL, + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f, + 0, + IEC61850_FC_CF, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f = { + DataAttributeModelType, + "f", + (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max, + NULL, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_FLOAT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +extern ReportControlBlock iedModel_LD1_LLN0_report0; +extern ReportControlBlock iedModel_LD1_LLN0_report1; +extern ReportControlBlock iedModel_LD1_LLN0_report2; +extern ReportControlBlock iedModel_LD1_LLN0_report3; + +ReportControlBlock iedModel_LD1_LLN0_report0 = {&iedModel_LD1_LLN0, "BRCB_Events01", NULL, true, "AnalogEvents", 1, 19, 247, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report1}; +ReportControlBlock iedModel_LD1_LLN0_report1 = {&iedModel_LD1_LLN0, "BRCB_Events02", NULL, true, "AnalogEvents", 1, 19, 247, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report2}; +ReportControlBlock iedModel_LD1_LLN0_report2 = {&iedModel_LD1_LLN0, "URCB_Events01", NULL, false, "AnalogEvents", 1, 19, 183, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report3}; +ReportControlBlock iedModel_LD1_LLN0_report3 = {&iedModel_LD1_LLN0, "URCB_Events02", NULL, false, "AnalogEvents", 1, 19, 183, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, NULL}; + + + + + + + +IedModel iedModel = { + "IED1", + &iedModel_LD1, + &iedModelds_LD1_LLN0_AnalogEvents, + &iedModel_LD1_LLN0_report0, + NULL, + NULL, + NULL, + NULL, + NULL, + initializeValues +}; + +static void +initializeValues() +{ + +iedModel_LD1_LLN0_Mod_stVal.mmsValue = MmsValue_newIntegerFromInt32(1); + +iedModel_LD1_AnInGGIO1_Beh_stVal.mmsValue = MmsValue_newIntegerFromInt32(1); + +iedModel_LD1_AnInGGIO1_AnIn1_db.mmsValue = MmsValue_newUnsignedFromUint32(10000); + +iedModel_LD1_AnInGGIO1_AnIn1_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn1_dbRef.mmsValue = MmsValue_newFloat(10.0); + +iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef.mmsValue = MmsValue_newFloat(10.0); + +iedModel_LD1_AnInGGIO1_AnIn2_db.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn2_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn2_dbRef.mmsValue = MmsValue_newFloat(10.0); + +iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef.mmsValue = MmsValue_newFloat(10.0); + +iedModel_LD1_AnInGGIO1_AnIn3_db.mmsValue = MmsValue_newUnsignedFromUint32(10000); + +iedModel_LD1_AnInGGIO1_AnIn3_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f.mmsValue = MmsValue_newFloat(-5.0); + +iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f.mmsValue = MmsValue_newFloat(5.0); + +iedModel_LD1_AnInGGIO1_AnIn4_db.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn4_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000); + +iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f.mmsValue = MmsValue_newFloat(-100.0); + +iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f.mmsValue = MmsValue_newFloat(100.0); +} diff --git a/examples/server_example_deadband/static_model.h b/examples/server_example_deadband/static_model.h new file mode 100644 index 00000000..3be3f25a --- /dev/null +++ b/examples/server_example_deadband/static_model.h @@ -0,0 +1,207 @@ +/* + * static_model.h + * + * automatically generated from cid_example_deadband.cid + */ + +#ifndef STATIC_MODEL_H_ +#define STATIC_MODEL_H_ + +#include +#include "iec61850_model.h" + +extern IedModel iedModel; +extern LogicalDevice iedModel_LD1; +extern LogicalNode iedModel_LD1_LLN0; +extern DataObject iedModel_LD1_LLN0_Mod; +extern DataAttribute iedModel_LD1_LLN0_Mod_stVal; +extern DataAttribute iedModel_LD1_LLN0_Mod_q; +extern DataAttribute iedModel_LD1_LLN0_Mod_t; +extern DataAttribute iedModel_LD1_LLN0_Mod_ctlModel; +extern DataObject iedModel_LD1_LLN0_Beh; +extern DataAttribute iedModel_LD1_LLN0_Beh_stVal; +extern DataAttribute iedModel_LD1_LLN0_Beh_q; +extern DataAttribute iedModel_LD1_LLN0_Beh_t; +extern DataObject iedModel_LD1_LLN0_Health; +extern DataAttribute iedModel_LD1_LLN0_Health_stVal; +extern DataAttribute iedModel_LD1_LLN0_Health_q; +extern DataAttribute iedModel_LD1_LLN0_Health_t; +extern DataObject iedModel_LD1_LLN0_NamPlt; +extern DataAttribute iedModel_LD1_LLN0_NamPlt_vendor; +extern DataAttribute iedModel_LD1_LLN0_NamPlt_swRev; +extern DataAttribute iedModel_LD1_LLN0_NamPlt_d; +extern DataAttribute iedModel_LD1_LLN0_NamPlt_configRev; +extern LogicalNode iedModel_LD1_LPHD1; +extern DataObject iedModel_LD1_LPHD1_PhyNam; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_vendor; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_hwRev; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_swRev; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_serNum; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_model; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_location; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_name; +extern DataAttribute iedModel_LD1_LPHD1_PhyNam_owner; +extern DataObject iedModel_LD1_LPHD1_PhyHealth; +extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_stVal; +extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_q; +extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_t; +extern DataObject iedModel_LD1_LPHD1_Proxy; +extern DataAttribute iedModel_LD1_LPHD1_Proxy_stVal; +extern DataAttribute iedModel_LD1_LPHD1_Proxy_q; +extern DataAttribute iedModel_LD1_LPHD1_Proxy_t; +extern DataAttribute iedModel_LD1_LPHD1_Proxy_d; +extern LogicalNode iedModel_LD1_AnInGGIO1; +extern DataObject iedModel_LD1_AnInGGIO1_Beh; +extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_stVal; +extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_q; +extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_t; +extern DataObject iedModel_LD1_AnInGGIO1_AnIn1; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_q; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_t; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_db; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDb; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_dbRef; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef; +extern DataObject iedModel_LD1_AnInGGIO1_AnIn2; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_q; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_t; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_db; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDb; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_dbRef; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef; +extern DataObject iedModel_LD1_AnInGGIO1_AnIn3; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_q; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_t; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_db; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_zeroDb; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f; +extern DataObject iedModel_LD1_AnInGGIO1_AnIn4; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_q; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_t; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_db; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_zeroDb; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max; +extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f; + + + +#define IEDMODEL_LD1 (&iedModel_LD1) +#define IEDMODEL_LD1_LLN0 (&iedModel_LD1_LLN0) +#define IEDMODEL_LD1_LLN0_Mod (&iedModel_LD1_LLN0_Mod) +#define IEDMODEL_LD1_LLN0_Mod_stVal (&iedModel_LD1_LLN0_Mod_stVal) +#define IEDMODEL_LD1_LLN0_Mod_q (&iedModel_LD1_LLN0_Mod_q) +#define IEDMODEL_LD1_LLN0_Mod_t (&iedModel_LD1_LLN0_Mod_t) +#define IEDMODEL_LD1_LLN0_Mod_ctlModel (&iedModel_LD1_LLN0_Mod_ctlModel) +#define IEDMODEL_LD1_LLN0_Beh (&iedModel_LD1_LLN0_Beh) +#define IEDMODEL_LD1_LLN0_Beh_stVal (&iedModel_LD1_LLN0_Beh_stVal) +#define IEDMODEL_LD1_LLN0_Beh_q (&iedModel_LD1_LLN0_Beh_q) +#define IEDMODEL_LD1_LLN0_Beh_t (&iedModel_LD1_LLN0_Beh_t) +#define IEDMODEL_LD1_LLN0_Health (&iedModel_LD1_LLN0_Health) +#define IEDMODEL_LD1_LLN0_Health_stVal (&iedModel_LD1_LLN0_Health_stVal) +#define IEDMODEL_LD1_LLN0_Health_q (&iedModel_LD1_LLN0_Health_q) +#define IEDMODEL_LD1_LLN0_Health_t (&iedModel_LD1_LLN0_Health_t) +#define IEDMODEL_LD1_LLN0_NamPlt (&iedModel_LD1_LLN0_NamPlt) +#define IEDMODEL_LD1_LLN0_NamPlt_vendor (&iedModel_LD1_LLN0_NamPlt_vendor) +#define IEDMODEL_LD1_LLN0_NamPlt_swRev (&iedModel_LD1_LLN0_NamPlt_swRev) +#define IEDMODEL_LD1_LLN0_NamPlt_d (&iedModel_LD1_LLN0_NamPlt_d) +#define IEDMODEL_LD1_LLN0_NamPlt_configRev (&iedModel_LD1_LLN0_NamPlt_configRev) +#define IEDMODEL_LD1_LPHD1 (&iedModel_LD1_LPHD1) +#define IEDMODEL_LD1_LPHD1_PhyNam (&iedModel_LD1_LPHD1_PhyNam) +#define IEDMODEL_LD1_LPHD1_PhyNam_vendor (&iedModel_LD1_LPHD1_PhyNam_vendor) +#define IEDMODEL_LD1_LPHD1_PhyNam_hwRev (&iedModel_LD1_LPHD1_PhyNam_hwRev) +#define IEDMODEL_LD1_LPHD1_PhyNam_swRev (&iedModel_LD1_LPHD1_PhyNam_swRev) +#define IEDMODEL_LD1_LPHD1_PhyNam_serNum (&iedModel_LD1_LPHD1_PhyNam_serNum) +#define IEDMODEL_LD1_LPHD1_PhyNam_model (&iedModel_LD1_LPHD1_PhyNam_model) +#define IEDMODEL_LD1_LPHD1_PhyNam_location (&iedModel_LD1_LPHD1_PhyNam_location) +#define IEDMODEL_LD1_LPHD1_PhyNam_name (&iedModel_LD1_LPHD1_PhyNam_name) +#define IEDMODEL_LD1_LPHD1_PhyNam_owner (&iedModel_LD1_LPHD1_PhyNam_owner) +#define IEDMODEL_LD1_LPHD1_PhyHealth (&iedModel_LD1_LPHD1_PhyHealth) +#define IEDMODEL_LD1_LPHD1_PhyHealth_stVal (&iedModel_LD1_LPHD1_PhyHealth_stVal) +#define IEDMODEL_LD1_LPHD1_PhyHealth_q (&iedModel_LD1_LPHD1_PhyHealth_q) +#define IEDMODEL_LD1_LPHD1_PhyHealth_t (&iedModel_LD1_LPHD1_PhyHealth_t) +#define IEDMODEL_LD1_LPHD1_Proxy (&iedModel_LD1_LPHD1_Proxy) +#define IEDMODEL_LD1_LPHD1_Proxy_stVal (&iedModel_LD1_LPHD1_Proxy_stVal) +#define IEDMODEL_LD1_LPHD1_Proxy_q (&iedModel_LD1_LPHD1_Proxy_q) +#define IEDMODEL_LD1_LPHD1_Proxy_t (&iedModel_LD1_LPHD1_Proxy_t) +#define IEDMODEL_LD1_LPHD1_Proxy_d (&iedModel_LD1_LPHD1_Proxy_d) +#define IEDMODEL_LD1_AnInGGIO1 (&iedModel_LD1_AnInGGIO1) +#define IEDMODEL_LD1_AnInGGIO1_Beh (&iedModel_LD1_AnInGGIO1_Beh) +#define IEDMODEL_LD1_AnInGGIO1_Beh_stVal (&iedModel_LD1_AnInGGIO1_Beh_stVal) +#define IEDMODEL_LD1_AnInGGIO1_Beh_q (&iedModel_LD1_AnInGGIO1_Beh_q) +#define IEDMODEL_LD1_AnInGGIO1_Beh_t (&iedModel_LD1_AnInGGIO1_Beh_t) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1 (&iedModel_LD1_AnInGGIO1_AnIn1) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag (&iedModel_LD1_AnInGGIO1_AnIn1_instMag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn1_instMag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_mag (&iedModel_LD1_AnInGGIO1_AnIn1_mag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f (&iedModel_LD1_AnInGGIO1_AnIn1_mag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_q (&iedModel_LD1_AnInGGIO1_AnIn1_q) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_t (&iedModel_LD1_AnInGGIO1_AnIn1_t) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_db (&iedModel_LD1_AnInGGIO1_AnIn1_db) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn1_zeroDb) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_dbRef (&iedModel_LD1_AnInGGIO1_AnIn1_dbRef) +#define IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDbRef (&iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2 (&iedModel_LD1_AnInGGIO1_AnIn2) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag (&iedModel_LD1_AnInGGIO1_AnIn2_instMag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn2_instMag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_mag (&iedModel_LD1_AnInGGIO1_AnIn2_mag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f (&iedModel_LD1_AnInGGIO1_AnIn2_mag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_q (&iedModel_LD1_AnInGGIO1_AnIn2_q) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_t (&iedModel_LD1_AnInGGIO1_AnIn2_t) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_db (&iedModel_LD1_AnInGGIO1_AnIn2_db) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn2_zeroDb) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_dbRef (&iedModel_LD1_AnInGGIO1_AnIn2_dbRef) +#define IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDbRef (&iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3 (&iedModel_LD1_AnInGGIO1_AnIn3) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag (&iedModel_LD1_AnInGGIO1_AnIn3_instMag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn3_instMag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_mag (&iedModel_LD1_AnInGGIO1_AnIn3_mag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_mag_f (&iedModel_LD1_AnInGGIO1_AnIn3_mag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_q (&iedModel_LD1_AnInGGIO1_AnIn3_q) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_t (&iedModel_LD1_AnInGGIO1_AnIn3_t) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_db (&iedModel_LD1_AnInGGIO1_AnIn3_db) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn3_zeroDb) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min_f (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max) +#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max_f (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4 (&iedModel_LD1_AnInGGIO1_AnIn4) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag (&iedModel_LD1_AnInGGIO1_AnIn4_instMag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn4_instMag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_mag (&iedModel_LD1_AnInGGIO1_AnIn4_mag) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_mag_f (&iedModel_LD1_AnInGGIO1_AnIn4_mag_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_q (&iedModel_LD1_AnInGGIO1_AnIn4_q) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_t (&iedModel_LD1_AnInGGIO1_AnIn4_t) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_db (&iedModel_LD1_AnInGGIO1_AnIn4_db) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn4_zeroDb) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min_f (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max) +#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max_f (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f) + +#endif /* STATIC_MODEL_H_ */ +