Friday, January 26, 2018

FBDK 3.0 Release

FBDK 3.0 is now available at New features include:
  1. The FBDK and FBRT now support the following experimental features:
  2. Validation tools are provided for ECCs and FB Types to guide development and prevent compilation of incorrect or incomplete elements.
  3. The progress bar has been relocated to the upper right corner of the Library Navigator and its operation has been properly synchronized to the running background process.

Saturday, April 8, 2017

FBDK 2.6 Version 20170408

If you have used the FBDK recently, you may have noticed an unannounced auto-upgrade to Release 2.6 version 20170314. Further testing revealed a few glitches, which have now been fixed. Changes from the 2.5 release include:

  1. Look and Feel (LAF) has been set to the Java "Metal" default, to ensure uniform window appearance and sizing across platforms.
  2. An experimental, more efficient encoding of device management commands and responses is available by specifying the fbmgt2 protocol in the MGR_ID parameter of the remote device. See the mgt2 and mach folders of the FBNavigator for details and examples.
  3. The System and Device launchers have been re-implemented to support multiple management protocols. In particular, the System launcher now starts each device as soon as it is created and initialized, instead of waiting to launch the devices in reverse order. This mainly affects the delays required to start simulation and diagnostic clocks in the system configurations of the mach folder. 
Documentation in the FBNavigator is being updated to reflect these changes; updating should be complete in a week or so.

Wednesday, November 30, 2016

E_CYCLE Test Statistics

Here are some E_CYCLE performance statistics collected on various platforms using JUnit 3. For more details see

Saturday, November 5, 2016

Dynamic Updating of E_CYCLE period

There has been some discussion within the IEC 61499 Maintenance Team of the appropriate behavior of E_CYCLE blocks when doing programmatic updates of the cycle period (DT input) while the block is running. The events/E_CYCLE documentation on the FBNavigator site explains how this is done in the FBDK, and a new test/E_CYCLE_DEMO system configuration is included in today's FBDK self-update with documentation on the FBNavigator site showing you how to use an E_DELAY block to obtain the correct STOP/START event sequencing for this purpose.

Saturday, September 17, 2016

Mapping Update

The Mapping dialog and associated documentation have been updated.
For details see
This information is also linked to the "Mapping" section of the System help.

Monday, September 5, 2016

STRING Functions

Today's FBDK2 auto-update contains IEC 61499 "Simple (REQ/CNF) FB" implementations of all the standard character string functions defined in IEC 61499, including implementations for both WSTRING (16-bit character strings) and STRING (8-bit character strings) types. WSTRING is implemented as a container for the Java String class, whose instances are immutable, and STRING is implemented as a wrapper for a mutable array of bytes. This gives the latter the following practical advantages:
  • Significantly less object creation and garbage collection overhead
  • Smaller (approaching 50%) payload sizes for PUBLISH/SUBSCRIBE and CLIENT/SERVER packets, with correspondingly smaller encode/decode times.
The tradeoff, of course, is that STRINGs can only represent 256 characters - usually the "C0 Controls and Basic Latin" (0000-007F) and "C1 Controls and Latin-1 Supplement" (0080-00FF) defined in ISO/IEC 10646. For a richer, multilingual character set, WSTRING with its attendant overhead costs must be used.

Documentation for these FB types can be found in the strings folder of the FBNavigator.

Saturday, August 13, 2016

Accessing online documentation

Documentation for the library elements in the strings folder of the FBNavigator is now complete.
You can now access this documentation directly in the new doc tab of the FBDK if you are on-line when you open a library element for editing. Here's an example: