Forum > Third party

SnapTRAINER

(1/3) > >>

davenardella:
I have released SnapTRAINER, a modular Virtual-PLC Trainer that allows you to test your control programs without having additional hardware, it connects to almost all PLCs on the market.

SnapTRAINER is part of an ambitious project that allows even those without the economic means to take the first steps in industrial automation.

In fact, three platforms are reported, OpenPLC which is completely free, Arduino OPTA which costs little and Siemens S71500 as a reference for a professional PLC.

SnapTRAINER is free and open source and is built in Lazarus. All libraries used can be installed via Online Update Manager and have not been changed.

Hope you like it  ;)

The article:
https://www.linkedin.com/pulse/learn-plc-arduino-optaopenplc-snaptrainer-davide-nardella-stzpf

The Project:
https://github.com/davenardella/SnapTRAINER

Dzandaa:
Hi,

Great job.

I tried to compile the main program, but I have errors at:


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---    if (c mod 3) = 0 then    begin      DinRails[Z]:=TImage.Create(self);      DinRails[Z].AutoSize:=false;      DinRails[Z].Stretch:=false;      DinRails[Z].Images:=RailImage; // Here: no member      DinRails[Z].ImageIndex:=0; // Here : no member      DinRails[Z].SetBounds(0,Y+132,1600,118);      DinRails[Z].Parent:=SB;      DinRails[Z].SendToBack;      X:=StartX;      Y:=Y+SpanY;    end;     
FPC 3.2.2, lazarus 2.2.4 and 2.2.6

B->

davenardella:

--- Quote from: Dzandaa on July 08, 2024, 02:23:11 pm ---Hi,

Great job.

I tried to compile the main program, but I have errors at:


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---    if (c mod 3) = 0 then    begin      DinRails[Z]:=TImage.Create(self);      DinRails[Z].AutoSize:=false;      DinRails[Z].Stretch:=false;      DinRails[Z].Images:=RailImage; // Here: no member      DinRails[Z].ImageIndex:=0; // Here : no member      DinRails[Z].SetBounds(0,Y+132,1600,118);      DinRails[Z].Parent:=SB;      DinRails[Z].SendToBack;      X:=StartX;      Y:=Y+SpanY;    end;     
FPC 3.2.2, lazarus 2.2.4 and 2.2.6

B->

--- End quote ---

Before starting this project I refreshed my Lazarus installation, so now I'm using Lazarus 3.2 with FPC 3.3.2

Anyway, DinRails is an array of TImage and Images and ImageIndex are regular fields (at least in Lazarus 3.2, I don't know if in previous releases was different...)

Dzandaa:
Hi,
@davenardella


--- Quote --- (at least in Lazarus 3.2, I don't know if in previous releases was different...)

--- End quote ---

Yes it was different, I've installed the latest version of Lazarus and both fields are present.

B->

dseligo:
Is there a chance it could work with Unitronics' Jazz (https://www.unitronicsplc.com/jazz-series-jazz/)?

Navigation

[0] Message Index

[#] Next page

Go to full version