IzoTTM
NodeBuilder
User’s Guide
Develop hardware devices and software applications using Echelon's Series 6000, 5000, and 3100 chips and Smart Transceivers.
078-0516-01A
Echelon, LON, LonWorks, Neuron, 3120, 3150, Digital Home, i.LON, IzoT, FTXL, LonScanner, LonSupport, LNS, LonMaker, LONMARK, LonPoint, LonTalk, NodeBuilder, ShortStack, and the Echelon logo are trademarks of Echelon Corporation that may be registered in the United States and other countries.
Other brand and product names are trademarks or registered trademarks of their respective holders.
Neuron Chips and other OEM Products were not designed for use in equipment or systems which involve danger to human health or safety or a risk of property damage and Echelon assumes no responsibility or liability for use of the Neuron Chips or LonPoint Modules in such applications.
Parts manufactured by vendors other than Echelon and referenced in this document have been described for illustrative purposes only, and may not have been tested by Echelon. It is the responsibility of the customer to determine the suitability of these parts for each application.
ECHELON MAKES NO REPRESENTATION, WARRANTY, OR CONDITION OF ANY KIND, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE OR IN ANY COMMUNICATION WITH YOU, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR ANY PARTICULAR PURPOSE, NONINFRINGEMENT, AND THEIR EQUIVALENTS.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of Echelon Corporation.
Printed in the United States of America.
Copyright ©1997–2014 by Echelon
Corporation.
Echelon Corporation
www.echelon.com
ii
CONTENTS |
|
Preface ................................................................................................... |
ix |
Purpose ........................................................................................................... |
x |
Audience.......................................................................................................... |
x |
Hardware Requirements.................................................................................. |
x |
Content ............................................................................................................ |
x |
Related Manuals............................................................................................. |
xi |
For More Information and Technical Support................................................. |
xii |
1 Introduction....................................................................................... |
1 |
Introduction to the IzoT NodeBuilder Tool....................................................... |
2 |
New Features in the IzoT NodeBuilder Tool ................................................... |
2 |
LonTalk/IP Support ................................................................................... |
2 |
BACnet/IP Support.................................................................................... |
3 |
Series 6000 Chip Support......................................................................... |
3 |
Transient Functions and Automatic Memory Maps .................................. |
3 |
FT 6000 EVB Evaluation Board ................................................................ |
4 |
Extended Address Table........................................................................... |
4 |
Network Variables Up To 228 Bytes ......................................................... |
4 |
Neuron C Version 2.3 Enhancements ...................................................... |
5 |
What's Included with the IzoT FT 6000 EVK................................................... |
6 |
IzoT NodeBuilder Development Tool........................................................ |
6 |
FT 6000 EVB Evaluation Boards .............................................................. |
7 |
IzoT Commissioning Tool ......................................................................... |
8 |
IzoT Network Services Server .................................................................. |
8 |
IzoT Router ............................................................................................... |
8 |
IzoT Plug-in for Wireshark ........................................................................ |
8 |
Introduction to NodeBuilder Device Development and Network Integration ... |
9 |
Channels ................................................................................................... |
9 |
Routers...................................................................................................... |
9 |
Applications............................................................................................. |
10 |
Program IDs ............................................................................................ |
10 |
Network Variables ................................................................................... |
11 |
Configuration Properties ......................................................................... |
12 |
Functional Blocks.................................................................................... |
13 |
Functional Profiles................................................................................... |
13 |
Hardware Templates............................................................................... |
14 |
Neuron C................................................................................................. |
14 |
Device Templates ................................................................................... |
14 |
Device Interface Files.............................................................................. |
14 |
Resource Files ........................................................................................ |
14 |
Targets .................................................................................................... |
15 |
2 Installing the IzoT NodeBuilder Development Tool...................... |
17 |
Installing the IzoT FT 6000 EVK.................................................................... |
18 |
Installing the IzoT NodeBuilder Software................................................ |
18 |
3 IzoT NodeBuilder Quick-Start Exercise......................................... |
25 |
IzoT NodeBuilder Quick-Start Exercise......................................................... |
26 |
Step 1: Creating an IzoT NodeBuilder Project........................................ |
26 |
Step 2: Creating a NodeBuilder Device Template .................................. |
29 |
Step 3: Defining the Device Interface and Creating its Neuron C |
|
Application Framework ........................................................................... |
33 |
Step 4: Developing the Device Application............................................. |
38 |
IzoT NodeBuilder User's Guide |
iii |
FT 6000 Evaluation Boards .............................................................. |
39 |
LTM-10A Platform and Gizmo 4 I/O Board ...................................... |
41 |
Step 5: Compiling, Building, and Downloading the Application .............. |
42 |
Step 6: Testing the Device Interface....................................................... |
46 |
Step 7: Debugging the Device Application ............................................. |
48 |
Step 8: Connecting and Testing the Device in a Network ...................... |
54 |
Additional Device Development Steps.................................................... |
60 |
Creating an IzoT CT Stencil ............................................................. |
60 |
Creating an IzoT Device Plug-in....................................................... |
64 |
Developing an HMI ........................................................................... |
65 |
Creating a Device Installation Application ........................................ |
65 |
Applying for LONMARK Certification .................................................. |
67 |
4 Creating and Opening IzoT NodeBuilder Projects ....................... |
69 |
Introduction to the NodeBuilder Project Manager ......................................... |
70 |
Using the Project Pane ........................................................................... |
71 |
Creating a NodeBuilder Project..................................................................... |
72 |
Creating a NodeBuilder Project from IzoT CT ........................................ |
73 |
Creating a NodeBuilder Project from the NodeBuilder Project Manager 73 |
|
Creating a NodeBuilder Project from the New Device Wizard................ |
76 |
Opening a NodeBuilder Project..................................................................... |
78 |
Opening a NodeBuilder Project from the IzoT Commissioning Tool ...... |
78 |
Opening a NodeBuilder Project from the NodeBuilder Project Manager 80 |
|
Copying NodeBuilder Projects....................................................................... |
81 |
Using the IzoT Commissioning Tool to Backup and Restore a |
|
NodeBuilder Project ................................................................................ |
81 |
Manually Copying NodeBuilder Project Files.......................................... |
84 |
Copying NodeBuilder Device Templates....................................................... |
85 |
Copying User-Defined Resource Files .......................................................... |
86 |
Viewing and Printing NodeBuilder XML Files................................................ |
86 |
5 Creating and Using Device Templates .......................................... |
88 |
Introduction to Device Templates.................................................................. |
89 |
Creating Device Templates ........................................................................... |
89 |
Starting the New Device Template Wizard ............................................. |
89 |
Specifying the Device Template Name................................................... |
90 |
Specifying the Program ID ...................................................................... |
91 |
Specifying Target Platforms.................................................................... |
96 |
Managing and Editing Device Templates...................................................... |
98 |
Managing Device Templates .................................................................. |
98 |
Viewing and Editing Device Templates................................................... |
99 |
Viewing Device Template Components ................................................ |
100 |
Managing Development and Release Targets ..................................... |
102 |
Setting Device Template Target Properties: Compiler................... |
103 |
Setting Device Template Target Properties: Linker ....................... |
106 |
Setting Device Template Target Properties: Exporter.................... |
107 |
Setting Device Template Target Properties: Configuration............ |
109 |
Inserting a Library into a NodeBuilder Device Template ...................... |
111 |
Using Hardware Templates ......................................................................... |
114 |
Creating Hardware Templates .............................................................. |
115 |
Editing Hardware Templates................................................................. |
117 |
Setting Hardware Properties .......................................................... |
117 |
Setting Memory Properties ............................................................. |
120 |
5000 Series Chips.................................................................... |
121 |
6000 Series Chips.................................................................... |
122 |
3150 Neuron Core ................................................................... |
122 |
iv |
Preface |
3120 and 3170 Neuron Core ................................................... |
122 |
Setting the Hardware Template Description................................... |
122 |
6 Defining Device Interfaces and Creating their Neuron C Application |
|
Framework .......................................................................................... |
124 |
Introduction to Device Interfaces................................................................. |
125 |
Starting the Code Wizard...................................................................... |
125 |
Using the Resource Pane............................................................... |
126 |
Introduction to Resource File Sets........................................... |
127 |
Introduction to Resources ........................................................ |
128 |
Using the NodeBuilder Resource Editor .................................. |
130 |
Using the Program Interface Pane ................................................. |
130 |
Defining the Device Interface................................................................ |
132 |
Adding Functional Blocks ............................................................... |
135 |
Using Large Functional Block Arrays....................................... |
138 |
Editing Mandatory Network Variables ............................................ |
138 |
Editing Mandatory Configuration Properties................................... |
145 |
Implementing Optional Network Variables ..................................... |
151 |
Implementing Optional Configuration Properties ........................... |
153 |
Adding Implementation-specific Network Variables ....................... |
155 |
Adding Implementation-specific Configuration Properties ............. |
158 |
Setting Initial Values for Network Variables and |
|
Configuration Properties................................................................. |
161 |
Setting Initial Values for Structured Data Types ...................... |
162 |
Setting Initial Values for Enumerations.................................... |
164 |
Setting Initial Values for Floating Point and s32 Data Types... |
165 |
Using Changeable-Type Network Variables .................................. |
166 |
Generating Code with the Code Wizard ............................................... |
167 |
Files Created by the Code Wizard ................................................. |
167 |
Using Code Wizard Templates.................................................... |
170 |
Version 3 Templates ................................................................ |
170 |
Version 2 Templates ................................................................ |
170 |
Version 1 Templates ................................................................ |
171 |
Creating the Device Application ..................................................... |
171 |
7 Developing Device Applications.................................................. |
173 |
Introduction to Neuron C ............................................................................. |
174 |
Unique Aspects of Neuron C ................................................................ |
174 |
Neuron C Variables............................................................................... |
176 |
Neuron C Variable Types ............................................................... |
176 |
Neuron C Storage Classes............................................................. |
176 |
Variable Initialization....................................................................... |
177 |
Neuron C Declarations ................................................................... |
177 |
Introduction to Neuron C Code Editing........................................................ |
178 |
Modifying Neuron C Code Generated by the Code Wizard.................. |
179 |
Code Commands............................................................................ |
179 |
Code Guidelines ............................................................................. |
180 |
Add I/O and Timer Declarations............................................... |
180 |
Add when-tasks Responding to I/O and Timer Events............ |
181 |
Add interrupt-tasks Responding to Interrupt Requests............ |
181 |
Add Code to when(nv_update_occurs(<nv>)) when-task |
|
of Functional Blocks with Input NVs......................................... |
181 |
Share Code with filexfer.nc when Handling Explicit |
|
Messages on a Device Implementing FTP .............................. |
181 |
Ignore NCC#310 and NC#463 Compiler Warnings ................. |
181 |
Implementing Changeable-Type Network Variables...................... |
181 |
IzoT NodeBuilder User's Guide |
v |
Neuron C Version 2 Features Not Supported by the Code Wizard 183 |
|
Message Tags.......................................................................... |
183 |
I/O Models................................................................................ |
183 |
Network Variables.................................................................... |
183 |
Configuration Properties .......................................................... |
183 |
when() clauses ......................................................................... |
184 |
LONMARK Style......................................................................... |
184 |
Director Functions.................................................................... |
184 |
Interrupt Tasks ......................................................................... |
184 |
Using the NodeBuilder Editor ...................................................................... |
184 |
Using Syntax Highlighting ..................................................................... |
185 |
Searching Source Files......................................................................... |
185 |
Searching a Single File for a String................................................ |
185 |
Replacing Text................................................................................ |
186 |
Searching Multiple Files for a String............................................... |
186 |
Using Bookmarks.................................................................................. |
189 |
Setting Editor Options ........................................................................... |
189 |
8 Building and Downloading Device Applications ........................ |
191 |
Introduction to Building and Downloading Applications .............................. |
192 |
Building an Application Image ..................................................................... |
192 |
Excluding Targets from a Build ............................................................. |
197 |
Cleaning Build Output Files .................................................................. |
197 |
Viewing Build Status ............................................................................. |
198 |
Setting Build Options............................................................................. |
200 |
Downloading an Application Image ............................................................. |
201 |
Programming 5000 and 6000 Off-chip Memory.................................... |
203 |
Programming 5000 and 6000 Series Chips In-Circuit.................... |
203 |
Programming 3150 Off-chip Memory.................................................... |
208 |
Programming 3150 On-chip Memory.................................................... |
209 |
Programming 3120 and 3170 On-chip Memory.................................... |
210 |
Programming PL 3120 and PL 3170 Smart Transceiver |
|
Parameters ..................................................................................... |
210 |
Upgrading Device Applications ............................................................. |
211 |
Adding and Managing Target Devices ........................................................ |
211 |
Adding a Target Device with the IzoT Commissioning Tool ................. |
211 |
Adding a Target Device with the NodeBuilder Project Manager .......... |
215 |
Managing Target Devices ..................................................................... |
217 |
Editing Target Device Settings.............................................................. |
218 |
9 Testing a NodeBuilder Device Using the IzoT Commissioning Tool 221 |
|
Introduction to Testing NodeBuilder Devices .............................................. |
222 |
Monitoring and Controlling NodeBuilder Devices ................................. |
222 |
Using the Data Point Shape ........................................................... |
222 |
Using the LonMaker Browser ......................................................... |
224 |
Connecting NodeBuilder Devices ......................................................... |
227 |
10 Debugging a Neuron C Application............................................. |
233 |
Introduction to Debugging ........................................................................... |
234 |
Starting the NodeBuilder Debugger ...................................................... |
234 |
Using the Debugger Toolbar................................................................. |
236 |
Stopping an Application ........................................................................ |
237 |
Halting an Application..................................................................... |
238 |
Running to the Cursor .................................................................... |
238 |
Setting and Using Breakpoints ....................................................... |
238 |
Stepping Through Applications ............................................................. |
239 |
vi |
Preface |
Debugging Interrupts for 5000 or 6000 Series chips ............................ |
239 |
Using Statement Expansion.................................................................. |
239 |
Using the Watch List Pane.................................................................... |
239 |
Using the Call Stack Pane .................................................................... |
243 |
Using the Debug Device Manager Pane............................................... |
243 |
Peeking and Poking Memory ................................................................ |
244 |
Executing Code in Development Targets Only..................................... |
245 |
Using the Debug Error Log Tab............................................................ |
245 |
Setting Debugger Options..................................................................... |
245 |
Appendix A Using the Command Line Project Make Facility......... |
249 |
Using the NodeBuilder Command Line Project Make Facility..................... |
250 |
Appendix B Using Source Control With a NodeBuilder Project..... |
253 |
Using Source Control with a NodeBuilder Project....................................... |
254 |
Appendix C Glossary ........................................................................ |
257 |
Appendix D NodeBuilder Software License Agreement................. |
271 |
IzoT NodeBuilder User's Guide |
vii |
viii |
Preface |
The IzoT™ NodeBuilder® Development Tool is a complete hardware and software
platform that is used to develop applications for Neuron Chips and Echelon Smart Transceivers. The IzoT NodeBuilder tool lets you create, debug, test, and maintain
IzoT and LONWORKS devices. It includes a suite of device development software that you can use to develop device applications, and hardware platforms that you can use to build and test prototype and production devices.
IzoT NodeBuilder User's Guide |
ix |
This document describes how to use the IzoT NodeBuilder tool to develop IzoT and LONWORKS device applications and build and test prototype and production IzoT and LONWORKS devices.
This guide is intended for device and system designers with an understanding of control networks.
Requirements for computers running the IzoT NodeBuilder tool are listed below:
•Microsoft® Windows. Windows 8 64-bit and 32-bit, or Windows 7 64-bit and 32-bit, or Windows XP 32-bit. Echelon recommends that you install the latest service pack available from Microsoft for your version of Windows.
•An Intel® Pentium® or compatible processor meeting the minimum Windows requirements for the selected version of Windows.
•300 to 550 megabytes (MB) free hard-disk space, plus the minimum Windows requirements for the selected version of Windows.
o The IzoT NodeBuilder tool requires 100 MB of free space.
o The IzoT Commissioning Tool, which is required to install the IzoT NodeBuilder tool, requires 172 MB of free space.
o Microsoft .NET Framework 3.5 SP1, which is required to run the IzoT NodeBuilder tool, requires 30 MB of free space. This is not included and must be downloaded separately.
•512 MB RAM minimum.
•DVD-ROM drive.
•1024x768 or higher-resolution display with at least 256 colors.
•Mouse or compatible pointing device.
This guide includes the following content:
•Introduction. Lists the new features in the IzoT NodeBuilder tool, summarizes the components included with the IzoT NodeBuilder tool, and provides an overview of IzoT NodeBuilder device development and network integration.
•Installing the IzoT NodeBuilder Development Tool. Describes how to get started with your IzoT NodeBuilder tool, including how to install the IzoT NodeBuilder software and connect the IzoT FT 6000 EVK hardware.
•IzoT NodeBuilder Quick-Start Exercise. Demonstrates how to create an IzoT or LONWORKS device using the IzoT NodeBuilder tool.
•Creating and Opening NodeBuilder Projects. Describes how to create, open, and copy NodeBuilder projects, and explains how to copy NodeBuilder projects and NodeBuilder device templates to another computer.
•Creating and Using Device Templates. Describes how to use the New Device Template wizard in the NodeBuilder Project Manager to create, manage, and edit NodeBuilder device templates.
x |
Preface |
Explains how to manage development and release targets and insert libraries into a device template. Describes how to use the Hardware Template Editor to create and edit hardware templates.
•Defining Device Interfaces and Creating their Neuron C Application Framework. Describes how to use the NodeBuilder Code Wizard to define your device interface and generate Neuron C code that implements it. Explains how to start the NodeBuilder Code Wizard, how to add functional blocks, network variables, and configuration properties to your device template, and how to create the Neuron C framework for your device interface.
•Developing Device Applications. Provides an overview of the Neuron C Version 2.3 programming language. Describes how to edit the Neuron C source code generated by the NodeBuilder Code Wizard to implement your device functionality. Explains how to use the NodeBuilder Editor to edit, search, and bookmark Neuron C code.
•Building and Downloading Device Applications. Describes how to compile Neuron C source code, build an application image, and download the application image to a device. Explains how to add target devices to a NodeBuilder project and how to manage them.
•Testing a NodeBuilder Device Using the IzoT Commissioning Tool. Describes how to use the Data Point shape and IzoT Browser in the IzoT Commissioning Tool to monitor and control your device. It explains how to use the IzoT Commissioning Tool to connect your IzoT NodeBuilder device to other IzoT or LONWORKS devices in a network.
•Debugging a Neuron C Application. Describes how the use the NodeBuilder debugger to troubleshoot your Neuron C application.
•Appendices. Provides information for using the command line project make facility and managing an IzoTNodeBuilder project using a source control application. Also includes a glossary with definitions for many terms commonly used with an IzoT NodeBuilder device development.
Note: Screenshots in this document were taken during the development of the IzoT NodeBuilder tool; therefore, some images may vary slightly from the release version of the user interface.
The documentation related to the IzoT NodeBuilder tool is provided as Adobe® PDF files and online help files. The PDF files are installed in the Echelon NodeBuilder program folder when you install the IzoT NodeBuilder tool. You can download the latest NodeBuilder documentation, including the latest version of this guide, from Echelon’s Web site at www.echelon.com/docs.
The following manuals provide supplemental information to the material in this guide. You can download these documents from Echelon’s Web site at www.echelon.com.
FT 6000 EVB Examples Guide |
Describes how to run the Neuron C example applications |
( 078-0505-01) |
included with the FT 6000 EVK on an FT 6000 EVB. |
FT 6000 EVB Hardware Guide |
Describes how to connect the FT 6000 EVBs, and describes the |
(078-0504-01) |
Neuron core, I/O devices, service pin and reset buttons and |
|
LEDs, and jumper settings on the FT 6000 EVB hardware. |
|
One or two FT 6000 EVBs are included with the IzoT FT 6000 |
|
EVK. |
Introduction to the LONWORKS |
Provides a high-level introduction to LONWORKS networks and |
Platform |
the tools and components that are used for developing, installing, |
(078-0183-01B) |
operating, and maintaining them. |
OpenLNS Plug-in Programmer’s |
Describes how to write plug-ins using .NET programming |
Guide (078-0393-01A) |
languages such as C# and Visual Basic .NET |
IzoT NodeBuilder User's Guide |
xi |
IzoT Commissioning ToolUser’s |
Describes how to use the IzoT Commissioing Tool to design, |
Guide (078-0514-01) |
commission, modify, and maintain LONWORKS networks. |
LONMARK SNVT and SCPT Guide |
Documents the standard network variable types (SNVTs), |
|
standard configuration property types (SCPTs), and standard |
|
enumeration types that you can declare in your applications. |
IZOT Plug-in for WireShark Guide |
Describes how to use the IzoT Plug-in for WireShark. This is |
(078-9511-01A) |
the packet analyzer to monitor, analyze, and troubleshoot |
|
network protocol problems |
Neuron C Programmer’s Guide |
Describes how to write programs using the Neuron® C Version |
( 078-0002-02I) |
2.3 language. |
Neuron C Reference Guide |
Provides reference information for writing programs using the |
(078-0140-02G) |
Neuron C language. |
Neuron Tools Error Guide |
Provides reference information for Neuron tool errors. |
(078-0402-01D) |
|
NodeBuilder Resource Editor User’s |
Describes how to use the NodeBuilder Resource Editor to create |
Guide (078-0194-01C) |
and edit resource file sets and resources such as functional |
|
profile templates, network variable types, and configuration |
|
property types. |
The NodeBuilder ReadMe document provides descriptions of known problems, if any, and their workarounds. To view the NodeBuilder ReadMe, click Start, point to Programs, point to NodeBuilder, and then select NodeBuilder ReadMe First. You can also find additional information about the IzoT NodeBuilder tool at the NodeBuilder Web page at www.echelon.com/nodebuilder.
If you have technical questions that are not answered by this document, the NodeBuilder online help, or the NodeBuilder ReadMe file, you can contact technical support. You can get free e-mail support by sending your support questions to lonsupport@echelon.com To receive priority technical support from Echelon, you can purchase support services from Echelon or an Echelon support partner. See www.echelon.com/support for more information on Echelon support and training services.
You can also enroll in training classes at Echelon or an Echelon training center to learn more about developing devices. You can find additional information about device development training at www.echelon.com/training.
You can obtain technical support via phone, fax, or e-mail from your closest Echelon support center. The contact information is as follows:
Region |
Languages Supported |
Contact Information |
|
|
|
The Americas |
English |
Echelon Corporation |
|
Japanese |
Attn. Customer Support |
|
|
550 Meridian Avenue |
|
|
San Jose, CA 95126 |
|
|
Phone (toll-free): |
|
|
1-800-258-4LON (258-4566) |
|
|
Phone: +1-408-938-5200 |
|
|
Fax: +1-408-790-3801 |
|
|
lonsupport@echelon.com |
|
|
|
xii |
Preface |
Region |
Languages Supported |
Contact Information |
|
|
|
Europe |
English |
Echelon Europe Ltd. |
|
German |
Suite 12 |
|
French |
Building 6 |
|
Italian |
Croxley Green Business Park |
|
|
Hatters Lane |
|
|
Watford |
|
|
Hertfordshire WD18 8YH |
|
|
United Kingdom |
|
|
Phone: +44 (0)1923 430200 |
|
|
Fax: +44 (0)1923 430300 |
|
|
lonsupport@echelon.co.uk |
|
|
|
Japan |
Japanese |
Echelon Japan |
|
|
Holland Hills Mori Tower, 18F |
|
|
5-11-2 Toranomon, Minato-ku |
|
|
Tokyo 105-0001 |
|
|
Japan |
|
|
Phone: +81-3-5733-3320 |
|
|
Fax: +81-3-5733-3321 |
|
|
lonsupport@echelon.co.jp |
|
|
|
China |
Chinese |
Echelon Greater China |
|
English |
Rm. 1007-1008, IBM Tower |
|
|
Pacific Century Place |
|
|
2A Gong Ti Bei Lu |
|
|
Chaoyang District |
|
|
Beijing 100027, China |
|
|
Phone: +86-10-6539-3750 |
|
|
Fax: +86-10-6539-3754 |
|
|
lonsupport@echelon.com.cn |
|
|
|
Other Regions |
English |
Phone: +1-408-938-5200 |
|
Japanese |
Fax: +1-408-328-3801 |
|
|
lonsupport@echelon.com |
|
|
|
IzoT NodeBuilder User's Guide |
xiii |
1
This chapter introduces the IzoT NodeBuilder Development Tool. It lists the new features in the IzoT NodeBuilder tool, summarizes the components included with theIzoTNodeBuilder tool, and provides an overview of NodeBuilder device development and network integration.
IzoT NodeBuilder User's Guide |
1 |
The IzoT NodeBuilder Development Tool is a complete hardware and software platform for developing, debugging, testing, and maintaining IzoT and LONWORKS devices based on the Neuron 6000 Processor and FT 6000 Smart Transceiver and all previous-generation Series 5000 and Series 3100 chips. You can use the IzoT NodeBuilder tool to create many types of devices, including VAV controllers, thermostats, washing machines, card-access readers, refrigerators, lighting ballasts, blinds, and pumps. You can use these devices in a variety of systems including building and lighting controls, factory automation, energy management, and transportation.
You can use the IzoT NodeBuilder tool to do the following:
•View standard resource file definitions for standard network variable types (SNVTs), standard configuration property (SCPTs), and standard functional profile templates (SFPTs).
•Create your own resource files with user-defined network variable types (UNVTs), user-defined configuration property (UCPTs), and user-defined functional profile templates (UFPTs).
•Automatically generate Neuron C code that implements your device’s interface and provides the framework for your device application.
•Edit your Neuron C code to implement your device’s functionality.
•Compile, build, and download your application to a development platform or to your own devices.
•Test with prototype I/O hardware on either the FT 6000 EVB Evaluation Boards included with the FT 6000 EVK and available separately, or LTM-10A Platform and Gizmo 4 I/O Board included with the NodeBuilder FX/PL tool and available separately, or use your own custom device to build and test your own I/O hardware.
•Install your device into an IzoT or LONWORKS network and test how your device interoperates with other IzoT and LONWORKS devices.
The IzoT NodeBuilder tool includes support for Echelon’s new Series 6000 chips (the term used to collectively refer to the FT 6050 and FT 6010 Smart Transceivers and the Neuron 6050 Processor), support for Echelon’s new FT 6000 EVB, support for the previous generation Series 5000 and Series 3100 chips, and the following key features:
•Support for the IzoT LonTalk/IP and BACnet/IP protocols
•Support for transient functions and automatically tuned memory maps
•Extended address table support with support for up to 254 address table entries
•Support for network variables up to 228 bytes (exceeding the previous limit of 31 bytes)
•Neuron C Version 2.3 Enhancements
The following sections describe these new features.
The Series 6000 chips and firmware add support for the LonTalk/IP protocol. The LonTalk/IP protocol is the control network protocol that implements IzoT Control Services. IzoT Control Services are based on the LONMARK Layer 7 protocol, the ISO/IEC 14908-1 Layers 3 to 6 protocols, with native IP addressing at Layer 3, and link-specific protocols for Layers 1 and 2. The link-specific protocols may implement compression of the Layer 3 packets depending on the requirements of the underlying links. There are two modes for LonTalk/IP called Compatibility Mode and Enhanced Mode. In Compatibility Mode LonTalk/IP devices can communicate with LonTalk devices directly without the need for a router as long as they are on the same LonTalk-compatible channel. LonTalk/IP
2 |
Introduction |
devices in Compatibility Mode can also communicate with LonTalk devices on different channels as long as there is a route created between the channels with one or more IzoT routers. In Enhanced Mode, LonTalk/IP devices cannot communicate with LonTalk devices, even with the use of IzoT routers.
You can configure the IzoT Router included with the FT 6000 EVK to operate in either Enhanced Mode or Compatibility Mode. If you are developing devices that will potentially be used with devices based on the Series 5000 or Series 3100 processors, select Compatibility Mode. If you are developing devices that will exclusively be used with devices based on Series 6000 processors or other IzoTcompatible devices such as devices based on the IzoT Device Stack EX, select Enhanced Mode.
The Series 6000 chips and firmware add support for the BACnet/IP protocol. The BACnet/IP protocol is the protocol that implements the BACnet services defined by ASHRAE and specified in ISO 16484- 5, with native IP addressing at Layer 3, and link-specific protocols for Layers 1 and 2. The linkspecific protocols may implement compression of the Layer 3 packets depending on the requirements of the underlying links.
The IzoT NodeBuilder software adds development support for the Series 6000 chips. Development for Series 5000 and Series 3100 chips is also supported. An FT 6000 Evaluation Board hardware template file (.NbHwt extension) is included, matching the FT 6000 EVB hardware.
See the FT 6000 EVK Hardware Guide for instructions to emulate the FT 6010 hardware with the FT 6050 Evaluation board. The FT 6010 Evaluation Board hardware template required for this emulation is included.
An FT 6050 hardware template is included as an example of a typical hardware template for a generic FT 6050 device.
The Neuron C compiler and its companion tools automatically take advantage of the Series 6000 chips’ features. For example, the Neuron C compiler automatically takes advantage of the extended address table where available, and the dynamic host configuration protocol (DHCP) is automatically enabled where supported.
The IzoT NodeBuilder software adds support for transient functions for applications targeting a Series 6000 chip. A transient function is loaded from serial flash memory on demand and automatically managed by the Neuron firmware, allowing the application’s total code size to exceed the available physical memory. Functions declared in Neuron C 2.3 compile to transient functions by default, while when-tasks and interrupt-tasks always compile into resident code.
Individual functions can be made resident with the new Neuron C __resident keyword (note the leading double underscore characters:
unsigned __resident add(unsigned a, unsigned b) { return a+b;
}
See the Neuron C Programmer’s Guide for more details about resident and transient functions.
To ease device development and ensure suitable space for transient functions, the Neuron C 2.3 tools automatically size the memory map to suit the requirements of the Neuron firmware, the Series 6000 chips and your application combined. For these chips, it is no longer necessary to estimate the amount of volatile memory (“RAM”), persistent data storage (“EEPROM”) or space needed for constant data and code.
IzoT NodeBuilder User's Guide |
3 |
The FT 6000 EVB is a complete 6000 Series IzoT and LONWORKS device that you can use to create IzoT and LONWORKS devices. The FT 6000 EVB includes a FT 6050 Smart Transceiver with an external 10 MHz crystal (you can adjust the system’s internal clock speed from 5MHz to 80MHz), an FT-X3 communication transformer, 64KB external serial EEPROM and flash memory devices, and a 3.3V power source. The FT 6000 EVB features a compact design that includes the following I/O devices that you can use to develop prototype and production devices and test the FT 6000 EVB example applications:
•4 x 20 character LCD
•4-way joystick with center push button
•2 push-button inputs
•2 LED outputs
•Light-level sensor
•Temperature sensor
The FT 6000 EVB Evaluation Board also includes EIA-232/TIA-232 (formerly RS-232) and USB interfaces that you can use to connect the board to your development computer and perform application-level debugging.
Each FT 6000 EVB also features a flash in-circuit programmer header that supports the SPI interface for fast downloads when programming the external non-volatile memory of the FT 6050 Smart Transceiver on the board.
For more information on the FT 6000 EVB hardware, including detailed descriptions of its Neuron core, I/O devices, service pin and reset buttons and LEDs, and jumper settings, see the FT 6000 EVB Hardware Guide.
Series 6000 chips can support up to 254 address table records, subject to available system resources (for example, RAM and EEPROM) and application requirements. The Series 5000 and Series 3100 chips are limited to a maximum of 15 address table entries.
Series 6000 chip support network variables up to 228 bytes in size. The Series 5000 and Series 3100 chips are limited to a maximum network variable size of 31 bytes.
Creating new applications or adding larger than 31 bytes network variables to existing applications is completely transparent except when larger than 31 bytes network variables are added to existing applications which also implement changeable-type applications.
Applications implementing changeable-type network variables and larger than 31-bytes network variables must return the current size of changeable-type network variables from the applicationspecific implementation of the get_nv_length_override() callback. In previous releases, the get_nv_length_override() callback would return a constant 0xFF by default. Applications which support larger than 31 bytes network variables must default the callback result to the value obtained from the get_declared_nv_length() API:
unsigned _RESIDENT get_nv_length_override(unsigned nvIndex)
{
#if defined(_SUPPORT_LARGE_NV)
unsigned uResult = get_declared_nv_length(nvIndex); #else
unsigned uResult = 0xFF; #endif
4 |
Introduction |
//TO DO: add code to return the current length of the network variable
//with index "nvIndex."
//Example code follows:
//
//switch (nvIndex) {
//case nviChangeableNv::global_index:
//if (nviChangeableNv::cpNvType.type_category != NVT_CAT_INITIAL
//&& nviChangeableNv::cpNvType.type_category != NVT_CAT_NUL) {
//uResult = nviChangeableNv::cpNvType.type_length;
//}
//break;
//} // switch
return uResult;
}
See Implementing Changeable-Type Network Variables in chapter 4 of this guide and ChangeableType Network Variables in the Neuron C Programmer’s Guide for more detail.
The new features in the Neuron C Version 2.3 programming language include support for transient and resident functions, automatic memory maps, a new preprocessor, support for initialization of automatic variables implementing scalar types, and new or enhanced compiler directives and other language enhancements. These new features are detailed in the Neuron C Programmer’s Guide and Neuron C Reference Guide.
Support for transient functions and automatic memory maps is detailed earlier in this section.
The new preprocessor, based on the open source MCPP implementation by Kioshi Matsui, provides previously unsupported directives such as #if and #elif.
Automatic variables implementing scalar types can now be initialized. For example:
unsigned long add(unsigned num, unsigned *values) { unsigned long result = 0;
while (num--) {
result += *values++;
}
return result;
}
Automatic variables which implement aggregate types such as structures, unions and arrays cannot be initialized in this manner. To initialize such a variable, declare the variable and provide its initial data in two distinct expressions.
Enhanced compiler directives include the pragma addresses and pragma aliases directives (also known as pragma num_addr_table_entries and pragma num_alias_table_entries, respectively). These directives are enhanced with a more user-friendly new name, and automatic allocation of the corresponding resource based on the compiler’s inspection of your application. The directives can be used to override this allocation.
The pragma num_domains directive is also supported with a user-friendly alias, pragma domains.
New directives are supplied to control new features (pragma dhcp, pragma enhanced_mode, pragma resident) and to control placement of certain portions of your application within the available space (pragma locate).
In addition, the new __type_index and __type_scope built-in properties are supported for network variables, and yield a numeric constant for the type index and type scope number, respectively. These properties begin with a double underscore character to avoid conflicts with existing application code. For example, a SNVT_switch typed network variable reports 95 for the type index, and a scope of zero.
IzoT NodeBuilder User's Guide |
5 |
The FT 6000 EVK includes the following components:
•IzoT NodeBuilder Development Tool. The IzoT NodeBuilder Development Tool is an integrated development environment (IDE) for developing applications for Series 6000, 5000, and 3100 chips. It is available as a free download that requires a serial number to be installed. A serial number for the IzoT NodeBuilder software is included on the back of the IzoT Commissioning Tool EVK Edition DVD case that is included with the FT 6000 EVK.
•Two FT 6000 EVB Evaluation Boards. The FT 6000 EVBs are evaluation boards that you can use to run example applications and to prototype and debug your own applications. Each includes an FT 6050 Smart Transceiver and can be attached to an IzoT or LONWORKS free topology (FT) twisted pair channel.
•IzoT Commissioning Tool EVK Edition DVD. Contains the software tool for designing, installing, and maintaining IzoT and LONWORKS control networks. The EVK Edition includes the Microsoft Visio 2010 diagramming and vector graphics edition application.
•IzoT Network Services Server CD. Contains the network operating system that is the standard network management software platform for commercial and industrial IzoT and LONWORKS networks.
•IzoT Router. A ready-to-run application for connecting IzoT devices on an Ethernet channel with IzoT and LonWorks devices on an FT channel. The router automatically forwards packets between the Ethernet and FT channels.
•IzoT Plug-in for Wireshark. Wireshark is a free and open-source packet analyzer for IP networks. It is used for network troubleshooting and analysis. A plug-in for Wireshark is included with the IzoT NodeBuilder software that enabled Wireshark to decode LonTalk/IP packets.
•Quick Start Guide. This document describes how to install the software included with your FT 6000 EVK; connect the FT 6000 EVBs and your development computer to an FT-10 channel; and create a simple network using the example application pre loaded on the FT 6000 EVB.
•FT 6050 Smart Transceiver sample chips.
•Accessories including power supplies and cables.
The following sections describe each of the components.
The IzoT NodeBuilder Development Tool is an integrated development environment (IDE) for developing and debugging applications for Series 6000, 5000, and 3100 chips. It is available as a free download that requires a serial number to be installed. A serial number for the IzoT NodeBuilder software is included on the back of the IzoT Commissioning Tool EVK Edition DVD case that is included with the FT 6000 EVK.I It includes Neuron C example applications that you can run on your FT 6000 EVBs and use to further learn how to develop your own device applications.
The IzoT NodeBuilder software includes the following components:
•NodeBuilder Resource Editor. View standard types and functional profiles, and create user-defined types and profiles if the standard resource files do not include the resources you need.
•NodeBuilder Code Wizard. Use a drag-and-drop interface to create your device’s interface and then automatically generate Neuron C source code that implements the device interface and creates the framework for your device application.
6 |
Introduction |
•NodeBuilder Editor. Edit the Neuron C source code generated by the Code Wizard to create your device’s application, or create and edit your own Neuron C code.
•NodeBuilder Debugger. Debug your application with a source-level view of your application code as it executes.
•NodeBuilder Project Manager. Build and download your application image to your development platform or to your own device hardware.
The IzoT NodeBuilder software include three Neuron C example applications that you can run on your FT 6000 EVBs. You can use these examples to test the I/O devices on the FT 6000 EVB, and create simple IzoT and LONWORKS networks. You can view the Neuron C code used in the example applications, and then create a new device application by modifying the existing example applications or by developing the device application from scratch.
For more information on using the FT 6000 EVB example applications, see the FT 6000 EVB Examples Guide.
The IzoT FT 6000 EVK includes two FT 6000 EVBs. Each EVB is a complete Series 6000 IzoT and LONWORKS device that you can use to evaluate the IzoT and LONWORKS platforms and create IzoT and LONWORKS devices. The FT 6000 EVB includes an FT 6050 Smart Transceiver with an external 10 MHz crystal (you can adjust the system’s internal clock speed from 5MHz to 80MHz), an FT-X3 communication transformer, 512KB external serial flash memory devices, and a 3.3V power source. The FT 6000 EVB features a compact design that includes the following I/O devices that you can use to develop prototype and production devices and test the FT 6000 EVB example applications:
•4 x 20 character LCD
•4-way joystick with center push button
•2 push-button inputs
•2 LED outputs
•Light-level sensor
•Temperature sensor
The FT 6000 EVB Evaluation Board also includes an EIA-232/TIA-232 (formerly RS-232) and USB interfaces that you can use to connect the board to your development computer and perform application-level debugging.
Each FT 6000 EVB also features a flash ICE header that supports the SPI and I2C interfaces for fast downloads when programming the external non-volatile memory of the FT 6000 Smart Transceiver on the board.
IzoT NodeBuilder User's Guide |
7 |
For more information on the FT 6000 EVB hardware, including detailed descriptions of its Neuron core, I/O devices, service pin and reset buttons and LEDs, and jumper settings, see the FT 6000 EVB Hardware Guide.
The IzoT Commissioning Tool is a software tool that you can use to install, connect, configure, test, and update devices that you develop with the IzoT NodeBuilder software. It is a software package for designing, installing, and maintaining IzoT and LONWORKS control networks. Based on Echelon’s IzoT Network Services Server, the Izot Commissioning Tool combines a powerful network services platform with an easy-to-use Visio user interface. The IzoT Commissioning tool is compatible with a number of OpenLNS and LNS plug-ins, simplifying network installation and integration for devices with plug-in support.
The IzoT Commissioning Tool can be used to manage all phases of a network’s life cycle, from the initial design and commissioning to the ongoing operation, because it provides the functionality of several network tools in one single solution:
•Network Design Tool. You can design a network onsite or offsite (either connected to the network over the Internet or not connected to it all), and then modify it anytime. The IzoT Commissioning Tool can also learn an existing network’s design through a process called network recovery.
•Network Installation Tool. You can rapidly install a network designed offsite once it is brought onsite. The device definitions can be quickly and easily associated with their corresponding physical devices to reduce on-site commissioning time. The IzoT Browser provides complete access to all network variables and configuration properties.
•Network Documentation Tool. You can create an IzoT CT drawing during the network design and installation process. This drawing is an accurate, logical representation of the installed physical network. The drawing is therefore an essential component of as-built reports.
•Network Operation Tool. You can operate the network using the operator interface pages contained within the IzoT CT drawing.
•Network Maintenance Tool. You can easily add, test, remove, modify, or replace devices, routers, channels, subsystems, and connections to maintain the network.
This guide describes many of the IzoT Commissioning Tool functions that you will use with the IzoT NodeBuilder tool. See the IzoT Commissioning Tool User’s Guide for more information on the IzoT Comnmissioning Tool and to learn how it can be used to install, operate, and maintain your operational networks in addition to your development networks.
The IzoT Network Service Server is a network operating system that is the standard network management software platform for commercial and industrial IzoT and LONWORKS networks.
The IzoT Router is a ready-to-run application for connecting IzoT devices on an Ethernet channel with IzoT and LonWorks devices on an FT channel. The router automatically forwards packets between the Ethernet and FT channels.
Wireshark is a free and open-source packet analyzer for IP networks. It is used for network troubleshooting and analysis. A plug-in for Wireshark is included with the IzoT NodeBuilder software that enabled Wireshark to decode LonTalk/IP packets. See the IzoT Plug-in for Wireshark Guide for details on how to download Wireshark, install the IzoT plug-in for Wireshark, and use Wireshark with LonTalk/IP networks.
8 |
Introduction |
An IzoT or LONWORKS network consists of intelligent devices (such as sensors, actuators, and controllers) that communicate with each other using a common protocol over one or more communications channels. Network devices are sometimes called nodes.
Devices may be Neuron hosted or host-based. Neuron hosted devices run a compiled Neuron C application on a Neuron Chip or Smart Transceiver. You can use the IzoT NodeBuilder tool to develop, test, and debug Neuron C applications for Neuron hosted devices.
Host-based devices run applications on a processor other than a Neuron Chip or Smart Transceiver. Host-based devices may run applications written in any language available to the processor. A host-based device may use a Neuron Chip or Smart Transceiver as a communications processor, or it may handle both application processing and communications processing on the host processor. The IzoT NodeBuilder tool supports some of the common tasks occurring in the creation of host-based devices; however, an additional host-based device development tool is required.
Each device includes one or more processors that implement the LonTalk/IP or the ISO/IEC 14908-1 Control Network Protocol (CNP). Each device also includes a component called a transceiver to provide its interface to the communications channel.
A device publishes and consumes information as instructed by the application that it is running. The applications on different devices are not synchronized, and it is possible that multiple devices may all try to talk at the same time. Meaningful transfer of information between devices on a network, therefore, requires organization in the form of a set of rules and procedures. These rules and procedures are the communication protocol, which may be referred to simply as the protocol. The protocol defines the format of the messages being transmitted between devices and defines the actions expected when one device sends a message to another. The protocol normally takes the form of embedded software or firmware code in each device on the network. The CNP is an open protocol defined by the ISO/IEC 14908-1 standard (defined nationally in the United States, Europe, and China by the ANSI/EIA 709.1, EN 14908, and GB/Z 20177 standards, respectively). LonTalk/IP is based on the ISO/IEC 14908-1 standard, with extensions to use IP as the transport protocol.
A channel is the physical media between devices upon which the devices communicate. The LonTalk/IP and CNP protocols are media independent; therefore, numerous types of media can be used for channels: twisted pair, power line, fiber optics, IP, and radio frequency (RF) to name a few. Channels are categorized into channel types, and the channel types are characterized by the device transceiver. Common channel types include TP/FT-10 (ISO/IEC 14908-2 twisted pair free topology channel) which is also called FT, TP/XF-1250 (high-speed twisted pair channel), PL-20 (ISO/IEC 14908-3 power line channel), FO-20 (ANSI/CEA-709.4 fiber optics channel), and IP-852 (ISO/IEC 14908-4 IP-communication).
Different transceivers may be able to interoperate on the same channel; therefore, each transceiver type specifies the channel type or types that it supports. The choice of channel type affects transmission speed and distance as well as the network topology.
The IzoT NodeBuilder tool, IzoT Commissioning Tool, and Neuron Chips support all standard channel types, but not all Neuron Chips support all transceiver and channel types. Smart Transceivers combine the transceiver and Neuron core in the same chip, and therefore support the channel types supported by the integrated transceiver.
Multiple channels can be connected using routers. Routers are used to manage network message traffic, extend the physical size of a channel (both length and number of devices attached), and connect
IzoT NodeBuilder User's Guide |
9 |
channels that use different media (channel types) together. Unlike other devices, routers are always attached to at least two channels.
The IzoT Router can be configured to act as a DHCP relay for address allocation on the LonTalk/IP network. DHCP relay can be used to have a single server perform all of the allocation of addresses in a network, and then have the server’s allocations forwarded onto another subnet.
To enable the DHCP relay functionality, go to the DHCP page on configuration Web page of the IzoT Router. Once there, select the Relay option and a box to enter the address of the DHCP server appears. Enter the IP address of your server and click the Save Configuration button. DHCP requests are now forwarded from the LonTalk/IP network to the DHCP server, and responses from the server will be forwarded to devices on the LonTalk/IP network.
The DHCP server must have a separate subnet set up to allocate addresses from the LonTalk/IP subnet. This is because the IzoT Router treats the IP and LonTalk/IP subnets as separate subnets, and uses the subnets to determine which subnet to send messages on. The subnet on the FT side needs to be different than the subnet on the Ethernet side. If both the LonTalk/IP and IP subnets share the same address range, the router cannot determine where to send the messages.
Every IzoT and LONWORKS device contains an application that defines the device’s behavior. The application defines the inputs and outputs of the device. The inputs to a device can include information sent on LonTalk/IP and LONWORKS channels from other devices, as well as information from the device hardware (for example, the temperature from a temperature sensing device). The outputs from a device can include information sent on LonTalk/IP and LONWORKS channels to other devices, as well as commands sent to the device hardware (for example, a fan, light, heater, or actuator). You can use the IzoT NodeBuilder tool to write a device’s Neuron C application.
Every LONWORKS application has a unique, 16 digit, hexadecimal standard program ID with the following format: FM:MM:MM:CC:CC:UU:TT:NN. This program ID is broken down into the following fields:
Field |
Description |
Format (F) |
A 1 hex-digit value defining the structure of the program ID. The upper |
|
bit of the format defines the program ID as a standard program ID (SPID) |
|
or a text program ID. The upper bit is set for standard program IDs, so |
|
formats 8–15 (0x8–0xF) are reserved for standard program IDs. |
|
• Program ID format 8 is reserved for LONMARK certified devices. |
|
• Program ID format 9 is used for devices that will not be LONMARK |
|
certified, or for devices that will be certified but are still in |
|
development or have not yet completed the certification process. |
|
• Program ID formats 10–15 (0xA–0xF) are reserved for future use. |
|
• Text program ID formats are used by network interfaces and legacy |
|
devices and, with the exception of network interfaces, cannot be used |
|
for new devices. |
|
The IzoT NodeBuilder tool can be used to create applications with |
|
program ID format 8 or 9. |
Manufacturer ID (M) A 5 hex-digit ID that is unique to each LONWORKS device manufacturer. |
|
|
The upper bit identifies the manufacturer ID as a standard manufacturer |
|
ID (upper bit clear) or a temporary manufacturer ID (upper bit set). |
10 |
Introduction |
Field |
Description |
|
|
• Standard manufacturer IDs are assigned to manufacturers when they |
|
|
join LONMARK International, and are also published by LONMARK |
|
|
International so that the device manufacturer of a LONMARK certified |
|
|
device is easily identified. Standard manufacturer IDs are never |
|
|
reused or reassigned. If your company is a LONMARK member, but |
|
|
you do not know your manufacturer ID, you can find your ID in the |
|
|
list of manufacturer IDs at www.lonmark.org/spid. The most current |
|
|
list at the time of release of the NodeBuilder tool is also included with |
|
|
the IzoT NodeBuilder software. |
|
|
• Temporary manufacturer IDs are available at no charge to anyone on |
|
|
request by filling out a simple form at www.lonmark.org/mid. |
|
Device Class (C) |
A 4 hex-digit value identifying the primary function of the device. This |
|
|
value is drawn from a registry of pre-defined device class definitions. If |
|
|
an appropriate device class designation is not available, the LONMARK |
|
|
International Secretary will assign one, upon request. |
|
Usage (U) |
A 2 hex-digit value identifying the intended usage of the device. The |
|
|
upper bit specifies whether the device has a changeable interface. The |
|
|
next bit specifies whether the remainder of the usage field specifies a |
|
|
standard usage or a functional-profile specific usage. The standard usage |
|
|
values are drawn from a registry of pre-defined usage definitions. If an |
|
|
appropriate usage designation is not available one will be assigned upon |
|
|
request. If the second bit is set, a custom set of usage values is specified |
|
|
by the primary functional profile for the device. |
|
Channel Type (T) |
A 2 hex-digit value identifying the channel type supported by the device’s |
|
|
transceiver. The standard channel-type values are drawn from a registry |
|
|
of pre-defined channel-type definitions. A custom channel-type is |
|
|
available for channel types not listed in the standard registry. |
|
Model Number (N) |
A 2 hex-digit value identifying the specific product model. Model |
|
numbers are assigned by the product manufacturer and must be unique |
||
|
||
|
within the device class, usage, and channel type for the manufacturer. The |
|
|
same hardware may be used for multiple model numbers depending on the |
|
|
program that is loaded into the hardware. The model number within the |
|
|
program ID does not have to conform to your published model number. |
|
|
See the LonMark Application Layer Interoperability Guidelines for more |
|
|
information about program IDs. |
Applications exchange information with other LONWORKS devices using network variables. Every network variable has a direction, type, and length. The network variable direction can be either input or output, depending on whether the network variable is used to receive or send data. The network variable type determines the format of the data.
Network variables of identical type and length but opposite directions can be connected to allow the devices to share information. For example, an application on a lighting device could have an input network variable that was of the switch type, while an application on a dimmer-switch device could have an output network variable of the same type. A network management tool such as the IzoT Commissioning Tool could be used to connect these two devices, allowing the switch to control the lighting device, as shown in the following figure:
IzoT NodeBuilder User's Guide |
11 |
A single network variable may be connected to multiple network variables of the same type but opposite direction. The following example shows the same switch being used to control three lights:
The application program in a device does not need to know where input network variable values come from or where output network variable values go. When the application program has a changed value for an output network variable, it simply assigns the new value to the output network variable.
Through a process called binding that takes place during network design and installation, the device is configured to know the logical address of the other device or group of devices in the network expecting that network variable’s values. The device’s embedded firmware assembles and sends the appropriate message(s) to these destinations. Similarly, when the device receives an updated value for an input network variable required by its application program, its firmware passes the data to the application program. The binding process thus creates logical connections between an output network variable in one device and an input network variable in another device or group of devices.
Connections may be thought of as virtual wires. For example, the dimmer-switch device in the dimmer-switch-light example could be replaced with an occupancy sensor, without making any changes to the lighting device.
The NodeBuilder Code Wizard automatically generates the required network variable declarations for your device’s interface in your device’s Neuron C application. Typically, you don’t need implement any code in the device application to handle the binding process, or the source or destination devices for network variable values. Neuron C provides an easy-to-use programming model familiar to any C language programmer that encapsulates the complexity of distributed applications.
IZOT AND LONWORKS applications may also contain configuration properties. Configuration properties allow the device’s behavior to be customized using a network management tool such as the
12 |
Introduction |
IzoT Commissioning Tool or a customized plug-in created for the device (see the OpenLNS Plug-in Programmer’s Guide for more information on creating OpenLNS device plug-ins).
For example, an application may allow an arithmetic function (add, subtract, multiply, or divide) to be performed on two values received from two network variables. The function to be performed could be determined by a configuration property. Another example of a configuration property is a heartbeat that determines how often a device transmits network variable updates over the network.
Like network variables, configuration properties have types that determine the type and format of the data they contain.
The NodeBuilder Code Wizard automatically generates the required configuration property declarations for your device’s interface and most of the required infrastructure code in your device’s Neuron C application. The IzoT NodeBuilder tool supports configuration properties with an easy-to-use programming model in Neuron C.
Applications in devices are divided into one or more functional blocks. A functional block is a collection of network variables and configuration properties, which are used together to perform one task. These network variables and configuration properties are called the functional block members. For example, a digital input device could have four digital input functional blocks that contain the configuration properties and output network variable members for each of the four hardware digital inputs on the device.
The NodeBuilder Code Wizard automatically generates the required functional block declarations for your device’s interface in your device’s Neuron C application.
A functional block is an implementation of a functional profile.
A functional profile defines mandatory and optional network variable and configuration property members for a type of functional block. For example, the standard functional profile for a light actuator has mandatory SNVT_switch input and output network variables, optional SNVT_elapsed_tm and SNVT_elec_kwh output network variables, and a number of optional configuration properties. The following diagram illustrates the components of the standard light actuator functional profile:
|
|
|
Lamp Actuator |
|
|
|
|
|
|
SFPTLampActuator |
|
|
|
|
|
|
|
|
|
|
|
|
|
Mandatory network variables |
|
|
|
nv1 |
|
nviLampValue |
nv2 |
|
nvoLampValueFb |
|
|
|
|||||
|
SNVT_switch |
|
|
SNVT_switch |
||
|
|
|
|
|
||
|
|
|
|
|
|
|
Optional network variables
nv3 nvoRunHours SNVT_elapsed_tm
nv4 nvoEnergyCnt SNVT_elec_kwh
Configuration properties
Mandatory |
Optional |
|
|
SCPT_location |
SCPTrunHrInit |
|
SCPTinFbDly |
SCPTrunHrAlarm |
|
SCPT_def_output |
SCPTenrgyCntInit |
|
|
|
IzoT NodeBuilder User's Guide |
13 |
When a functional block is created from a functional profile, the application designer can determine which of the optional configuration properties and network variables to implement.
A hardware template is a file with a .NbHwt extension that defines the hardware configuration for a device. It specifies hardware attributes that include the transceiver type, Neuron Chip or Smart Transceiver model, clock speed, system image, and memory configuration. Several hardware templates are included with the IzoT NodeBuilder tool. You can use these or create your own. Third-party development platform suppliers may also include hardware templates for their platforms.
Neuron C is a programming language, based on ANSI C, used to develop applications for devices that use a Neuron Chip or Smart Transceiver as the application processor. Neuron C includes extensions for network communication, device configuration, hardware I/O, and event-driven scheduling.
A device template defines a device type. The IzoT NodeBuilder tool uses two types of device templates. The first is a NodeBuilder device template. The NodeBuilder device template is a file with a .NbDt extension that specifies the information required for the IzoT NodeBuilder tool to build the application for a device. It contains a list of the application Neuron C source files, device-related preferences, and the hardware template name. When the application is built, the IzoT NodeBuilder tool automatically produces an IzoT device template and passes it to the IzoT Commissioning Tool and other network tools. The IzoT device template defines the device interface, and it is used by the IzoT Commissioning Tool and other network tools to configure and bind the device.
A device interface file (also known as an XIF file or an external interface file) is a file that specifies the interface of a device. It includes a list of all the functional blocks, network variables, configuration properties, and configuration property default values defined by the device’s application. IzoT tools such as the IzoT Commissioning Tool use device interface files to create an IzoT device template. This enables the network tool to be used to create network designs without being connected to the physical devices, and it speeds up some configuration steps when the network tool is connected to the physical device. A text device interface file with a .XIF extension is required by the LonMark Application Layer Interoperability Guidelines. A text device interface file is automatically produced by the IzoT NodeBuilder tool when you build an application. The IzoT NodeBuilder tool also automatically creates binary (.XFB extension) and optimized-binary (.XFO extension) versions of the device interface file that speed the import process for IzoT tools such as the IzoT Commissioning Tool.
Resource files define network variable types, configuration property types, and functional profiles. Resource files for standard types and profiles are distributed by LONMARK International. The standard resource files define standard network variable types (SNVTs), standard configuration property types (SCPTs), and standard functional profiles. For example, SCPT_location is a standard configuration property type for configuration properties containing the device location as a text string, and SNVT_temp_f is a network variable type for network variables containing temperature as a floating-point number. The standard network variable and configuration property types are defined at types.lonmark.org.
As new SNVTs and SCPTs are defined, updated resource files and documentation are posted to the LONMARK Web site. Standard functional profiles are included with the IzoT NodeBuilder tool, and their documentation is also available on the LONMARK Web site. To view and download the latest resource files and documentation, go to the LONMARK Web site at www.lonmark.org.
14 |
Introduction |
Device manufacturers may also create user resource files that contain manufacturer-defined types and profiles called user network variable types (UNVTs), user configuration property types (UCPTs), and user functional profiles (UFPTs).
You can create applications that only use the standard types and profiles. In this case, you do not need to create user-defined resource files. If you need to define any new user types or profiles, you will use the NodeBuilder Resource Editor to create them.
A target is a LONWORKS device whose application is built by the IzoT NodeBuilder tool. There are two types of targets, development targets and release targets. Development targets are used during development; release targets are used when development is complete and the device will be released to production. Each NodeBuilder device template specifies the definition for a development target and a release target. Both target definitions use the same source code, program ID, interface, and resource files, but can use different hardware templates and compiler, linker, and exporter options. The source code may include code that is conditionally compiled based on the type of target.
IzoT NodeBuilder User's Guide |
15 |
16 |
Introduction |