LadderApp

所属分类:单片机开发
开发工具:C#
文件大小:4564KB
下载次数:7
上传日期:2020-10-24 16:05:16
上 传 者sh-1993
说明:  用于微控制器编程的梯形图语言
(Ladder language for programming microcontrollers)

文件列表:
LICENSE (35149, 2020-10-22)
LadderApp.sln (1098, 2020-10-22)
LadderApp (0, 2020-10-22)
LadderApp\Forms (0, 2020-10-22)
LadderApp\Forms\AboutForm.Designer.cs (10448, 2020-10-22)
LadderApp\Forms\AboutForm.cs (5271, 2020-10-22)
LadderApp\Forms\AboutForm.resx (48540, 2020-10-22)
LadderApp\Forms\AddressingForm.Designer.cs (10738, 2020-10-22)
LadderApp\Forms\AddressingForm.cs (1636, 2020-10-22)
LadderApp\Forms\AddressingForm.resx (5695, 2020-10-22)
LadderApp\Forms\ChangeTimerCounterParametersForm.Designer.cs (9851, 2020-10-22)
LadderApp\Forms\ChangeTimerCounterParametersForm.cs (2444, 2020-10-22)
LadderApp\Forms\ChangeTimerCounterParametersForm.resx (5695, 2020-10-22)
LadderApp\Forms\DeviceForm.Designer.cs (13289, 2020-10-22)
LadderApp\Forms\DeviceForm.cs (8015, 2020-10-22)
LadderApp\Forms\DeviceForm.resx (5695, 2020-10-22)
LadderApp\Forms\EditCommentForm.Designer.cs (3976, 2020-10-22)
LadderApp\Forms\EditCommentForm.cs (673, 2020-10-22)
LadderApp\Forms\EditCommentForm.resx (5695, 2020-10-22)
LadderApp\Forms\LadderForm.Designer.cs (12189, 2020-10-22)
LadderApp\Forms\LadderForm.cs (17018, 2020-10-22)
LadderApp\Forms\LadderForm.resx (6292, 2020-10-22)
LadderApp\Forms\MainWindowForm.Designer.cs (65756, 2020-10-22)
LadderApp\Forms\MainWindowForm.cs (34210, 2020-10-22)
LadderApp\Forms\MainWindowForm.resx (56282, 2020-10-22)
LadderApp\Forms\PasswordForm.Designer.cs (4082, 2020-10-22)
LadderApp\Forms\PasswordForm.cs (460, 2020-10-22)
LadderApp\Forms\PasswordForm.resx (5695, 2020-10-22)
LadderApp\Forms\ProjectForm.Designer.cs (5179, 2020-10-22)
LadderApp\Forms\ProjectForm.cs (10660, 2020-10-22)
LadderApp\Forms\ProjectForm.resx (5695, 2020-10-22)
LadderApp\Help (0, 2020-10-22)
LadderApp\Help\InstrucoesLadder.htm (131, 2020-10-22)
LadderApp\LadderApp.csproj (12854, 2020-10-22)
LadderApp\Model (0, 2020-10-22)
LadderApp\Model\Address.cs (6222, 2020-10-22)
LadderApp\Model\AddressTypeEnum.cs (1638, 2020-10-22)
LadderApp\Model\Device.cs (606, 2020-10-22)
... ...

