Skip to content

Commit

Permalink
Create GitHub pages #93
Browse files Browse the repository at this point in the history
- working with content
  • Loading branch information
mpostol committed Dec 27, 2019
1 parent 5c9ecbd commit cef4e51
Show file tree
Hide file tree
Showing 2 changed files with 225 additions and 4 deletions.
225 changes: 225 additions & 0 deletions docs/Index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>README.md</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>

<body class="stackedit">
<div class="stackedit__left">
<div class="stackedit__toc">

<ul>
<li><a href="#address-space-model-designer-asmd">Address Space Model Designer (ASMD)</a>
<ul>
<li><a href="#releases">Releases</a></li>
<li><a href="#key-features">Key Features</a></li>
<li><a href="#getting-started">Getting Started</a></li>
<li><a href="#ho-to-guide">Ho to Guide</a></li>
<li><a href="#related-work">Related work</a></li>
<li><a href="#see-also">See Also</a></li>
</ul>
</li>
</ul>

</div>
</div>
<div class="stackedit__right">
<div class="stackedit__html">
<h1 id="address-space-model-designer-asmd">Address Space Model Designer (ASMD)</h1>
<p>OPC Unified Architecture (OPC UA) is the next generation of OPC. One of the most important improvements in OPC UA is a powerful Address Space and Information Model concepts. OPC UA allows for the presentation of a real-time process and underlying infrastructure as a consistent information model built up with nodes. The process model is represented by nodes, attributes, and their mutual relationships. Therefore, this powerful concept allows us to present in OPC UA not only raw process data but also complete information about the process state and process environment. The flexibility of UA ensures that no existing or future system is too complex to be exposed via OPC UA. Of course, such flexibility leads to difficulties during configuration, that’s why the Address Space Model Designer (ASMD) design environment has been born.</p>
<p>The ASMD provides graphical design of the process model using OPC UA Information and Address Space concepts. The embedded model compiler may be used to generate all required file formats necessary to deploy custom model using any existing Software Development Kit. It is compliant with the OPC UA Specifications listed in the <code>See Also</code> section.</p>
<blockquote>
<p><strong>NOTE</strong>: The design, development and deployment of the OPC UA Information Model detailed description is covered by the document <a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment">Information Models Development</a>.</p>
</blockquote>
<h2 id="releases">Releases</h2>
<p>The ASMD was written by CAS Lodz Poland. I am the founder and Executive Director of CAS. Now CAS is just an individual business activity conducted by me, so I decided to move this software to Open Source.</p>
<p>We use <a href="http://semver.org/">Semantic Versioning</a> for versioning. For the versions available, see the <a href="https://github.com/mpostol/ASMD/releases">releases on this repository</a>. For your convenience, the versions of the repository, tools and NuGet packages has been listed in the next subsections.</p>

