emBASIC is a modern real-time Process BASIC specialized on industrial automation, process control and embedded devices.

emBASIC is meant to be an alternative to IEC61311 PLC programming, offering full 64 bit math for complex regulators, sophisticated string handling to manage every serial peripheral, deterministic timing for concurrent processes and commands to store data structures in nonvolatile RAM for logging or statistics.

BASIC is known for immediate results while offering gradual learning, emBASIC adds its focus on control with easy I/O and multitasking.

emBASIC - a modern BASIC No line numbers, a compiling Interpreter, program storage in Flash-EPROM,... >more
I/O variables - the easy way Give that valve a name and switch it on and off: water_in = ON ... > more
Real time multitasking Intuitive assignment of distinct sequential processes to separate SEQUENCES... >more
WAIT FOR part_avail=1 The way to model your program flow after mechanical movement ... > more
ON MESSAGE get_status ... Seamless host communication - end-to-end or networked ... > more
emBASIC WorkBench Program and debug a whole factory floor remotely from your desktop... > more

Feature Overview

Multitasking, I/O variables, network messaging, bit handling, string functions, 64 Bit float point math and C-written user functions are just a few of the unusual extensions of emBASIC. Here's the full list.

Latest News

November 24th, 2003: emBASIC.com launched. Successful in-house tests of emBASIC encourage ELZET80 to show its new language to the public. Rollout is scheduled for February 2004. >more

emBASIC's History and Design Philosophies

In a remote place like West-Papua it should be possible for an average service technician to approach an emBASIC-powered machine with an everyday tool like a terminal program, upload the emBASIC program from the machine it is running on and modify it to his likings. Read >more about the ideas behind emBASIC.

Development Scenarios

One of the early design goals of emBASIC was the ability to edit a program from a dumb terminal (or more likely today - a standard terminal program like Hyperterm). Sitting in your office, however, this is not the most comfortable way to write a program. Hence there's the emBASIC WorkBench development environment that helps you to get things organized. And as it comes to networks, it will help you to tame quite a few of those remote devices while you are still sitting at your desk. >more

Online Users Manual and Reference

Reference: From ABS to WHILE, the grammar view of emBASIC sorted by topic. emBASIC Users Manual: Learning emBASIC by looking at typical application code snippets.

emBASIC Hardware

emBASIC has been made for ELZET80's process control hardware. While we are open to offer the language to other manufacturers, for the time being emBASIC is a very good reason to buy ELZET80's industrial controllers. Three major lines can be programmed in emBASIC:

TSM, the flagship line for maximum reliability, extensibility and ease of use: The main module not only contains the processor with 2MB Flash and 2MB RAM but also serial lines, various fieldbus ports like BITBUS, Profibus and CAN and a basic set of digital and analog inputs and outputs. It can be extended by up to 16 modules for more digital or analog I/O, counters, position encoders etc. >more

DinX, the economy line, saves on I/O comfort by only offering one pin per I/O in contrast to TSM that offers three for a digital input (+, input and GND). It can be extended by two (option 4) I/O modules only. Nevertheless, it makes a perfect controler for a small unit with its 8 digital inputs and outputs, analog I/O, RS232 and fieldbus options (BITBUS, CAN). >more

NET/900H is our 5x5cm (2x2") ultra-compact kernel, offering 1MB of Flash with 512KB RAM for semi-custom applications. It plugs to a custom base board (for level shifters, power supply and screw terminals) that can be held very simple (usually 2 layer) due to all critical electronics being located on NET/900H. It comes with EEPROM, logic level digital i/o, analog i/os, two UART serial ports and one USART (SDLC) serial port for the network. >more