Context

Asset Links are device class drivers used to interact with Operational Technology (OT) assets using different protocols supported by the assets. They act as protocol adapters that enable standardized communication between the Asset Gateway and diverse OT equipment, regardless of the underlying communication protocol (e.g., OPC UA, Modbus, PROFINET, or proprietary protocols). Each Asset Link is deployed as a gRPC server that registers with the gateway, exposing capabilities such as asset discovery and asset management operations. This modular architecture allows Device Builders to extend gateway functionality by creating custom Asset Links tailored to specific asset types or protocols without modifying the core gateway implementation.

Overview

The SDK is designed to create a new Asset Link, you need to implement the interfaces for the features that the particular Asset Link is intended to provide. Currently, two interfaces are supported:

Discovery Interface (enables device discovery and consists of three functions: Discover, GetSupportedOptions, GetSupportedFilters) Identifiers Interface (enables getting identifiers of a device and consists of one function: GetIdentifiers)

Pre-requisites

Tooling:

Gateway:

Have a gateway stack running to connect the Asset Link to. The gateway needs to implement a server for the grpcRegistry and implement the necessary clients for the specific Asset Link capabilities. For discovery, these clients need to be implemented:

You can download and use the Asset Gateway from the Siemens Industrial Asset Hub (IAH) for that purpose.

To ease local development, a container image of a registry server is provided as part of the Asset Gateway. Additionally, a command line tool called al-ctl is provided to locally run and test the Asset Links.

To run these components, use the following commands:

# to start the registry
$ docker-compose -f registry/docker-compose.yml up

# to start the al-ctl
$ go run ./cmd/al-ctl/al-ctl.go
# or
$ go run ./cmd/al-ctl/al-ctl.go  --help

This site uses Just the Docs, a documentation theme for Jekyll.