<table>
<thead>
<tr>
<th align="center">Version</th>
<th>Milestone</th>
<th align="center">Date</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">4.1</td>
<td><a href="https://github.com/mpostol/ASMD/releases/tag/4.1.0">Public release of the ASMD</a></td>
<td align="center">Dec 17, 2019</td>
</tr>
<tr>
<td align="center">3.20.1</td>
<td><a href="http://www.commsvr.com/Products/OPCUA/UAModelDesigner.aspx">ASMD last available Windows installation released by CAS</a></td>
<td align="center">May 17, 2016</td>
</tr>
</tbody>
</table><h2 id="key-features">Key Features</h2>
<ul>
<li>graphical modeling of the OPC UA Information Model according to <a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-5-information-model/">OPC UA Part 5 specification</a>
<ul>
<li>easy addition and deletion of nodes from the model structure</li>
<li>definition of nodes relationship (references) and types</li>
<li>modes filtering</li>
<li>search and find utility</li>
<li>type declaration, definition and inheritance analysis</li>
<li>state machine custom editor</li>
<li>and more…</li>
</ul>
</li>
<li>graphical modeling of the OPC UA Address Space according to <a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-3-address-space-model/">OPC UA Part 3 specification</a></li>
<li>3D modeling of the Information Model</li>
<li>the layered structure of the Information Model</li>
<li>contextual OPC UA Standard help documentation - synchronization of the model with OPC UA ebook</li>
<li>interoperability without programming
<ul>
<li>supports custom OPC UA Server/Client/PubSub configuration editor</li>
<li>supports definition and edition of the data bindings (leveraging machine to sensor connectivity) coupling the Address Space variables with the process (sensors, actuators, etc.) making an in-memory process replica</li>
<li>simple configuration of a custom OPC UA Server in context of the model design</li>
<li>no programming skills are required</li>
</ul>
</li>
<li>import and validation of any custom UANodeSet files to a new project</li>
<li>import the address space from an <strong>OPC DA server</strong> (embedded OPC DA Viewer) and create a new OPC UA Information Model - an easier way to converge your old OPC Classic server and the Unified Architecture world</li>
<li>documentation generation in MS Word and MAML formats</li>
<li>generates OPC UA compliant UANodeSet XML File according to the <a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-6-mappings/">OPC UA Part 6 specification</a></li>
<li>provides embedded <a href="https://github.com/OPCFoundation/UA-ModelCompiler">OPCFoundation/UA-ModelCompiler</a> maintained by the OPC Foundation as the default model build tool</li>
<li>output window provides detailed diagnostic information about the build model process</li>
<li>works with any existing code generator</li>
<li>full adherence to OPC Specifications</li>
<li>considerably improves robustness of the OPC UA Information Model deployment in any custom environment</li>
<li>any OPC UA SDK integration-ready (OPC UA SDK independent)</li>
</ul>
<p>Check out the <a href="https://github.com/mpostol/ASMD/wiki">WIKI - Help Documentation</a> to get a more detailed description</p>
<h2 id="getting-started">Getting Started</h2>
<p>This section describes prerequisites to compile the software and run tests.</p>
<h3 id="open-xml-sdk">Open XML SDK</h3>
<p>The following package must be installed on the development computer to build the solution</p>
<ul>
<li><a href="https://www.microsoft.com/en-us/download/details.aspx?id=30425">Open XML SDK 2.5 for Microsoft Office</a></li>
</ul>
<p>Open XML is an open ECMA 376 standard and is also approved as the ISO/IEC 29500 standard that defines a set of XML schemas for representing spreadsheets, charts, presentations, and word processing documents. Microsoft Office Word 2007, Excel 2007, PowerPoint 2007, and the later versions all use Open XML as the default file format.</p>
<h3 id="nuget-packages">NuGet packages</h3>
<p>The list of packages used is listed on the page <a href="https://github.com/mpostol/ASMD/network/dependencies">Dependency graph</a> of this repository. All packages are included in this GitHub repository in the local folder <code>_nugets</code> or published on NuGet. The local folder is configured in the <code>NuGet.Config</code>. The NuGet Gallery is the public package repository used by all package authors and consumers. All required packages are loaded before the build.<br>
To get more visit the Microsoft documentation <a href="https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages">How to reinstall and update packages</a>.</p>
<h3 id="visual-studio">Visual Studio</h3>
<p>Projects can be opened in Visual Studio 2017. Support for some projects depends on the Visual Studio edition and installed components.</p>
<h2 id="ho-to-guide">Ho to Guide</h2>
<h3 id="how-to-build-and-run-the-unit-tests-in-visual-studio-on-windows">How to build and run the unit tests in Visual Studio on Windows</h3>
<ol>
<li>Open the <code>CommServer.UA.ModelDesigner.sln</code> solution file using Visual Studio 2017.</li>
<li>Hit <code>F6</code> to build all projects in the solution.</li>
<li>Set the <code>ModelDesigner.DesignStudio</code> as the Start-up Project</li>
<li>Press <code>F5</code> to run the tool using Debug configuration</li>
<li>Hit <code>Ctrl+r,Ctrl+a</code> to run all unit tests</li>
</ol>
<h3 id="how-to-open-an-example">How to open an example</h3>
<p>This section contains information about the Address Space Model Designer sample solutions that illustrate the structure and techniques used for designing models and defining bindings between model nodes and real-time process data.</p>
<p>The section <a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment">Information Models Development</a> of the online ebook covers details on how to get started using the attached examples. The solution <code>BoilerExampleSolution</code> contains a boiler model. This model is described in the <a href="https://commsvr.gitbook.io/ooi/reactive-communication/referenceapplication/simulator.boiler#informal-model-of-boiler">ReferenceApplication Producer - Boilers Set Simulator</a>. Check out the section <a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment/companionspecificationinformationmodelfforanalyzers">Companion Specification - Information Model for Analyzers</a> to get more about <code>ADIExempleSolution</code> example.</p>
<p>Selected examples are also published on the <a href="https://github.com/mpostol/ASMD/releases">ASMD releases page</a>. The following step by step, instruction will guide you on how to open the examples.</p>
<ul>
<li>From the <a href="https://github.com/mpostol/ASMD/releases">ASMD releases page</a> download and unzip the file <code>ASMD.EmbeddedExample.zip</code> to the selected folder</li>
<li>The folder <code>EmbeddedExample</code> contains two examples
<ul>
<li><code>BoilerExampleSolution</code> - a set of unmanned boilers spread geographically, which have to be monitored and remotely controlled</li>
<li><code>ADIExempleSolution</code> - a set of models to be used as an example of adopting companion standard models, i.e. <a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment/companionspecificationinformationmodelfforanalyzers">analyzer devices integration</a></li>
</ul>
</li>
<li>Now you may run the ASMD application and open the selected solution</li>
</ul>
<p>You can open the solution into ASMD in the following way:</p>
<ol>
<li>Click on the main menu Open item</li>
<li>Select the directory containing the sample solution</li>
<li>Open the <code>BoilerExampleSolution.uamdsl</code> file</li>
<li>Click on the confirmation (Open) button</li>
</ol>
<p><img src="https://github.com/mpostol/ASMD/wiki/_Media/ToOpenSampleSolution.jpg" alt="How to open a Sample Solution"></p>
<p>The files of the sample solution are listed in the following table.</p>

