Rotating equipment reliability
8 min
condition monitoring across a fleet of six machines in the balance of plant boiler feed pumps, a cooling water pump, an induced draft fan, a cooling tower fan and an instrument air compressor six machines and 90 tags published over sparkplug b operator view on 4015 , sparkplug b over mqtt on 5025 what it demonstrates the impulse before the trend bearing damage shows up first as impulsiveness in the vibration signal, not as a rise in overall level by the time the trend moves, the decision has already been made for you bearing prognosis on the edge the health figure and the estimate of remaining life are produced on the edge from the stream, not in a cloud from a daily average one model, any machine a single twin model serves pumps, fans and a compressor alike adding the seventh machine is configuration rather than engineering, which is the whole argument for condition monitoring as a horizontal this solution is two containers sparkplug b is publish and subscribe, so it needs a broker, and a litmus edge does not broker mqtt it subscribes as a host application mosquitto therefore ships beside the simulator and the edge's sparkplug b client connects to it on 5025 that has one practical consequence this solution cannot be started as a single container , so it is deployed with the compose file below rather than through a docker run , and the solutions provisioner # will decline to start it from a card and say so mosquitto conf must sit beside the compose file mosquitto 2 binds loopback only and refuses anonymous clients without it, so a missing config file gives you a broker that comes up and rejects every connection what it puts on litmus edge six devicehub devices, one per machine, with 90 tags arriving over sparkplug b one shared digital twin model with an instance per machine analytics groups behind the fleet health, iso zone and impulsiveness figures deploy services mosquitto image eclipse mosquitto 2 container name rotating mosquitto restart unless stopped ports \ target 1883 published 5025 protocol tcp volumes \ type bind source /mosquitto conf target /mosquitto/config/mosquitto conf read only true healthcheck test \["cmd shell", "nc z 127 0 0 1 1883"] interval 10s timeout 3s retries 5 rotating equipment image us docker pkg dev/litmus customer facing/litmus solutions/rotating equipment demo 0 1 0 container name rotating equipment demo restart unless stopped depends on mosquitto condition service healthy ports \ target 4015 published 4015 protocol tcp environment \# fill these in edge url "${edge url }" edge api token "${edge api token }" sim host "${sim host auto}" apply on start "${apply on start 1}" edge verify tls "${edge verify tls 0}" http port "4015" mqtt host "mosquitto" mqtt port "1883" mqtt public port "5025" sparkplug group "plant01" sparkplug node "balanceofplant" autostart "1" tick seconds "0 1" seed "11" log level "info" edge url=https //10 0 0 5 edge api token=your token sim host=10 0 0 9 docker compose up d open http //localhost 4015 configuration variable default what it does edge url the docker host litmus edge to configure edge api token unset token for that edge or a username and password, or a client id and secret sim host auto address the edge uses to reach the broker apply on start 1 configure the edge on startup edge verify tls 0 1 checks the edge's certificate mqtt host mosquitto how this container reaches the broker the service name mqtt port 1883 the broker's own internal port mqtt public port 5025 how the edge reaches the broker sparkplug group plant01 sparkplug group id sparkplug node balanceofplant sparkplug edge node id mqtt host and mqtt public port answer different questions and are easy to conflate the first is how the simulator reaches the broker, on the container network the second is how litmus edge reaches it, and it is the one that goes into the devicehub template putting the container name in the template gives you devices that come online and never read a value what you see fleet health across the top, then the six machines with their health scores and iso zone click a machine to inspect its signal the vibration stream the edge features, with the rms and the impulsiveness that moves first every value on the page is read back from litmus edge rather than from the simulator, and the page says how many reads it has made and how old the newest is what you are looking at took the full trip through the device faults include a bearing defect developing, lubrication loss, cavitation on a pump and an imbalance removing it docker compose down use clean up in the solutions provisioner # to remove what it created on the edge support support\@litmus io mailto\ support\@litmus io