Skip to content
Beta.aml@modelscript/automationml 7 diagnostic rules
Parser WASM GLR
Diagnostics 7 rules
DAE Arena Lowering
Simulation Co-sim / Export
Projections SSP, SysML v2, Modelica, URDF
Live ExampleRoboticWorkcell.aml

IEC 62714 AutomationML CAEX 3.0 Robotic Workcell Topology

AutomationML plant hierarchy combining a 6-DOF industrial manipulator, safety PLC controller, and Profinet IO links.

Playground
Source (16 lines)
1<?xml version="1.0" encoding="UTF-8"?>
2<CAEXFile SchemaVersion="3.0" FileName="RoboticWorkcell.aml" xmlns="http://www.dke.de/CAEX">
3  <SuperiorStandardVersion>AutomationML 2.10</SuperiorStandardVersion>
4  <InstanceHierarchy Name="AssemblyCell_01">
5    <Version>1.0.0</Version>
6    <InternalElement Name="WeldingRobot_KR60" ID="1001" RefBaseSystemUnitPath="RobotLib/Manipulator6DOF">
7      <Attribute Name="PayloadKg" AttributeDataType="xs:double"><Value>60.0</Value></Attribute>
8      <ExternalInterface Name="ProfinetPort" ID="1002" RefBaseClassPath="AutomationMLInterfaceClassLib/AutomationMLBaseInterface/Communication"/>
9      <RoleRequirements RefBaseRoleClassPath="AutomationMLBaseRoleClassLib/AutomationMLBaseRole/Resource"/>
10    </InternalElement>
11    <InternalElement Name="CellController_PLC" ID="2001" RefBaseSystemUnitPath="ControlLib/SafetyPLC">
12      <ExternalInterface Name="ProfinetMaster" ID="2002" RefBaseClassPath="AutomationMLInterfaceClassLib/AutomationMLBaseInterface/Communication"/>
13    </InternalElement>
14    <InternalLink Name="ProfinetLink_1" RefPartnerSideA="1001:1002" RefPartnerSideB="2001:2002"/>
15  </InstanceHierarchy>
16</CAEXFile>
AutomationML CAEX 3.0 InstanceHierarchy
contains ProfinetLink_1 «instancehierarchy» AssemblyCell_01 «caex 3.0» version = 1.0.0 std = AML 2.10 «internalelement» WeldingRobot_KR60 «attributes» PayloadKg = 60.0 Port = 1002 «internalelement» CellController_PLC «safetyplc» ID = 2001 MasterPort = 2002
Drag to pan · Click % to reset

IEC 62714 AutomationML & CAEX Plant Topology (.aml, .caex, .amlx) ​

@modelscript/automationml (languages/automationml) provides native WebAssembly parsing, CAEX 2.15 / 3.0 hierarchy and InternalLink validation, discrete-event virtual commissioning simulation, DAEBuilder lowering, and SSP / SysML v2 / Modelica projections for IEC 62714 AutomationML industrial automation and mechatronic plant engineering models.


Supported Extensions & Standards ​

ExtensionFormatDescription
.amlIEC 62714 AutomationMLXML document combining CAEX plant topology, COLLADA 3D geometry/kinematics references, and PLCopen logic links
.caexIEC 62424 CAEXComputer Aided Engineering Exchange XML (CAEX 2.15 & 3.0)
.amlxAutomationML ContainerPackaged AutomationML archive bundling .aml topologies with referenced .dae and .plcxml artifacts

Key Capabilities ​

1. Four-Pillar CAEX Plant Architecture ​

  • Parses and validates all four CAEX object-oriented libraries inside CAEXFile:
    • InstanceHierarchy: Concrete plant cells, robots, conveyors, sensors, and PLC controllers (InternalElement).
    • SystemUnitClassLib: Reusable mechatronic equipment templates and vendor device catalogs.
    • RoleClassLib: Semantic engineering roles (Resource, Product, Process, MechatronicAssembly).
    • InterfaceClassLib: Typed external connectors (ExternalInterface: COLLADAInterface, PLCopenXmlInterface, SignalInterface, Order).

2. Virtual Commissioning & Scan-Cycle Simulation ​

  • Executes deterministic discrete-time scan-cycle virtual commissioning (runAmlVirtualCommissioning) across linked actuators, sensors, and controller interfaces.
  • Lowers continuous and discrete mechatronic state equations directly into @modelscript/runtime's DAEBuilder linear memory arena.

3. Multi-Domain Projections (SSP, SysML v2, Modelica) ​

  • SSP 1.0 (amlToSsp): Generates SystemStructure.ssd co-simulation topologies from AutomationML InstanceHierarchy and InternalLink connections.
  • OMG SysML v2 (amlToSysML2): Maps InternalElement hierarchies and ExternalInterface ports to SysML v2 part and port usages.
  • Modelica 3.x (amlToModelica): Synthesizes connected acausal Modelica plant models.

Pre-Flight Diagnostics ​

7 rules6 error1 warning

CodeRuleSeverityMessage
M8301aml-unresolved-base-classerrorBase class reference '<path>' in '<elementName>' does not resolve to a declared or standard AutomationML class.
M8302aml-inheritance-cycleerrorCircular inheritance detected in class '<className>': '<cyclePath>'.
M8303aml-invalid-internal-linkerrorInternalLink '<linkName>' endpoint '<partnerRef>' does not resolve to a valid InternalElement and ExternalInterface.
M8304aml-port-direction-conflicterrorInternalLink '<linkName>' connects incompatible ports: <detail>.
M8305aml-unsatisfied-role-requirementerrorInternalElement '<elementName>' is missing required <missingItem> mandated by RoleRequirement '<rolePath>'.
M8306aml-broken-external-ref-uriwarningExternal reference URI '<uri>' on interface '<interfaceName>' in '<elementName>' is empty or unresolved.
M8307aml-invalid-frame-transformerrorInvalid 6-DOF Frame transformation on InternalElement '<elementName>': <reason>.

Generated from languages/automationml/src/lints/rules.ts. All languages →


CLI Usage ​

bash
# Inspect CAEX instance hierarchies, role libraries, and interfaces
msx aml inspect RoboticAssemblyCell.aml

# Run pre-flightIEC 62714 / CAEX linting and link validation
msx aml lint RoboticAssemblyCell.aml

# Run scan-cycle virtual commissioning simulation
msx aml commission RoboticAssemblyCell.aml --cycles=50 --dt=10

# Project plant topology to SSP 1.0, SysML v2, or Modelica
msx aml to-ssp RoboticAssemblyCell.aml -o SystemStructure.ssd
msx aml to-sysml RoboticAssemblyCell.aml -o PlantArchitecture.sysml
msx aml to-modelica RoboticAssemblyCell.aml -o PlantModel.mo

Open-Core under the GNU AGPL v3 License; Enterprise Edition (ee/) under the ModelScript Enterprise License. • Pricing • Trademark Policy