I recently had a chance to play with SPLat Control's $329 HMI430 programmable logic controller (PLC) board with integrated touchscreen (Fig. 1). The on-board 120 MHz ARM Cortex-M4F microcontroller is from NXP. The processor is less of an issue for most because the controller is designed to be programmed using SPLat's proprietary programming language. This has advantages and disadvantages and the choice will depend upon the intended application and the programming talent available. The package works best for controller applications where the developer may have more application than programming expertise and wants to take advantage of the built-in software functionality including the GUI.
The HMI430 has a 4.3-in color touch screen with dimmable backlighting designed to provide a control panel and status information for an application. It supports standard fonts like OpenType or TrueType as well as standard image files.
The board behind the LCD display with the processor (Fig. 2) has a number of exposed interfaces including 8 digital I/O pins that can sink up to 500 mA each. There is an RS485 port capable of handle protocols like MODBUS and Xwire. There are also two TTL level serial ports. There are a pair of analog to digital (ADC) inputs and a digital to analog (DAC) output. The real time clock (RTC) runs off its own battery. There is also a small beeper for audio feedback. The optional terminal board (green) provides screw terminal I/O connections. The supply voltage is 12 to 28 VDC. The system is designed for -10°C to 60°C operation.
I also had a demo unit (Fig. 3) that was connected to the optional terminal board. This had a pair of heavy duty buttons, a relay and a small fan. These could be controlled by the main board.
The system has 512 Kbytes of flash for the runtime and application along with 8 Mbytes of flash storage for images and fonts.
The system comes with a demo application programmed in the system along with the MultiTrack cooperative multitasking operating system developed by SPLat Controls. It is quite flexible and can address a wide range of control applications. It has timing functionality but most of the more sophisticated timing and protocol functions are built-in rather than programmed explicitly such as the MODBUS support. The latter works with other SPLat Control boards.
Programming is done via a USB port using the SPLat/PC integrated development environment that supports the SPLat programming language. I won't describe the programming language here since you can get the details online. It does have features like compile-time conditionals that are handy. FastTrack is a subset of the SPLat language with 14 instructions that are sufficient for a wide variety of applications. The Builder program provides project management support. It works with SPLat/PC
The language is assembler-like. It is based on the SPLat virtual machine (VM) and the instructions are assemblers/Forth-like. The VM is a stack machine so there push and pop instructions although developers are likely to take advantage of the built-in routines for things like communications and dealing with the user interface.
The same VM runs on most of SPLat Control's hardware. The functionality can vary. For example, the 430HMI's Cortex-M4F includes hardware floating
point support. Some of SPLat Control's 8-bit boards have software support. The floating point support does not crash or throw an error when something like a divide by zero occurs but the exception is flagged so the application can determine if an error has occurred. Infinity and NaN (not a number) values are propagated.
Many developers may make use of the Tabula programming tool. This is an event based environment that defines events and actions in a table format. For example, a button press event may start a process or change the state of an output. The actions and events can be linked to the full language but simple applications can be built using just five basic instructions: On, Off, Input, InputK and NOT.
The USB interface also presents a file system interface. This is used to copy images and fonts to the system. These can then be accessed by the application. The 430HMI adds a set of routines for handling the touch screen.
My experience with the 430HMI is good but my feedback is mixed. The system has a lot of functionality but it requires dedication to SPLat Controls hardware and learning the programming language. It is specific to SPLat Control platforms that can be a great choice for many control applications. It is not hard to learn but keep in mind that the functionality will be limited to that which the VM and hardware provide.
This platform is not designed to handle sophisticated, animated graphics or direct motor control. It is designed to handle process and system control and it does that well. It can present any image but the control of the display will feel confining from a programmatic view for those who have dealt with more advanced application GUIs like those found on the PC or smartphones. Then again, this system is designed to handle easy display of a graphic should some status change occur and that can be done easily.
I will say that I have not dedicated the time necessary to become proficient with the system. That would take at least a week or more but it was easy to handle basic chores in a couple hours. Most of that is trying to work through the tutorials and learning SPLat/PC. Don't expect develop a sophisticated graphical interface and a control application overnight but it can be done.
From a PLC application perspective, the 430HMI does very well. Learning SPLat basics like FastTrack are significantly easier than picking up a programming language like C or Lua with generic graphics and I/O libraries unless that is already your area of expertise. I really liked the multitasking support and it is tuned to PLC applications where starting a task based on event is common.
The assembler-like programming language will not charm programmers used to C or Java and they will have to learn a new programming language to use this hardware. The applications will not be portable to any other vendor's hardware but there are different hardware solutions from SPLat Controls that use the same basic VM.