{ "$schema": "http://json-schema.org/schema#", "$schemaVersion": "0.1", "$id": "https://smart-data-models.github.io/dataModel.MotionDeviceSystem/MotionDeviceSysten/schema.json", "title": "Smart Data Models - MotionDeviceSystem schema", "description": "MotionDeviceSystemType provides a representation of a motion device system as an entry point to the OPC UA device set. This instance organises the information model of a complete robotics system using instances of the described ObjectTypes. A motion device system may consist of multiple motion devices, controllers and safety systems..", "type": "object", "allOf": [ { "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons" }, { "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/Location-Commons" }, { "properties": { "type": { "type": "string", "enum": ["MotionDeviceSystem"], "description": "Property. Model:'https://schema.org/URL'. MotionDeviceSystem" }, "controllers": { "type": "array", "description": "Property. Controllers is a container for one or more instances of the ControllerType. Controller represents a controlling unit of one or more motion devices. A controller can be e.g. a specific control cabinet or a PLC.", "items": { "type": "object", "description": "A Controller.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Controller BrowseName" }, "components": { "type": "array", "description": "Property. Components is a container for one or more instances of subtypes of ComponentType defined in OPC UA DI. The listed components are installed in the motion device system, e.g. a processing-unit, a power-supply, an IO-board or a drive, and have an electrical interface to the controller.", "items": { "type": "object", "description": "A component.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Component BrowseName" } } } }, "manufacturer": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the company that manufactured the device." }, "model": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the product." }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "cpuFanSpeed": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The speed of the CPU fan." }, "cabinetFanSpeed": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The speed of the cabinet fan." }, "inputVoltage": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The input voltage of the controller which can be a configured value. To distinguish between an AC or DC supply the optional property Definition of the base type DataItemType shall be used." }, "startUpTime": { "format": "date-time", "description": "Property. Model:'https://schema.org/DateTime'. The date and time of the last start-up of the controller." }, "temperature": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The controller temperature given by a temperature sensor inside of the controller." }, "totalEnergyConsumption": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The total accumulated energy consumed by the motion devices related with this controller instance." }, "totalPowerOnTime": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The total accumulated time the controller was powered on." }, "upsState": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The vendor specific status of an integrated uninterruptible power supply or accumulator system." } } }, "productCode": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique combination of numbers and letters used to identify the product. It may be the order information displayed on type shields or in ERP systems." }, "serialNumber": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique production number assigned by the manufacturer of the device. This is often stamped on the outside of the device and may be used for traceability and warranty purposes." }, "software": { "type": "array", "description": "Property. Software is a container for one or more instances of SoftwareType defined in OPC UA DI. Each controller has at least one software installed that is a runtime software or firmware of the controller. NOTE This type of program is usually generated before installation and can only be modified thereafter by the manufacturer.", "items": { "type": "object", "description": "A software.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Software BrowseName" } } } }, "taskControls": { "type": "array", "description": "Property. TaskControls is a container for one or more instances of TaskControlType. The task control describes an execution engine that loads and runs task programs. One task runs one task program at the time. The system should instantiate the maximum allowed number of task controls", "items": { "type": "object", "description": "A TaskControl.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. TaskControl BrowseName" }, "componentName": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the component." }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "taskProgramName": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A customer given identifier for the task program." }, "taskProgramLoaded": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if a task program is loaded in the task control, FALSE otherwise." }, "executionMode": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. How the task control executes the task program." } } } } } } } } }, "motionDevices": { "type": "array", "description": "Property. MotionDevices is a container for one or more instances of the MotionDeviceType. A motion device has as least one axis and is a multifunctional manipulator designed to move material, parts, tools or specialized devices through variable programmed motions for the performance of a variety of tasks. Examples are an industrial robot, positioner or mobile platform.", "items": { "type": "object", "description": "A MotionDevice.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. MotionDevice BrowseName" }, "additionalComponents": { "type": "array", "description": "Property. AdditionalComponents is a container for one or more instances of subtypes of ComponentType defined in OPC UA DI. The listed components are installed at the motion device, e.g. an IO-board.", "items": { "type": "object", "description": "An additional component.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. AdditionalComponent BrowseName" } } } }, "axes": { "type": "array", "description": "Property. Axes is a container for one or more instances of the AxisType.", "items": { "type": "object", "description": "An axis.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Axis BrowseName" }, "motionProfile": { "type": "string", "enum": [ "OTHER", "ROTARY", "ROTARY_ENDLESS", "LINEAR", "LINEAR_ENDLESS" ], "description": "Property. Model:'https://schema.org/Number'. The kind of motion device defined by MotionDeviceCategoryEnumeration based on ISO 8373." }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "actualPosition": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The current position of the axis." }, "actualSpeed": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The axis speed." }, "actualAcceleration": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The axis acceleration." } } } } } }, "manufacturer": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the company that manufactured the device." }, "model": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the product." }, "motionDeviceCategory": { "type": "string", "enum": [ "OTHER", "ARTICULATED_ROBOT", "SCARA_ROBOT", "CARTESIAN_ROBOT", "SPHERICAL_ROBOT", "PARALLEL_ROBOT", "CYLINDRICAL_ROBOT" ], "description": "Property. Model:'https://schema.org/Number'. The kind of motion device defined by MotionDeviceCategoryEnumeration based on ISO 8373." }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "inControl": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. The information if the actuators (in most cases a motor) of the motion device are powered up and in control: 'true'." }, "onPath": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. True if the motion device is on or near enough the planned program path such that program execution can continue. If the MotionDevice deviates too much from this path in case of errors or an emergency stop, this value becomes false. If OnPath is false, the motion device needs repositioning to continue program execution." }, "speedOverride": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The current speed setting in percent of programmed speed (0 - 100%)." } } }, "powerTrains": { "type": "array", "description": "Property. PowerTrains is a container for one or more instances of the PowerTrainType.", "items": { "type": "object", "description": "A powerTrain.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. PowerTrain BrowseName" }, "gears": { "type": "array", "description": "Property. Gears is a container for one or more instances of the GearType.", "items": { "type": "object", "description": "A gear.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Gear BrowseName" }, "gearRatio": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The transmission ratio of the gear expressed as a fraction as input velocity (motor side) by output velocity (load side)." }, "manufacturer": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the company that manufactured the device." }, "model": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the product." }, "pitch": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The distance covered in millimeters (mm) for linear motion per one revolution of the output side of the driving unit. Pitch is used in combination with GearRatio to describe the overall transmission from input to output of the gear." }, "productCode": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique combination of numbers and letters used to identify the product. It may be the order information displayed on type shields or in ERP systems." }, "serialNumber": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique production number assigned by the manufacturer of the device. This is often stamped on the outside of the device and may be used for traceability and warranty purposes." } } } }, "motors": { "type": "array", "description": "Property. Motors is a container for one or more instances of the MotorType.", "items": { "type": "object", "description": "A motor.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. Motor BrowseName" }, "manufacturer": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the company that manufactured the device." }, "model": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the product." }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "brakeReleased": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE the motor is free to run. FALSE means that the motor shaft is locked by the brake." }, "effectiveLoadRate": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. A percentage of maximum continuous load." }, "motorTemperature": { "type": "number", "description": "Property. Model:'https://schema.org/Number'. The temperature of the motor." } } }, "productCode": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique combination of numbers and letters used to identify the product. It may be the order information displayed on type shields or in ERP systems." }, "serialNumber": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique production number assigned by the manufacturer of the device. This is often stamped on the outside of the device and may be used for traceability and warranty purposes." } } } } } }, "productCode": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique combination of numbers and letters used to identify the product. It may be the order information displayed on type shields or in ERP systems." }, "serialNumber": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. A unique production number assigned by the manufacturer of the device. This is often stamped on the outside of the device and may be used for traceability and warranty purposes." } } }, "safetyStates": { "type": "array", "description": "Property. SafetyStates is a container for one or more instances of the SafetyStatesType.", "items": { "type": "object", "description": "A powerTrain.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. SafetyState BrowseName" }, "componentName": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. The name of the component." }, "emergencyStopFunctions": { "type": "array", "description": "Property. EmergencyStopFunctions is a container for one or more instances of the EmergencyStopFunctionType. The number and names of emergency stop functions is vendor specific.", "items": { "type": "object", "description": "A emergencyStopFunction.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. EmergencyStopFunction BrowseName" }, "active": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if this particular emergency stop function is active, e.g. that the emergency stop button is pressed, FALSE otherwise." }, "name": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. Manufacturer-specific protective stop function identifier within the safety system." } } } }, "parameterSet": { "type": "object", "description": "Property. Provides a set of parameters.", "properties": { "EmergencyStop": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if one or more of the emergency stop functions in the robot system are active, FALSE otherwise. If the EmergencyStopFunctions object is provided, then the value of this variable is TRUE if one or more of the listed emergency stop functions are active." }, "operationalMode": { "type": "number", "enum": [ "OTHER", "MANUAL_REDUCED_SPEED", "MANUAL_HIGH_SPEED", "AUTOMATIC", "AUTOMATIC_EXTERNAL" ], "description": "Property. Model:'https://schema.org/Number'. The current operational mode. Allowed values are described in OperationalModeEnumeration, see ISO 10218-1:2011." }, "protectiveStop": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if one or more of the enabled protective stop functions in the system are active, FALSE otherwise. If the ProtectiveStopFunctions object is provided, then the value of this variable is TRUE if one or more of the listed protective stop functions are enabled and active." } } }, "protectiveStopFunctions": { "type": "array", "description": "Property. ProtectiveStopFunctions is a container for one or more instances of the ProtectiveStopFunctionType. The number and names of protective stop functions is vendor specific.", "items": { "type": "object", "description": "A protectiveStopFunction.", "properties": { "browseName": { "type": "string", "format": "uri", "description": "Property. Model:'https://schema.org/URL'. ProtectiveStopFunction BrowseName" }, "active": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if this particular protective stop function is active, e.g. that a stop is initiated, FALSE otherwise. If Enabled is FALSE then Active shall be FALSE." }, "enabled": { "type": "boolean", "description": "Property. Model:'https://schema.org/Boolean'. TRUE if this protective stop function is currently supervising the system, FALSE otherwise. A protective stop function may or may not be enabled at all times, e.g. the protective stop function of the safety doors are typically enabled in automatic operational mode and disabled in manual mode. On the other hand for example, the protective stop function of the teach pendant enabling device is enabled in manual modes and disabled in automatic modes." }, "name": { "type": "string", "description": "Property. Model:'https://schema.org/Text'. Manufacturer-specific protective stop function identifier within the safety system." } } } } } } } } } } } ] }