Skip to content

I/O Module

Configuration Example

Example section from configuration file:

<io name="ot-sim-io">
    <pull-endpoint>tcp://127.0.0.1:1011</pull-endpoint>
    <pub-endpoint>tcp://127.0.0.1:1213</pub-endpoint>
    <broker-endpoint>localhost</broker-endpoint>
    <federate-name>ot-sim-io</federate-name>
    <subscription>
        <key>OpenDSS/bus-692.voltage</key>
        <type>double</type>
        <tag>bus-692.voltage</tag>
    </subscription>
    <subscription>
        <key>OpenDSS/line-650632.kW</key>
        <type>double</type>
        <tag>line-650632.kW</tag>
    </subscription>
    <subscription>
        <key>OpenDSS/line-650632.kVAR</key>
        <type>double</type>
        <tag>line-650632.kVAR</tag>
    </subscription>
    <subscription>
        <key>OpenDSS/line-650632.closed</key>
        <type>boolean</type>
        <tag>line-650632.closed</tag>
    </subscription>
    <subscription>
        <key>OpenDSS/switch-671692.closed</key>
        <type>boolean</type>
        <tag>switch-671692.closed</tag>
    </subscription>
    <publication>
        <key>line-650632.closed</key>
        <type>boolean</type>
        <tag>line-650632.closed</tag>
    </publication>
</io>

HELICS Federate

The OT-sim I/O Module is always a HELICS federate. In the example above, the I/O Module subscribes to data published out of an OpenDSS federate in a HELIC co-simulation. The HELICS type(s) supported in this module is boolean and double (the latter is synonymous with float). The tag key is OT-sim's term and is used on the internal message bus. The tag is similar to HELIC's term topic. If a tag is not specified, then OT-sim will use the key. The HELICS key is what HELICS will use to process the message.

The pull- and pub-endpoint(s) are optional for the io configuration keys. It is possible to define an alternative internal message bus if you want to talk to a different one from the default in the Message Bus. The federate-name key is optional; if not provided, the name value in the io key will be used.