September 2011

[an error occurred while processing this directive]
(Click Message to Learn More)

An Open, Standardized Control Language

In this article we will look at the Sedona Framework and how it tackles each of these requirements making it an ideal solution to fulfill the vision of an open, standardized control language.

Brian Frank

Brian Frank,

New Products
[an error occurred while processing this directive]
Site Search
[an error occurred while processing this directive]
Past Issues
[an error occurred while processing this directive]
[an error occurred while processing this directive]

In the August issue Ken Sinclair wrote about the need for an open, standardized control language.  Here some of the key requirements to fulfill this vision of a software platform which might be widely adopted:

In this article we will look at the Sedona Framework and how it tackles each of these requirements making it an ideal solution to fulfill the vision of an open, standardized control language.

Creating New Components

At its heart, Sedona is a programming language.  It leverages familiar syntax and object concepts found in languages like C and Java making it easy to learn.  As a general purpose language it allows creation of any type of software, but it is focused on the domain of control applications.   Sedona provides a standardized model for packaging up control functionality into software components (function blocks). 

Reusable Libraries

As vendors and system integrators write new Sedona components, it must be easy to build up libraries for reuse across projects and devices.  Sedona is designed with a highly modular architecture where software components and functionality can be organized into reusable modules called kits.  Kits provide the unit of versioning, deployment, and dependency management and give Sedona a first class module system.


One of the biggest challenges with an open control language is ensuring that libraries of software components are easily used on any vendor’s devices.  Most embedded devices using low level languages like C require esoteric and complicated tool chains like compilers and linkers which are highly targeted to a specific microprocessor and OS.  Higher level languages like Java avoid this complexity using a virtual machine, but often require megabytes of memory.  Sedona solves the portability problem using a virtual machine which is highly optimized to run efficiently in the low end microprocessors commonly found in unitary controllers.  The VM is designed to be easily ported to vendor devices.  Once a device is running the standardized VM, any software written in Sedona is guaranteed to run unmodified on that device.

Graphics Programming

Today most BAS control applications are built using graphical programming tools.  This model allows domain experts to assemble customized applications by dragging and dropping function blocks and wiring up the control logic flow.  This model has been highly successful to split responsibility between software developers and domain experts - software developers write new function blocks like PID loops and domain experts who deeply understand the control application can assemble solutions without having to also be traditional programmers.  Sedona embraces this model with its software component model.  The Sedona platform is designed from the ground up for applications to be assembled and wired up using graphical programming tools.

[an error occurred while processing this directive] Standardized Programming Protocols

Although there is a plethora of protocols to communicate data over field bus networks, there are virtually no protocols designed explicitly for application programming.  Sedona includes a protocol called Sox which tackles the tough challenges of fully managing the application program of a Sedona device over a network:

With the Sox protocol, any Sedona enabled device is deeply reprogrammable using the graphical programming paradigm.  This allows control applications to be built and modified across heterogeneous, multi-vendor devices.


In the age of commodity hardware where every penny counts in the bill of materials, only a royalty free software platform has a chance of widespread adoption for edge devices such as unitary controllers.   To promote broad adoption, Sedona is released under a commercial friendly open source license.  Anybody can download the software and vendors are free to Sedona enable their devices without any royalty or IP restrictions.


Sedona is the ideal candidate to fulfill Ken Sinclair’s vision of an open, standardized control language.  In fact it was explicitly designed to solve exactly that challenge.  Better yet, it is already built and available right now.  As an open source project it already sports a broad ecosystem of multiple vendors and users.  To learn more about Sedona visit

About the Author

Brian Frank is the founder of SkyFoundry and software architect of the SkySpark software platform. Previously, Brian was co-founder of Tridium and lead architect of the Niagara Framework. He is active in the development of open source initiatives for programming languages and protocols including: oBIX, Fantom, Sedona, and Project-Haystack.


[an error occurred while processing this directive]
[Click Banner To Learn More]

[Home Page]  [The Automator]  [About]  [Subscribe ]  [Contact Us]


Want Ads

Our Sponsors