- extended beaglebone demo

This commit is contained in:
Michael Zillgith 2015-10-12 16:58:51 +02:00
parent 4a4963b964
commit 758615a3f8
5 changed files with 901 additions and 146 deletions

View file

@ -77,27 +77,27 @@ static void
updateLED1stVal(bool newLedState, uint64_t timeStamp) {
switchLED(LED1, newLedState);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, newLedState);
IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_q, QUALITY_VALIDITY_GOOD | QUALITY_SOURCE_SUBSTITUTED);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
}
static void
updateLED2stVal(bool newLedState, uint64_t timeStamp) {
switchLED(LED2, newLedState);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, newLedState);
IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_q, QUALITY_VALIDITY_QUESTIONABLE | QUALITY_DETAIL_OSCILLATORY);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
}
static void
updateLED3stVal(bool newLedState, uint64_t timeStamp) {
switchLED(LED3, newLedState);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, newLedState);
IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_q, QUALITY_VALIDITY_GOOD);
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
}
static ControlHandlerResult
@ -146,6 +146,62 @@ controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
return CONTROL_RESULT_OK;
}
static int ledOnTimeMs = 1000;
static int ledOffTimeMs = 1000;
static int32_t opCnt = 0;
static ControlHandlerResult
controlHandlerForInt32Controls(void* parameter, MmsValue* value, bool test)
{
if (test)
return CONTROL_RESULT_OK;
if (parameter == IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs) {
int32_t newValue = MmsValue_toInt32(value);
opCnt = newValue;
uint64_t currentTime = Hal_getTimeInMs();
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t, currentTime);
IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal, opCnt);
}
return CONTROL_RESULT_OK;
}
static MmsDataAccessError
int32WriteAccessHandler (DataAttribute* dataAttribute, MmsValue* value, ClientConnection connection, void* parameter)
{
int newValue = MmsValue_toInt32(value);
/* Check if value is inside of valid range */
if (newValue < 0)
return DATA_ACCESS_ERROR_OBJECT_VALUE_INVALID;
if (dataAttribute == IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal) {
printf("New value for TIM_GAPC1.OpDlTmms.setVal = %i\n", newValue);
ledOffTimeMs = newValue;
return DATA_ACCESS_ERROR_SUCCESS;
}
if (dataAttribute == IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal) {
printf("New value for TIM_GAPC1.RsDlTmms.setVal = %i\n", newValue);
ledOnTimeMs = newValue;
return DATA_ACCESS_ERROR_SUCCESS;
}
return DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED;
}
int main(int argc, char** argv) {
@ -153,7 +209,7 @@ int main(int argc, char** argv) {
iedServer = IedServer_create(&iedModel);
/* Set callback handlers */
/* Set control callback handlers */
IedServer_setConnectionIndicationHandler(iedServer, (IedConnectionIndicationHandler) connectionIndicationHandler, NULL);
IedServer_setPerformCheckHandler(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1,
@ -181,11 +237,22 @@ int main(int argc, char** argv) {
IEDMODEL_GenericIO_GGIO1_DPCSO1);
/* Initialize process values */
IedServer_setControlHandler(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs, (ControlHandler) controlHandlerForInt32Controls,
IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs);
/* Initialize process values */
MmsValue* DPCSO1_stVal = IedServer_getAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_DPCSO1_stVal);
MmsValue_setBitStringFromInteger(DPCSO1_stVal, 1); /* set DPC to OFF */
/* Intitalize setting values */
IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal, ledOffTimeMs);
IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal, ledOnTimeMs);
/* Set callback handler for settings */
IedServer_handleWriteAccess(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal, int32WriteAccessHandler, NULL);
IedServer_handleWriteAccess(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal, int32WriteAccessHandler, NULL);
/* MMS server will be instructed to start listening to client connections. */
IedServer_start(iedServer, 102);
@ -210,10 +277,21 @@ int main(int argc, char** argv) {
if (automaticOperationMode) {
if (nextLedToggleTime <= currentTime) {
nextLedToggleTime = currentTime + 1000;
if (ledStateValue)
nextLedToggleTime = currentTime + ledOffTimeMs;
else
nextLedToggleTime = currentTime + ledOnTimeMs;
ledStateValue = !ledStateValue;
if (ledStateValue) {
opCnt++;
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t, currentTime);
IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal, opCnt);
}
updateLED1stVal(ledStateValue, currentTime);
updateLED2stVal(ledStateValue, currentTime);
updateLED3stVal(ledStateValue, currentTime);

View file

@ -72,6 +72,7 @@
</LN0>
<LN lnClass="LPHD" lnType="LPHD1" inst="1" prefix="" />
<LN lnClass="GGIO" lnType="GGIO1" inst="1" prefix="">
<DOI name="Mod">
<DAI name="ctlModel">
@ -99,6 +100,9 @@
</DAI>
</DOI>
</LN>
<LN lnClass="GAPC" lnType="TIM_GAPC" inst="1" prefix="TIM_" />
</LDevice>
</Server>
</AccessPoint>
@ -106,20 +110,22 @@
<DataTypeTemplates>
<LNodeType id="LLN01" lnClass="LLN0">
<DO name="Mod" type="INC_1_Mod" />
<DO name="Beh" type="INS_1_Beh" />
<DO name="Health" type="INS_1_Beh" />
<DO name="Beh" type="ENS_Beh" />
<DO name="Mod" type="ENC_Mod_status_only" />
<DO name="Health" type="ENS_Beh" />
<DO name="NamPlt" type="LPL_1_NamPlt" />
</LNodeType>
<LNodeType id="LPHD1" lnClass="LPHD">
<DO name="PhyNam" type="DPL_1_PhyNam" />
<DO name="PhyHealth" type="INS_1_Beh" />
<DO name="PhyHealth" type="ENS_Beh" />
<DO name="Proxy" type="SPS_1_Proxy" />
</LNodeType>
<LNodeType id="GGIO1" lnClass="GGIO">
<DO name="Mod" type="INC_2_Mod" />
<DO name="Beh" type="INS_1_Beh" />
<DO name="Health" type="INS_1_Beh" />
<DO name="Beh" type="ENS_Beh" />
<DO name="Mod" type="ENC_Mod_status_only" />
<DO name="Health" type="ENS_Beh" />
<DO name="NamPlt" type="LPL_2_NamPlt" />
<DO name="AnIn1" type="MV_1_AnIn1" />
<DO name="AnIn2" type="MV_1_AnIn1" />
@ -134,17 +140,65 @@
<DO name="Ind3" type="SPS_1_Proxy" />
<DO name="Ind4" type="SPS_1_Proxy" />
</LNodeType>
<DOType id="INC_1_Mod" cdc="INC">
<LNodeType id="TIM_GAPC" lnClass="GAPC">
<DO name="Beh" type="ENS_Beh" />
<DO name="Mod" type="ENC_Mod_status_only" />
<DO name="Str" type="ACD_Str" />
<DO name="Op" type="ACT_Op" />
<DO name="OpDlTmms" type="ING_EXT" />
<DO name="RsDlTmms" type="ING_EXT" />
<DO name="OpCntRs" type="INC_OpCntRs" />
</LNodeType>
<DOType id="ING_EXT" cdc="ING">
<DA name="setVal" bType="INT32" fc="SP" dchg="true" />
<DA name="dataNs" bType="VisString255" fc="EX">
<Val>EXT:2015</Val>
</DA>
</DOType>
<DOType id="ENS_Beh" cdc="ENS">
<DA name="stVal" fc="ST" bType="Enum" type="Beh" dchg="true" />
<DA name="q" fc="ST" bType="Quality" qchg="true" />
<DA name="t" fc="ST" bType="Timestamp" />
</DOType>
<DOType id="INC_OpCntRs" cdc="INC">
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF">
<Val>direct-with-normal-security</Val>
</DA>
</DOType>
<DOType id="INS_1_Beh" cdc="INS">
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DOType cdc="ACD" id="ACD_Str">
<DA bType="BOOLEAN" dchg="true" fc="ST" name="general" />
<DA bType="Enum" dchg="true" fc="ST" name="dirGeneral" type="dirGeneral" />
<DA bType="Quality" fc="ST" name="q" qchg="true" />
<DA bType="Timestamp" fc="ST" name="t" />
</DOType>
<DOType cdc="ACT" id="ACT_Op">
<DA bType="BOOLEAN" dchg="true" fc="ST" name="general"/>
<DA bType="Quality" fc="ST" name="q" qchg="true"/>
<DA bType="Timestamp" fc="ST" name="t"/>
</DOType>
<DOType cdc="ENC" id="ENC_Mod_status_only">
<DA bType="Enum" dchg="true" fc="ST" name="stVal" type="Beh"/>
<DA bType="Quality" fc="ST" name="q" qchg="true"/>
<DA bType="Timestamp" fc="ST" name="t"/>
<DA bType="Enum" fc="CF" name="ctlModel" type="CtlModels">
<Val>status-only</Val>
</DA>
</DOType>
<DOType id="LPL_1_NamPlt" cdc="LPL">
<DA name="vendor" bType="VisString255" fc="DC" />
<DA name="swRev" bType="VisString255" fc="DC" />
@ -152,24 +206,29 @@
<DA name="configRev" bType="VisString255" fc="DC" />
<DA name="ldNs" bType="VisString255" fc="EX" />
</DOType>
<DOType id="DPL_1_PhyNam" cdc="DPL">
<DA name="vendor" bType="VisString255" fc="DC" />
</DOType>
<DOType id="SPS_1_Proxy" cdc="SPS">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="LPL_2_NamPlt" cdc="LPL">
<DA name="vendor" bType="VisString255" fc="DC" />
<DA name="swRev" bType="VisString255" fc="DC" />
<DA name="d" bType="VisString255" fc="DC" />
</DOType>
<DOType id="MV_1_AnIn1" cdc="MV">
<DA name="mag" type="AnalogueValue_1" bType="Struct" fc="MX" dchg="true" />
<DA name="q" bType="Quality" fc="MX" qchg="true" />
<DA name="t" bType="Timestamp" fc="MX" />
</DOType>
<DOType id="DPC_1_DPCSO1" cdc="DPC">
<DA name="stVal" bType="Dbpos" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
@ -177,11 +236,13 @@
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="INC_2_Mod" cdc="INC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
</DOType>
<DOType id="SPC_2_SPCSO1" cdc="SPC">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
@ -189,6 +250,7 @@
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="SPC_1_SPCSO2" cdc="SPC">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
@ -198,6 +260,7 @@
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="SPC_1_SPCSO3" cdc="SPC">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
@ -205,13 +268,33 @@
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="INC_OpCntRs" cdc="SPC">
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="Oper" type="INCOperate_1" bType="Struct" fc="CO" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DAType id="AnalogueValue_1">
<BDA name="f" bType="FLOAT32" />
</DAType>
<DAType id="Originator_1">
<BDA name="orCat" type="OrCat" bType="Enum" />
<BDA name="orIdent" bType="Octet64" />
</DAType>
<DAType id="INCOperate_1">
<BDA name="ctlVal" bType="INT32" />
<BDA name="origin" type="Originator_1" bType="Struct" />
<BDA name="ctlNum" bType="INT8U" />
<BDA name="T" bType="Timestamp" />
<BDA name="Test" bType="BOOLEAN" />
<BDA name="Check" bType="Check" />
</DAType>
<DAType id="SPCOperate_1">
<BDA name="ctlVal" bType="BOOLEAN" />
<BDA name="origin" type="Originator_1" bType="Struct" />
@ -228,6 +311,21 @@
<BDA name="T" bType="Timestamp" />
<BDA name="Test" bType="BOOLEAN" />
</DAType>
<EnumType id="Beh">
<EnumVal ord="1">on</EnumVal>
<EnumVal ord="2">blocked</EnumVal>
<EnumVal ord="3">test</EnumVal>
<EnumVal ord="4">test/blocked</EnumVal>
<EnumVal ord="5">off</EnumVal>
</EnumType>
<EnumType id="dirGeneral">
<EnumVal ord="0">unknown</EnumVal>
<EnumVal ord="1">forward</EnumVal>
<EnumVal ord="2">backward</EnumVal>
<EnumVal ord="3">both</EnumVal>
</EnumType>
<EnumType id="CtlModels">
<EnumVal ord="0">status-only</EnumVal>
@ -236,6 +334,7 @@
<EnumVal ord="3">direct-with-enhanced-security</EnumVal>
<EnumVal ord="4">sbo-with-enhanced-security</EnumVal>
</EnumType>
<EnumType id="OrCat">
<EnumVal ord="0">not-supported</EnumVal>
<EnumVal ord="1">bay-control</EnumVal>

View file

@ -9,6 +9,9 @@
/* set to 1 if you want to run the demo on a PC */
//#define SIMULATED 1
/* select correct file paths to access LEDs - depends on beaglebones linux distro/version */
#if 0
#define LED1 "/sys/class/leds/beaglebone::usr0"
#define LED2 "/sys/class/leds/beaglebone::usr1"

View file

@ -76,14 +76,62 @@ LogicalNode iedModel_GenericIO_LLN0 = {
"LLN0",
(ModelNode*) &iedModel_GenericIO,
(ModelNode*) &iedModel_GenericIO_LPHD1,
(ModelNode*) &iedModel_GenericIO_LLN0_Mod,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
};
DataObject iedModel_GenericIO_LLN0_Beh = {
DataObjectModelType,
"Beh",
(ModelNode*) &iedModel_GenericIO_LLN0,
(ModelNode*) &iedModel_GenericIO_LLN0_Mod,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_stVal,
0
};
DataAttribute iedModel_GenericIO_LLN0_Beh_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_LLN0_Beh_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_LLN0_Beh_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_LLN0_Mod = {
DataObjectModelType,
"Mod",
(ModelNode*) &iedModel_GenericIO_LLN0,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
(ModelNode*) &iedModel_GenericIO_LLN0_Health,
(ModelNode*) &iedModel_GenericIO_LLN0_Mod_stVal,
0
};
@ -96,7 +144,7 @@ DataAttribute iedModel_GenericIO_LLN0_Mod_stVal = {
NULL,
0,
IEC61850_FC_ST,
INT32,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@ -140,54 +188,6 @@ DataAttribute iedModel_GenericIO_LLN0_Mod_ctlModel = {
NULL,
0};
DataObject iedModel_GenericIO_LLN0_Beh = {
DataObjectModelType,
"Beh",
(ModelNode*) &iedModel_GenericIO_LLN0,
(ModelNode*) &iedModel_GenericIO_LLN0_Health,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_stVal,
0
};
DataAttribute iedModel_GenericIO_LLN0_Beh_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_q,
NULL,
0,
IEC61850_FC_ST,
INT32,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_LLN0_Beh_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
(ModelNode*) &iedModel_GenericIO_LLN0_Beh_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_LLN0_Beh_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_LLN0_Beh,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_LLN0_Health = {
DataObjectModelType,
"Health",
@ -205,7 +205,7 @@ DataAttribute iedModel_GenericIO_LLN0_Health_stVal = {
NULL,
0,
IEC61850_FC_ST,
INT32,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@ -357,7 +357,7 @@ DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_stVal = {
NULL,
0,
IEC61850_FC_ST,
INT32,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@ -440,19 +440,80 @@ LogicalNode iedModel_GenericIO_GGIO1 = {
LogicalNodeModelType,
"GGIO1",
(ModelNode*) &iedModel_GenericIO,
NULL,
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
};
DataObject iedModel_GenericIO_GGIO1_Beh = {
DataObjectModelType,
"Beh",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_stVal,
0
};
DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_GGIO1_Beh_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_GGIO1_Beh_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_GGIO1_Mod = {
DataObjectModelType,
"Mod",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod_q,
(ModelNode*) &iedModel_GenericIO_GGIO1_Health,
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod_stVal,
0
};
DataAttribute iedModel_GenericIO_GGIO1_Mod_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod,
(ModelNode*) &iedModel_GenericIO_GGIO1_Mod_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_GGIO1_Mod_q = {
DataAttributeModelType,
"q",
@ -492,54 +553,6 @@ DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel = {
NULL,
0};
DataObject iedModel_GenericIO_GGIO1_Beh = {
DataObjectModelType,
"Beh",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Health,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_stVal,
0
};
DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_q,
NULL,
0,
IEC61850_FC_ST,
INT32,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_GGIO1_Beh_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_GGIO1_Beh_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_GGIO1_Health = {
DataObjectModelType,
"Health",
@ -557,7 +570,7 @@ DataAttribute iedModel_GenericIO_GGIO1_Health_stVal = {
NULL,
0,
IEC61850_FC_ST,
INT32,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@ -1901,17 +1914,491 @@ DataAttribute iedModel_GenericIO_GGIO1_Ind4_t = {
NULL,
0};
LogicalNode iedModel_GenericIO_TIM_GAPC1 = {
LogicalNodeModelType,
"TIM_GAPC1",
(ModelNode*) &iedModel_GenericIO,
NULL,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh,
};
DataObject iedModel_GenericIO_TIM_GAPC1_Beh = {
DataObjectModelType,
"Beh",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_stVal,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_Mod = {
DataObjectModelType,
"Mod",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_stVal,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel = {
DataAttributeModelType,
"ctlModel",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod,
NULL,
NULL,
0,
IEC61850_FC_CF,
ENUMERATED,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_Str = {
DataObjectModelType,
"Str",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_general,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_general = {
DataAttributeModelType,
"general",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral,
NULL,
0,
IEC61850_FC_ST,
BOOLEAN,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral = {
DataAttributeModelType,
"dirGeneral",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_q,
NULL,
0,
IEC61850_FC_ST,
ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_Op = {
DataObjectModelType,
"Op",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_general,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_general = {
DataAttributeModelType,
"general",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_q,
NULL,
0,
IEC61850_FC_ST,
BOOLEAN,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op,
NULL,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_OpDlTmms = {
DataObjectModelType,
"OpDlTmms",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal = {
DataAttributeModelType,
"setVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs,
NULL,
0,
IEC61850_FC_SP,
INT32,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs = {
DataAttributeModelType,
"dataNs",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms,
NULL,
NULL,
0,
IEC61850_FC_EX,
VISIBLE_STRING_255,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_RsDlTmms = {
DataObjectModelType,
"RsDlTmms",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal = {
DataAttributeModelType,
"setVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs,
NULL,
0,
IEC61850_FC_SP,
INT32,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs = {
DataAttributeModelType,
"dataNs",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms,
NULL,
NULL,
0,
IEC61850_FC_EX,
VISIBLE_STRING_255,
0,
NULL,
0};
DataObject iedModel_GenericIO_TIM_GAPC1_OpCntRs = {
DataObjectModelType,
"OpCntRs",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1,
NULL,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal,
0
};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal = {
DataAttributeModelType,
"stVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_q,
NULL,
0,
IEC61850_FC_ST,
INT32,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_t,
NULL,
0,
IEC61850_FC_ST,
QUALITY,
0 + TRG_OPT_QUALITY_CHANGED,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_t = {
DataAttributeModelType,
"t",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
NULL,
0,
IEC61850_FC_ST,
TIMESTAMP,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper = {
DataAttributeModelType,
"Oper",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal,
0,
IEC61850_FC_CO,
CONSTRUCTED,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal = {
DataAttributeModelType,
"ctlVal",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin,
NULL,
0,
IEC61850_FC_CO,
BOOLEAN,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin = {
DataAttributeModelType,
"origin",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat,
0,
IEC61850_FC_CO,
CONSTRUCTED,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat = {
DataAttributeModelType,
"orCat",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent,
NULL,
0,
IEC61850_FC_CO,
ENUMERATED,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent = {
DataAttributeModelType,
"orIdent",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin,
NULL,
NULL,
0,
IEC61850_FC_CO,
OCTET_STRING_64,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum = {
DataAttributeModelType,
"ctlNum",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T,
NULL,
0,
IEC61850_FC_CO,
INT8U,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T = {
DataAttributeModelType,
"T",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test,
NULL,
0,
IEC61850_FC_CO,
TIMESTAMP,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test = {
DataAttributeModelType,
"Test",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check,
NULL,
0,
IEC61850_FC_CO,
BOOLEAN,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check = {
DataAttributeModelType,
"Check",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper,
NULL,
NULL,
0,
IEC61850_FC_CO,
CHECK,
0,
NULL,
0};
DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel = {
DataAttributeModelType,
"ctlModel",
(ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs,
NULL,
NULL,
0,
IEC61850_FC_CF,
ENUMERATED,
0,
NULL,
0};
extern ReportControlBlock iedModel_GenericIO_LLN0_report0;
extern ReportControlBlock iedModel_GenericIO_LLN0_report1;
extern ReportControlBlock iedModel_GenericIO_LLN0_report2;
extern ReportControlBlock iedModel_GenericIO_LLN0_report3;
extern ReportControlBlock iedModel_GenericIO_LLN0_report4;
ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report1};
ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCB02", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report2};
ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsRCB03", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report3};
ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsRCB04", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report4};
ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsRCB05", "Events1", false, "Events", 1, 8, 111, 50, 1000, NULL};
ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report1};
ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCB02", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report2};
ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsRCB03", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report3};
ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsRCB04", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report4};
ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsRCB05", "Events1", false, "Events", 1, 24, 111, 50, 1000, NULL};
@ -1941,4 +2428,12 @@ iedModel_GenericIO_GGIO1_SPCSO2_ctlModel.mmsValue = MmsValue_newIntegerFromInt32
iedModel_GenericIO_GGIO1_SPCSO3_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1);
iedModel_GenericIO_GGIO1_DPCSO1_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(3);
iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(0);
iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs.mmsValue = MmsValue_newVisibleString("EXT:2015");
iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs.mmsValue = MmsValue_newVisibleString("EXT:2015");
iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1);
}

View file

@ -13,15 +13,15 @@
extern IedModel iedModel;
extern LogicalDevice iedModel_GenericIO;
extern LogicalNode iedModel_GenericIO_LLN0;
extern DataObject iedModel_GenericIO_LLN0_Beh;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_stVal;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_q;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_t;
extern DataObject iedModel_GenericIO_LLN0_Mod;
extern DataAttribute iedModel_GenericIO_LLN0_Mod_stVal;
extern DataAttribute iedModel_GenericIO_LLN0_Mod_q;
extern DataAttribute iedModel_GenericIO_LLN0_Mod_t;
extern DataAttribute iedModel_GenericIO_LLN0_Mod_ctlModel;
extern DataObject iedModel_GenericIO_LLN0_Beh;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_stVal;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_q;
extern DataAttribute iedModel_GenericIO_LLN0_Beh_t;
extern DataObject iedModel_GenericIO_LLN0_Health;
extern DataAttribute iedModel_GenericIO_LLN0_Health_stVal;
extern DataAttribute iedModel_GenericIO_LLN0_Health_q;
@ -44,14 +44,15 @@ extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_stVal;
extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_q;
extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_t;
extern LogicalNode iedModel_GenericIO_GGIO1;
extern DataObject iedModel_GenericIO_GGIO1_Mod;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_q;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_t;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel;
extern DataObject iedModel_GenericIO_GGIO1_Beh;
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_q;
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_t;
extern DataObject iedModel_GenericIO_GGIO1_Mod;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_q;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_t;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel;
extern DataObject iedModel_GenericIO_GGIO1_Health;
extern DataAttribute iedModel_GenericIO_GGIO1_Health_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Health_q;
@ -161,20 +162,59 @@ extern DataObject iedModel_GenericIO_GGIO1_Ind4;
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_q;
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
extern LogicalNode iedModel_GenericIO_TIM_GAPC1;
extern DataObject iedModel_GenericIO_TIM_GAPC1_Beh;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_stVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_q;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_t;
extern DataObject iedModel_GenericIO_TIM_GAPC1_Mod;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_stVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_q;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_t;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel;
extern DataObject iedModel_GenericIO_TIM_GAPC1_Str;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_general;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_q;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_t;
extern DataObject iedModel_GenericIO_TIM_GAPC1_Op;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_general;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_q;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_t;
extern DataObject iedModel_GenericIO_TIM_GAPC1_OpDlTmms;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs;
extern DataObject iedModel_GenericIO_TIM_GAPC1_RsDlTmms;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs;
extern DataObject iedModel_GenericIO_TIM_GAPC1_OpCntRs;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_q;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_t;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent;
extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum;
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;
#define IEDMODEL_GenericIO (&iedModel_GenericIO)
#define IEDMODEL_GenericIO_LLN0 (&iedModel_GenericIO_LLN0)
#define IEDMODEL_GenericIO_LLN0_Beh (&iedModel_GenericIO_LLN0_Beh)
#define IEDMODEL_GenericIO_LLN0_Beh_stVal (&iedModel_GenericIO_LLN0_Beh_stVal)
#define IEDMODEL_GenericIO_LLN0_Beh_q (&iedModel_GenericIO_LLN0_Beh_q)
#define IEDMODEL_GenericIO_LLN0_Beh_t (&iedModel_GenericIO_LLN0_Beh_t)
#define IEDMODEL_GenericIO_LLN0_Mod (&iedModel_GenericIO_LLN0_Mod)
#define IEDMODEL_GenericIO_LLN0_Mod_stVal (&iedModel_GenericIO_LLN0_Mod_stVal)
#define IEDMODEL_GenericIO_LLN0_Mod_q (&iedModel_GenericIO_LLN0_Mod_q)
#define IEDMODEL_GenericIO_LLN0_Mod_t (&iedModel_GenericIO_LLN0_Mod_t)
#define IEDMODEL_GenericIO_LLN0_Mod_ctlModel (&iedModel_GenericIO_LLN0_Mod_ctlModel)
#define IEDMODEL_GenericIO_LLN0_Beh (&iedModel_GenericIO_LLN0_Beh)
#define IEDMODEL_GenericIO_LLN0_Beh_stVal (&iedModel_GenericIO_LLN0_Beh_stVal)
#define IEDMODEL_GenericIO_LLN0_Beh_q (&iedModel_GenericIO_LLN0_Beh_q)
#define IEDMODEL_GenericIO_LLN0_Beh_t (&iedModel_GenericIO_LLN0_Beh_t)
#define IEDMODEL_GenericIO_LLN0_Health (&iedModel_GenericIO_LLN0_Health)
#define IEDMODEL_GenericIO_LLN0_Health_stVal (&iedModel_GenericIO_LLN0_Health_stVal)
#define IEDMODEL_GenericIO_LLN0_Health_q (&iedModel_GenericIO_LLN0_Health_q)
@ -197,14 +237,15 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_LPHD1_Proxy_q (&iedModel_GenericIO_LPHD1_Proxy_q)
#define IEDMODEL_GenericIO_LPHD1_Proxy_t (&iedModel_GenericIO_LPHD1_Proxy_t)
#define IEDMODEL_GenericIO_GGIO1 (&iedModel_GenericIO_GGIO1)
#define IEDMODEL_GenericIO_GGIO1_Mod (&iedModel_GenericIO_GGIO1_Mod)
#define IEDMODEL_GenericIO_GGIO1_Mod_q (&iedModel_GenericIO_GGIO1_Mod_q)
#define IEDMODEL_GenericIO_GGIO1_Mod_t (&iedModel_GenericIO_GGIO1_Mod_t)
#define IEDMODEL_GenericIO_GGIO1_Mod_ctlModel (&iedModel_GenericIO_GGIO1_Mod_ctlModel)
#define IEDMODEL_GenericIO_GGIO1_Beh (&iedModel_GenericIO_GGIO1_Beh)
#define IEDMODEL_GenericIO_GGIO1_Beh_stVal (&iedModel_GenericIO_GGIO1_Beh_stVal)
#define IEDMODEL_GenericIO_GGIO1_Beh_q (&iedModel_GenericIO_GGIO1_Beh_q)
#define IEDMODEL_GenericIO_GGIO1_Beh_t (&iedModel_GenericIO_GGIO1_Beh_t)
#define IEDMODEL_GenericIO_GGIO1_Mod (&iedModel_GenericIO_GGIO1_Mod)
#define IEDMODEL_GenericIO_GGIO1_Mod_stVal (&iedModel_GenericIO_GGIO1_Mod_stVal)
#define IEDMODEL_GenericIO_GGIO1_Mod_q (&iedModel_GenericIO_GGIO1_Mod_q)
#define IEDMODEL_GenericIO_GGIO1_Mod_t (&iedModel_GenericIO_GGIO1_Mod_t)
#define IEDMODEL_GenericIO_GGIO1_Mod_ctlModel (&iedModel_GenericIO_GGIO1_Mod_ctlModel)
#define IEDMODEL_GenericIO_GGIO1_Health (&iedModel_GenericIO_GGIO1_Health)
#define IEDMODEL_GenericIO_GGIO1_Health_stVal (&iedModel_GenericIO_GGIO1_Health_stVal)
#define IEDMODEL_GenericIO_GGIO1_Health_q (&iedModel_GenericIO_GGIO1_Health_q)
@ -314,6 +355,45 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_GGIO1_Ind4_stVal (&iedModel_GenericIO_GGIO1_Ind4_stVal)
#define IEDMODEL_GenericIO_GGIO1_Ind4_q (&iedModel_GenericIO_GGIO1_Ind4_q)
#define IEDMODEL_GenericIO_GGIO1_Ind4_t (&iedModel_GenericIO_GGIO1_Ind4_t)
#define IEDMODEL_GenericIO_TIM_GAPC1 (&iedModel_GenericIO_TIM_GAPC1)
#define IEDMODEL_GenericIO_TIM_GAPC1_Beh (&iedModel_GenericIO_TIM_GAPC1_Beh)
#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_stVal (&iedModel_GenericIO_TIM_GAPC1_Beh_stVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_q (&iedModel_GenericIO_TIM_GAPC1_Beh_q)
#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_t (&iedModel_GenericIO_TIM_GAPC1_Beh_t)
#define IEDMODEL_GenericIO_TIM_GAPC1_Mod (&iedModel_GenericIO_TIM_GAPC1_Mod)
#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_stVal (&iedModel_GenericIO_TIM_GAPC1_Mod_stVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_q (&iedModel_GenericIO_TIM_GAPC1_Mod_q)
#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_t (&iedModel_GenericIO_TIM_GAPC1_Mod_t)
#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_ctlModel (&iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel)
#define IEDMODEL_GenericIO_TIM_GAPC1_Str (&iedModel_GenericIO_TIM_GAPC1_Str)
#define IEDMODEL_GenericIO_TIM_GAPC1_Str_general (&iedModel_GenericIO_TIM_GAPC1_Str_general)
#define IEDMODEL_GenericIO_TIM_GAPC1_Str_dirGeneral (&iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral)
#define IEDMODEL_GenericIO_TIM_GAPC1_Str_q (&iedModel_GenericIO_TIM_GAPC1_Str_q)
#define IEDMODEL_GenericIO_TIM_GAPC1_Str_t (&iedModel_GenericIO_TIM_GAPC1_Str_t)
#define IEDMODEL_GenericIO_TIM_GAPC1_Op (&iedModel_GenericIO_TIM_GAPC1_Op)
#define IEDMODEL_GenericIO_TIM_GAPC1_Op_general (&iedModel_GenericIO_TIM_GAPC1_Op_general)
#define IEDMODEL_GenericIO_TIM_GAPC1_Op_q (&iedModel_GenericIO_TIM_GAPC1_Op_q)
#define IEDMODEL_GenericIO_TIM_GAPC1_Op_t (&iedModel_GenericIO_TIM_GAPC1_Op_t)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_dataNs (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs)
#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms)
#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_dataNs (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs (&iedModel_GenericIO_TIM_GAPC1_OpCntRs)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_q (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_q)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_t)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum)
#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_T (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T)
#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)
#endif /* STATIC_MODEL_H_ */