.NET 8 service and supporting simulators that compose multiple DWIS/ADCS advices into unified controller/procedure parameters, limits (SOE), and FDIR inputs over the DWIS OPC UA blackboard.
DWIS.AdviceComposer.sln— solution for service, model, and advisor simulators.DWIS.AdviceComposer.Service/— background service that reads advisory inputs from the DWIS blackboard, reconciles controller/procedure/SOE/FDIR parameters, and publishes composed outputs. Dockerfile and config template included.DWIS.AdviceComposer.Model/— shared types (procedure/controller data) and helpers (ADCS standard interface SparQL manifest loader).- Advisor simulators (generate sinusoidal setpoints/limits with feature semantics):
DWIS.AdviceComposer.ROPAdvisorWithCuttingsTransportFeature.Test/DWIS.AdviceComposer.ROPAdvisorWithDrillStemVibrationFeature.Test/DWIS.AdviceComposer.ROPAdvisorWithRigActionPlanFeature.Test/
- Context driver:
DWIS.AdviceComposer.SchedulerROPContext.Test/alternates AutoDriller feature contexts (rig action plan vs cuttings/vibration) on a configurable period. home/config.json— sample service configuration (loop duration and OPC UA URL)..github/workflows/— build/pack model and build/push interpreter images.
dotnet build DWIS.AdviceComposer.sln
- Local:
dotnet run --project DWIS.AdviceComposer.Service(ensureconfig.jsonis available/mounted at/home). - Docker (stable image):
- Windows example:
docker run -d --name advicecomposer -v C:\Volumes\DWISAdviceComposerService:/home digiwells/dwisadvicecomposerservice:stable - Linux example:
docker run -d --name advicecomposer -v /home/Volumes/DWISAdviceComposerService:/home digiwells/dwisadvicecomposerservice:stable
- Windows example:
/home/config.json keys observed:
LoopDuration(TimeSpan, default 1s)OPCUAURL(DWIS blackboard endpoint, e.g.,opc.tcp://localhost:48030) Advisor simulators include their own richer configs (sinusoid amplitudes/averages/periods for flowrate, RPM, ROP, WOB, TOB, DP; context change periods).
- Advisor simulators are standalone containers; mount
/hometo supply their configs. They publish feature-tagged signals (CuttingsTransport, DrillStemVibration, RigActionPlan) for composition testing. - Service uses DWIS OPC UA client (
DWISClientOPCF) and enforces capability preferences/locking via ADCS standard interface helpers.