“Bearbeitungszentrum BAZ” - Agent Mode¶
This example shows an entire BAZ setup expressed within a single commissioning file, using explicit topics and involving an agent for providing the connection and endpoint resources.
The name of the agent must be specified in the agentName parameter, for example connectware-agent or whatever other name has been given to the agent instance.
Download: bazAgentMode.yml
Note
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). If your license is not eligible to use the example Docker image, please contact Cybus Sales (sales@cybus.io).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | description: > Entire simulated machining involving a protocol-mapper agent 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: agentName: type: string description: Agent Name default: connectware-agent 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: agentName: !ref agentName 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 |
How to deploy the agent¶
To run the above example, you must also deploy and run an agent, which is a container using the Connectware’s image protocol-mapper with some special environment variables (see also Agent Installation).
The first thing you need to set is the image and image tag (i.e. version) you are going to use. The agent’s container must use the protocol-mapper image of the exact same version as the Connectware, otherwise the system may run into unspecified behaviour. For the subsequent command the image tag (version) is stored as IMAGE_TAG= 1.2.0
Using the IMAGE_TAG environment variable, the following command will run the agent directly (but with the comment lines removed):
# The docker run command
docker run --rm \
# Attach a volume so the agent can store data across restarts
-v /tmp/cybus:/data \
# Set the name of the agent. This must match the agentName used in the commissioning file.
-e CYBUS_AGENT_NAME=connectware-agent \
# The IP address where the Connectware is running.
-e CYBUS_MQTT_HOST=10.11.12.13 \
# Make it run as an agent
-e CYBUS_AGENT_MODE=distributed \
# Some suitable hostname of the container.
--hostname=${HOSTNAME} \
# Run it in host mode networking
--net=host \
# The image to use
registry.cybus.io/cybus/protocol-mapper:${IMAGE_TAG}
Then, complete the set up by registering the new agent’s user in the Connectware using the “Client Registry” process, see Agent Registration and Client Registry
Alternative ways to run the agent can be found on Agent Installation.