diff --git a/CHANGELOG b/CHANGELOG index 3f5c1f9..d86de30 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +Changes to version 0.9.3 +------------------------ +- .NET API: server side API + Changes to version 0.9.2.1 -------------------------- - server: fixed some memory access problens in dynamic model LCB diff --git a/demos/beaglebone/beagle_demo.icd b/demos/beaglebone/beagle_demo.icd index df06bd5..b76feba 100644 --- a/demos/beaglebone/beagle_demo.icd +++ b/demos/beaglebone/beagle_demo.icd @@ -72,7 +72,12 @@ - + + + + + + @@ -125,6 +130,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -274,6 +432,17 @@ + + + + + + + + + + + on @@ -312,5 +481,66 @@ maintenance process + + + not-ready + validated + ready + running + + + + Time + WeekDay + WeekOfYear + DayOfMonth + DayOfYear + + + + Hour + Day + Week + Month + Year + + + + reserved + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + Sunday + + + + reserved + January + February + March + April + May + June + July + August + September + October + November + December + + + + MS + PER_CYCLE + CYCLE + DAY + WEEK + MONTH + YEAR + EXTERNAL + diff --git a/demos/beaglebone/static_model.c b/demos/beaglebone/static_model.c index 50ce8fb..0081d63 100644 --- a/demos/beaglebone/static_model.c +++ b/demos/beaglebone/static_model.c @@ -1,7 +1,7 @@ /* * static_model.c * - * automatically generated from beagle_demo.iid + * automatically generated from beagle_demo.icd */ #include "static_model.h" @@ -1918,7 +1918,7 @@ LogicalNode iedModel_GenericIO_TIM_GAPC1 = { LogicalNodeModelType, "TIM_GAPC1", (ModelNode*) &iedModel_GenericIO, - NULL, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh, }; @@ -2388,6 +2388,5182 @@ DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel = { NULL, 0}; +LogicalNode iedModel_GenericIO_T60S_FSCH1 = { + LogicalNodeModelType, + "T60S_FSCH1", + (ModelNode*) &iedModel_GenericIO, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh, +}; + +DataObject iedModel_GenericIO_T60S_FSCH1_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_SchdSt = { + DataObjectModelType, + "SchdSt", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdSt, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_SchdEntr = { + DataObjectModelType, + "SchdEntr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdEntr, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPS = { + DataObjectModelType, + "ValSPS", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPS, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_VldReq = { + DataObjectModelType, + "VldReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_VldReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_EnaReq = { + DataObjectModelType, + "EnaReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EnaReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_EdtReq = { + DataObjectModelType, + "EdtReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_EdtReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_DsaReq = { + DataObjectModelType, + "DsaReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdPrio, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_DsaReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_SchdPrio = { + DataObjectModelType, + "SchdPrio", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_NumEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdPrio_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdPrio_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdPrio, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_NumEntr = { + DataObjectModelType, + "NumEntr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdIntv, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_NumEntr_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_NumEntr_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_NumEntr, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_SchdIntv = { + DataObjectModelType, + "SchdIntv", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdIntv_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdIntv_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdIntv, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG1 = { + DataObjectModelType, + "ValSPG1", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG1_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG1_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG1, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG2 = { + DataObjectModelType, + "ValSPG2", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG3, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG2_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG2_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG2, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG3 = { + DataObjectModelType, + "ValSPG3", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG4, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG3_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG3_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG3, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG4 = { + DataObjectModelType, + "ValSPG4", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG5, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG4_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG4_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG4, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG5 = { + DataObjectModelType, + "ValSPG5", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG6, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG5_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG5_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG5, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG6 = { + DataObjectModelType, + "ValSPG6", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG7, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG6_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG6_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG6, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG7 = { + DataObjectModelType, + "ValSPG7", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG8, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG7_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG7_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG7, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG8 = { + DataObjectModelType, + "ValSPG8", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG9, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG8_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG8_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG8, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG9 = { + DataObjectModelType, + "ValSPG9", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG10, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG9_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG9_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG9, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG10 = { + DataObjectModelType, + "ValSPG10", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG11, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG10_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG10_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG10, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG11 = { + DataObjectModelType, + "ValSPG11", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG12, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG11_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG11_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG11, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG12 = { + DataObjectModelType, + "ValSPG12", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG13, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG12_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG12_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG12, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG13 = { + DataObjectModelType, + "ValSPG13", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG14, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG13_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG13_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG13, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG14 = { + DataObjectModelType, + "ValSPG14", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG15, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG14_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG14_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG14, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG15 = { + DataObjectModelType, + "ValSPG15", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG16, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG15_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG15_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG15, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG16 = { + DataObjectModelType, + "ValSPG16", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG17, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG16_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG16_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG16, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG17 = { + DataObjectModelType, + "ValSPG17", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG18, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG17_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG17_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG17, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG18 = { + DataObjectModelType, + "ValSPG18", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG19, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG18_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG18_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG18, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG19 = { + DataObjectModelType, + "ValSPG19", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG20, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG19_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG19_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG19, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG20 = { + DataObjectModelType, + "ValSPG20", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG21, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG20_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG20_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG20, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG21 = { + DataObjectModelType, + "ValSPG21", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG22, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG21_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG21_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG21, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG22 = { + DataObjectModelType, + "ValSPG22", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG23, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG22_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG22_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG22, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG23 = { + DataObjectModelType, + "ValSPG23", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG24, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG23_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG23_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG23, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG24 = { + DataObjectModelType, + "ValSPG24", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG25, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG24_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG24_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG24, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG25 = { + DataObjectModelType, + "ValSPG25", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG26, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG25_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG25_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG25, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG26 = { + DataObjectModelType, + "ValSPG26", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG27, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG26_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG26_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG26, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG27 = { + DataObjectModelType, + "ValSPG27", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG28, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG27_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG27_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG27, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG28 = { + DataObjectModelType, + "ValSPG28", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG29, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG28_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG28_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG28, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG29 = { + DataObjectModelType, + "ValSPG29", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG30, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG29_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG29_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG29, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG30 = { + DataObjectModelType, + "ValSPG30", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG31, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG30_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG30_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG30, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG31 = { + DataObjectModelType, + "ValSPG31", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG32, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG31_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG31_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG31, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG32 = { + DataObjectModelType, + "ValSPG32", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG33, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG32_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG32_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG32, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG33 = { + DataObjectModelType, + "ValSPG33", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG34, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG33_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG33_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG33, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG34 = { + DataObjectModelType, + "ValSPG34", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG35, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG34_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG34_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG34, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG35 = { + DataObjectModelType, + "ValSPG35", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG36, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG35_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG35_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG35, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG36 = { + DataObjectModelType, + "ValSPG36", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG37, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG36_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG36_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG36, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG37 = { + DataObjectModelType, + "ValSPG37", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG38, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG37_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG37_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG37, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG38 = { + DataObjectModelType, + "ValSPG38", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG39, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG38_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG38_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG38, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG39 = { + DataObjectModelType, + "ValSPG39", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG40, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG39_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG39_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG39, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG40 = { + DataObjectModelType, + "ValSPG40", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG41, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG40_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG40_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG40, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG41 = { + DataObjectModelType, + "ValSPG41", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG42, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG41_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG41_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG41, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG42 = { + DataObjectModelType, + "ValSPG42", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG43, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG42_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG42_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG42, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG43 = { + DataObjectModelType, + "ValSPG43", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG44, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG43_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG43_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG43, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG44 = { + DataObjectModelType, + "ValSPG44", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG45, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG44_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG44_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG44, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG45 = { + DataObjectModelType, + "ValSPG45", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG46, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG45_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG45_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG45, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG46 = { + DataObjectModelType, + "ValSPG46", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG47, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG46_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG46_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG46, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG47 = { + DataObjectModelType, + "ValSPG47", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG48, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG47_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG47_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG47, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG48 = { + DataObjectModelType, + "ValSPG48", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG49, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG48_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG48_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG48, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG49 = { + DataObjectModelType, + "ValSPG49", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG50, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG49_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG49_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG49, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG50 = { + DataObjectModelType, + "ValSPG50", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG51, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG50_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG50_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG50, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG51 = { + DataObjectModelType, + "ValSPG51", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG52, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG51_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG51_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG51, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG52 = { + DataObjectModelType, + "ValSPG52", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG53, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG52_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG52_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG52, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG53 = { + DataObjectModelType, + "ValSPG53", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG54, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG53_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG53_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG53, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG54 = { + DataObjectModelType, + "ValSPG54", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG55, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG54_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG54_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG54, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG55 = { + DataObjectModelType, + "ValSPG55", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG56, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG55_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG55_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG55, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG56 = { + DataObjectModelType, + "ValSPG56", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG57, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG56_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG56_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG56, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG57 = { + DataObjectModelType, + "ValSPG57", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG58, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG57_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG57_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG57, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG58 = { + DataObjectModelType, + "ValSPG58", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG59, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG58_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG58_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG58, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG59 = { + DataObjectModelType, + "ValSPG59", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG60, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG59_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG59_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG59, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG60 = { + DataObjectModelType, + "ValSPG60", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG60_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG60_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_ValSPG60, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_StrTm = { + DataObjectModelType, + "StrTm", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvPer, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setTm, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setTm = { + DataAttributeModelType, + "setTm", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_TIMESTAMP, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal = { + DataAttributeModelType, + "setCal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm, + NULL, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occ, + 0, + IEC61850_FC_SP, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occ = { + DataAttributeModelType, + "occ", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occType, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT16U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occType = { + DataAttributeModelType, + "occType", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occPer, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occPer = { + DataAttributeModelType, + "occPer", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_weekDay, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_weekDay = { + DataAttributeModelType, + "weekDay", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_month, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_month = { + DataAttributeModelType, + "month", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_day, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_day = { + DataAttributeModelType, + "day", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_hr, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_hr = { + DataAttributeModelType, + "hr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_mn, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_mn = { + DataAttributeModelType, + "mn", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_StrTm_setCal, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_IntvPer = { + DataObjectModelType, + "IntvPer", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvTyp, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvPer_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_IntvPer_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvPer, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_IntvTyp = { + DataObjectModelType, + "IntvTyp", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdReuse, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvTyp_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_IntvTyp_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_IntvTyp, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH1_SchdReuse = { + DataObjectModelType, + "SchdReuse", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1, + NULL, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdReuse_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdReuse_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH1_SchdReuse, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +LogicalNode iedModel_GenericIO_T60S_FSCH2 = { + LogicalNodeModelType, + "T60S_FSCH2", + (ModelNode*) &iedModel_GenericIO, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh, +}; + +DataObject iedModel_GenericIO_T60S_FSCH2_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_SchdSt = { + DataObjectModelType, + "SchdSt", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdSt, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_SchdEntr = { + DataObjectModelType, + "SchdEntr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdEntr, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPS = { + DataObjectModelType, + "ValSPS", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPS, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_VldReq = { + DataObjectModelType, + "VldReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_VldReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_EnaReq = { + DataObjectModelType, + "EnaReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EnaReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_EdtReq = { + DataObjectModelType, + "EdtReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_EdtReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_DsaReq = { + DataObjectModelType, + "DsaReq", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdPrio, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_ctlModel, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlVal, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + IEC61850_CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + IEC61850_CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq_t, + NULL, + 0, + IEC61850_FC_CF, + IEC61850_ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_DsaReq, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_SchdPrio = { + DataObjectModelType, + "SchdPrio", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_NumEntr, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdPrio_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdPrio_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdPrio, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_NumEntr = { + DataObjectModelType, + "NumEntr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdIntv, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_NumEntr_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_NumEntr_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_NumEntr, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_SchdIntv = { + DataObjectModelType, + "SchdIntv", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG1, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdIntv_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdIntv_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdIntv, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG1 = { + DataObjectModelType, + "ValSPG1", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG1_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG1_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG1, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG2 = { + DataObjectModelType, + "ValSPG2", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG3, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG2_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG2_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG2, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG3 = { + DataObjectModelType, + "ValSPG3", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG4, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG3_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG3_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG3, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG4 = { + DataObjectModelType, + "ValSPG4", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG5, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG4_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG4_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG4, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG5 = { + DataObjectModelType, + "ValSPG5", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG6, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG5_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG5_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG5, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG6 = { + DataObjectModelType, + "ValSPG6", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG7, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG6_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG6_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG6, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG7 = { + DataObjectModelType, + "ValSPG7", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG8, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG7_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG7_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG7, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG8 = { + DataObjectModelType, + "ValSPG8", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG9, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG8_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG8_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG8, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG9 = { + DataObjectModelType, + "ValSPG9", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG10, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG9_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG9_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG9, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG10 = { + DataObjectModelType, + "ValSPG10", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG11, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG10_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG10_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG10, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG11 = { + DataObjectModelType, + "ValSPG11", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG12, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG11_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG11_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG11, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG12 = { + DataObjectModelType, + "ValSPG12", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG13, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG12_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG12_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG12, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG13 = { + DataObjectModelType, + "ValSPG13", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG14, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG13_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG13_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG13, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG14 = { + DataObjectModelType, + "ValSPG14", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG15, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG14_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG14_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG14, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG15 = { + DataObjectModelType, + "ValSPG15", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG16, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG15_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG15_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG15, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG16 = { + DataObjectModelType, + "ValSPG16", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG17, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG16_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG16_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG16, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG17 = { + DataObjectModelType, + "ValSPG17", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG18, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG17_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG17_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG17, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG18 = { + DataObjectModelType, + "ValSPG18", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG19, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG18_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG18_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG18, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG19 = { + DataObjectModelType, + "ValSPG19", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG20, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG19_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG19_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG19, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG20 = { + DataObjectModelType, + "ValSPG20", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG21, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG20_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG20_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG20, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG21 = { + DataObjectModelType, + "ValSPG21", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG22, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG21_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG21_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG21, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG22 = { + DataObjectModelType, + "ValSPG22", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG23, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG22_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG22_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG22, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG23 = { + DataObjectModelType, + "ValSPG23", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG24, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG23_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG23_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG23, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG24 = { + DataObjectModelType, + "ValSPG24", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG25, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG24_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG24_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG24, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG25 = { + DataObjectModelType, + "ValSPG25", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG26, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG25_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG25_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG25, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG26 = { + DataObjectModelType, + "ValSPG26", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG27, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG26_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG26_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG26, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG27 = { + DataObjectModelType, + "ValSPG27", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG28, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG27_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG27_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG27, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG28 = { + DataObjectModelType, + "ValSPG28", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG29, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG28_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG28_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG28, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG29 = { + DataObjectModelType, + "ValSPG29", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG30, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG29_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG29_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG29, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG30 = { + DataObjectModelType, + "ValSPG30", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG31, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG30_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG30_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG30, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG31 = { + DataObjectModelType, + "ValSPG31", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG32, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG31_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG31_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG31, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG32 = { + DataObjectModelType, + "ValSPG32", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG33, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG32_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG32_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG32, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG33 = { + DataObjectModelType, + "ValSPG33", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG34, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG33_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG33_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG33, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG34 = { + DataObjectModelType, + "ValSPG34", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG35, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG34_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG34_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG34, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG35 = { + DataObjectModelType, + "ValSPG35", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG36, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG35_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG35_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG35, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG36 = { + DataObjectModelType, + "ValSPG36", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG37, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG36_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG36_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG36, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG37 = { + DataObjectModelType, + "ValSPG37", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG38, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG37_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG37_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG37, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG38 = { + DataObjectModelType, + "ValSPG38", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG39, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG38_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG38_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG38, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG39 = { + DataObjectModelType, + "ValSPG39", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG40, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG39_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG39_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG39, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG40 = { + DataObjectModelType, + "ValSPG40", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG41, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG40_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG40_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG40, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG41 = { + DataObjectModelType, + "ValSPG41", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG42, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG41_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG41_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG41, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG42 = { + DataObjectModelType, + "ValSPG42", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG43, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG42_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG42_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG42, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG43 = { + DataObjectModelType, + "ValSPG43", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG44, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG43_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG43_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG43, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG44 = { + DataObjectModelType, + "ValSPG44", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG45, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG44_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG44_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG44, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG45 = { + DataObjectModelType, + "ValSPG45", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG46, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG45_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG45_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG45, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG46 = { + DataObjectModelType, + "ValSPG46", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG47, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG46_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG46_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG46, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG47 = { + DataObjectModelType, + "ValSPG47", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG48, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG47_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG47_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG47, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG48 = { + DataObjectModelType, + "ValSPG48", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG49, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG48_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG48_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG48, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG49 = { + DataObjectModelType, + "ValSPG49", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG50, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG49_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG49_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG49, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG50 = { + DataObjectModelType, + "ValSPG50", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG51, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG50_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG50_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG50, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG51 = { + DataObjectModelType, + "ValSPG51", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG52, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG51_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG51_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG51, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG52 = { + DataObjectModelType, + "ValSPG52", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG53, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG52_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG52_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG52, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG53 = { + DataObjectModelType, + "ValSPG53", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG54, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG53_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG53_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG53, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG54 = { + DataObjectModelType, + "ValSPG54", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG55, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG54_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG54_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG54, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG55 = { + DataObjectModelType, + "ValSPG55", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG56, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG55_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG55_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG55, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG56 = { + DataObjectModelType, + "ValSPG56", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG57, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG56_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG56_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG56, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG57 = { + DataObjectModelType, + "ValSPG57", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG58, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG57_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG57_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG57, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG58 = { + DataObjectModelType, + "ValSPG58", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG59, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG58_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG58_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG58, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG59 = { + DataObjectModelType, + "ValSPG59", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG60, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG59_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG59_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG59, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG60 = { + DataObjectModelType, + "ValSPG60", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG60_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG60_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_ValSPG60, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_StrTm = { + DataObjectModelType, + "StrTm", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvPer, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setTm, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setTm = { + DataAttributeModelType, + "setTm", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_TIMESTAMP, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal = { + DataAttributeModelType, + "setCal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm, + NULL, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occ, + 0, + IEC61850_FC_SP, + IEC61850_CONSTRUCTED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occ = { + DataAttributeModelType, + "occ", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occType, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT16U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occType = { + DataAttributeModelType, + "occType", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occPer, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occPer = { + DataAttributeModelType, + "occPer", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_weekDay, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_weekDay = { + DataAttributeModelType, + "weekDay", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_month, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_month = { + DataAttributeModelType, + "month", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_day, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_day = { + DataAttributeModelType, + "day", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_hr, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_hr = { + DataAttributeModelType, + "hr", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_mn, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_mn = { + DataAttributeModelType, + "mn", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_StrTm_setCal, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT8U, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_IntvPer = { + DataObjectModelType, + "IntvPer", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvTyp, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvPer_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_IntvPer_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvPer, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_IntvTyp = { + DataObjectModelType, + "IntvTyp", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdReuse, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvTyp_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_IntvTyp_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_IntvTyp, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_T60S_FSCH2_SchdReuse = { + DataObjectModelType, + "SchdReuse", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2, + NULL, + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdReuse_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdReuse_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_T60S_FSCH2_SchdReuse, + NULL, + NULL, + 0, + IEC61850_FC_SG, + IEC61850_BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +LogicalNode iedModel_GenericIO_GGIO_FSCC1 = { + LogicalNodeModelType, + "GGIO_FSCC1", + (ModelNode*) &iedModel_GenericIO, + NULL, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh, +}; + +DataObject iedModel_GenericIO_GGIO_FSCC1_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_GGIO_FSCC1_ActSchdRef = { + DataObjectModelType, + "ActSchdRef", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_CtlEnt, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_q, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_VISIBLE_STRING_129, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_t, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_ActSchdRef, + NULL, + NULL, + 0, + IEC61850_FC_ST, + IEC61850_TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_GGIO_FSCC1_CtlEnt = { + DataObjectModelType, + "CtlEnt", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd1, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_CtlEnt_setSrcRef, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_CtlEnt_setSrcRef = { + DataAttributeModelType, + "setSrcRef", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_CtlEnt, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_VISIBLE_STRING_129, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_GGIO_FSCC1_Schd1 = { + DataObjectModelType, + "Schd1", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd2, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd1_setSrcRef, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_Schd1_setSrcRef = { + DataAttributeModelType, + "setSrcRef", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd1, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_VISIBLE_STRING_129, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataObject iedModel_GenericIO_GGIO_FSCC1_Schd2 = { + DataObjectModelType, + "Schd2", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1, + NULL, + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd2_setSrcRef, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO_FSCC1_Schd2_setSrcRef = { + DataAttributeModelType, + "setSrcRef", + (ModelNode*) &iedModel_GenericIO_GGIO_FSCC1_Schd2, + NULL, + NULL, + 0, + IEC61850_FC_SP, + IEC61850_VISIBLE_STRING_129, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + extern ReportControlBlock iedModel_GenericIO_LLN0_report0; extern ReportControlBlock iedModel_GenericIO_LLN0_report1; extern ReportControlBlock iedModel_GenericIO_LLN0_report2; @@ -2407,7 +7583,7 @@ ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, IedModel iedModel = { - "beagle", + "Template", &iedModel_GenericIO, &iedModelds_GenericIO_LLN0_Events, &iedModel_GenericIO_LLN0_report0, diff --git a/demos/beaglebone/static_model.h b/demos/beaglebone/static_model.h index 8409861..ff5ef52 100644 --- a/demos/beaglebone/static_model.h +++ b/demos/beaglebone/static_model.h @@ -1,7 +1,7 @@ /* * static_model.h * - * automatically generated from beagle_demo.iid + * automatically generated from beagle_demo.icd */ #ifndef STATIC_MODEL_H_ @@ -201,6 +201,453 @@ extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T; extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test; extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check; extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel; +extern LogicalNode iedModel_GenericIO_T60S_FSCH1; +extern DataObject iedModel_GenericIO_T60S_FSCH1_Beh; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_Beh_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_SchdSt; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdSt_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_SchdEntr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdEntr_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPS; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPS_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_VldReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_VldReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_EnaReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EnaReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_EdtReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_EdtReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_DsaReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_DsaReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH1_SchdPrio; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdPrio_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_NumEntr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_NumEntr_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_SchdIntv; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdIntv_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG1; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG1_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG2; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG2_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG3; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG3_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG4; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG4_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG5; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG5_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG6; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG6_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG7; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG7_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG8; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG8_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG9; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG9_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG10; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG10_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG11; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG11_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG12; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG12_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG13; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG13_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG14; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG14_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG15; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG15_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG16; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG16_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG17; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG17_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG18; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG18_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG19; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG19_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG20; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG20_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG21; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG21_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG22; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG22_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG23; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG23_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG24; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG24_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG25; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG25_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG26; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG26_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG27; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG27_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG28; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG28_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG29; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG29_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG30; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG30_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG31; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG31_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG32; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG32_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG33; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG33_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG34; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG34_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG35; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG35_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG36; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG36_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG37; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG37_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG38; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG38_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG39; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG39_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG40; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG40_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG41; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG41_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG42; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG42_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG43; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG43_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG44; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG44_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG45; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG45_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG46; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG46_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG47; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG47_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG48; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG48_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG49; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG49_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG50; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG50_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG51; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG51_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG52; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG52_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG53; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG53_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG54; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG54_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG55; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG55_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG56; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG56_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG57; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG57_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG58; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG58_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG59; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG59_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_ValSPG60; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_ValSPG60_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_StrTm; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setTm; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occ; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occType; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occPer; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_weekDay; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_month; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_day; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_hr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_mn; +extern DataObject iedModel_GenericIO_T60S_FSCH1_IntvPer; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_IntvPer_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_IntvTyp; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_IntvTyp_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH1_SchdReuse; +extern DataAttribute iedModel_GenericIO_T60S_FSCH1_SchdReuse_setVal; +extern LogicalNode iedModel_GenericIO_T60S_FSCH2; +extern DataObject iedModel_GenericIO_T60S_FSCH2_Beh; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_Beh_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_SchdSt; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdSt_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_SchdEntr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdEntr_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPS; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPS_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_VldReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_VldReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_EnaReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EnaReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_EdtReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_EdtReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_DsaReq; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_stVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_q; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_T; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Test; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Check; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_ctlModel; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_DsaReq_t; +extern DataObject iedModel_GenericIO_T60S_FSCH2_SchdPrio; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdPrio_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_NumEntr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_NumEntr_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_SchdIntv; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdIntv_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG1; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG1_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG2; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG2_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG3; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG3_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG4; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG4_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG5; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG5_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG6; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG6_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG7; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG7_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG8; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG8_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG9; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG9_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG10; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG10_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG11; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG11_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG12; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG12_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG13; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG13_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG14; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG14_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG15; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG15_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG16; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG16_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG17; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG17_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG18; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG18_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG19; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG19_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG20; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG20_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG21; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG21_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG22; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG22_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG23; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG23_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG24; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG24_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG25; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG25_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG26; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG26_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG27; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG27_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG28; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG28_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG29; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG29_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG30; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG30_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG31; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG31_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG32; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG32_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG33; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG33_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG34; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG34_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG35; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG35_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG36; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG36_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG37; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG37_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG38; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG38_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG39; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG39_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG40; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG40_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG41; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG41_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG42; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG42_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG43; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG43_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG44; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG44_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG45; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG45_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG46; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG46_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG47; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG47_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG48; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG48_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG49; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG49_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG50; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG50_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG51; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG51_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG52; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG52_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG53; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG53_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG54; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG54_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG55; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG55_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG56; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG56_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG57; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG57_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG58; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG58_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG59; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG59_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_ValSPG60; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_ValSPG60_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_StrTm; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setTm; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occ; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occType; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occPer; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_weekDay; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_month; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_day; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_hr; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_mn; +extern DataObject iedModel_GenericIO_T60S_FSCH2_IntvPer; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_IntvPer_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_IntvTyp; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_IntvTyp_setVal; +extern DataObject iedModel_GenericIO_T60S_FSCH2_SchdReuse; +extern DataAttribute iedModel_GenericIO_T60S_FSCH2_SchdReuse_setVal; +extern LogicalNode iedModel_GenericIO_GGIO_FSCC1; +extern DataObject iedModel_GenericIO_GGIO_FSCC1_Beh; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_stVal; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_q; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_Beh_t; +extern DataObject iedModel_GenericIO_GGIO_FSCC1_ActSchdRef; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_stVal; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_q; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_t; +extern DataObject iedModel_GenericIO_GGIO_FSCC1_CtlEnt; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_CtlEnt_setSrcRef; +extern DataObject iedModel_GenericIO_GGIO_FSCC1_Schd1; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_Schd1_setSrcRef; +extern DataObject iedModel_GenericIO_GGIO_FSCC1_Schd2; +extern DataAttribute iedModel_GenericIO_GGIO_FSCC1_Schd2_setSrcRef; @@ -394,6 +841,453 @@ extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel; #define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test) #define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check) #define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_ctlModel (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH1 (&iedModel_GenericIO_T60S_FSCH1) +#define IEDMODEL_GenericIO_T60S_FSCH1_Beh (&iedModel_GenericIO_T60S_FSCH1_Beh) +#define IEDMODEL_GenericIO_T60S_FSCH1_Beh_stVal (&iedModel_GenericIO_T60S_FSCH1_Beh_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_Beh_q (&iedModel_GenericIO_T60S_FSCH1_Beh_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_Beh_t (&iedModel_GenericIO_T60S_FSCH1_Beh_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdSt (&iedModel_GenericIO_T60S_FSCH1_SchdSt) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdSt_stVal (&iedModel_GenericIO_T60S_FSCH1_SchdSt_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdSt_q (&iedModel_GenericIO_T60S_FSCH1_SchdSt_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdSt_t (&iedModel_GenericIO_T60S_FSCH1_SchdSt_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdEntr (&iedModel_GenericIO_T60S_FSCH1_SchdEntr) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdEntr_stVal (&iedModel_GenericIO_T60S_FSCH1_SchdEntr_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdEntr_q (&iedModel_GenericIO_T60S_FSCH1_SchdEntr_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdEntr_t (&iedModel_GenericIO_T60S_FSCH1_SchdEntr_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPS (&iedModel_GenericIO_T60S_FSCH1_ValSPS) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPS_stVal (&iedModel_GenericIO_T60S_FSCH1_ValSPS_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPS_q (&iedModel_GenericIO_T60S_FSCH1_ValSPS_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPS_t (&iedModel_GenericIO_T60S_FSCH1_ValSPS_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq (&iedModel_GenericIO_T60S_FSCH1_VldReq) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_stVal (&iedModel_GenericIO_T60S_FSCH1_VldReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_q (&iedModel_GenericIO_T60S_FSCH1_VldReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_T (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH1_VldReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_ctlModel (&iedModel_GenericIO_T60S_FSCH1_VldReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH1_VldReq_t (&iedModel_GenericIO_T60S_FSCH1_VldReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq (&iedModel_GenericIO_T60S_FSCH1_EnaReq) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_stVal (&iedModel_GenericIO_T60S_FSCH1_EnaReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_q (&iedModel_GenericIO_T60S_FSCH1_EnaReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_T (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH1_EnaReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_ctlModel (&iedModel_GenericIO_T60S_FSCH1_EnaReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH1_EnaReq_t (&iedModel_GenericIO_T60S_FSCH1_EnaReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq (&iedModel_GenericIO_T60S_FSCH1_EdtReq) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_stVal (&iedModel_GenericIO_T60S_FSCH1_EdtReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_q (&iedModel_GenericIO_T60S_FSCH1_EdtReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_T (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH1_EdtReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_ctlModel (&iedModel_GenericIO_T60S_FSCH1_EdtReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH1_EdtReq_t (&iedModel_GenericIO_T60S_FSCH1_EdtReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq (&iedModel_GenericIO_T60S_FSCH1_DsaReq) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_stVal (&iedModel_GenericIO_T60S_FSCH1_DsaReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_q (&iedModel_GenericIO_T60S_FSCH1_DsaReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_T (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH1_DsaReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_ctlModel (&iedModel_GenericIO_T60S_FSCH1_DsaReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH1_DsaReq_t (&iedModel_GenericIO_T60S_FSCH1_DsaReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdPrio (&iedModel_GenericIO_T60S_FSCH1_SchdPrio) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdPrio_setVal (&iedModel_GenericIO_T60S_FSCH1_SchdPrio_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_NumEntr (&iedModel_GenericIO_T60S_FSCH1_NumEntr) +#define IEDMODEL_GenericIO_T60S_FSCH1_NumEntr_setVal (&iedModel_GenericIO_T60S_FSCH1_NumEntr_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdIntv (&iedModel_GenericIO_T60S_FSCH1_SchdIntv) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdIntv_setVal (&iedModel_GenericIO_T60S_FSCH1_SchdIntv_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG1 (&iedModel_GenericIO_T60S_FSCH1_ValSPG1) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG1_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG1_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG2 (&iedModel_GenericIO_T60S_FSCH1_ValSPG2) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG2_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG2_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG3 (&iedModel_GenericIO_T60S_FSCH1_ValSPG3) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG3_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG3_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG4 (&iedModel_GenericIO_T60S_FSCH1_ValSPG4) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG4_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG4_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG5 (&iedModel_GenericIO_T60S_FSCH1_ValSPG5) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG5_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG5_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG6 (&iedModel_GenericIO_T60S_FSCH1_ValSPG6) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG6_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG6_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG7 (&iedModel_GenericIO_T60S_FSCH1_ValSPG7) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG7_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG7_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG8 (&iedModel_GenericIO_T60S_FSCH1_ValSPG8) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG8_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG8_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG9 (&iedModel_GenericIO_T60S_FSCH1_ValSPG9) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG9_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG9_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG10 (&iedModel_GenericIO_T60S_FSCH1_ValSPG10) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG10_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG10_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG11 (&iedModel_GenericIO_T60S_FSCH1_ValSPG11) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG11_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG11_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG12 (&iedModel_GenericIO_T60S_FSCH1_ValSPG12) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG12_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG12_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG13 (&iedModel_GenericIO_T60S_FSCH1_ValSPG13) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG13_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG13_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG14 (&iedModel_GenericIO_T60S_FSCH1_ValSPG14) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG14_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG14_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG15 (&iedModel_GenericIO_T60S_FSCH1_ValSPG15) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG15_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG15_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG16 (&iedModel_GenericIO_T60S_FSCH1_ValSPG16) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG16_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG16_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG17 (&iedModel_GenericIO_T60S_FSCH1_ValSPG17) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG17_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG17_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG18 (&iedModel_GenericIO_T60S_FSCH1_ValSPG18) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG18_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG18_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG19 (&iedModel_GenericIO_T60S_FSCH1_ValSPG19) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG19_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG19_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG20 (&iedModel_GenericIO_T60S_FSCH1_ValSPG20) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG20_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG20_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG21 (&iedModel_GenericIO_T60S_FSCH1_ValSPG21) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG21_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG21_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG22 (&iedModel_GenericIO_T60S_FSCH1_ValSPG22) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG22_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG22_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG23 (&iedModel_GenericIO_T60S_FSCH1_ValSPG23) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG23_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG23_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG24 (&iedModel_GenericIO_T60S_FSCH1_ValSPG24) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG24_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG24_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG25 (&iedModel_GenericIO_T60S_FSCH1_ValSPG25) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG25_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG25_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG26 (&iedModel_GenericIO_T60S_FSCH1_ValSPG26) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG26_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG26_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG27 (&iedModel_GenericIO_T60S_FSCH1_ValSPG27) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG27_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG27_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG28 (&iedModel_GenericIO_T60S_FSCH1_ValSPG28) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG28_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG28_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG29 (&iedModel_GenericIO_T60S_FSCH1_ValSPG29) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG29_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG29_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG30 (&iedModel_GenericIO_T60S_FSCH1_ValSPG30) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG30_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG30_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG31 (&iedModel_GenericIO_T60S_FSCH1_ValSPG31) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG31_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG31_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG32 (&iedModel_GenericIO_T60S_FSCH1_ValSPG32) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG32_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG32_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG33 (&iedModel_GenericIO_T60S_FSCH1_ValSPG33) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG33_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG33_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG34 (&iedModel_GenericIO_T60S_FSCH1_ValSPG34) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG34_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG34_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG35 (&iedModel_GenericIO_T60S_FSCH1_ValSPG35) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG35_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG35_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG36 (&iedModel_GenericIO_T60S_FSCH1_ValSPG36) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG36_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG36_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG37 (&iedModel_GenericIO_T60S_FSCH1_ValSPG37) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG37_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG37_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG38 (&iedModel_GenericIO_T60S_FSCH1_ValSPG38) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG38_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG38_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG39 (&iedModel_GenericIO_T60S_FSCH1_ValSPG39) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG39_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG39_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG40 (&iedModel_GenericIO_T60S_FSCH1_ValSPG40) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG40_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG40_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG41 (&iedModel_GenericIO_T60S_FSCH1_ValSPG41) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG41_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG41_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG42 (&iedModel_GenericIO_T60S_FSCH1_ValSPG42) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG42_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG42_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG43 (&iedModel_GenericIO_T60S_FSCH1_ValSPG43) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG43_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG43_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG44 (&iedModel_GenericIO_T60S_FSCH1_ValSPG44) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG44_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG44_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG45 (&iedModel_GenericIO_T60S_FSCH1_ValSPG45) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG45_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG45_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG46 (&iedModel_GenericIO_T60S_FSCH1_ValSPG46) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG46_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG46_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG47 (&iedModel_GenericIO_T60S_FSCH1_ValSPG47) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG47_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG47_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG48 (&iedModel_GenericIO_T60S_FSCH1_ValSPG48) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG48_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG48_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG49 (&iedModel_GenericIO_T60S_FSCH1_ValSPG49) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG49_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG49_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG50 (&iedModel_GenericIO_T60S_FSCH1_ValSPG50) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG50_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG50_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG51 (&iedModel_GenericIO_T60S_FSCH1_ValSPG51) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG51_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG51_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG52 (&iedModel_GenericIO_T60S_FSCH1_ValSPG52) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG52_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG52_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG53 (&iedModel_GenericIO_T60S_FSCH1_ValSPG53) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG53_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG53_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG54 (&iedModel_GenericIO_T60S_FSCH1_ValSPG54) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG54_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG54_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG55 (&iedModel_GenericIO_T60S_FSCH1_ValSPG55) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG55_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG55_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG56 (&iedModel_GenericIO_T60S_FSCH1_ValSPG56) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG56_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG56_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG57 (&iedModel_GenericIO_T60S_FSCH1_ValSPG57) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG57_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG57_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG58 (&iedModel_GenericIO_T60S_FSCH1_ValSPG58) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG58_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG58_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG59 (&iedModel_GenericIO_T60S_FSCH1_ValSPG59) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG59_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG59_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG60 (&iedModel_GenericIO_T60S_FSCH1_ValSPG60) +#define IEDMODEL_GenericIO_T60S_FSCH1_ValSPG60_setVal (&iedModel_GenericIO_T60S_FSCH1_ValSPG60_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm (&iedModel_GenericIO_T60S_FSCH1_StrTm) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setTm (&iedModel_GenericIO_T60S_FSCH1_StrTm_setTm) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_occ (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occ) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_occType (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occType) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_occPer (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_occPer) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_weekDay (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_weekDay) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_month (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_month) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_day (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_day) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_hr (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_hr) +#define IEDMODEL_GenericIO_T60S_FSCH1_StrTm_setCal_mn (&iedModel_GenericIO_T60S_FSCH1_StrTm_setCal_mn) +#define IEDMODEL_GenericIO_T60S_FSCH1_IntvPer (&iedModel_GenericIO_T60S_FSCH1_IntvPer) +#define IEDMODEL_GenericIO_T60S_FSCH1_IntvPer_setVal (&iedModel_GenericIO_T60S_FSCH1_IntvPer_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_IntvTyp (&iedModel_GenericIO_T60S_FSCH1_IntvTyp) +#define IEDMODEL_GenericIO_T60S_FSCH1_IntvTyp_setVal (&iedModel_GenericIO_T60S_FSCH1_IntvTyp_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdReuse (&iedModel_GenericIO_T60S_FSCH1_SchdReuse) +#define IEDMODEL_GenericIO_T60S_FSCH1_SchdReuse_setVal (&iedModel_GenericIO_T60S_FSCH1_SchdReuse_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2 (&iedModel_GenericIO_T60S_FSCH2) +#define IEDMODEL_GenericIO_T60S_FSCH2_Beh (&iedModel_GenericIO_T60S_FSCH2_Beh) +#define IEDMODEL_GenericIO_T60S_FSCH2_Beh_stVal (&iedModel_GenericIO_T60S_FSCH2_Beh_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_Beh_q (&iedModel_GenericIO_T60S_FSCH2_Beh_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_Beh_t (&iedModel_GenericIO_T60S_FSCH2_Beh_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdSt (&iedModel_GenericIO_T60S_FSCH2_SchdSt) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdSt_stVal (&iedModel_GenericIO_T60S_FSCH2_SchdSt_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdSt_q (&iedModel_GenericIO_T60S_FSCH2_SchdSt_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdSt_t (&iedModel_GenericIO_T60S_FSCH2_SchdSt_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdEntr (&iedModel_GenericIO_T60S_FSCH2_SchdEntr) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdEntr_stVal (&iedModel_GenericIO_T60S_FSCH2_SchdEntr_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdEntr_q (&iedModel_GenericIO_T60S_FSCH2_SchdEntr_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdEntr_t (&iedModel_GenericIO_T60S_FSCH2_SchdEntr_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPS (&iedModel_GenericIO_T60S_FSCH2_ValSPS) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPS_stVal (&iedModel_GenericIO_T60S_FSCH2_ValSPS_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPS_q (&iedModel_GenericIO_T60S_FSCH2_ValSPS_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPS_t (&iedModel_GenericIO_T60S_FSCH2_ValSPS_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq (&iedModel_GenericIO_T60S_FSCH2_VldReq) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_stVal (&iedModel_GenericIO_T60S_FSCH2_VldReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_q (&iedModel_GenericIO_T60S_FSCH2_VldReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_T (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH2_VldReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_ctlModel (&iedModel_GenericIO_T60S_FSCH2_VldReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH2_VldReq_t (&iedModel_GenericIO_T60S_FSCH2_VldReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq (&iedModel_GenericIO_T60S_FSCH2_EnaReq) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_stVal (&iedModel_GenericIO_T60S_FSCH2_EnaReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_q (&iedModel_GenericIO_T60S_FSCH2_EnaReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_T (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH2_EnaReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_ctlModel (&iedModel_GenericIO_T60S_FSCH2_EnaReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH2_EnaReq_t (&iedModel_GenericIO_T60S_FSCH2_EnaReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq (&iedModel_GenericIO_T60S_FSCH2_EdtReq) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_stVal (&iedModel_GenericIO_T60S_FSCH2_EdtReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_q (&iedModel_GenericIO_T60S_FSCH2_EdtReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_T (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH2_EdtReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_ctlModel (&iedModel_GenericIO_T60S_FSCH2_EdtReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH2_EdtReq_t (&iedModel_GenericIO_T60S_FSCH2_EdtReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq (&iedModel_GenericIO_T60S_FSCH2_DsaReq) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_stVal (&iedModel_GenericIO_T60S_FSCH2_DsaReq_stVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_q (&iedModel_GenericIO_T60S_FSCH2_DsaReq_q) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlVal (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_origin (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orCat (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orCat) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orIdent (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlNum (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_ctlNum) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_T (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_T) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_Test (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Test) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_Oper_Check (&iedModel_GenericIO_T60S_FSCH2_DsaReq_Oper_Check) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_ctlModel (&iedModel_GenericIO_T60S_FSCH2_DsaReq_ctlModel) +#define IEDMODEL_GenericIO_T60S_FSCH2_DsaReq_t (&iedModel_GenericIO_T60S_FSCH2_DsaReq_t) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdPrio (&iedModel_GenericIO_T60S_FSCH2_SchdPrio) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdPrio_setVal (&iedModel_GenericIO_T60S_FSCH2_SchdPrio_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_NumEntr (&iedModel_GenericIO_T60S_FSCH2_NumEntr) +#define IEDMODEL_GenericIO_T60S_FSCH2_NumEntr_setVal (&iedModel_GenericIO_T60S_FSCH2_NumEntr_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdIntv (&iedModel_GenericIO_T60S_FSCH2_SchdIntv) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdIntv_setVal (&iedModel_GenericIO_T60S_FSCH2_SchdIntv_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG1 (&iedModel_GenericIO_T60S_FSCH2_ValSPG1) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG1_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG1_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG2 (&iedModel_GenericIO_T60S_FSCH2_ValSPG2) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG2_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG2_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG3 (&iedModel_GenericIO_T60S_FSCH2_ValSPG3) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG3_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG3_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG4 (&iedModel_GenericIO_T60S_FSCH2_ValSPG4) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG4_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG4_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG5 (&iedModel_GenericIO_T60S_FSCH2_ValSPG5) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG5_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG5_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG6 (&iedModel_GenericIO_T60S_FSCH2_ValSPG6) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG6_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG6_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG7 (&iedModel_GenericIO_T60S_FSCH2_ValSPG7) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG7_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG7_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG8 (&iedModel_GenericIO_T60S_FSCH2_ValSPG8) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG8_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG8_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG9 (&iedModel_GenericIO_T60S_FSCH2_ValSPG9) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG9_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG9_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG10 (&iedModel_GenericIO_T60S_FSCH2_ValSPG10) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG10_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG10_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG11 (&iedModel_GenericIO_T60S_FSCH2_ValSPG11) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG11_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG11_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG12 (&iedModel_GenericIO_T60S_FSCH2_ValSPG12) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG12_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG12_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG13 (&iedModel_GenericIO_T60S_FSCH2_ValSPG13) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG13_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG13_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG14 (&iedModel_GenericIO_T60S_FSCH2_ValSPG14) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG14_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG14_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG15 (&iedModel_GenericIO_T60S_FSCH2_ValSPG15) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG15_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG15_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG16 (&iedModel_GenericIO_T60S_FSCH2_ValSPG16) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG16_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG16_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG17 (&iedModel_GenericIO_T60S_FSCH2_ValSPG17) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG17_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG17_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG18 (&iedModel_GenericIO_T60S_FSCH2_ValSPG18) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG18_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG18_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG19 (&iedModel_GenericIO_T60S_FSCH2_ValSPG19) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG19_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG19_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG20 (&iedModel_GenericIO_T60S_FSCH2_ValSPG20) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG20_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG20_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG21 (&iedModel_GenericIO_T60S_FSCH2_ValSPG21) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG21_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG21_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG22 (&iedModel_GenericIO_T60S_FSCH2_ValSPG22) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG22_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG22_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG23 (&iedModel_GenericIO_T60S_FSCH2_ValSPG23) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG23_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG23_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG24 (&iedModel_GenericIO_T60S_FSCH2_ValSPG24) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG24_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG24_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG25 (&iedModel_GenericIO_T60S_FSCH2_ValSPG25) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG25_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG25_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG26 (&iedModel_GenericIO_T60S_FSCH2_ValSPG26) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG26_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG26_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG27 (&iedModel_GenericIO_T60S_FSCH2_ValSPG27) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG27_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG27_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG28 (&iedModel_GenericIO_T60S_FSCH2_ValSPG28) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG28_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG28_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG29 (&iedModel_GenericIO_T60S_FSCH2_ValSPG29) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG29_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG29_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG30 (&iedModel_GenericIO_T60S_FSCH2_ValSPG30) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG30_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG30_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG31 (&iedModel_GenericIO_T60S_FSCH2_ValSPG31) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG31_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG31_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG32 (&iedModel_GenericIO_T60S_FSCH2_ValSPG32) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG32_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG32_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG33 (&iedModel_GenericIO_T60S_FSCH2_ValSPG33) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG33_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG33_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG34 (&iedModel_GenericIO_T60S_FSCH2_ValSPG34) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG34_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG34_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG35 (&iedModel_GenericIO_T60S_FSCH2_ValSPG35) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG35_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG35_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG36 (&iedModel_GenericIO_T60S_FSCH2_ValSPG36) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG36_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG36_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG37 (&iedModel_GenericIO_T60S_FSCH2_ValSPG37) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG37_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG37_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG38 (&iedModel_GenericIO_T60S_FSCH2_ValSPG38) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG38_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG38_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG39 (&iedModel_GenericIO_T60S_FSCH2_ValSPG39) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG39_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG39_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG40 (&iedModel_GenericIO_T60S_FSCH2_ValSPG40) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG40_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG40_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG41 (&iedModel_GenericIO_T60S_FSCH2_ValSPG41) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG41_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG41_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG42 (&iedModel_GenericIO_T60S_FSCH2_ValSPG42) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG42_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG42_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG43 (&iedModel_GenericIO_T60S_FSCH2_ValSPG43) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG43_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG43_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG44 (&iedModel_GenericIO_T60S_FSCH2_ValSPG44) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG44_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG44_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG45 (&iedModel_GenericIO_T60S_FSCH2_ValSPG45) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG45_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG45_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG46 (&iedModel_GenericIO_T60S_FSCH2_ValSPG46) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG46_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG46_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG47 (&iedModel_GenericIO_T60S_FSCH2_ValSPG47) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG47_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG47_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG48 (&iedModel_GenericIO_T60S_FSCH2_ValSPG48) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG48_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG48_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG49 (&iedModel_GenericIO_T60S_FSCH2_ValSPG49) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG49_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG49_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG50 (&iedModel_GenericIO_T60S_FSCH2_ValSPG50) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG50_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG50_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG51 (&iedModel_GenericIO_T60S_FSCH2_ValSPG51) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG51_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG51_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG52 (&iedModel_GenericIO_T60S_FSCH2_ValSPG52) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG52_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG52_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG53 (&iedModel_GenericIO_T60S_FSCH2_ValSPG53) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG53_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG53_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG54 (&iedModel_GenericIO_T60S_FSCH2_ValSPG54) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG54_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG54_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG55 (&iedModel_GenericIO_T60S_FSCH2_ValSPG55) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG55_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG55_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG56 (&iedModel_GenericIO_T60S_FSCH2_ValSPG56) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG56_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG56_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG57 (&iedModel_GenericIO_T60S_FSCH2_ValSPG57) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG57_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG57_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG58 (&iedModel_GenericIO_T60S_FSCH2_ValSPG58) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG58_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG58_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG59 (&iedModel_GenericIO_T60S_FSCH2_ValSPG59) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG59_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG59_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG60 (&iedModel_GenericIO_T60S_FSCH2_ValSPG60) +#define IEDMODEL_GenericIO_T60S_FSCH2_ValSPG60_setVal (&iedModel_GenericIO_T60S_FSCH2_ValSPG60_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm (&iedModel_GenericIO_T60S_FSCH2_StrTm) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setTm (&iedModel_GenericIO_T60S_FSCH2_StrTm_setTm) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_occ (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occ) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_occType (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occType) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_occPer (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_occPer) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_weekDay (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_weekDay) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_month (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_month) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_day (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_day) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_hr (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_hr) +#define IEDMODEL_GenericIO_T60S_FSCH2_StrTm_setCal_mn (&iedModel_GenericIO_T60S_FSCH2_StrTm_setCal_mn) +#define IEDMODEL_GenericIO_T60S_FSCH2_IntvPer (&iedModel_GenericIO_T60S_FSCH2_IntvPer) +#define IEDMODEL_GenericIO_T60S_FSCH2_IntvPer_setVal (&iedModel_GenericIO_T60S_FSCH2_IntvPer_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_IntvTyp (&iedModel_GenericIO_T60S_FSCH2_IntvTyp) +#define IEDMODEL_GenericIO_T60S_FSCH2_IntvTyp_setVal (&iedModel_GenericIO_T60S_FSCH2_IntvTyp_setVal) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdReuse (&iedModel_GenericIO_T60S_FSCH2_SchdReuse) +#define IEDMODEL_GenericIO_T60S_FSCH2_SchdReuse_setVal (&iedModel_GenericIO_T60S_FSCH2_SchdReuse_setVal) +#define IEDMODEL_GenericIO_GGIO_FSCC1 (&iedModel_GenericIO_GGIO_FSCC1) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Beh (&iedModel_GenericIO_GGIO_FSCC1_Beh) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Beh_stVal (&iedModel_GenericIO_GGIO_FSCC1_Beh_stVal) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Beh_q (&iedModel_GenericIO_GGIO_FSCC1_Beh_q) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Beh_t (&iedModel_GenericIO_GGIO_FSCC1_Beh_t) +#define IEDMODEL_GenericIO_GGIO_FSCC1_ActSchdRef (&iedModel_GenericIO_GGIO_FSCC1_ActSchdRef) +#define IEDMODEL_GenericIO_GGIO_FSCC1_ActSchdRef_stVal (&iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_stVal) +#define IEDMODEL_GenericIO_GGIO_FSCC1_ActSchdRef_q (&iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_q) +#define IEDMODEL_GenericIO_GGIO_FSCC1_ActSchdRef_t (&iedModel_GenericIO_GGIO_FSCC1_ActSchdRef_t) +#define IEDMODEL_GenericIO_GGIO_FSCC1_CtlEnt (&iedModel_GenericIO_GGIO_FSCC1_CtlEnt) +#define IEDMODEL_GenericIO_GGIO_FSCC1_CtlEnt_setSrcRef (&iedModel_GenericIO_GGIO_FSCC1_CtlEnt_setSrcRef) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Schd1 (&iedModel_GenericIO_GGIO_FSCC1_Schd1) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Schd1_setSrcRef (&iedModel_GenericIO_GGIO_FSCC1_Schd1_setSrcRef) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Schd2 (&iedModel_GenericIO_GGIO_FSCC1_Schd2) +#define IEDMODEL_GenericIO_GGIO_FSCC1_Schd2_setSrcRef (&iedModel_GenericIO_GGIO_FSCC1_Schd2_setSrcRef) #endif /* STATIC_MODEL_H_ */ diff --git a/dotnet/IEC61850forCSharp/Control.cs b/dotnet/IEC61850forCSharp/Control.cs index f0faa90..8604e3e 100644 --- a/dotnet/IEC61850forCSharp/Control.cs +++ b/dotnet/IEC61850forCSharp/Control.cs @@ -141,7 +141,10 @@ namespace IEC61850 private static extern void ControlObjectClient_setInterlockCheck(IntPtr self, bool value); [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] - private static extern void ControlObjectClient_setSynchroCheck(IntPtr self, bool value); + private static extern void ControlObjectClient_setSynchroCheck(IntPtr self, bool value); + + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + private static extern void ControlObjectClient_setTestMode(IntPtr self, bool value); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void InternalCommandTerminationHandler(IntPtr parameter,IntPtr controlClient); @@ -404,6 +407,14 @@ namespace IEC61850 ControlObjectClient_setSynchroCheck (controlObject, value); } + /// + /// Sets the value of the test flag for the operate command + /// + public void SetTestMode (bool value) + { + ControlObjectClient_setTestMode (controlObject, value); + } + /// /// Gets the last received LastApplError (Additional Cause Diagnostics) value. /// diff --git a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs index 4a94a64..10a6c8e 100644 --- a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs +++ b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs @@ -629,7 +629,7 @@ namespace IEC61850 if (mmsValue.GetType () == MmsType.MMS_BOOLEAN) return mmsValue.GetBoolean (); else - throw new IedConnectionException ("Result is not of type timestamp (MMS_UTC_TIME)", 0); + throw new IedConnectionException ("Result is not of type boolean (MMS_BOOLEAN)", 0); } /// Read the value of a basic data attribute (BDA) of type float. diff --git a/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj b/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj index d5d09da..e0019db 100644 --- a/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj +++ b/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj @@ -45,6 +45,7 @@ + \ No newline at end of file diff --git a/dotnet/IEC61850forCSharp/ReportControlBlock.cs b/dotnet/IEC61850forCSharp/ReportControlBlock.cs index f4b4a69..ad9f5da 100644 --- a/dotnet/IEC61850forCSharp/ReportControlBlock.cs +++ b/dotnet/IEC61850forCSharp/ReportControlBlock.cs @@ -55,7 +55,7 @@ namespace IEC61850 [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void IedConnection_setRCBValues (IntPtr connection, out int error, IntPtr rcb, UInt32 parametersMask, bool singleRequest); - [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] static extern bool ClientReportControlBlock_isBuffered (IntPtr self); @@ -69,10 +69,10 @@ namespace IEC61850 [return: MarshalAs(UnmanagedType.I1)] static extern bool ClientReportControlBlock_getRptEna (IntPtr self); - [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void ClientReportControlBlock_setRptEna(IntPtr self, bool rptEna); - [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] static extern bool ClientReportControlBlock_getResv (IntPtr self); @@ -115,14 +115,14 @@ namespace IEC61850 [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void ClientReportControlBlock_setIntgPd (IntPtr self, UInt32 intgPd); - [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] static extern bool ClientReportControlBlock_getGI (IntPtr self); [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void ClientReportControlBlock_setGI (IntPtr self, bool gi); - [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] static extern bool ClientReportControlBlock_getPurgeBuf (IntPtr self); @@ -149,11 +149,11 @@ namespace IEC61850 [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void IedConnection_installReportHandler (IntPtr connection, string rcbReference, string rptId, InternalReportHandler handler, - IntPtr handlerParameter); + IntPtr handlerParameter); [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void IedConnection_uninstallReportHandler(IntPtr connection, string rcbReference); - + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void InternalReportHandler (IntPtr parameter, IntPtr report); @@ -256,7 +256,7 @@ namespace IEC61850 /// /// /// This will install a callback handler (delegate) that is invoked whenever a report - /// related this RCB is received. Any call of this method will replace an previously registered + /// related to this RCB is received. Any call of this method will replace an previously registered /// handler! /// /// @@ -273,13 +273,13 @@ namespace IEC61850 if (reportHandlerInstalled == false) { - string reportId = this.GetRptId (); - - if (internalHandler == null) - { - internalHandler = new InternalReportHandler(internalReportHandler); - } - + string reportId = this.GetRptId (); + + if (internalHandler == null) + { + internalHandler = new InternalReportHandler(internalReportHandler); + } + IedConnection_installReportHandler(this.connection, objectReference, reportId, internalHandler, IntPtr.Zero); reportHandlerInstalled = true; } @@ -539,24 +539,24 @@ namespace IEC61850 flagRptEna = true; } - /// - /// Get the purgeBuf flag of the report control block - /// + /// + /// Get the purgeBuf flag of the report control block + /// /// the prugeBuf value - public bool GetPurgeBuf () - { - return ClientReportControlBlock_getPurgeBuf(self); + public bool GetPurgeBuf () + { + return ClientReportControlBlock_getPurgeBuf(self); } - /// - /// Set the purgeBuf flag of the report control block - /// - /// This is only for buffered RCBs. If set to true the report buffer of a buffered RCB will be cleaned. + /// + /// Set the purgeBuf flag of the report control block + /// + /// This is only for buffered RCBs. If set to true the report buffer of a buffered RCB will be cleaned. /// set to true to flush report buffer - public void SetPurgeBuf (bool purgeBuf) - { - ClientReportControlBlock_setPurgeBuf(self, purgeBuf); - flagPurgeBuf = true; + public void SetPurgeBuf (bool purgeBuf) + { + ClientReportControlBlock_setPurgeBuf(self, purgeBuf); + flagPurgeBuf = true; } /// diff --git a/dotnet/reporting/ReportingExample.cs b/dotnet/reporting/ReportingExample.cs index 9857194..9e84c86 100644 --- a/dotnet/reporting/ReportingExample.cs +++ b/dotnet/reporting/ReportingExample.cs @@ -41,8 +41,8 @@ namespace reporting Console.WriteLine(" element " + i + " included for reason " + report.GetReasonForInclusion(i).ToString() + " " + values.GetElement(i)); } - if (report.HasDataReference()) { - Console.WriteLine(" data-ref: " + report.GetDataReference(i)); + if (report.HasDataReference()) { + Console.WriteLine(" data-ref: " + report.GetDataReference(i)); } } @@ -79,35 +79,35 @@ namespace reporting ReportControlBlock rcb1 = con.GetReportControlBlock(rcbReference1); ReportControlBlock rcb2 = con.GetReportControlBlock(rcbReference2); - ReportControlBlock rcb3 = con.GetReportControlBlock(rcbReference3); - - rcb1.GetRCBValues(); - - // note: the second parameter is not required! - rcb1.InstallReportHandler(reportHandler, rcb1); - - if (rcb1.IsBuffered()) - Console.WriteLine("RCB: " + rcbReference1 + " is buffered"); - - rcb1.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); - rcb1.SetIntgPd(5000); - rcb1.SetRptEna(true); - - rcb1.SetRCBValues(); - - rcb2.GetRCBValues(); - - if (rcb2.IsBuffered()) - Console.WriteLine("RCB: " + rcbReference2 + " is buffered"); - - rcb2.InstallReportHandler(reportHandler, rcb2); - - rcb2.SetOptFlds(ReportOptions.REASON_FOR_INCLUSION | ReportOptions.SEQ_NUM | ReportOptions.TIME_STAMP | - ReportOptions.CONF_REV | ReportOptions.ENTRY_ID | ReportOptions.DATA_REFERENCE | ReportOptions.DATA_SET); - rcb2.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); - rcb2.SetIntgPd(2000); - rcb2.SetRptEna(true); - + ReportControlBlock rcb3 = con.GetReportControlBlock(rcbReference3); + + rcb1.GetRCBValues(); + + // note: the second parameter is not required! + rcb1.InstallReportHandler(reportHandler, rcb1); + + if (rcb1.IsBuffered()) + Console.WriteLine("RCB: " + rcbReference1 + " is buffered"); + + rcb1.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); + rcb1.SetIntgPd(5000); + rcb1.SetRptEna(true); + + rcb1.SetRCBValues(); + + rcb2.GetRCBValues(); + + if (rcb2.IsBuffered()) + Console.WriteLine("RCB: " + rcbReference2 + " is buffered"); + + rcb2.InstallReportHandler(reportHandler, rcb2); + + rcb2.SetOptFlds(ReportOptions.REASON_FOR_INCLUSION | ReportOptions.SEQ_NUM | ReportOptions.TIME_STAMP | + ReportOptions.CONF_REV | ReportOptions.ENTRY_ID | ReportOptions.DATA_REFERENCE | ReportOptions.DATA_SET); + rcb2.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); + rcb2.SetIntgPd(2000); + rcb2.SetRptEna(true); + rcb2.SetRCBValues(); rcb3.GetRCBValues(); @@ -154,7 +154,7 @@ namespace reporting Console.WriteLine ("Error: " + e.Message); con.Dispose (); - } + } } } diff --git a/dotnet/tests/Test.cs b/dotnet/tests/Test.cs index ca1e4b6..887ccb8 100644 --- a/dotnet/tests/Test.cs +++ b/dotnet/tests/Test.cs @@ -2,6 +2,9 @@ using System; using IEC61850.Common; using IEC61850.Client; +using IEC61850.Server; +using System.Collections.Generic; +using System.Threading; namespace tests { @@ -102,7 +105,267 @@ namespace tests Assert.AreEqual (val.ToFloat (), (float)0.1234); } + [Test ()] + public void CreateModelFromNonExistingFile() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("test.cfg"); + Assert.IsNull (iedModel); + } + + [Test ()] + public void CreateModelFromFile() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + Assert.NotNull (iedModel); + } + + [Test ()] + public void StartStopSimpleServer() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + IedServer iedServer = new IedServer (iedModel); + + Assert.NotNull (iedServer); + + iedServer.Start (10002); + + Assert.IsTrue (iedServer.IsRunning ()); + + iedServer.Stop (); + + Assert.IsFalse (iedServer.IsRunning ()); + + iedServer.Destroy (); + } + + [Test ()] + public void ConnectToServer() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + IedServer iedServer = new IedServer (iedModel); + + iedServer.Start (10002); + + IedConnection connection = new IedConnection (); + + connection.Connect ("localhost", 10002); + + List list = connection.GetServerDirectory (); + + Assert.IsNotEmpty (list); + + Assert.AreEqual (list.ToArray () [0], "simpleIOGenericIO"); + + iedServer.Stop (); + + iedServer.Destroy (); + } + + [Test ()] + public void AccessDataModelServerSide() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + ModelNode modelNode = iedModel.GetModelNodeByShortObjectReference ("GenericIO/GGIO1.AnIn1"); + + Assert.IsTrue (modelNode.GetType ().Equals (typeof(DataObject))); + + modelNode = iedModel.GetModelNodeByShortObjectReference ("GenericIO/GGIO1.AnIn1.mag.f"); + + Assert.IsTrue (modelNode.GetType ().Equals (typeof(DataAttribute))); + + Assert.IsNotNull (modelNode); + } + + [Test ()] + public void AccessDataModelClientServer() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + ModelNode ind1 = iedModel.GetModelNodeByShortObjectReference ("GenericIO/GGIO1.Ind1.stVal"); + + Assert.IsTrue (ind1.GetType ().Equals (typeof(DataAttribute))); + + IedServer iedServer = new IedServer (iedModel); + + iedServer.Start (10002); + + iedServer.UpdateBooleanAttributeValue((DataAttribute) ind1, true); + + IedConnection connection = new IedConnection (); + + connection.Connect ("localhost", 10002); + + bool stVal = connection.ReadBooleanValue ("simpleIOGenericIO/GGIO1.Ind1.stVal", FunctionalConstraint.ST); + + Assert.IsTrue (stVal); + + iedServer.UpdateBooleanAttributeValue((DataAttribute) ind1, false); + + stVal = connection.ReadBooleanValue ("simpleIOGenericIO/GGIO1.Ind1.stVal", FunctionalConstraint.ST); + + Assert.IsFalse (stVal); + + connection.Abort (); + + iedServer.Stop (); + + iedServer.Destroy (); + } + + + [Test()] + public void ControlWriteAccessToServer() + { + + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + DataAttribute opDlTmms = (DataAttribute) iedModel.GetModelNodeByShortObjectReference("GenericIO/PDUP1.OpDlTmms.setVal"); + DataAttribute rsDlTmms = (DataAttribute)iedModel.GetModelNodeByShortObjectReference ("GenericIO/PDUP1.RsDlTmms.setVal"); + + IedServer iedServer = new IedServer (iedModel); + + int opDlTmmsValue = 0; + + iedServer.HandleWriteAccess (opDlTmms, delegate(DataAttribute dataAttr, MmsValue value, ClientConnection con, object parameter) { + opDlTmmsValue = value.ToInt32(); + return MmsDataAccessError.DATA_ACCESS_ERROR_SUCCESS; + }, null); + + iedServer.HandleWriteAccess (rsDlTmms, delegate(DataAttribute dataAttr, MmsValue value, ClientConnection con, object parameter) { + if (value.ToInt32() > 1000) + return MmsDataAccessError.DATA_ACCESS_ERROR_OBJECT_VALUE_INVALID; + else + return MmsDataAccessError.DATA_ACCESS_ERROR_SUCCESS; + }, null); + + iedServer.Start (10002); + + IedConnection connection = new IedConnection (); + + connection.Connect ("localhost", 10002); + + connection.WriteValue ("simpleIOGenericIO/PDUP1.OpDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)1234)); + + + try { + connection.WriteValue ("simpleIOGenericIO/PDUP1.RsDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)1234)); + } + catch (IedConnectionException e) { + Assert.AreEqual (IedClientError.IED_ERROR_OBJECT_VALUE_INVALID, e.GetIedClientError()); + } + + connection.WriteValue ("simpleIOGenericIO/PDUP1.RsDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)999)); + + MmsValue rsDlTmmsValue = iedServer.GetAttributeValue (rsDlTmms); + + Assert.AreEqual (999, rsDlTmmsValue.ToInt32 ()); + + connection.Abort (); + + iedServer.Stop (); + + Assert.AreEqual ((int) 1234, opDlTmmsValue); + + iedServer.Destroy (); + } + + [Test()] + public void WriteAccessPolicy() + { + + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + DataAttribute opDlTmms = (DataAttribute) iedModel.GetModelNodeByShortObjectReference("GenericIO/PDUP1.OpDlTmms.setVal"); + DataAttribute rsDlTmms = (DataAttribute)iedModel.GetModelNodeByShortObjectReference ("GenericIO/PDUP1.RsDlTmms.setVal"); + + IedServer iedServer = new IedServer (iedModel); + + iedServer.HandleWriteAccess (opDlTmms, delegate(DataAttribute dataAttr, MmsValue value, ClientConnection con, object parameter) { + return MmsDataAccessError.DATA_ACCESS_ERROR_SUCCESS; + }, null); + + + iedServer.Start (10002); + + IedConnection connection = new IedConnection (); + + connection.Connect ("localhost", 10002); + + connection.WriteValue ("simpleIOGenericIO/PDUP1.RsDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)1234)); + + iedServer.SetWriteAccessPolicy (FunctionalConstraint.SP, AccessPolicy.ACCESS_POLICY_DENY); + + connection.WriteValue ("simpleIOGenericIO/PDUP1.OpDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)1234)); + + try { + connection.WriteValue ("simpleIOGenericIO/PDUP1.RsDlTmms.setVal", FunctionalConstraint.SP, new MmsValue ((int)999)); + } + catch (IedConnectionException e) { + Assert.AreEqual (IedClientError.IED_ERROR_ACCESS_DENIED, e.GetIedClientError()); + } + + MmsValue rsDlTmmsValue = iedServer.GetAttributeValue (rsDlTmms); + + Assert.AreEqual (1234, rsDlTmmsValue.ToInt32 ()); + + connection.Abort (); + + iedServer.Stop (); + + iedServer.Destroy (); + } + + [Test()] + public void ConnectionHandler() + { + IedModel iedModel = ConfigFileParser.CreateModelFromConfigFile ("../../model.cfg"); + + int handlerCalled = 0; + int connectionCount = 0; + + IedServer iedServer = new IedServer (iedModel); + + string ipAddress = null; + + iedServer.SetConnectionIndicationHandler(delegate(IedServer server, ClientConnection clientConnection, bool connected, object parameter) { + handlerCalled++; + if (connected) + connectionCount++; + else + connectionCount--; + + ipAddress = clientConnection.GetPeerAddress(); + }, null); + + iedServer.Start (10002); + + IedConnection con1 = new IedConnection (); + con1.Connect ("localhost", 10002); + + Assert.AreEqual (1, handlerCalled); + Assert.AreEqual (1, connectionCount); + + IedConnection con2 = new IedConnection (); + con2.Connect ("localhost", 10002); + + Assert.AreEqual (2, handlerCalled); + Assert.AreEqual (2, connectionCount); + + con1.Abort (); + con2.Abort (); + + Assert.AreEqual (4, handlerCalled); + Assert.AreEqual (0, connectionCount); + + Assert.AreEqual ("127.0.0.1:", ipAddress.Substring (0, 10)); + + iedServer.Stop (); + } } } diff --git a/dotnet/tests/test.icd b/dotnet/tests/test.icd new file mode 100644 index 0000000..f7a8e32 --- /dev/null +++ b/dotnet/tests/test.icd @@ -0,0 +1,326 @@ + + +
+
+ + + Station bus + + +
+

