Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOCUMENTATION] Add conceptual overview of IX #41

Merged
merged 3 commits into from
Feb 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions build-docs.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# run build
dotnet run --project cake/Build.csproj -- $args --do-docs true
exit $LASTEXITCODE;
6 changes: 3 additions & 3 deletions cake/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -317,10 +317,10 @@ public override void Run(BuildContext context)

if (Helpers.CanReleaseInternal())
GenerateApiDocumentation(context, @$"ix.connectors\src\Ix.Connector\bin\{context.DotNetBuildSettings.Configuration}\net6.0\Ix.Connector.dll", @"Ix.Connector");
GenerateApiDocumentation(context, @$"ix.connectors\src\Ix.Connector.S71500.WebAP\bin\{context.DotNetBuildSettings.Configuration}\net6.0\Ix.Connector.Sax.WebAPI.dll", @"Ix.Connector.Sax.WebAPI");
GenerateApiDocumentation(context, @$"ix.connectors\src\Ix.Connector.S71500.WebAPI\bin\{context.DotNetBuildSettings.Configuration}\net6.0\Ix.Connector.S71500.WebAPI.dll", @"Ix.Connector.S71500.WebAPI");

GenerateApiDocumentation(context, @$"ix.builder\src\IX.Compiler\bin\{context.DotNetBuildSettings.Configuration}\net6.0\IX.Compiler.dll", @"IX.Compiler");
GenerateApiDocumentation(context, @$"ix.builder\src\IX.Cs.Compiler\bin\{context.DotNetBuildSettings.Configuration}\net6.0\IX.Compiler.Cs.dll", @"IX.Compiler.Cs");
GenerateApiDocumentation(context, @$"ix.compiler\src\IX.Compiler\bin\{context.DotNetBuildSettings.Configuration}\net6.0\IX.Compiler.dll", @"IX.Compiler");
GenerateApiDocumentation(context, @$"ix.compiler\src\IX.Cs.Compiler\bin\{context.DotNetBuildSettings.Configuration}\net6.0\IX.Compiler.Cs.dll", @"IX.Compiler.Cs");

GenerateApiDocumentation(context, @$"ix.abstractions\src\Ix.Abstractions\bin\{context.DotNetBuildSettings.Configuration}\net6.0\Ix.Abstractions.dll", @"Ix.Abstractions");
GenerateApiDocumentation(context, @$"ix.blazor\src\Ix.Presentation.Blazor\bin\{context.DotNetBuildSettings.Configuration}\net6.0\Ix.Presentation.Blazor.dll", @"Ix.Presentation.Blazor");
Expand Down
25 changes: 17 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@

# IX

**IX is an open-source project developed by a group of automation engineers. It provides easy access from .NET-based applications to SIMATIC-AX based PLC programs.**

## What's in

### [Ix.ixc compiler](articles/compiler/README.md)
## [Ix.ixc compiler](articles/compiler/README.md)

Transpiles the structured text program data to .NET twin objects. These objects provide different methods of accessing the PLC data. Twin objects are suitable to use for HMI (with any .NET UI framework like *WPF, Blazor, MAUI or WinForms*). Twins implement value change notifications which makes it easy for the UI framework to react to changes in the PLC.

Mirroring the PLC program in a .NET object gives any solution consistency and scalability on a scale hard to achieve with traditional approaches.

### [Ix.Connectors](articles/connectors/README.md)
## [Ix.Connectors](articles/connectors/README.md)

The connectors provide a communication layer for twin objects generated by the compiler (ixc).

### [Ix.Blazor](articles/blazor/README.md)
## [Ix.Blazor](articles/blazor/README.md)

The presentations provide a mechanism for automated UI generation from PLC code. The UI layout and properties are malleable with the directives in the PLC code.

Expand Down Expand Up @@ -83,6 +84,11 @@ Create new project from template
dotnet new [shortname] -n YOUR_PROJECT_NAME
~~~

#### Prepare your PLC and AX project

Using TIA portal you need to enable WebAPI interface [see here](https://console.simatic-ax.siemens.io/docs/hwld/PlcWebServer) and [here](https://youtu.be/d9EX2FixY1A?t=151) is a very informative youtube video.


Consult README.md file located in your new project for additionatl information.

### From scratch
Expand Down Expand Up @@ -127,10 +133,6 @@ Copyright (C) 2022 author
--version Display version information.
~~~

#### Prepare your PLC and AX project

Using TIA portal you need to enable WebAPI interface [see here](https://console.simatic-ax.siemens.io/docs/hwld/PlcWebServer) and [here](https://youtu.be/d9EX2FixY1A?t=151) is a very informative youtube video.

Before usage apax commanad ensure that you are logged in
~~~
apax login
Expand Down Expand Up @@ -171,3 +173,10 @@ namespace your_project_name
}
}
~~~

