- fixed model file and Makefile in server_example_config_file

This commit is contained in:
Michael Zillgith 2016-12-08 10:02:23 +01:00
parent b8a4e8c7b0
commit 291653a38d
6 changed files with 258 additions and 53 deletions

View File

@ -36,7 +36,7 @@
* 0 ==> server runs in multi-threaded mode (one thread for each connection and
* one server background thread )
*/
#define CONFIG_MMS_SINGLE_THREADED 1
#define CONFIG_MMS_SINGLE_THREADED 0
/*
* Optimize stack for threadless operation - don't use semaphores

View File

@ -2,22 +2,7 @@
<SCL xmlns="http://www.iec.ch/61850/2003/SCL" version="2007" revision="B">
<Header id="" version="1" revision="" nameStructure="IEDName">
</Header>
<Communication>
<SubNetwork name="subnetwork1" type="8-MMS">
<Text>Station bus</Text>
<BitRate unit="b/s">10</BitRate>
<ConnectedAP iedName="beagle" apName="accessPoint1">
<Address>
<P type="IP">10.0.0.2</P>
<P type="IP-SUBNET">255.255.255.0</P>
<P type="IP-GATEWAY">10.0.0.1</P>
<P type="OSI-TSEL">0001</P>
<P type="OSI-PSEL">00000001</P>
<P type="OSI-SSEL">0001</P>
</Address>
</ConnectedAP>
</SubNetwork>
</Communication>
<IED name="beagle">
<Services>
@ -87,7 +72,12 @@
</DOI>
</LN>
<LN lnClass="GAPC" lnType="TIM_GAPC" inst="1" prefix="TIM_" />
<LN lnClass="GAPC" lnType="TIM_GAPC" inst="1" prefix="TIM_" />
<LN lnClass="FSCH" lnType="FSCH_60S" inst="1" prefix="T60S_" />
<LN lnClass="FSCH" lnType="FSCH_60S" inst="2" prefix="T60S_" />
<LN lnClass="FSCC" lnType="FSCC" inst="1" prefix="GGIO_" />
</LDevice>
</Server>
@ -140,6 +130,159 @@
<DO name="OpCntRs" type="INC_OpCntRs" />
</LNodeType>
<!-- Schedule type for 60s on/off controls -->
<LNodeType id="FSCH_60S" lnClass="FSCH">
<DO name="Beh" type="ENS_Beh" desc="Enumerated status" />
<DO name="SchdSt" type="ENS_ScheduleStateKind" desc="schedule state"/>
<DO name="SchdEntr" type="INS_0" desc="current schedule entry of the running schedule"/>
<DO name="ValSPS" type="SPS_0" desc="current value determined by the schedule" />
<DO name="VldReq" type="SPC_0" desc="validate request"/>
<DO name="EnaReq" type="SPC_0" desc="enable request"/>
<DO name="EdtReq" type="SPC_0" desc="enable request"/>
<DO name="DsaReq" type="SPC_0" desc="disable request"/>
<DO name="SchdPrio" type="ING" desc="schedule priority"/>
<DO name="NumEntr" type="ING" desc="number of valid entries"/>
<DO name="SchdIntv" type="ING" desc="the schedule interval duration in time entities as specified in the unit"/>
<DO name="ValSPG1" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG2" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG3" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG4" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG5" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG6" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG7" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG8" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG9" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG10" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG11" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG12" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG13" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG14" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG15" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG16" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG17" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG18" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG19" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG20" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG21" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG22" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG23" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG24" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG25" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG26" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG27" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG28" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG29" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG30" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG31" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG32" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG33" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG34" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG35" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG36" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG37" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG38" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG39" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG40" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG41" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG42" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG43" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG44" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG45" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG46" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG47" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG48" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG49" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG50" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG51" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG52" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG53" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG54" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG55" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG56" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG57" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG58" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG59" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="ValSPG60" type="SPG_0" desc="the SPG scheduled values (current value as SPS)"/>
<DO name="StrTm" type="TSG_0" desc="start time of the schedule in UTC time" />
<DO name="IntvPer" type="ING" desc="the periodicity interval duration in entities as specified in IntvTyp; if the value is 0, the schedule shall not be repeated periodically"/>
<DO name="IntvTyp" type="ENG_ScheduleIntervalKind" desc="interval type (units) to define the periodicity"/>
<DO name="SchdReuse" type="SPG_0" desc=""/>
</LNodeType>
<LNodeType id="FSCC" lnClass="FSCH">
<DO name="Beh" type="ENS_Beh" desc="Enumerated status" />
<DO name="ActSchdRef" type="ORS_0" desc="object reference of active schedule"/>
<DO name="CtlEnt" type="ORG_0" desc="object reference to the entity controlled by the schedule"/>
<DO name="Schd1" type="ORG_0" desc="object reference to schedule 1"/>
<DO name="Schd2" type="ORG_0" desc="object reference to schedule 2"/>
</LNodeType>
<DOType cdc="ORG" id="ORG_0">
<DA name="setSrcRef" fc="SP" dchg="true" bType="VisString129" />
</DOType>
<DOType cdc="ORS" id="ORS_0">
<DA name="stVal" fc="ST" dchg="true" bType="VisString129" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType cdc="ENS" desc="Enumerated status" id="ENS_ScheduleStateKind">
<DA bType="Enum" dchg="true" fc="ST" name="stVal" type="ScheduleStateKind" />
<DA bType="Quality" fc="ST" name="q" qchg="true" />
<DA bType="Timestamp" fc="ST" name="t" />
</DOType>
<DOType cdc="INS" desc="Integer status" id="INS_0">
<DA bType="INT32" dchg="true" fc="ST" name="stVal" />
<DA bType="Quality" fc="ST" name="q" qchg="true" />
<DA bType="Timestamp" fc="ST" name="t" />
</DOType>
<DOType cdc="SPS" desc="Single point status" id="SPS_0">
<DA bType="BOOLEAN" dchg="true" fc="ST" name="stVal" />
<DA bType="Quality" fc="ST" name="q" qchg="true" />
<DA bType="Timestamp" fc="ST" name="t" />
</DOType>
<DOType id="SPC_0" cdc="SPC">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="ING" cdc="ING">
<DA name="setVal" bType="INT32" fc="SP" dchg="true" />
</DOType>
<DOType cdc="SPG" id="SPG_0">
<DA name="setVal" bType="BOOLEAN" fc="SG" dchg="true" />
</DOType>
<DOType cdc="TSG" id="TSG_0">
<DA name="setTm" bType="Timestamp" fc="SP" dchg="true" />
<DA name="setCal" bType="Struct" type="CalendarTime" fc="SP" dchg="true" />
</DOType>
<DOType id="ENG_ScheduleIntervalKind" cdc="ENG">
<DA name="setVal" bType="Enum" type="ScheduleIntervalKind" fc="SP"
dchg="true" />
</DOType>
<DOType id="ING_EXT" cdc="ING">
<DA name="setVal" bType="INT32" fc="SP" dchg="true" />
<DA name="dataNs" bType="VisString255" fc="EX">
@ -289,6 +432,17 @@
<BDA name="Test" bType="BOOLEAN" />
<BDA name="Check" bType="Check" />
</DAType>
<DAType id="CalendarTime">
<BDA name="occ" bType="INT16U" />
<BDA name="occType" bType="Enum" type="OccurenceKind" />
<BDA name="occPer" bType="Enum" type="PeriodKind" />
<BDA name="weekDay" bType="Enum" type="WeekdayKind" />
<BDA name="month" bType="Enum" type="MonthKind" />
<BDA name="day" bType="INT8U" />
<BDA name="hr" bType="INT8U" />
<BDA name="mn" bType="INT8U" />
</DAType>
<EnumType id="Beh">
<EnumVal ord="1">on</EnumVal>
@ -327,5 +481,66 @@
<EnumVal ord="7">maintenance</EnumVal>
<EnumVal ord="8">process</EnumVal>
</EnumType>
<EnumType id="ScheduleStateKind">
<EnumVal ord="1">not-ready</EnumVal>
<EnumVal ord="2">validated</EnumVal>
<EnumVal ord="3">ready</EnumVal>
<EnumVal ord="4">running</EnumVal>
</EnumType>
<EnumType id="OccurenceKind">
<EnumVal ord="0">Time</EnumVal>
<EnumVal ord="1">WeekDay</EnumVal>
<EnumVal ord="2">WeekOfYear</EnumVal>
<EnumVal ord="3">DayOfMonth</EnumVal>
<EnumVal ord="4">DayOfYear</EnumVal>
</EnumType>
<EnumType id="PeriodKind">
<EnumVal ord="0">Hour</EnumVal>
<EnumVal ord="1">Day</EnumVal>
<EnumVal ord="2">Week</EnumVal>
<EnumVal ord="3">Month</EnumVal>
<EnumVal ord="4">Year</EnumVal>
</EnumType>
<EnumType id="WeekdayKind">
<EnumVal ord="0">reserved</EnumVal>
<EnumVal ord="1">Monday</EnumVal>
<EnumVal ord="2">Tuesday</EnumVal>
<EnumVal ord="3">Wednesday</EnumVal>
<EnumVal ord="4">Thursday</EnumVal>
<EnumVal ord="5">Friday</EnumVal>
<EnumVal ord="6">Saturday</EnumVal>
<EnumVal ord="7">Sunday</EnumVal>
</EnumType>
<EnumType id="MonthKind">
<EnumVal ord="0">reserved</EnumVal>
<EnumVal ord="1">January</EnumVal>
<EnumVal ord="2">February</EnumVal>
<EnumVal ord="3">March</EnumVal>
<EnumVal ord="4">April</EnumVal>
<EnumVal ord="5">May</EnumVal>
<EnumVal ord="6">June</EnumVal>
<EnumVal ord="7">July</EnumVal>
<EnumVal ord="8">August</EnumVal>
<EnumVal ord="9">September</EnumVal>
<EnumVal ord="10">October</EnumVal>
<EnumVal ord="11">November</EnumVal>
<EnumVal ord="12">December</EnumVal>
</EnumType>
<EnumType id="ScheduleIntervalKind">
<EnumVal ord="1">MS</EnumVal>
<EnumVal ord="2">PER_CYCLE</EnumVal>
<EnumVal ord="3">CYCLE</EnumVal>
<EnumVal ord="4">DAY</EnumVal>
<EnumVal ord="5">WEEK</EnumVal>
<EnumVal ord="6">MONTH</EnumVal>
<EnumVal ord="7">YEAR</EnumVal>
<EnumVal ord="8">EXTERNAL</EnumVal>
</EnumType>
</DataTypeTemplates>
</SCL>

View File

@ -1,7 +1,7 @@
/*
* static_model.c
*
* automatically generated from beagle_demo.icd
* automatically generated from beagle_demo.iid
*/
#include "static_model.h"
@ -7583,7 +7583,7 @@ ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0,
IedModel iedModel = {
"Template",
"beagle",
&iedModel_GenericIO,
&iedModelds_GenericIO_LLN0_Events,
&iedModel_GenericIO_LLN0_report0,

View File

@ -1,7 +1,7 @@
/*
* static_model.h
*
* automatically generated from beagle_demo.icd
* automatically generated from beagle_demo.iid
*/
#ifndef STATIC_MODEL_H_

View File

@ -13,7 +13,7 @@ all: $(PROJECT_BINARY_NAME)
include $(LIBIEC_HOME)/make/common_targets.mk
model: $(PROJECT_ICD_FILE)
java -jar $(LIBIEC_HOME)/tools/model_generator/genconfig.jar $(PROJECT_ICD_FILE) > vmd-filestore/model.cfg
java -jar $(LIBIEC_HOME)/tools/model_generator/genconfig.jar $(PROJECT_ICD_FILE) model.cfg
$(PROJECT_BINARY_NAME): $(PROJECT_SOURCES) $(LIB_NAME)
$(CC) $(CFLAGS) $(LDFLAGS) -o $(PROJECT_BINARY_NAME) $(PROJECT_SOURCES) $(INCLUDES) $(LIB_NAME) $(LDLIBS)

View File

@ -2,7 +2,6 @@ MODEL(simpleIO){
LD(GenericIO){
LN(LLN0){
DO(Mod 0){
DA(stVal 0 3 0 1 0);
DA(q 0 23 0 2 0);
DA(t 0 22 0 0 0);
DA(ctlModel 0 12 4 0 0)=0;
@ -18,45 +17,36 @@ DA(q 0 23 0 2 0);
DA(t 0 22 0 0 0);
}
DO(NamPlt 0){
DA(vendor 0 20 5 0 0)="MZ Automation";
DA(swRev 0 20 5 0 0)="0.7.3";
DA(d 0 20 5 0 0)="libiec61850 server example";
DA(vendor 0 20 5 0 0);
DA(swRev 0 20 5 0 0);
DA(d 0 20 5 0 0);
DA(configRev 0 20 5 0 0);
DA(ldNs 0 20 11 0 0);
}
DS(Events){
DE(simpleIOGenericIO/GGIO1$ST$SPCSO1$stVal);
DE(GGIO1$ST$SPCSO1$stVal);
DE(GGIO1$ST$SPCSO2$stVal);
DE(GGIO1$ST$SPCSO3$stVal);
DE(GGIO1$ST$SPCSO4$stVal);
}
DS(Events2){
DE(GGIO1$ST$SPCSO1);
DE(GGIO1$ST$SPCSO2);
DE(GGIO1$ST$SPCSO3);
DE(GGIO1$ST$SPCSO4);
DS(AnalogValues){
DE(GGIO1$MX$AnIn1);
DE(GGIO1$MX$AnIn2);
DE(GGIO1$MX$AnIn3);
DE(GGIO1$MX$AnIn4);
}
DS(Measurements){
DE(GGIO1$MX$AnIn1$mag$f);
DE(GGIO1$MX$AnIn1$q);
DE(GGIO1$MX$AnIn2$mag$f);
DE(GGIO1$MX$AnIn2$q);
DE(GGIO1$MX$AnIn3$mag$f);
DE(GGIO1$MX$AnIn3$q);
DE(GGIO1$MX$AnIn4$mag$f);
DE(GGIO1$MX$AnIn4$q);
}
RC(EventsRCB01 Events1 0 Events 4294967295 24 111 50 1000);
RC(EventsIndexed01 Events2 0 Events 1 24 111 50 1000);
RC(EventsIndexed02 Events2 0 Events 1 24 111 50 1000);
RC(EventsIndexed03 Events2 0 Events 1 24 111 50 1000);
RC(Measurements01 Measurements 1 Measurements 1 16 111 50 1000);
RC(Measurements02 Measurements 1 Measurements 1 16 111 50 1000);
RC(Measurements03 Measurements 1 Measurements 1 16 111 50 1000);
LC(EventLog Events GenericIO/LLN0$EventLog 19 0 1 1);
LC(GeneralLog - - 19 0 1 1);
RC(EventsRCB01 Events 0 Events 1 24 111 50 1000);
RC(AnalogValuesRCB01 AnalogValues 0 AnalogValues 1 24 111 50 1000);
LC(EventLog Events GenericIO/LLN0$EventLog 19 0 0 1);
LC(GeneralLog - - 19 0 0 1);
LOG(GeneralLog);
LOG(EventLog);
GC(gcbEvents events Events 2 0 -1 -1 ){
PA(4 273 4096 010ccd010001);
}
GC(gcbAnalogValues analog AnalogValues 2 0 -1 -1 ){
PA(4 273 4096 010ccd010001);
}
}
LN(LPHD1){
DO(PhyNam 0){
@ -102,11 +92,11 @@ DA(q 0 23 1 2 0);
DA(t 0 22 1 0 0);
}
DO(AnIn2 0){
DA(mag 0 27 1 1 0){
DA(mag 0 27 1 1 101){
DA(f 0 10 1 1 0);
}
DA(q 0 23 1 2 0);
DA(t 0 22 1 0 0);
DA(t 0 22 1 0 102);
}
DO(AnIn3 0){
DA(mag 0 27 1 1 0){