Frequently Asked Questions

Q1. Is the plcLib software free?

Yes. Library files are released under the terms of the MIT Licence, as described in the comments section at the top of associated source code files. The plclib.org website and simulator are freely available and no user registration is required.

Q2. Is there any warranty?

No. Please see the Licensing and Disclaimer page for more details.

Q3. How do I use the software?

Please read the Quick Start document, which gives an overview of the development process and how to use the system. A range of other documentation is available from the Help menu of the ‘live’ page.

Q4. My program doesn’t work. Can you help?.

Unfortunately, direct support is not available, although a Quick Start, User Guide, Reference Manual and Frequently Asked Questions (this page) are provided. The live system and Simulator also come with a wide range of example sketches. The first step in fault finding is to make sure you understand how the system works, so read the documentation carefully and study the example files.

A useful approach is to logically separate or ‘decouple’ the testing of hardware and software. One way to do this is to test your hardware connections using the simplest possible test application. (Something like the IO > BareMinimum sketch works well.)

As a rule, it is better to start with a simple working system, and progressively add to it, testing as you go, rather than ‘dive straight in’ with a complex combination of software and hardware.

Q5. My preferred hardware platform is not supported. Can you help?

New hardware will be added from time to time, as time and other resources permit. However the process is not trivial.

Candidate hardware needs to pass certain compatibility tests before being considered, which includes both hardware and software. For example, they must support the basic I/O model (as seen in the Simulator area) and must be capable of being connected to the same types of input/output devices used by other supported platforms. They must also support the Arduino IDE, plus related I/O commands, and allow all example sketches to be downloaded and executed without error.

The hardware needs to be low cost, flexible in configuration and easily available. This last point is important, as correct operation would need to be validated on the actual hardware, prior to release in the next version of the software.

If this sounds daunting, please bear in mind that it is relatively easy to take an existing hardware configuration, and adapt it, to enable initial testing and development on a new system. (See the noPinDefs setting and customIO function as a starting point.)

Q6. Will a traditional PLC graphical interface be supported in future?

Version 2 of the software aims to add PLC-style capabilities to low cost microcontroller-based systems, which support the Arduino IDE. These low cost systems are expected to be targeted primarily at the end-user, rather than assisting in the industrial or manufacturing process (as with PLCs). It is hoped that continued development will encourage integration with an expanding range of peripherals and communication protocols via Arduino compatible libraries. This in turn may open up new application areas, which would be difficult to exploit using a traditional PLC. Hence the primary development environment is likely to be the Arduino IDE, for the foreseeable future.

Q7. What spoken language(s) is the system and associated documentation available in?

All web-based resources and associated user documentation are developed in the English Language, and all spellings use UK English.

Q8. What programming language(s) is the system available in?

Two programming languages are currently supported. The web-based IDE and simulator use JavaScript, as this is supported by all modern browsers. Behind the scenes, the simulator itself makes use a JavaScript version of the plcLib library, although this is not directly visible to the user. All currently supported target systems make use of the Arduino IDE, and these use the C++ version of the library. Slight differences in syntax may be noted, related mostly to function and object declarations, plus debugging commands, but translation between these is handled automatically by the system.

Q9. Will any additional target system programming languages be supported in future?

C++ is one of the most widely used programming languages for system development, and is itself developed from C, which is also widely used in embedded systems. Approximately 95% of embedded systems development is currently based on either C or C++. However, the C programming language is unlikely to be directly supported in future, as it lacks the object oriented features used by the plcLib system. Python is an increasingly popular programming language, aimed mainly at beginners and education, and which in turn is beginning to appear on embedded systems. There are no current plans to add Python support to plcLib, but whether such a system would be feasible is an interesting question!

This FAQ page was last updated on 7th January 2023.