Skip to content

Commit 3012323

Browse files
authored
Merge pull request #705 from Inxton/dev
Release-mnb-preserv
2 parents d35cfef + 9058e7e commit 3012323

File tree

409 files changed

+143480
-30021
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

409 files changed

+143480
-30021
lines changed

COMPONENTS_BLACKLIST.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# COMPONENTS BLACKLIST
2+
3+
**LIST OF COMPONENTS THAT MUST NOT BE USED**
4+
5+
| **SUPPLIER** | **TYPE** | **DESCRIPTION** | **REASON** | **ALTERNATIVE** |
6+
|--------------|----------|-----------------|------------|------------------|
7+
| Siemens | PLC series 12xx, 1510 to 1515 | PLC | Cannot use our sequencer, our components, or technology objects for Siemens frequency converters. Small memory, only one network card. | Siemens 1516, 1517, 1518 V4.0+ |
8+
| Siemens | PLC with firmware lower then 4.0 | PLC | Not suitable for high communication load | Siemens 1516, 1517, 1518 V4.0+ |
9+
| ANY | IOlink device | IOlink master or slave | No support for IOlink in Simatic AX | Siemens ET200AL boxes DI/AI boxes |
10+
| Siemens | any old HMI Panels except Unified with firmware 20.2+ | HMI Panel | Has to be capable to open browser that supports .NET8, I guess | Unified with firmware 20.2+ at least 20inch at least 1920*1080 resolution |
11+
| Festo with Siemens PLC | Pneumatic manifolds with EtherCAT | Pneumatic manifolds with EtherCAT | Siemens does not support EtherCAT bus | Festo manifolds with PROFINET |
12+
| Aventics with Siemens PLC | Pneumatic manifolds with EtherCAT | Pneumatic manifolds with EtherCAT | Siemens does not support EtherCAT bus | Aventics manifolds with PROFINET |
13+
| Cognex | Insight with firmware lower then 24.0.0 | Insight family | Communication structure does not fit the somponent structure | Insight with firmware higher then 24.0.0 or Keyence :-) |
14+
| ANY | GW INSTEK - PSP-2010 | LABORATORY POWER SUPPLY | UNRELIABLE COMMUNICATION. REQUIRES ADDITIONAL 12V SUPPLY TO USE RS232 INTERFACE | TTi QL355 |
15+
| ANY | WD My Cloud EX2 | Network Drive, NAS | Cannot schedule shutdown via UPS | Synology DiskStation DS216j 2x 1 TB RED |
16+
| IAI | ALL | (!) Intelligent Actuators | Each type is different, very poor support, each has different parameterization, inconsistent software for control, inconsistent connection cables, inconsistent parameters... | Rexroth, Festo, Schneider |
17+
| ANY | Fujitsu | Network Drive, NAS | Slow service startup, ping issues after standby and startup. Could not be pinged after link activation | Synology DiskStation DS218+, 2x HDD |
18+
| Ateq | Ateq with RS232 | Leak Tester | Our component is not adapted for it(1), requires additional serial card | Ateq with PROFINET, or Ateq without results (OK/NOK only) |
19+
||
20+
21+
(1) Development would take up our precious time, hence it is inefficient for us.

COMPONENTS_WHITELIST.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# COMPONENTS WHITELIST
2+
3+
**List of components that could be used.**
4+
5+
| **SUPPLIER** | **TYPE** | **DESCRIPTION** | **REASON** | **NOTE** |
6+
|--------------|----------|------------------|------------|----------|
7+
| Siemens | PLC series 1516 to 1518 with FW4.0 and higher, excluding failsafe | PLC | | |
8+
| Siemens | ET200SP excluding IOLINK | IO | | |
9+
| Siemens | ET200AL excluding IOLINK | IO | | |
10+
| ABB | IRB series robots with Omnicore controller | 6 axis robots | | |
11+
| ABB | IRB series robots with IRC5 controller | 6 axis robots | | Already written, not yet tested with real hardware |
12+
| Cognex | Dataman series with FW6.0 | Barcode scanner | | |
13+
| Cognex | Insight series with FW24.0 | Camera | | |
14+
| Cognex | Insight series with FW6.0 | Camera | | Already written, not yet tested with real hardware |
15+
| Desoutter | CVIC_II | Tightening system | | Already written, not yet tested with real hardware |
16+
| Festo | CmmtAs | Servodrive | | Torque mode not yet tested with real hardware |
17+
| Keyence | SR750, SR1000 | Barcode scanner | | Already written, not yet tested with real hardware |
18+
| KUKA | Robots with Krc4 controller with FW5.0 | 6 axis robots | | Already written, not yet tested with real hardware |
19+
| Mitsubishi | Robots with Cr800 controller with FW1.0 | 6 axis robots | | Already written, not yet tested with real hardware |
20+
| Rexroth | Indradrive | Servodrive | | Already written, not yet tested with real hardware |
21+
| Rexroth | SmartFunctionKit | Servopress | | Already written, not yet tested with real hardware |
22+
| Rexroth | CS351 | Tightening system | | |
23+
| UR | Robots with Cb3 controller with FW3.0 | 6 axis robots | | Already written, not yet tested with real hardware |
24+
| Synology | Synology DiskStation DS216j 2x 1 TB RED | Network drive, NAS | Wide range of settings (UPS, protocols, etc.) | |