# LadderApp [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=Z2CDXWJ4L25GQ&item_name=LadderApp+development¤cy_code=USD) ## A brief history and context This project was finalized at the end of 2010 as my undergraduate thesis in Information Systems. It reflects some of my areas of interest (development, object-oriented programming, industrial automation, microcontrollers). At the time, I would have liked to have developed this project in Java Web, but the rush of life, work, and college did not allow me to believe it was a viable work. Almost ten years have passed since I finished this project. So, last year, I put it on GitHub but, I still had many ideas for it and also had done nothing about these ideas yet. ## The project LadderApp ![LadderApp screen with an open program](images/ladderapp-running.gif) The project LadderApp allows you to develop a program in ladder language (standard IEC 61131-3), simulate a PLC working, send the executable to a microcontroller, read a previously uploaded file from a microcontroller, and "remount" it in ladder language again. Today "base" microcontroller code inside the project is designed only for [MSP430](http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/overview.html) microcontroller from Texas Instruments. The application has four main functions: - Develop a ladder program in the GUI; - Simulate a PLC/microcontroller work inside it without any extra hardware; - Write (download) that program to the microcontroller to be executed; - Read (upload) a previously written ladder program from a microcontroller and "remount" the ladder at the GUI. ### Writing to a microcontroller To this work, the application will perform the conversion of a ladder program developed at GUI into a C language program to the final microcontroller, allowing this program to be compiled and sent to the microcontroller. In the application, with an opened ladder program at the GUI, ready to work, when you click on the menu "Microcontroller/Communication/Download Program", the application will convert that ladder program to a C language program in the background, with the whole base code for the PLC work linked with ladder logic developed in the application. After that, it will compile the generated C program (using [MSPGCC](https://www.ti.com/application/MSP430-GCC-OPENSOURCE) - you need to install first), then it will send executable (the compilation result) to the microcontroller connected on USB (using MSPJTAG USB application). ### Reading from a microcontroller When you write (download) a ladder program to the microcontroller, an option could be enabled (default option) to save the ladder logic inside the executable written to the microcontroller. Then, when you read a program from a microcontroller in which that option previously enabled, the application could "remount" the ladder at the GUI from that executable program read. ### Simulating a microcontroller/plc work The application allows the user to simulate the execution of the ladder code directly on the GUI interface and interact with the execution toggle bit and toggle bit pulse options. ### Future ideas or Roadmap I have many ideas for this project, and some of them are: :heavy_check_mark: English translation - small refactoring (on going) - Include unit testing - Big code refactoring - Extend the "base" microcontroller code to others platforms [Arduino](https://www.arduino.cc/), PIC, STM32, ... - Allow to type the program textually and create a "compiler front-end" that checks the syntax and semantics of the ladder language(using [ANTLR](https://www.antlr.org/)) - Migrate to SaaS - Internationalization Other ideas being born that need to be better thought (only a local to write my brainstorm): - **LadderProcessor** - Decouple the ladder language processor from the interface, turn it runnable independent - Create a CLI to interact with it - In the future, compile a ladder program to run over a VM, like [JVM](https://en.wikipedia.org/wiki/Java_virtual_machine), [GraalVM](https://www.graalvm.org/), or [BEAM](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)) - **OPC UA Client** - Provide to the LadderProcessor capability to connect to an OPC UA Server, like [KEPServer EX](https://www.kepware.com/en-us/products/kepserverex/features/opc-ua-server-interface/). The idea is to enable the **LadderProcessor** to act as a PLC over other PLCs, a ladder program processor with the feature of PLC execution and platform-independent integration capabilities (read and write). Maybe with [milo](https://github.com/eclipse/milo). - **Market PLC Style tool** - Today's style was a little based on my bits of knowledge of the RSLogix 5 tool. The idea is to allow the user to change the appearance, names, and style in the front-end to a specific market-leader ladder tool, like programmers software from Rockwell, Siemens, etc. Enjoy. Tales Wallace Souza [![Github Badge](https://img.shields.io/badge/-Github-000?style=flat-square&logo=Github&logoColor=white&link=https://github.com/taleswsouza)](https://github.com/taleswsouza) [![Linkedin Badge](https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/taleswsouza/)](https://www.linkedin.com/in/taleswsouza/) [![Twitter Badge](https://img.shields.io/badge/-Twitter-1ca0f1?style=flat-square&labelColor=1ca0f1&logo=twitter&logoColor=white&link=https://twitter.com/fagnerpsantos)](https://twitter.com/taleswsouza)

近期下载者

相关文件


收藏者