# “Bearbeitungszentrum BAZ” - Single File

This example shows an entire BAZ setup expressed within a single commissioning file.

Download:

{% file src="/files/86T6Abbp7KDBzioVkIe2" %}

{% hint style="info" %}
The example below uses an additional Docker image provided by Cybus that requires a suitable license. You can check the current capabilities and permissions of your Connectware license in the Cybus Portal ([https://portal.cybus.io](https://portal.cybus.io/)). If your license is not eligible to use the example Docker image, please contact Cybus Sales ([sales@cybus.io](mailto:sales%40cybus.io)).
{% endhint %}

{% code lineNumbers="true" %}

```yaml
description: >
    Entire simulated machining demo setup

metadata:
    name: Simulated Machining Center
    icon: https://www.cybus.io/wp-content/themes/cybus/img/product-slide-img.png
    provider: cybus
    homepage: https://www.cybus.io
    version: 2.0.0

parameters:
    modbusPort:
        type: integer
        default: 10502
    dockerBridgeNetworkIp:
        type: string
        default: 172.17.0.1
        description: The IP address of the docker bridge network gateway, see "docker network inspect bridge"

definitions:
    CYBUS_MQTT_ROOT: cybus/baz-simulator

    defaultModbusAddress:
        fc: 3
        length: 2
        interval: 1000
        dataType: uint16BE

resources:
    machineSimulator:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/baz-machine-simulator:0.0.1
            ports:
                - !sub '${modbusPort}:10502/tcp'

    modbusConnection:
        type: Cybus::Connection
        properties:
            protocol: Modbus
            targetState: connected
            connection:
                host: !ref dockerBridgeNetworkIp
                port: !ref modbusPort

    currentState:
        type: Cybus::Endpoint
        properties:
            protocol: Modbus
            connection: !ref modbusConnection
            subscribe: !merge
                defaultModbusAddress:
                address: 0

    currentTool:
        type: Cybus::Endpoint
        properties:
            protocol: Modbus
            connection: !ref modbusConnection
            subscribe: !merge
                defaultModbusAddress:
                address: 2

    coolantLevel:
        type: Cybus::Endpoint
        properties:
            protocol: Modbus
            connection: !ref modbusConnection
            subscribe: !merge
                defaultModbusAddress:
                address: 4

    spindleSpeed:
        type: Cybus::Endpoint
        properties:
            protocol: Modbus
            connection: !ref modbusConnection
            subscribe: !merge
                defaultModbusAddress:
                address: 6

    spindleSpeedPoll:
        type: Cybus::Endpoint
        properties:
            protocol: Modbus
            connection: !ref modbusConnection
            read: !merge
                defaultModbusAddress:
                address: 6
                dataType: floatBE

    dashboard:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/baz-dashboard:0.2.3
            volumes:
                - !sub '${dashboardData}:/root/.node-red'
            environment:
                MQTT_HOST: !ref Cybus::MqttHost
                MQTT_USER: !ref Cybus::MqttUser
                MQTT_PASS: !ref Cybus::MqttPassword
                MQTT_PORT: !ref Cybus::MqttPort
                HTTP_ROOT: /

    dashboardData:
        type: Cybus::Volume

    dashboardRoute:
        type: Cybus::IngressRoute
        properties:
            container: !ref dashboard
            type: http
            slug: dashboard
            target:
                path: /
                port: 1880

    dashboardLink:
        type: Cybus::Link
        properties:
            ingressRoute: !ref dashboardRoute
            href: ui/
            name: Dashboard

    cybusLearnLink:
        type: Cybus::Link
        properties:
            href: https://learn.cybus.io
            name: Learn More

    mapping:
        type: Cybus::Mapping
        properties:
            mappings:
                - subscribe:
                      endpoint: !ref currentState
                  publish:
                      topic: !sub '${CYBUS_MQTT_ROOT}/current-state'
                - subscribe:
                      endpoint: !ref currentTool
                  publish:
                      topic: !sub '${CYBUS_MQTT_ROOT}/current-tool'
                - subscribe:
                      endpoint: !ref coolantLevel
                  publish:
                      topic: !sub '${CYBUS_MQTT_ROOT}/coolant-level'
                - subscribe:
                      endpoint: !ref spindleSpeed
                  publish:
                      topic: !sub '${CYBUS_MQTT_ROOT}/spindle-speed'
                - subscribe:
                      topic: test/spindle/req
                  publish:
                      endpoint: !ref spindleSpeedPoll
                - subscribe:
                      endpoint: !ref spindleSpeedPoll
                  publish:
                      topic: test/spindle/res
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cybus.io/1-7-3/documentation/services/sample-service-commissioning-files/modbus/bearbeitungszentrum-baz-single-file.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
