Extending the <balise> element
Description
The current implementation of the <balise>
element in railML 3 is insufficient w.r.t. parameters required by the ETCS specification. The railML use case working group "ETCS" has agreed to extend the model of the balise.
Background
ETCS SUBSET-026 lists a number of parameters for balises, which are currently not modelled in railML 3.1.
Links
- Forum discussion:
- Christian Rahmig, 04.02.2013: https://www.railml.org/forum/index.php?t=msg&th=135&goto=513&#msg_513
- Christian Rahmig, 11.02.2019: https://www.railml.org/forum/index.php?t=msg&th=651&goto=2140&#msg_2140
- Christian Rahmig, 01.11.2019: https://www.railml.org/forum/index.php?t=msg&th=687&start=0&
- Davide Venturucci, 07.05.2020: https://www.railml.org/forum/index.php?t=msg&th=725&start=0&
- Jorgen Strandberg, 04.04.2022: https://www.railml.org/forum/index.php?t=msg&th=875&start=0&
- Trac tickets:
- #174: Grouping of balises and their attributes
- #366 (closed)
- Wiki documentation:
- Use Case "ETCS Track Net": [https://wiki2.railml.org/index.php?title=UC:IS:ETCS_track_net]
- IS:balise: [https://wiki3.railml.org/wiki/IS:balise]
- IS:baliseGroup: [https://wiki3.railml.org/wiki/IS:baliseGroup]
Proposed solution railML 3.2
balise group
Balise and balise group shall be modelled using own elements. Therefore, element <baliseGroup>
shall be added.
balise parameters
balise type
The enumeration attribute <balise>@type
currently has the values "fixed"
and "transparent"
. The latter value is misleading and shall be renamed to "controlled"
.
Eurobalise
The Eurobalise is a specific type of balise. It shall be modelled using a child element <balise/isEurobalise>
with attribute @mVersion
(non-negative integer) to specify the ETCS software version implemented for this balise.
identification of the balise within a balise group
The following new parameters shall be implemented:
-
<balise/isEurobalise>@positionInGroup
is used to provide the balise number in group -
<balise>@distanceToPredecessorBaliseWithinGroup
is used to describe the distance between a balise and its predecessor balise in the group -
<balise/isEurobalise>@duplicate
is used to flag a Eurobalise as a duplicate Eurobalise. -
<balise>@belongsToBaliseGroup
is used to refer to the balise group where the balise belongs to.
balise group related relicts in balise
- DEPRECATE
<balise>@belongsToParent
- DEPRECATE
<balise>@isBaliseGroup
- DEPRECATE
<balise>@baliseGroupType
balise group parameters
ETCS information
It is suggested to add a new child element <isEurobaliseGroup>
with new attributes:
-
@countryID
(integer, 0..1023; corresponds to NID_C) -
@groupID
(integer, 0..16383; corresponds to NID_BG) -
@usesPackage44
(integer, 0..511; corresponds to NID_XUSER) -
@virtualCoverageID
(integer, 0..63; corresponds to NID_VBCMK)
Additionally, the ETCS software version shall be modelled with a new parameter <baliseGroup/isEurobaliseGroup>@mVersion
(non-negative integer).
balise group linking
The reaction on balise message consistency errors w.r.t. linked balises shall be modelled with two new attributes <baliseGroup/isEurobaliseGroup>@linkReactionNominal
and <baliseGroup/isEurobaliseGroup>@linkReactionReverse
. Both attributes shall be modelled as enumeration attribute with values "trainTrip"
, "applyServiceBrake"
and "noReaction"
.
"nominal"
corresponds to the travel direction with increasing mileage. "reverse"
corresponds to the travel direction with decreasing mileage.
Additionally, a boolean attribute @isLinked
can be used to provide basic information that the Eurobalise group is linked with a reaction. If @isLinked="false"
, the link reaction attributes must not be provided.
location accuracy
It is suggested to introduce a new attribute <baliseGroup/isEurobaliseGroup>@locationAccuracy
(decimal, -63..63 m).
balise group types
Two new child elements shall be used to define functional and application type of the balise group:
-
<baliseGroup/applicationType>
to specify the application type of the balise group-
@value
with possible values (extendable list):"ETCS"
,"GNT"
,"NTC"
,"ZBS"
,"TBL1+"
etc.
-
-
<baliseGroup/functionalType>
to specify the functional type-
@value
with possible values (non-extendable list): `-
"announcementLevelTransition"
(In relation to this balise group, at least the UNISIG Packet 41 including D_LEVELTR < 32767 will be transmitted to the train (via balise: ETCS L1 or L2 or via radio: ETCS L2 only) for the mileageDirection valid for this function.), -
"border"
(In relation to this balise group, at least the UNISIG Packet 41 including D_LEVELTR = 32767 will be transmitted to the train (via balise: ETCS L1 or L2 or via radio: ETCS L2 only) for the mileageDirection valid for this function.), -
"handover"
(This balise group transmits at least a UNISIG Packet 131 for the mileageDirection valid for this function.), -
"sessionTermination"
(This balise group transmits at least a UNISIG Packet 42 including Q_RBC=0 for the mileageDirection valid for this function.), -
"signal"
(This balise group is linked physically (in case of ETCS L1) or logical (in case of ETCS Level 2) with a main signal. In relation to this balise group, at least the UNISIG Packets MA (12: ETCS L1 or 15: ETCS L2), 21 and 27 will be transmitted to the train (via balise: ETCS L1 or via radio: ETCS L2) for the mileageDirection valid for this function.), -
"infill"
(This balise group transmits at least a UNISIG Packet 136 for the mileageDirection valid for this function.), -
"stopIfInShunting"
(This balise group transmits at least a UNISIG Packet 132 including Q_ASPECT=0 for the mileageDirection valid for this function.), -
"odometryPurposeOnly"
(Each balise of this balise group transmits only UNISIG defined ETCS telegram header and UNISIG Packet 255 (End of information) for the mileageDirection valid for this function.), -
"sessionEstablishment"
(This balise group transmits at least a UNISIG Packet 42 including Q_RBC=1 for the mileageDirection valid for this function.), -
"networkRegistration"
(This balise group transmits at least a UNISIG Packet 45 for the mileageDirection valid for this function.) -
"announcementTemporarySpeedRestriction"
(This balise group transmits at least a UNISIG Packet 65 for the mileageDirection valid for this function.), -
"revocationTemporarySpeedRestriction"
(This balise group transmits at least a UNISIG Packet 66 for the mileageDirection valid for this function.) -
"trackAheadFree"
(This balise group transmits at least a UNISIG Packet 90.) -
"stopIfInStaffResponsible"
(This balise group transmits at least a UNISIG Packet 137 including Q_SRSTOP=0 for the mileageDirection valid for this function.)
-
-
@mileageDirection
for direction dependency ("nominal"
,"reverse"
)
-
balise group coverage
The new enumeration attribute @coverage
with values "physical"
, "virtual"
, "both"
and "none"
.
reference to single balises
There is no element referencing from a balise group to its contained balises. Instead, single balises (if existent) reference the balise group they belong to.
The new attribute @numberOfBalisesInGroup
(positive integer) gives a counting indication how many balises belong to the balise group.
references
As discussed in the forum a balise may "protect" a signal. Consequently, it was suggested to create a reference from a signal to its "protecting" balise. This may be realized with a reference attribute <signalIS>@protectedByBaliseGroup
.
Further, a <baliseGroup>
can reference additional infrastructure elements using repeatable child element <baliseGroup/connectedWithInfrastructureElement>
with parameters
-
@ref
for referencing the ID of the infrastructure -
@type
for specifying the connection as"logical"
or"physical"