<table>
<thead>
<tr>
<th>File</th>
<th>Content</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>*.uamdsl</code></td>
<td>Address Space Model Designer solution. This file contains the configuration of the sample solution and references to other files that are used in this solution (e.g. projects, plug-ins, etc.)</td>
</tr>
<tr>
<td><code>CAS.UA.Server.ServerConfiguration.dll</code></td>
<td>A sample Plug-in file for CommServer UA that can be used to edit the configuration file and define process data bindings</td>
</tr>
<tr>
<td><code>*.csv</code></td>
<td>A CSV file that contains Node Identifiers</td>
</tr>
<tr>
<td><code>*.xml</code></td>
<td>An XML file that contains the model</td>
</tr>
<tr>
<td><code>*/CAS.UAServer.DemoConfiguration.uasconfig</code></td>
<td>A sample configuration file of CommServer UA. This file is created and edited by <code>CAS.UA.Server.ServerConfiguration.dll</code> - configuration editor.</td>
</tr>
<tr>
<td><code>*/DefaultConfig.xml</code></td>
<td>A sample CommServer configuration file. It can be edited by the Network Configuration application (part of CommServer package).</td>
</tr>
<tr>
<td><code>*/DemoConfiguration.oses</code></td>
<td>A sample OPC DA client configuration (compatible with <code>OPC Viewer</code> and <code>DataPorter</code> products)</td>
</tr>
</tbody>
</table><h2 id="related-work">Related work</h2>
<h3 id="object-oriented-internet">Object Oriented Internet</h3>
<p>In this umbrella project, C# deliverables supporting a new Machine To Machine (M2M) communication approach based on the <strong>Data-Oriented Architecture</strong> (DOA) paradigm is to be researched. The goal is to provide a generic solution for publishing and updating information in a context that can be used to describe and discover it by software applications. It is implemented based on the</p>
<ul>
<li><a href="http://goo.gl/y4EHUn">OPC Unified Architecture</a> - an industrial integration standard that fulfills the proposed architecture requirements.</li>
<li>Object-Oriented Programming - well know and widely accepted programming language model in which data processing is organized around 4 major principles, namely encapsulation, abstraction, polymorphism and inheritance.</li>
</ul>
<p>The GitHub <a href="https://github.com/mpostol/OPC-UA-OOI">Object Oriented Internet</a> repository is aimed at the maintenance of this project. The ASMD contributes to this project and is compliant with the OOI concept.</p>
<h3 id="commserver">CommServer</h3>
<p><a href="http://www.commsvr.com/">CommServer</a> is a package of software to manage data transfer using OPC standards. Built-in technologies and algorithms support Machine to Machine (M2M) meaningful interoperability. The <a href="http://www.commsvr.com/">CommServer</a> was written by CAS Lodz Poland.</p>
<p>The GitHub repository <a href="https://github.com/commsvr-com/migration2os">commsvr-com/migration2os</a> is aimed at the <code>CommServer</code> software migration from on-premise subversion repository to GitHub and publishing it as the Open-Source Software (OSS). The members of the <code>CommServer</code> family are to be converged with the Object-Oriented Internet paradigms and integrated with the solutions maintained in this repository.</p>
<p>The project <a href="https://github.com/orgs/commsvr-com/projects">CommServer Migration to Open-source</a> will be used to coordinate the migration process of transferring multi-parts software from an on-premise subversion repository to a set of GitHub repositories.</p>
<h3 id="object-oriented-internet-reactive-networking-configuration-editor">Object Oriented Internet Reactive Networking Configuration Editor</h3>
<p>OPC-UA-OOI.ConfigEditor is a package of software to manage the configuration of the <a href="https://commsvr.gitbook.io/ooi/TableOfContent.md#reactive-communication">Reactive Communication</a>. The <code>OPC-UA-OOI.ConfigEditor</code> was written by CAS Lodz Poland. The <a href="https://github.com/mpostol/OPC-UA-OOI.ConfigEditor">mpostol/OPC-UA-OOI.ConfigEditor</a> repository is aimed at the software migration from on-premise subversion repository to GitHub and publishing it as the Open-Source Software (OSS). After migration, this repository will be used to manage all activities addressing the software maintenance process as a plug-in of the ASMD.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="https://github.com/mpostol/ASMD/wiki">WIKI - Help Documentation</a></li>
<li><a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/addressspaceaddressspacemodel">Mariusz Postol. Address Space and Address Space Model</a></li>
<li><a href="http://www.commsvr.com/Products/OPCUA/UAModelDesigner.aspx">ASMD Re. 3.30.1 installation released by CAS</a></li>
<li><a href="http://www.commsvr.com/Products/OPCUA/UAModelDesigner.aspx">OPC UA Address Space Model Designer, 2019</a></li>
<li>Wolfgang Mahnke, Stefan Helmut Leitner, Matthias Damm. OPC Unified Architecture. Berlin: Springer, 2009.</li>
<li><a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-3-address-space-model/">OPC Unified Architecture Specification Part 3: Address Space Model, OPC Foundation, Rel. 1.04, 2017-11-22</a></li>
<li><a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-5-information-model/">OPC Unified Architecture Specification Part 5: Information Model, OPC Foundation, Rel. 1.04, 2017-11-22</a></li>
<li><a href="https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-6-mappings/">OPC Unified Architecture Specification Part 6: Mappings, OPC Foundation, Rel. 1.04, 2017-11-22</a></li>
<li><a href="https://commsvr.gitbook.io/ooi/reactive-communication/referenceapplication/simulator.boiler#informal-model-of-boiler">ReferenceApplication Producer - Boilers Set Simulator</a></li>
<li><a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment/companionspecificationinformationmodelfforanalyzers">Companion Specification - Information Model for Analyzers</a></li>
<li><a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment">Information Models Development</a></li>
<li><a href="https://github.com/mpostol/ASMD/releases">ASMD releases page</a></li>
<li><a href="https://commsvr.gitbook.io/ooi/semantic-data-processing/informationmodelsdevelopment/companionspecificationinformationmodelfforanalyzers">OPC 10020 - UA for Analyzer Devices (ADI), OPC Foundation Rel 1.1a, 2015</a></li>
<li><a href="http://semver.org/">Semantic Versioning</a></li>
<li><a href="https://www.microsoft.com/en-us/download/details.aspx?id=30425">Open XML SDK 2.5 for Microsoft Office</a></li>
<li><a href="https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages">How to reinstall and update packages</a>.</li>
<li><a href="https://github.com/mpostol/ASMD/network/dependencies">Dependency graph</a></li>
<li><a href="https://github.com/OPCFoundation/UA-ModelCompiler">OPCFoundation/UA-ModelCompiler</a></li>
<li><a href="https://youtu.be/LvGHl-hRwZw">OPC UA Information Model - How to Create Instances using ASMD; Video</a></li>
<li><a href="https://www.youtube.com/watch?v=pYOQA4atlRI&amp;feature=youtu.be">Introduction to OPC UA Address Space modeling using CAS Address Space Model Designer; Video</a></li>
<li><a href="https://github.com/mpostol/ASMD/releases/tag/4.1.0">OOI - OPC UA Address Space Model Designer V 4.1</a></li>
</ul>

</div>
</div>
</body>

</html>
4 changes: 0 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
---
![ASMD Logo](https://github.com/mpostol/ASMD/blob/master/_media/ASMDLogo-48.png?raw=true)
---

# Address Space Model Designer (ASMD)

OPC Unified Architecture (OPC UA) is the next generation of OPC. One of the most important improvements in OPC UA is a powerful Address Space and Information Model concepts. OPC UA allows for the presentation of a real-time process and underlying infrastructure as a consistent information model built up with nodes. The process model is represented by nodes, attributes, and their mutual relationships. Therefore, this powerful concept allows us to present in OPC UA not only raw process data but also complete information about the process state and process environment. The flexibility of UA ensures that no existing or future system is too complex to be exposed via OPC UA. Of course, such flexibility leads to difficulties during configuration, that's why the Address Space Model Designer (ASMD) design environment has been born.
Expand Down

0 comments on commit cef4e51

Please sign in to comment.