This example shows an entire BAZ setup expressed within a single commissioning file and by using explicit topics on the endpoint resources (obsoleting a mapping resource).
Copy 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
topic: current-state
subscribe: !merge
defaultModbusAddress:
address: 0
currentTool:
type: Cybus::Endpoint
properties:
protocol: Modbus
connection: !ref modbusConnection
topic: current-tool
subscribe: !merge
defaultModbusAddress:
address: 2
coolantLevel:
type: Cybus::Endpoint
properties:
protocol: Modbus
connection: !ref modbusConnection
topic: coolant-level
subscribe: !merge
defaultModbusAddress:
address: 4
spindleSpeed:
type: Cybus::Endpoint
properties:
protocol: Modbus
connection: !ref modbusConnection
topic: spindle-speed
subscribe: !merge
defaultModbusAddress:
address: 6
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