/* ======================================================================== * Copyright (c) 2005-2026 The OPC Foundation, Inc. All rights reserved. * * OPC Foundation MIT License 1.00 * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * The complete license agreement can be found here: * http://opcfoundation.org/License/MIT/1.00/ * ======================================================================*/ namespace MachinerySample { /// /// The published data of the simulated machine. The simulation and the /// address space both read it from here, so a value can never disagree /// between the two. /// internal static class PressDatasheet { public const string Manufacturer = "Acme Machine Tools"; public const string ManufacturerUri = "urn:acme-machine-tools.example"; public const string Model = "HydraPress 500"; public const string ProductCode = "HP-500-EU"; public const string SerialNumber = "HP500-2024-0001"; public const string ProductInstanceUri = "urn:acme-machine-tools.example:hydrapress:HP500-2024-0001"; public const string DeviceClass = "HydraulicPress"; public const string HardwareRevision = "C"; public const string SoftwareRevision = "4.2.1"; public const string Location = "Hall 3 / Line 2"; public const ushort YearOfConstruction = 2024; public const byte MonthOfConstruction = 6; /// Nominal press force, in kN. public const double NominalForceKiloNewton = 5000.0; /// Hydraulic oil temperature alarm limits, in °C. public const double OilTemperatureLowLimit = 15.0; public const double OilTemperatureHighLimit = 65.0; public const double OilTemperatureLowLowLimit = 5.0; public const double OilTemperatureHighHighLimit = 80.0; public const double OilTemperatureSetpoint = 45.0; /// Instrument range of the oil-temperature sensor, in °C. public const double OilTemperatureRangeLow = -20.0; public const double OilTemperatureRangeHigh = 120.0; /// /// Compressed-air supply pressure. OPC 40001-4 pins /// 3:Pressure to pascal, so 6.2 bar is published as 620 000 Pa. /// public const float CompressedAirPressurePascal = 620_000.0f; /// /// Compressed-air supply temperature. OPC 40001-4 pins /// 3:Temperature to kelvin, so 21.5 °C is published as /// 294.65 K. /// public const float CompressedAirTemperatureKelvin = 294.65f; /// Cumulative compressed-air volume, in m³. public const float CompressedAirVolume = 184_320.0f; /// Compressed-air volume flow rate, in m³/h. public const float CompressedAirVolumeFlowRate = 18.4f; /// Cumulative electrical energy drawn, in W·h. public const double ElectricalEnergyImportWattHours = 4_812_600.0; /// Total active power the press draws, in W. public const float ElectricalActivePowerTotal = 41_250.0f; /// Upper die lifetime, in press cycles. public const double DieLifetimeCycles = 250_000.0; public const double DieRemainingCycles = 118_400.0; public const double DieWarningCycles = 25_000.0; /// Hours the press has been powered on since commissioning. public const double PowerOnDurationHours = 12_480.0; /// Hours the press has been pressing since commissioning. public const double OperationDurationHours = 9_215.5; /// Seal lifetime, in press cycles. public const double SealLifetimeCycles = 2_000_000.0; public const double SealRemainingCycles = 1_412_500.0; public const double SealWarningCycles = 200_000.0; /// Nominal cycle time of one press stroke. public const double CycleSeconds = 4.0; } }