Skip to content

Commit

Permalink
v0.13 preview (#50)
Browse files Browse the repository at this point in the history
* adds posibility to update version in an apax file

* add publishing of Ix.Compiler package

* push Ix.Compiler.Abstractions package (#39)

* [IDEA][BLAZOR] Editable user control should stop updating value when focused and value binding should be switched to 'Edit' property of primitive type (#31)

* Create draft PR for #9

* added edit property binding for control presentation type

---------

Co-authored-by: Specter-13 <Specter-13@users.noreply.github.com>
Co-authored-by: Specter-13 <56168909+Specter-13@users.noreply.github.com>

* [DOCUMENTATION] Add conceptual overview of IX  (#41)

* Create draft PR for #40

* [documentation] documention update
- short conceptual overview
- fixed API doc generation

* additional examples Blazor renderer

---------

Co-authored-by: PTKu <PTKu@users.noreply.github.com>

* Create sample of various structures for the renders for additional UI testing (#43)

* Create draft PR for #30

* added GroupLayout type attribute, changed way of sass compiling, fix grouplayouts in st files

* post merge refactoring

* refactoring of templates, fixed tests

* fixed test

* add docs for group layout

---------

Co-authored-by: Specter-13 <Specter-13@users.noreply.github.com>
Co-authored-by: Specter-13 <56168909+Specter-13@users.noreply.github.com>

* [IDEA] More integration tests for Blazor renderer (#48)

* Create draft PR for #47

* Added tests for each layouts and groups.

---------

Co-authored-by: Brano5 <Brano5@users.noreply.github.com>
Co-authored-by: Branko Zachemsky <bzachemsky@gmail.com>

* fixes readme in blazor template (#49)

* [fix] bulk read request test reduces due to '#19'

---------

Co-authored-by: Specter-13 <Specter-13@users.noreply.github.com>
Co-authored-by: Specter-13 <56168909+Specter-13@users.noreply.github.com>
Co-authored-by: PTKu <PTKu@users.noreply.github.com>
Co-authored-by: Brano5 <Brano5@users.noreply.github.com>
Co-authored-by: Branko Zachemsky <bzachemsky@gmail.com>
  • Loading branch information
6 people authored Feb 4, 2023
1 parent 0d183b3 commit adb78f9
Show file tree
Hide file tree
Showing 496 changed files with 5,079 additions and 15,300 deletions.
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

0 comments on commit adb78f9

Please sign in to comment.