cake/ApaxTraversal.cs

Lines changed: 73 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
using System.IO;
1111
using System.Linq;
1212
using System.Text.RegularExpressions;
13+
using YamlDotNet.Core;
14+
using YamlDotNet.RepresentationModel;
1315
using YamlDotNet.Serialization;
1416
using YamlDotNet.Serialization.NamingConventions;
1517
using Path = Cake.Core.IO.Path;
@@ -85,35 +87,84 @@ private static void CollectApaxFileInfoRecursively(string directoryPath, List<st
8587

8688
private static void CreateDependenciesFile(List<ApaxFileInfo> dependencies, string filePath)
8789
{
88-
var serializer = new SerializerBuilder()
89-
.WithNamingConvention(CamelCaseNamingConvention.Instance) // Adjust this as per your desired YAML file's naming convention
90-
.Build();
90+
//var serializer = new SerializerBuilder()
91+
// .WithNamingConvention(CamelCaseNamingConvention.Instance) // Adjust this as per your desired YAML file's naming convention
92+
// .Build();
9193

92-
var dependenciesDictionary = new Dictionary<string, string>();
94+
//var dependenciesDictionary = new Dictionary<string, string>();
95+
96+
//foreach (var dependency in dependencies.Where(p => p.Name != "apax.traversal"
97+
// && p.Name != "@inxton/ax-sdk"
98+
// && !p.Name.EndsWith("-test")
99+
// && p.Name != "inxton"))
100+
//{
101+
// if (!dependenciesDictionary.ContainsKey(dependency.Name))
102+
// {
103+
// dependenciesDictionary.Add(dependency.Name , dependency.Version);
104+
// }
105+
//}
106+
107+
//var yamlContent = serializer.Serialize(new { name = "apax.traversal",
108+
// version = "0.0.0-dev.0",
109+
// type = "app",
110+
// targets = new string[] {"\"1500\""},
111+
// registries = new Dictionary<string, string>()
112+
// { {"@inxton", "https://npm.pkg.github.com/"} },
113+
// devDependencies = new Dictionary<string, string>()
114+
// { {"@inxton/ax-sdk", dependencies.First(p => p.Name == "@inxton/ax-sdk").Version} },
115+
// dependencies = dependenciesDictionary,
116+
// installStrategy = "overridable"});
93117

94-
foreach (var dependency in dependencies.Where(p => p.Name != "apax.traversal"
95-
&& p.Name != "@inxton/ax-sdk"
96-
&& !p.Name.EndsWith("-test")
97-
&& p.Name != "inxton"))
118+
//File.WriteAllText(filePath, yamlContent);
119+
120+
var dependenciesDictionary = new Dictionary<string, string>();
121+
foreach (var dependency in dependencies.Where(p =>
122+
p.Name != "apax.traversal" &&
123+
p.Name != "@inxton/ax-sdk" &&
124+
!p.Name.EndsWith("-test") &&
125+
p.Name != "inxton"))
98126
{
99127
if (!dependenciesDictionary.ContainsKey(dependency.Name))
100128
{
101-
dependenciesDictionary.Add(dependency.Name , dependency.Version);
129+
dependenciesDictionary.Add(dependency.Name, dependency.Version);
102130
}
103131
}
104-
105-
var yamlContent = serializer.Serialize(new { name = "apax.traversal",
106-
version = "0.0.0-dev.0",
107-
type = "app",
108-
targets = new string[] {"llvm"},
109-
registries = new Dictionary<string, string>()
110-
{ {"@inxton", "https://npm.pkg.github.com/"} },
111-
devDependencies = new Dictionary<string, string>()
112-
{ {"@inxton/ax-sdk", dependencies.First(p => p.Name == "@inxton/ax-sdk").Version} },
113-
dependencies = dependenciesDictionary,
114-
installStrategy = "overridable"});
115-
116-
File.WriteAllText(filePath, yamlContent);
132+
133+
// Build YAML manually with correct quoting
134+
var yaml = new YamlStream();
135+
var root = new YamlMappingNode
136+
{
137+
{ "name", new YamlScalarNode("apax.traversal") { Style = ScalarStyle.DoubleQuoted } },
138+
{ "version", new YamlScalarNode("0.0.0-dev.0") { Style = ScalarStyle.DoubleQuoted } },
139+
{ "type", new YamlScalarNode("app") { Style = ScalarStyle.DoubleQuoted } },
140+
{ "targets", new YamlSequenceNode(new YamlScalarNode("1500") { Style = ScalarStyle.DoubleQuoted }) },
141+
{ "registries", new YamlMappingNode
142+
{
143+
{ "@inxton", new YamlScalarNode("https://npm.pkg.github.com/") { Style = ScalarStyle.DoubleQuoted } }
144+
}
145+
},
146+
{ "devDependencies", new YamlMappingNode
147+
{
148+
{ "@inxton/ax-sdk", new YamlScalarNode(dependencies.First(p => p.Name == "@inxton/ax-sdk").Version) { Style = ScalarStyle.DoubleQuoted } }
149+
}
150+
},
151+
{ "dependencies", new YamlMappingNode(
152+
dependenciesDictionary.Select(kv =>
153+
new KeyValuePair<YamlNode, YamlNode>(
154+
new YamlScalarNode(kv.Key) { Style = ScalarStyle.DoubleQuoted },
155+
new YamlScalarNode(kv.Value) { Style = ScalarStyle.DoubleQuoted }
156+
)
157+
)
158+
)},
159+
{ "installStrategy", new YamlScalarNode("overridable") { Style = ScalarStyle.DoubleQuoted } }
160+
};
161+
162+
yaml.Documents.Add(new YamlDocument(root));
163+
164+
using (var writer = new StreamWriter(filePath))
165+
{
166+
yaml.Save(writer, assignAnchors: false);
167+
}
117168
}
118169

119170
public static void CreateApaxTraversal(this BuildContext context, string dir, string outputFile)

scripts/_pack_and_publish_catalog.ps1

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,7 @@ if (Test-Path -Path $catalogAbsPath)
5555

5656
# Get all .tgz files in the folder, there should be just one, currently generated
5757
$Files = Get-ChildItem -Path $catalogAbsPath -Filter "*.tgz"
58-
if($Files.Count -ne 1)
59-
{
60-
Write-Host "Error: Several *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red
61-
}
62-
else
58+
if($Files.Count -eq 1)
6359
{
6460
$catalogFileName = $Files[0].Name
6561

@@ -80,6 +76,14 @@ if (Test-Path -Path $catalogAbsPath)
8076
Write-Host "Error: $publishResult[0]: $publishResult[1]" -ForegroundColor Red
8177
}
8278
}
79+
elseif ($Files.Count -ge 1)
80+
{
81+
Write-Host "Error: Several *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red
82+
}
83+
else
84+
{
85+
Write-Host "Error: No *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red
86+
}
8387
Remove-Item -Path $Files[0].FullName -Force
8488

8589
}

scripts/check_requisites.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ $dotNetWingetInstall = "Microsoft.DotNet.SDK.9 --version 9.0.100"
66

77
$visualStudioRequiredVersionRange = "[17.8.0,18.0)";
88

9-
$apaxRequiredVersion = "3.4.2"
9+
$apaxRequiredVersion = "3.5.0"
1010
$apaxUrl = "https://console.simatic-ax.siemens.io/"
1111
$axCodeRequiredVersion = "1.94.2"
1212

0 commit comments

Comments
 (0)