111

+

4

+

01-0c-cd-01-00-01

+

1000

+
+
+ +
+

111

+

4

+

01-0c-cd-01-00-01

+

1000

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + status-only + + + + + + + + status-only + + + + + + + + + direct-with-normal-security + + + + + direct-with-normal-security + + + + + direct-with-normal-security + + + + + direct-with-normal-security + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + status-only + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + on + blocked + test + test/blocked + off + + + + status-only + direct-with-normal-security + sbo-with-normal-security + direct-with-enhanced-security + sbo-with-enhanced-security + + + + not-supported + bay-control + station-control + remote-control + automatic-bay + automatic-station + automatic-remote + maintenance + process + + + + unknown + forward + backward + both + + + + +
diff --git a/examples/server_example_logging/server_example_logging.c b/examples/server_example_logging/server_example_logging.c index 7690725..f0c80ae 100644 --- a/examples/server_example_logging/server_example_logging.c +++ b/examples/server_example_logging/server_example_logging.c @@ -145,6 +145,7 @@ main(int argc, char** argv) IedServer_setLogStorage(iedServer, "GenericIO/LLN0$EventLog", statusLog); +#if 0 uint64_t entryID = LogStorage_addEntry(statusLog, Hal_getTimeInMs()); MmsValue* value = MmsValue_newIntegerFromInt32(123); @@ -167,6 +168,8 @@ main(int argc, char** argv) LogStorage_addEntryData(statusLog, entryID, "simpleIOGenerioIO/GPIO1$ST$SPCSO1$t", blob, blobSize, 0); LogStorage_getEntries(statusLog, 0, Hal_getTimeInMs(), entryCallback, (LogEntryDataCallback) entryDataCallback, NULL); +#endif + /* MMS server will be instructed to start listening to client connections. */ IedServer_start(iedServer, 102); diff --git a/examples/server_example_logging/simpleIO_direct_control.icd b/examples/server_example_logging/simpleIO_direct_control.icd index 216f1f7..a2c745a 100644 --- a/examples/server_example_logging/simpleIO_direct_control.icd +++ b/examples/server_example_logging/simpleIO_direct_control.icd @@ -108,7 +108,7 @@ - + diff --git a/src/common/inc/libiec61850_platform_includes.h b/src/common/inc/libiec61850_platform_includes.h index 97ae275..7c2452f 100644 --- a/src/common/inc/libiec61850_platform_includes.h +++ b/src/common/inc/libiec61850_platform_includes.h @@ -15,7 +15,7 @@ #include "platform_endian.h" -#define LIBIEC61850_VERSION "0.9.2" +#define LIBIEC61850_VERSION "0.9.3" #ifndef CONFIG_DEFAULT_MMS_VENDOR_NAME #define CONFIG_DEFAULT_MMS_VENDOR_NAME "libiec61850.com" diff --git a/src/hal/socket/linux/socket_linux.c b/src/hal/socket/linux/socket_linux.c index b00423d..cbf6c25 100644 --- a/src/hal/socket/linux/socket_linux.c +++ b/src/hal/socket/linux/socket_linux.c @@ -331,11 +331,19 @@ Socket_connect(Socket self, const char* address, int port) timeout.tv_sec = self->connectTimeout / 1000; timeout.tv_usec = (self->connectTimeout % 1000) * 1000; - if (select(self->fd + 1, NULL, &fdSet, NULL, &timeout) <= 0) - return false; - else - return true; + if (select(self->fd + 1, NULL, &fdSet , NULL, &timeout) == 1) { + int so_error; + socklen_t len = sizeof so_error; + getsockopt(self->fd, SOL_SOCKET, SO_ERROR, &so_error, &len); + + if (so_error == 0) + return true; + } + + close (self->fd); + + return false; } char* diff --git a/src/hal/socket/win32/socket_win32.c b/src/hal/socket/win32/socket_win32.c index 8c0b084..0e94445 100644 --- a/src/hal/socket/win32/socket_win32.c +++ b/src/hal/socket/win32/socket_win32.c @@ -262,6 +262,7 @@ TcpSocket_create() Socket self = (Socket) GLOBAL_MALLOC(sizeof(struct sSocket)); self->fd = INVALID_SOCKET; + self->connectTimeout = 5000; return self; } diff --git a/src/iec61850/client/client_control.c b/src/iec61850/client/client_control.c index 54f4938..058f0d2 100644 --- a/src/iec61850/client/client_control.c +++ b/src/iec61850/client/client_control.c @@ -871,6 +871,12 @@ ControlObjectClient_setSynchroCheck(ControlObjectClient self, bool value) self->synchroCheck = value; } +void +ControlObjectClient_setTestMode(ControlObjectClient self, bool value) +{ + self->test = value; +} + void ControlObjectClient_setLastApplError(ControlObjectClient self, LastApplError lastApplError) { diff --git a/src/iec61850/inc/iec61850_client.h b/src/iec61850/inc/iec61850_client.h index 0181f71..7ce06ee 100644 --- a/src/iec61850/inc/iec61850_client.h +++ b/src/iec61850/inc/iec61850_client.h @@ -1502,7 +1502,7 @@ LastApplError ControlObjectClient_getLastApplError(ControlObjectClient self); void -ControlObjectClient_setTestMode(ControlObjectClient self); +ControlObjectClient_setTestMode(ControlObjectClient self, bool value); void ControlObjectClient_setOrigin(ControlObjectClient self, const char* orIdent, int orCat); diff --git a/src/iec61850/inc/iec61850_model.h b/src/iec61850/inc/iec61850_model.h index 3a99b08..850126d 100644 --- a/src/iec61850/inc/iec61850_model.h +++ b/src/iec61850/inc/iec61850_model.h @@ -156,9 +156,9 @@ typedef enum { typedef enum { LogicalDeviceModelType, - LogicalNodeModelType, - DataObjectModelType, - DataAttributeModelType + LogicalNodeModelType, + DataObjectModelType, + DataAttributeModelType } ModelNodeType; struct sIedModel { @@ -176,89 +176,89 @@ struct sIedModel { struct sLogicalDevice { ModelNodeType modelType; - char* name; - ModelNode* parent; - ModelNode* sibling; - ModelNode* firstChild; + char* name; + ModelNode* parent; + ModelNode* sibling; + ModelNode* firstChild; }; struct sModelNode { - ModelNodeType modelType; - char* name; - ModelNode* parent; - ModelNode* sibling; - ModelNode* firstChild; + ModelNodeType modelType; + char* name; + ModelNode* parent; + ModelNode* sibling; + ModelNode* firstChild; }; struct sLogicalNode { - ModelNodeType modelType; - char* name; - ModelNode* parent; - ModelNode* sibling; - ModelNode* firstChild; + ModelNodeType modelType; + char* name; + ModelNode* parent; + ModelNode* sibling; + ModelNode* firstChild; }; struct sDataObject { - ModelNodeType modelType; - char* name; - ModelNode* parent; - ModelNode* sibling; - ModelNode* firstChild; + ModelNodeType modelType; + char* name; + ModelNode* parent; + ModelNode* sibling; + ModelNode* firstChild; - int elementCount; /* > 0 if this is an array */ + int elementCount; /* > 0 if this is an array */ }; struct sDataAttribute { - ModelNodeType modelType; - char* name; - ModelNode* parent; - ModelNode* sibling; - ModelNode* firstChild; + ModelNodeType modelType; + char* name; + ModelNode* parent; + ModelNode* sibling; + ModelNode* firstChild; - int elementCount; /* > 0 if this is an array */ + int elementCount; /* > 0 if this is an array */ - FunctionalConstraint fc; - DataAttributeType type; + FunctionalConstraint fc; + DataAttributeType type; - uint8_t triggerOptions; /* TRG_OPT_DATA_CHANGED | TRG_OPT_QUALITY_CHANGED | TRG_OPT_DATA_UPDATE */ + uint8_t triggerOptions; /* TRG_OPT_DATA_CHANGED | TRG_OPT_QUALITY_CHANGED | TRG_OPT_DATA_UPDATE */ - MmsValue* mmsValue; + MmsValue* mmsValue; - uint32_t sAddr; + uint32_t sAddr; }; typedef struct sDataSetEntry { - char* logicalDeviceName; - bool isLDNameDynamicallyAllocated; - char* variableName; - int index; - char* componentName; - MmsValue* value; - struct sDataSetEntry* sibling; + char* logicalDeviceName; + bool isLDNameDynamicallyAllocated; + char* variableName; + int index; + char* componentName; + MmsValue* value; + struct sDataSetEntry* sibling; } DataSetEntry; struct sDataSet { - char* logicalDeviceName; - char* name; /* eg. MMXU1$dataset1 */ - int elementCount; - DataSetEntry* fcdas; - DataSet* sibling; + char* logicalDeviceName; + char* name; /* eg. MMXU1$dataset1 */ + int elementCount; + DataSetEntry* fcdas; + DataSet* sibling; }; struct sReportControlBlock { - LogicalNode* parent; - char* name; - char* rptId; - bool buffered; - char* dataSetName; /* pre loaded with relative name in logical node */ + LogicalNode* parent; + char* name; + char* rptId; + bool buffered; + char* dataSetName; /* pre loaded with relative name in logical node */ - uint32_t confRef; /* ConfRef - configuration revision */ - uint8_t trgOps; /* TrgOps - trigger conditions */ - uint8_t options; /* OptFlds */ - uint32_t bufferTime; /* BufTm - time to buffer events until a report is generated */ - uint32_t intPeriod; /* IntgPd - integrity period */ + uint32_t confRef; /* ConfRef - configuration revision */ + uint8_t trgOps; /* TrgOps - trigger conditions */ + uint8_t options; /* OptFlds */ + uint32_t bufferTime; /* BufTm - time to buffer events until a report is generated */ + uint32_t intPeriod; /* IntgPd - integrity period */ - ReportControlBlock* sibling; /* next control block in list or NULL if this is the last entry */ + ReportControlBlock* sibling; /* next control block in list or NULL if this is the last entry */ }; struct sLogControlBlock { @@ -386,6 +386,12 @@ ModelNode_getChildWithFc(ModelNode* self, const char* name, FunctionalConstraint char* ModelNode_getObjectReference(ModelNode* self, char* objectReference); +/** + * + */ +ModelNodeType +ModelNode_getType(ModelNode* self); + /** * \brief Set the name of the IED * diff --git a/src/iec61850/server/mms_mapping/logging.c b/src/iec61850/server/mms_mapping/logging.c index a7b6ad5..6fb2f78 100644 --- a/src/iec61850/server/mms_mapping/logging.c +++ b/src/iec61850/server/mms_mapping/logging.c @@ -791,11 +791,6 @@ createLogControlBlock(MmsMapping* self, LogControlBlock* logControlBlock, prepareLogControl(logControl); - if (logControl->enabled) - enableLogging(logControl); - - LogControl_updateLogEna(logControl); - return lcb; } @@ -829,6 +824,11 @@ Logging_createLCBs(MmsMapping* self, MmsDomain* domain, LogicalNode* logicalNode if (logControlBlock->logRef != NULL) logControl->logInstance = getLogInstanceByLogRef(self, logControlBlock->logRef); + if (logControl->enabled) + enableLogging(logControl); + + LogControl_updateLogEna(logControl); + LinkedList_add(self->logControls, logControl); currentLcb++; diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index b056b83..41a0b47 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -621,8 +621,6 @@ MmsMapping_configureSettingGroups(MmsMapping* self) MmsValue_setUint16(resvTms, 0U); settingGroup->sgcbMmsValues = values; - - break; } else if (DEBUG_IED_SERVER) printf("IED_SERVER: Values for SGCB do not exist\n"); diff --git a/src/iec61850/server/mms_mapping/reporting.c b/src/iec61850/server/mms_mapping/reporting.c index 9bd155b..069e833 100644 --- a/src/iec61850/server/mms_mapping/reporting.c +++ b/src/iec61850/server/mms_mapping/reporting.c @@ -1670,6 +1670,9 @@ removeAllGIReportsFromReportBuffer(ReportBuffer* reportBuffer) currentReport = currentReport->next; } } + + if (reportBuffer->oldestReport == NULL) + reportBuffer->lastEnqueuedReport = NULL; } static void diff --git a/src/iec61850/server/model/dynamic_model.c b/src/iec61850/server/model/dynamic_model.c index 1f51fa1..0098f09 100644 --- a/src/iec61850/server/model/dynamic_model.c +++ b/src/iec61850/server/model/dynamic_model.c @@ -387,6 +387,7 @@ SettingGroupControlBlock_create(LogicalNode* parent, uint8_t actSG, uint8_t numO self->actSG = actSG; self->numOfSGs = numOfSGs; self->sibling = NULL; + self->editSG = 0; LogicalNode_addSettingGroupControlBlock(parent, self); diff --git a/src/iec61850/server/model/model.c b/src/iec61850/server/model/model.c index b2998ec..03a0092 100644 --- a/src/iec61850/server/model/model.c +++ b/src/iec61850/server/model/model.c @@ -639,6 +639,12 @@ ModelNode_getChildWithFc(ModelNode* self, const char* name, FunctionalConstraint return matchingNode; } +ModelNodeType +ModelNode_getType(ModelNode* self) +{ + return self->modelType; +} + LogicalNode* LogicalDevice_getLogicalNode(LogicalDevice* self, const char* nodeName) { diff --git a/src/mms/iso_mms/common/mms_value.c b/src/mms/iso_mms/common/mms_value.c index d2eca37..ee1ccd3 100644 --- a/src/mms/iso_mms/common/mms_value.c +++ b/src/mms/iso_mms/common/mms_value.c @@ -1,7 +1,7 @@ /* - * MmsValue.c + * mms_value.c * - * Copyright 2013-2015 Michael Zillgith + * Copyright 2013-2016 Michael Zillgith * * This file is part of libIEC61850. * diff --git a/src/vs/libiec61850-wo-goose.def b/src/vs/libiec61850-wo-goose.def index 0735c33..661f60c 100644 --- a/src/vs/libiec61850-wo-goose.def +++ b/src/vs/libiec61850-wo-goose.def @@ -550,3 +550,5 @@ EXPORTS SV_ASDU_addFLOAT64 SV_ASDU_setFLOAT64 MmsConnection_setRawMessageHandler + ModelNode_getType + ControlObjectClient_setTestMode diff --git a/src/vs/libiec61850.def b/src/vs/libiec61850.def index ee2495f..75c3ec1 100644 --- a/src/vs/libiec61850.def +++ b/src/vs/libiec61850.def @@ -626,3 +626,6 @@ EXPORTS SV_ASDU_addFLOAT64 SV_ASDU_setFLOAT64 MmsConnection_setRawMessageHandler + ModelNode_getType + ControlObjectClient_setTestMode + diff --git a/tools/model_generator/gendyncode.jar b/tools/model_generator/gendyncode.jar index e25b642..0721d44 100644 Binary files a/tools/model_generator/gendyncode.jar and b/tools/model_generator/gendyncode.jar differ diff --git a/tools/model_generator/genmodel.jar b/tools/model_generator/genmodel.jar index 92cc015..87c64d6 100644 Binary files a/tools/model_generator/genmodel.jar and b/tools/model_generator/genmodel.jar differ diff --git a/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java b/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java index 1071242..9a58986 100644 --- a/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java +++ b/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java @@ -27,9 +27,9 @@ public class DynamicCodeGenerator { public static void main(String[] args) throws FileNotFoundException, SclParserException { - System.out.println("Dynamic code generator"); - if (args.length < 1) { + System.out.println("Dynamic code generator"); + System.out.println("Usage: gencode [-ied ] [-ap ] []"); System.exit(1); } @@ -66,8 +66,10 @@ public class DynamicCodeGenerator { } InputStream stream = new FileInputStream(icdFile); + + SclParser.withOutput = false; - SclParser sclParser = new SclParser(stream); + SclParser sclParser = new SclParser(stream, false); createDynamicCode(sclParser); } @@ -107,7 +109,7 @@ public class DynamicCodeGenerator { for (DataObjectType doType : doTypeDefs) { String functionPrototype = "DataObject*\nDO_" + doType.getId() - + "_createInstance(char* doName, ModelNode* parent);"; + + "_createInstance(char* doName, ModelNode* parent, int arrayCount);"; functionPrototypes.add(functionPrototype); } @@ -119,6 +121,16 @@ public class DynamicCodeGenerator { functionPrototypes.add(functionPrototype); } + /* Print header */ + + System.out.println("#include \"iec61850_server.h\""); + System.out.println(); + + for (String prototype : functionPrototypes) { + System.out.println(prototype); + System.out.println(); + } + for (LogicalNodeType lnType : lnTypeDefs) { @@ -134,8 +146,8 @@ public class DynamicCodeGenerator { out.println(" LogicalNode* newLn = LogicalNode_create(lnName, parent);\n"); List doDefs = lnType.getDataObjectDefinitions(); - for (DataObjectDefinition objDef : doDefs) { - out.printf(" DO_%s_createInstance(\"%s\", (ModelNode*) newLn);\n", objDef.getType(), objDef.getName()); + for (DataObjectDefinition objDef : doDefs) { + out.printf(" DO_%s_createInstance(\"%s\", (ModelNode*) newLn, %d);\n", objDef.getType(), objDef.getName(), objDef.getCount()); } out.println("\n return newLn;"); @@ -150,9 +162,10 @@ public class DynamicCodeGenerator { out.println(); out.println(" */"); out.println("DataObject*"); - out.printf("DO_%s_createInstance(char* doName, ModelNode* parent)\n", doType.getId()); + out.printf("DO_%s_createInstance(char* doName, ModelNode* parent, int arrayCount)\n", doType.getId()); out.println("{"); - out.println(" DataObject* newDo = DataObject_create(doName, parent);\n"); + + out.println(" DataObject* newDo = DataObject_create(doName, parent, arrayCount);\n"); for (DataAttributeDefinition dad : doType.getDataAttributes()) { @@ -199,7 +212,7 @@ public class DynamicCodeGenerator { for (DataAttributeDefinition dad : daType.getSubDataAttributes()) { if (dad.getAttributeType() == AttributeType.CONSTRUCTED) { out.print(" DA_" + dad.getType() + "_createInstance(\"" + dad.getName() + "\", "); - out.println("(ModelNode*) newDo, fc, triggerOptions);"); + out.println("(ModelNode*) newDa, fc, triggerOptions);"); } else { out.print(" DataAttribute_create(\"" + dad.getName() + "\", "); @@ -212,7 +225,7 @@ public class DynamicCodeGenerator { } } - out.println("\n return newDo;"); + out.println("\n return newDa;"); out.println("}\n\n"); }