Start PLC twin operations

~~~C#
// This start cyclical operation on PLCTwin at 10ms rate
your_project_name.Entry.Plc.Connector.BuildAndStart().ReadWriteCycleDelay = 10;
~~~
15 changes: 13 additions & 2 deletions docs/_navbar.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
* # About

* [What's in](README.md)
* [Introduction](/articles/conceptual/Conceptual.md)
* [Getting started](/README.md#getting-started)
* ---
* [Compiler](/articles/compiler/README.md)
* [Blazor rendering](/articles/blazor/README.md)
* # API
* [Connector API](/api/Ix.Connector/Ix.Connector.md)
* [Connector.S71500 API](/api/Ix.Connector.S71500.WebAPI/Ix.Connector.S71500.WebAPI.md)
* [Compiler core API](/api/IX.Compiler/IX.Compiler.md)
* [Compiler Cs API](/api/IX.Compiler.Cs/IX.Compiler.Cs.md)
* [Abstractions API](/api/Ix.Abstractions/Ix.Abstractions.md)
* [Presentation Blazor API](/api/Ix.Presentation.Blazor/Ix.Presentation.Blazor.md)
* [Presentation Controls Blazor API](/api/Ix.Presentation.Blazor.Controls/Ix.Presentation.Blazor.Controls.md)


6 changes: 6 additions & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
* [Home](/)
* -----
* [Introduction](/articles/conceptual/Conceptual.md)
* [Getting started](/README.md#getting-started)
* ---
* [Compiler](/articles/compiler/README.md)
* [Blazor rendering](/articles/blazor/README.md)
* ---
* [APIs](/apis.md)
* ----
43 changes: 43 additions & 0 deletions docs/api/Ix.Connector.S71500.WebAPI/Ix.Connector.S71500.WebAPI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Ix.Connector.S71500.WebAPI assembly

## Ix.Connector namespace

| public type | description |
| --- | --- |
| static class [WebApiConnectorExtensions](./Ix.Connector/WebApiConnectorExtensions.md) | Provides extension methods for instantiating WebAPI connector. |

## Ix.Connector.S71500.WebApi namespace

| public type | description |
| --- | --- |
| class [WebApiBool](./Ix.Connector.S71500.WebApi/WebApiBool.md) | |
| class [WebApiByte](./Ix.Connector.S71500.WebApi/WebApiByte.md) | |
| class [WebApiChar](./Ix.Connector.S71500.WebApi/WebApiChar.md) | |
| class [WebApiConnector](./Ix.Connector.S71500.WebApi/WebApiConnector.md) | Provides connector to mediate connection with IX twins over WebAPI connection. |
| class [WebApiConnectorFactory](./Ix.Connector.S71500.WebApi/WebApiConnectorFactory.md) | |
| class [WebApiDate](./Ix.Connector.S71500.WebApi/WebApiDate.md) | |
| class [WebApiDateTime](./Ix.Connector.S71500.WebApi/WebApiDateTime.md) | |
| class [WebApiDInt](./Ix.Connector.S71500.WebApi/WebApiDInt.md) | |
| class [WebApiDWord](./Ix.Connector.S71500.WebApi/WebApiDWord.md) | |
| class [WebApiInt](./Ix.Connector.S71500.WebApi/WebApiInt.md) | |
| class [WebApiLDate](./Ix.Connector.S71500.WebApi/WebApiLDate.md) | |
| class [WebApiLDateTime](./Ix.Connector.S71500.WebApi/WebApiLDateTime.md) | |
| class [WebApiLInt](./Ix.Connector.S71500.WebApi/WebApiLInt.md) | |
| class [WebApiLReal](./Ix.Connector.S71500.WebApi/WebApiLReal.md) | |
| class [WebApiLTime](./Ix.Connector.S71500.WebApi/WebApiLTime.md) | |
| class [WebApiLTimeOfDay](./Ix.Connector.S71500.WebApi/WebApiLTimeOfDay.md) | |
| class [WebApiLWord](./Ix.Connector.S71500.WebApi/WebApiLWord.md) | |
| class [WebApiReal](./Ix.Connector.S71500.WebApi/WebApiReal.md) | |
| class [WebApiSInt](./Ix.Connector.S71500.WebApi/WebApiSInt.md) | |
| class [WebApiString](./Ix.Connector.S71500.WebApi/WebApiString.md) | |
| class [WebApiTime](./Ix.Connector.S71500.WebApi/WebApiTime.md) | |
| class [WebApiTimeOfDay](./Ix.Connector.S71500.WebApi/WebApiTimeOfDay.md) | |
| class [WebApiUdInt](./Ix.Connector.S71500.WebApi/WebApiUdInt.md) | |
| class [WebApiUInt](./Ix.Connector.S71500.WebApi/WebApiUInt.md) | |
| class [WebApiULInt](./Ix.Connector.S71500.WebApi/WebApiULInt.md) | |
| class [WebApiUSInt](./Ix.Connector.S71500.WebApi/WebApiUSInt.md) | |
| class [WebApiWChar](./Ix.Connector.S71500.WebApi/WebApiWChar.md) | |
| class [WebApiWord](./Ix.Connector.S71500.WebApi/WebApiWord.md) | |
| class [WebApiWString](./Ix.Connector.S71500.WebApi/WebApiWString.md) | |

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ public class WebApiBool : OnlinerBool

## See Also

* namespace [Ix.Connector.Sax.WebApi](../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiBool.GetAsync method

```csharp
public override Task<bool> GetAsync()
```

## See Also

* class [WebApiBool](../WebApiBool.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiBool.Read method

```csharp
public void Read(string value)
```

## See Also

* class [WebApiBool](../WebApiBool.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiBool.SetAsync method

```csharp
public override Task<bool> SetAsync(bool value)
```

## See Also

* class [WebApiBool](../WebApiBool.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public WebApiBool()
## See Also

* class [WebApiBool](../WebApiBool.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

---

Expand All @@ -22,6 +22,6 @@ public WebApiBool(ITwinObject parent, string readableTail, string symbolTail)
## See Also

* class [WebApiBool](../WebApiBool.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ public class WebApiByte : OnlinerByte

## See Also

* namespace [Ix.Connector.Sax.WebApi](../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiByte.GetAsync method

```csharp
public override Task<byte> GetAsync()
```

## See Also

* class [WebApiByte](../WebApiByte.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiByte.Read method

```csharp
public void Read(string result)
```

## See Also

* class [WebApiByte](../WebApiByte.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiByte.SetAsync method

```csharp
public override Task<byte> SetAsync(byte value)
```

## See Also

* class [WebApiByte](../WebApiByte.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public WebApiByte()
## See Also

* class [WebApiByte](../WebApiByte.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

---

Expand All @@ -22,6 +22,6 @@ public WebApiByte(ITwinObject parent, string readableTail, string symbolTail)
## See Also

* class [WebApiByte](../WebApiByte.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ public class WebApiChar : OnlinerChar

## See Also

* namespace [Ix.Connector.Sax.WebApi](../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiChar.GetAsync method

```csharp
public override Task<char> GetAsync()
```

## See Also

* class [WebApiChar](../WebApiChar.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiChar.Read method

```csharp
public void Read(string value)
```

## See Also

* class [WebApiChar](../WebApiChar.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# WebApiChar.SetAsync method

```csharp
public override Task<char> SetAsync(char value)
```

## See Also

* class [WebApiChar](../WebApiChar.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public WebApiChar()
## See Also

* class [WebApiChar](../WebApiChar.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

---

Expand All @@ -22,6 +22,6 @@ public WebApiChar(ITwinObject parent, string readableTail, string symbolTail)
## See Also

* class [WebApiChar](../WebApiChar.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# WebApiConnector class

Provides connector to mediate connection with IX twins over WebAPI connection.

```csharp
public class WebApiConnector : Connector
```

## Public Members

| name | description |
| --- | --- |
| [WebApiConnector](WebApiConnector/WebApiConnector.md)(…) | Creates new instance of [`WebApiConnector`](./WebApiConnector.md). (2 constructors) |
| override [BuildAndStart](WebApiConnector/BuildAndStart.md)() | |
| override [ReadBatchAsync](WebApiConnector/ReadBatchAsync.md)(…) | |
| override [ReloadConnector](WebApiConnector/ReloadConnector.md)() | |
| override [WriteBatchAsync](WebApiConnector/WriteBatchAsync.md)(…) | |
| static [NumberOfInstances](WebApiConnector/NumberOfInstances.md) { get; } | Gets number of instance of WebAPI connector in this application. |

## See Also

* namespace [Ix.Connector.S71500.WebApi](../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ public override Connector BuildAndStart()
## See Also

* class [WebApiConnector](../WebApiConnector.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ public static int NumberOfInstances { get; }
## See Also

* class [WebApiConnector](../WebApiConnector.md)
* namespace [Ix.Connector.Sax.WebApi](../../Ix.Connector.Sax.WebAPI.md)
* namespace [Ix.Connector.S71500.WebApi](../../Ix.Connector.S71500.WebAPI.md)

<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.Sax.WebAPI.dll -->
<!-- DO NOT EDIT: generated by xmldocmd for Ix.Connector.S71500.WebAPI.dll -->
Loading