STD Programming Reference
STD Programming Reference
Tridium, Inc. 3951 Westerre Parkway Suite 350 Richmond, Virginia 23233 USA http://www.tridium.com Phone 804.747.4771 Fax 804.747.5204
Copyright Notice: The software described herein is furnished under a license agreement and may be used only in accordance with the terms of the agreement. Copyright 2004 Tridium, Inc. All rights reserved. This document may not, in whole or in part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine-readable form without prior written consent from Tridium, Inc., 3951 Westerre Parkway, Suite 350, Richmond, Virginia 23233. The confidential information contained in this document is provided solely for use by Tridium employees, licensees, and system owners; and is not to be released to, or reproduced for, anyone else; neither is it to be used for reproduction of this Control System or any of its components. All rights to revise designs described herein are reserved. While every effort has been made to assure the accuracy of this document, Tridium shall not be held responsible for damages, including consequential damages, arising from the application of the information given herein. The information in this document is subject to change without notice. The release described in this document may be protected by one of more U.S. patents, foreign patents, or pending applications. Trademark Notices: BACnet and ASHRAE are registered trademarks of American Society of Heating, Refrigerating and Air-Conditioning Engineers. Microsoft and Windows are registered trademarks, and Windows NT, Windows 2000, Windows XP Professional, and Internet Explorer are trademarks of Microsoft Corporation. Java and other Java-based names are trademarks of Sun Microsystems Inc. and refer to Sun's family of Java-branded technologies. Communicator and Navigator are registered trademarks of Netscape Communications Corporation. Echelon, LON, LonMark, LonTalk, and LonWorks are registered trademarks of Echelon Corporation. Tridium, Niagara, the Niagara Framework, Vykon, WorkPlace Pro, Web Supervisor, JACE-4, JACE-5, JACE-NP, and JACE-NX are trademarks of Tridium Inc. All other product names and services mentioned in this publication that are known to be trademarks, registered trademarks, or service marks have been appropriately capitalized and are the property of their respective owners. Niagara Standard Programming Reference Copyright 2004, Tridium, Inc. All rights reserved.
C O N T E N T S
PREFACE
About This Document Intended Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prerequisite Knowledge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatting Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commonly Used Terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER
Station and Objects A Station Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Niagara Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Model (Integration Platform) . . . . . . . . . . . . . . . . . . . . . . . . . . Data Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Name and SWID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Names (and Rules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Swid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Station Limits and Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring JACE-NX, JACE-NP Environment Variables . . . . . . . . Niagara Properties Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Host > Edit File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Archiving Properties Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List of Niagara Properties Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1 1-2 1-3 1-3 1-4 1-4 1-5 1-5 1-6 1-7 1-7 1-8 1-9 1-24 1-27 1-27 1-28 1-30 1-31
CHAPTER
2-1 2-1
iii
Contents
Data Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Link Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER
2-2 2-2 2-3 2-5 2-5 2-6 2-7 2-10 2-11 2-12 2-13
Commands and Views Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Admin Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . All Available Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Special Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . All Available Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER
Services About Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Core Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Additional Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Notes on Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding or Removing Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Service Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . AuditLogService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BackupService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ControlEngineService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DatabaseService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ErrorLogService. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LogService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MailService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NotificationService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1 4-2 4-2 4-2 4-3 4-3 4-4 4-5 4-6 4-8 4-10 4-16 4-28 4-31 4-36 4-39
iv
Contents
Control Objects About Control Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BACnet Heritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecting Control Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Control Object Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trigger Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debug Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Control Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . Event-Type Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnalogInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnalogOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnalogOverride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BinaryInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BinaryOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BinaryOverride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CpAnalogNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CpBinaryNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CpIntegerNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CpStringNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DateTimeTrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FunctionGenerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IntToFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Math. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MultistateInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MultistateOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MultistateOverride. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PeriodicTrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Totalizer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-1 5-2 5-3 5-4 5-5 5-5 5-5 5-6 5-8 5-11 5-15 5-23 5-29 5-33 5-42 5-53 5-57 5-59 5-62 5-65 5-67 5-69 5-71 5-73 5-77 5-79 5-83 5-95 5-101 5-112 5-124 5-128 5-130
Contents
CHAPTER
Apps Objects About Apps Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BACnet Heritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecting Apps Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Apps Object Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Apps Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Log Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AdminTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnalogLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BinaryLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IntegerLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MultistateLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . StringLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-1 6-2 6-2 6-3 6-4 6-5 6-7 6-18 6-26 6-32 6-35 6-41 6-44 6-47 6-52 6-60
CHAPTER
Container Objects About Container Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tree View Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Container Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inputs and Outputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layers in Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Browser Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Container Object Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Groups and Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarm and Alert Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Container Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . Containers That Composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . To Composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Or Not to Composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PollAlways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-1 7-2 7-2 7-3 7-3 7-3 7-4 7-4 7-5 7-5 7-6 7-6 7-8 7-9 7-13 7-14 7-19 7-22 7-24 7-29
vi
Contents
PollOnDemand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ServiceContainer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER
7-31 7-34
Gx Objects About Gx Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Execution of Gx Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gx Object Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Gx Object Things. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Gx Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Gx Object Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxBarGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxBoolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxDamper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxFan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxInteger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxPipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxSpectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GxTimePlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-1 8-2 8-2 8-2 8-3 8-4 8-6 8-10 8-13 8-16 8-18 8-20 8-22 8-24 8-26 8-28 8-30 8-33
CHAPTER
Notification Objects About Notification Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recipients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notification Schemes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linking Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Notification Object Properties . . . . . . . . . . . . . . . . . . . . . . . NotificationClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ApiRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MailRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrinterRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemotePrinterRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SnmpRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VasRecipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-1 9-2 9-2 9-2 9-3 9-3 9-4 9-5 9-8 9-9 9-13 9-15 9-17 9-18
vii
Contents
CHAPTER
10
Ndio Objects About Ndio Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Processor Responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio UI objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Ndio Object Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Ndio Object Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioContainer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioProcessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio0to10VInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ndio0to10VOutput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioBinaryInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioBinaryOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioHighSpeedCounterInput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioResistiveInput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NdioThermistorType3Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-1 10-2 10-2 10-3 10-4 10-5 10-6 10-8 10-9 10-10 10-11 10-13 10-16 10-20 10-24 10-29 10-33 10-37
APPENDIX
INDEX
viii
This preface includes the following sections: Intended Audience Prerequisite Knowledge Document Summary Formatting Conventions Commonly Used Terms Related Documentation Document Updates
Intended Audience
The following people should use this document: Vykon systems integrators and installers responsible for initial setup and ongoing configuration of JACE controllers and Web Supervisors. Vykon application programmers.
ix
Prerequisite Knowledge
Readers of this document should know or have experience with the following: Basic Niagara concepts, such as stations, nodes (objects), properties and links. Niagaras Java Desktop Environment (JDE, formerly called WorkPlace Pro), including the necessary tasks to provide system control and user interface. Ideally, you should be Niagara-certified, that is, have successfully passed Tridiums formal Niagara Technical Certification Program.
Document Summary
This document contains ten chapters and an appendix, summarized below. Chapter 1, Station and Objects,Provides an overview of how objects define a Niagara station. Reference information is provided on the Station object. Also included are some approximate limits and guidelines for station resources. Chapter 2, Data Species and Links,Provides an explanation of the data types (data species) that object properties use. Information about links between input and output properties is also included. Chapter 3, Commands and Views,Provides general explanations of commands available in Niagara objects, plus available object views. Chapter 4, Services,Provides reference information on each of the standard Niagara service objects, including property descriptions and available views. Chapter 5, Control Objects,Provides reference information on each of the standard Niagara control objects, including property descriptions. Chapter 6, Apps Objects,Provides reference information on each of the standard Niagara apps (application) objects, including property descriptions. Chapter 7, Container Objects,Provides reference information on each of the standard Niagara container-type objects, including property descriptions. Chapter 8, Gx Objects,Provides reference information on each of the standard Niagara Gx (graphical interface) objects, including property descriptions. Chapter 9, Notification Objects,Provides reference information on each of the standard Niagara notification objects, including property descriptions. Chapter 10, Ndio Objects,Provides reference information on each of the Ndio (Niagara direct input/output) objects, including property descriptions. These objects are used if engineering a JACE with onboard I/O or with an I/O expansion module. Appendix A, Object Property Quick Reference,Includes a quick reference table for each Niagara object type, listing all properties. Each property row shows the property sheet tab, data species used, and attributes (read/write, user level). Reference information on all data species (variable types and enumerations) is also included. An Index provides alphabetical reference to important topics in this manual.
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Preface
Formatting Conventions
This document uses the following text formatting conventions: Bold text indicates an important keyword, user entries, and so forth. CAPITAL letters are used for acronyms, such as WPP (WorkPlace Pro). They are also used to identify keyboard keys in instructions, such as press ENTER or press CTRL-C. Italic text is used for emphasis. It is also used to refer to the titles of other publications and document filenames. Italic text also appears for non-literal text that represents a variable, for example, station_name or DONOFF_n. Quotation marks are used to refer to other sections within the document. <text between brackets> means a variable placeholder or part of a general running commentary, for internal Tridium use only.
Note
Caution
Cautions remind you to be careful. There is a chance that you could perform an action that cannot be undone, might produce unexpected results, or might cause lost data. Cautions typically explain why the action is potentially problematic. Additional Information IndicatorsThe following note additional information: Refer to references point to other documents that contain additional information on the current topic. The reference includes the name of the document, and if applicable, the chapter name and number where the additional information appears.
Refer to
Tip
Means a best practice or other helpful instruction. Tips typically contain recommendations that will help you use the product more effectively.
Timesaver
Means a shortcut. Timesavers typically tell you a quicker or shorter way to perform a task. They might include keyboard combinations or buttons that can be used instead of menu selections to perform the same action.
xi
Generic term for one of two binary (boolean) states, typically synonymous with On, Run, or True. The complimentary term is inactive. The Niagara Framework software tool used for local and remote station administration, including starting and stopping stations, station database management, upgrades, and license file installation. Also provides network, user, and time configuration for the selected host, and a Standard Output window used for station troubleshooting. The Admin Tool can be run from inside the JDE, or as standalone application. Not to be confused with the AdminTool object. An off-normal condition for an object when it meets alarm criteria, such as alarm low (analog) or alarm state (binary or multistate). Alarms occur in event-type objects. Alarm (as a term) also applies to alarm-type exception messages, which can be generated upon detection of an alarm condition. A warning-type exception message generated when an object reaches some predefined limit, for example, hours of runtime or COV , COS count limit. Data represented by a continuously-variable value, typically a floating-point (float). Control object types AnalogInput, AnalogOutput, and AnalogOverride (among others) use analog data. Application objects. A class of Niagara objects that include global control objects (Calendar and Schedule), various data logging (log) types, and the Program object. Building Automation Controls network. An ASHRAE-developed open communications protocol designed for the HVAC controls industry, where data is modeled using a common set of objects and a standard set of services. Many Niagara object types are closely modeled after BACnet objects. By default, all JACE controllers are equipped for integration into a BACnet device network. Data represented by only two discrete states (boolean), either active or inactive. Control object types BinaryInput, BinaryOutput, and BinaryOverride (among others) use binary data. In general Niagara terms, any object contained inside another objects Workspace. A child object can be a primitive object or a container object (with its own children). A primitive object is always a child object.
Admin Tool
alarm
alert
analog
apps objects
BACnet
binary
child object
xii
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Preface
commands
A station-user can give a command to a selected object to perform some predefined action. Commands are either control-related (On, Off, setpoint adjust, etc.) or administrative (clear log buffer, backup station database, etc.), depending on the object type. The user requires command (security) privileges for that object. If all lowercase (container), it refers to any Niagara container-type object, including Bundle, Composite, Container, GxPage, PollAlways, and PollOnDemand types. All typically contain child objects. If capitalized (Container), refers to that specific type. A class of Niagara objects that provides a common object model for defining data and control sequences, including alarm monitoring. Combinations of control objects and shadow objects (plus apps objects) are typically referred to as control logic. Change-of-value, change-of-state. Niagara data types, of which there are many. Data species include primitive data types, data enumerations, and structured data types (variable types). Each property of a Niagara object is implemented with a specific data species. Requirements, particularly for child-parent relationships between object types. For example, service objects have a parent dependency of (only) the ServiceContainer. GxPage (container) objects have child dependencies of (only) Gx objects. An enumeration is a numbered list of integers, where each number corresponds to a specific state, condition, or other meaning (within that number group). An example enumeration is 0 through 6 for the days of the week (Sunday through Saturday). Generally, an event is an exception to a normal condition or normal operation. A number of control object types are event-type objects, meaning that they are capable of generating an alarm (and in some cases, an alert). Generic term for one of two binary (boolean) states, typically synonymous with Off, Stop, or False. The complimentary term is active. An object property designed for linking to the output of another object. Data received on an input is typically used in the objects algorithm (purpose). Java ARchive file. A file format used to package all components required by a Java application. Class files, images, sounds, etc., can be bundled into a single file. In addition, JAR supports run-time data compression, which decreases download times. Niagara software modules install as JAR files. Because component files remain packaged inside JAR files, a virtual file system is seen in the Local Library the tridium JAR and tridiumx folder cannot be found directly in Windows Explorer, for example. In the case of the tridium JAR, components reside mostly in the \nre\modules\coreRuntime<release>.jar file. To simplify, however, this document refers to the tridium JAR file and tridiumx folder.
container object
control objects
dependencies
enumerations
events
inactive
input
JAR file
xiii
JDE
Java Desktop Environment. The Niagara Framework PC application used to engineer station databases, using objects described in this document. The JDE can also be used to monitor stations. Formerly referred to as WorkPlace Pro (WPP). Data connections between objects, where each link connects the output of one object to the input of another object. Links are the basis for data sharing, integration, and control sequences. Links are engineered in the JDE using the Link Editor. Depending on its category and type, each link appears in the JDE as a line or a pair of link boxes. Folders and files that can be accessed through the Tree View of the JDE workstation. All are local (on the workstation), and are located under the niagara\<release> directory. Access includes actual directories, such as stations, plus virtual resources, such as the tridium JAR file and tridiumx subfolder. Files and directories can be created, deleted, copied, and moved as needed. Also see Remote Library. The collective hardware and software technology originally developed by the Echelon corporation. LonWorks provides an off-the-shelf, peer-to-peer, networking platform for designing interoperable control networks. By default, JACE controllers support a LonWorks network, using a LonWorks FTT-10 connection point. Similar to binary data (two discrete states), but with three or more discrete states. For example, a two-speed fan has three multistate values: Off, On, Fast. Control object types MultistateInput, MultistateOutput, and MultistateOverride use multistate data. In the context of Niagara, object can refer to a node at the lowest level of station database hierarchy, such as a control object or apps object. In other words, a primitive object. However, because the term node is also widely-used to mean a networked device (particularly for LonWorks), this document consistently uses the term object instead of node. This usage applies to the top-level Station object, and all child objects that make up a station database. Niagara objects are of particular known types. For readability purposes, leading and internal caps are used when referring to object typesfor example, AnalogInput, GxPage, FunctionGenerator, and so on. An object property designed for linking to the input of another object. Data produced at an output typically reflects the results of the objects algorithm (purpose). Niagara direct input/output. Niagara software module used by a station for a JACE model with onboard I/O (JACE-4). Contains special control objects known as Ndio Objects, used to interface with the hardware I/O points. Within the context of Niagara, nodes are synonymous with objects, where node sometimes means a container-type object. Node is the common base class for all Niagara objects. Node constructs are similar to JavaBean characteristicseach has properties, a set of methods exposed to other objects, and events that can be fired. Please note that this document consistently uses the term object instead of node.
links
Local Library
LonWorks
multistate
object
object types
output
Ndio
node
xiv
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Preface
parent
In general Niagara terms, a child objects particular container (object). Refers to the hierarchy of objects in a station database. For example, the Station object is the parent of the ServiceContainer object. A primitive object is never a parent. In the context of objects, a primitive object is any object that is not a containerfor example, a control object, apps object, Gx object, or a notification object. Note that primitive does not mean crude however, as many primitive objects are quite sophisticated (Loop or Schedule object, for example). In the context of data species, a primitive is the most fundamental type of data. Primitive data types are either boolean, float, integer, or string. A property is a component of an object, representing some piece of data. Most objects have both internal properties (configuration, status, visual, and security types) as well as linkable properties (input properties and output properties). A measure of storage for objects in a station, where each object consumes some number of resources. Roughly equivalent to RAM, resource counts relate directly to Java handles and objects used by the stations JVM (Java virtual machine). Each object description in this document lists the objects Resource Count Range. Folders and files on a remote JACE host that can be accessed through the Tree View of the JDE. Access includes actual directories, such as stations, plus virtual resources, such as the tridium JAR and tridiumx subfolder. Files and directories can be created, deleted, copied, and moved as needed. A special class of Niagara object that publishes itself to other objects in the station, providing specialized routines and functions. Every station has some number of core services plus additional (optional) services. Serialized Node Set (SNS). A compact file format for storing a station database (or a portion, in the case of a container object copied to the Local Library). An Admin Tool option providing a special window to view and save a running stations activity. Standard Output displays JVM station requests and responses in real time, including station startup messages. It is typically used for troubleshooting. Standard Output also works with debug modes of various Niagara services. The JVM that hosts the running of objects, plus a station database containing all object configuration. Provides the environment to configure, manage, and run a single database of objects and the services required to support a control application. System-wide identifier, or SWID (To improve readability, common usage is swid). Each object (whether container, service, control object, etc.) in the station has a name. Since all objects are part of a Stations tree, names can be concatenated together to create a unique system-wide identifier (swid), much like a path in a file system. Syntax for a swid follows standard URL naming conventions, for example:
http://<hostnameOrIP>/db/<stationName>/<containerName>/<objectName>
primitive
properties
resource count
Remote Library
service
sns
Standard Output
station
swid
xv
Tree View
The left portion of the JDE window, showing the hierarchical structure of the station database. Tree View in the JDE operates much like Windows Explorer, where you expand container (parent) objects to see subordinate child objects. Tree View Time (and date) stamp, typically generated within an objects historical records. For example, timestamps are included in samples of log objects (logs) and various status properties related to system or object actions, such as timeOfStateCountReset. An event-based data-sharing method, where a trigger-type output can be fired, either by a user-command or a predetermined event. Receipt of a trigger pulse at a linked trigger-type input results in that object performing some predetermined function. This is a different model than used for most data sharing, as it is not value-based. Most control and apps objects have at least one trigger property. Uniform Resource Locator. The global address of a document or other resource. Within the context of Niagara, a URL is similar to a swid. A swid defines a particular object or resource in a station database, whereas a URL can include a swid or a resource located elsewhere. Objects have views, each of which provide access to characteristics of the object. All objects have a Properties view and Links view, for example. Container objects have a Workspace view and WorkplaceEditor view. These are standard views. Some objects also have special views. For example, a Calendar object provides a Calendar view, to graphically review and edit holiday dates. The Niagara station (at a job) that runs on a PC, configured as the Supervisor station (archive destination) for any networked JACE controllers. Typically this PC is also running full suite of Niagara applications, including the JDE and the Alarm Console. Web User Interface Service. The Niagara service required by a station to provide a full set of views to its objects when using a Web browser connection. The WebUIService is a suite of servlets that use HTML and Java applets to provide a browser user interface (BUI) to station data. The runtime view for any container object, as it appears in the right side of the JDE window. Also called monitor mode, it is where values update in real time and user commands to child objects can be given. The edit view for any container object, as it appears in the right side of the JDE window. Also called edit mode, it is where objects can be added, deleted, modified, linked and unlinked.
timestamp
trigger
URL
views
Web Supervisor
WebUiService
Workspace
WorkspaceEditor
xvi
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Preface
Related Documentation
For additional information, please refer to the following other Niagara Technical Publications: Niagara Concepts GuideExplains the various concepts and tools that comprise the Niagara Framework. This document is a good starting-point for anyone new to Niagara and the JDE (Java Desktop Environment). JDE Users GuideExplains how to use the JDE, including the Admin Tool and the Alarm Console. Procedures for common tasks used in engineering and monitoring Niagara stations are provided. Using the Niagara Admin ToolExplains features and tasks performed in the Admin Tool, which can be run either standalone or within the JDE. Niagara Networking & Connectivity GuideA complete guide on Ethernet/IP networking, including configuration details for any Niagara host, firewall considerations, modem (dialup) setup, reference data, and troubleshooting tips. Niagara Web Solutions GuideProvides information about engineering a Niagara station optimized for web browser access. Discusses GxPages, HTML templates and framesets, and other features provided by the WebUIService. Niagara BACnet Integration ReferenceProvides details on engineering a station with the BACnetService, including BACnet client operation (shadow objects) and BACnet server operation (exposing standard Niagara objects). Niagara Modbus Integration ReferenceProvides details on engineering a station with any of the Modbus integration services, namely ModbusAsync, ModbusTCP, and ModbusSlave. Includes reference data on all shadow objects. Niagara System and Power Monitoring, Engineering NotesProvides details on sysmon configuration for the JACE-NP and JACE-NX platforms, including special shadow objects found in the tridiumx/systemMonitor JAR.
Document Updates
Updates to this document are listed below. Date
11/15/2001 05/09/2002 05/14/2002 09/30/2002 06/13/2003
Update, Notes
Initial document revision for Release 2.2. Revised document for Release 2.3. Minor update, still Release 2.3. Various corrections, still Release 2.3. Initial document revision for Release 2.3.4. For details about changes in Release 2.3.4 from the previous release, please refer to the Release Notes document for Niagara r2.3.4.
03/24/2004
Initial document revision for Release 2.3.5. Object coverage expanded to include CpStringNode, page 5-68, VasRecipient, page 9-18, as well better details on engineering units (About Units, page 5-6). Various other small changes. For details about changes in Release 2.3.5 from the previous release, please refer to the Release Notes document for Niagara r2.3.5.
xvii
Date
04/14/2004
Update, Notes
Revision. Minor change in Note about entering characters plus (+) or semicolon (;) in edit dialog of CpStringNode object when using a browser connection. Pagination remains unaffected. Revision. Minor change in Appendix A, Object Property Quick Reference, adding enum type DatabaseTypeEnum and updating DatabaseService properties list.
04/20/2004
xviii
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
CHAPTER
A Station Overview Niagara Objects Object Model (Integration Platform) Data Modeling Object Hierarchies Object Name and SWID Object Names (and Rules) Object Swid Object Categories Station Object AddressBook View UserAdmin View ActiveUsers View Alarms View Station Limits and Guidelines Monitoring JACE-NX, JACE-NP Environment Variables Niagara Properties Files
11
A Station Overview
A Niagara station runs in a specific host, the platform being either a JACE controller (JACE-NP, JACE-NX, JACE-5, JACE-4) or a Web Supervisor (PC). With few exceptions, the target host platform makes little difference in how you use the JDE to engineer a station database. The same standard Niagara objects and libraries apply. One notable exception is the DatabaseService, which provides an SQL application database for archiving log data, alarms, and alerts. Due to the significant storage requirements for archiving this data, the DatabaseService cannot run in a JACE-4/5 station. However, any Niagara station (including one in a JACE-4/5) can be configured to archive remotely to another Niagara station running the DatabaseService. Typically, the archiving station is the Web Supervisor. Another notable exception is the ndio module (Ndio objects), which provide the station interface to the physical onboard I/O points on a JACE-4 or JACE-IO expansion module (or any future JACE model with onboard I/O). Currently, Ndio applies only to a JACE-4 station.
12
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Niagara Objects
Objects are the building blocks of a Niagara station database. Each object type is a defined data structure with a predictable behavior. Objects represent every level of the database, starting with the root Station node (object). Each object is a collection of properties. Depending on its type, each object also has some number of available commands or special views. Objects can be linked to other objects, where links provide sharing of data and control. In the JDE, each object has a right-click Property Sheet and Links Sheet to access properties and links (Go > Properties and Go > Links). Detailed information about object properties, commands and views, and links is provided in subsequent chapters about specific object types. The following topics apply to a general understanding of Niagara objects:
Object Model (Integration Platform) Data Modeling Object Hierarchies Object Name and SWID Object Dependencies
Note
13
Although not covered in this document, most Niagara integrations include these types of objects: Service objectprovides the necessary communications-subsystem support for the integration, plus protocol support. Typically, this object has configurable settings for device status monitoring and debug. Network-level objectprovides a container for all foreign device-types objects specific to an integrated network. Device-level objectseach provides a shadow object representing a particular device. Depending on the integration, this object may be a container object that contains data-level objects, or instead may contain a number of properties (inputs and outputs) for device data. Data-level objectseach provides access to a specific I/O point or software value in the foreign device.
Data Modeling
The Niagara object model structures data between three distinct levels: PrimitiveA data primitive is either a boolean (binary) value, integer value, floating-point value, or a string. Primitives are the building blocks for all data structures. Combinations of primitives are used to define variable types (data species). ObjectThe data structure that represent the granularity of data most often used in Niagara. Objects can be configured, linked, copied, and stored in custom libraries for future reuse. In any running station, objects are executed by engine services that perform control and interface functions. StationThe combination of a database, Web server, and object engines that processes all objects. A job (site) may consist of one station (JACE controller), or may contain multiple stations (JACE controllers) and a Web Supervisor.
Using this model, data flow is bidirectionalprimitives are gathered and represented in objects (status monitoring), and control is provided for changing primitives in devices.
Object Hierarchies
Depending on its type, an object can have child objects, that is, be a parent that contains other objects. The obvious example is the Station object, the parent of all other objects in the station. All other objects are children of the Station object. By definition, all container-type objects are intended to be parent objects. Many levels of hierarchies are possible in a station database, where parent objects can contain other parent objects, and so on. In this tree-like hierarchy, objects at the lowest level in any branch are objects that are only child objects (primitive objects). An example of primitive objects are the standard control objects, which represent a piece of data or a data function. Other primitive objects include all apps objects, Gx
14
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
objects, and notification recipient objects. Most integration objects are also primitive objects, which shadow data values, commands, or status in a foreign (integrated) device. Examples include most LonWorks objects and BACnet objects.
It is recommended that no child object be given the same name as its parent container object, to avoid a possible name duplication error. Names are case-sensitive. For example, SupplyFan and supplyFan are considered different names. The JDE automatically enforces the uniqueness of object names when you duplicate or copy objects in the same container. This is done by appending a unique numeral to object names, for example, SupplyFan_1 and SupplyFan_2. When naming objects, brevity is encouraged. This is particularly true for parent (container) objects, which are included in the swid for any child object. See the related Caution in the next section. With one exception, the JDE allows you to rename any object in the station. The exception is the Station object, named only in the New Station wizard. You typically rename objects as needed only when first engineering a station. Renaming an object after a station database is engineered may cause problems, particularly if there are URL (swid) references to that object in other objects.
Notes
15
Object Swid
An objects swid includes the objects name, but is morea complete and unique address of where it resides in the station database. It is similar to both a file path and a URL (uniform resource locator), due to the Web-server nature of a Niagara station. For any Niagara object, a swid uses the following format:
http://<host IP or name>/db/<station name>/<path of object>
The first part of the swid indicates what protocol to use, namely, http:/. The next part specifies the IP address (or the domain name) of the Niagara host. The next part is always /db for any Niagara object. The next part is the station name. The last part reflects the station hierarchy of the object. This includes not only the object (by name), but also its complete tree location. In other words, before the objects name are the names of any proceeding parent (container) objects. Consider the following swid for a NotificationClass object named class0.
http://192.168.1.34/db/NetSup2000/services/NotificationService/class0
This swid shows that the object class0 is a child of the object named NotificationService, which in turn is a child of the object named services. The stations name is NetSup2000meaning that the foundation (Station) object named NetSup2000 contains all other objects. Keep object swids under 128 characters, inclusive of the station name. Do this by using shorter names for objects (particularly container objects) and fewer levels of containers. Table and index views list objects by swid, and are easier to use this way. Also, a log object with a swid over 128 characters can cause archive problems. A variety of Niagara objects have internal properties that accept a swid, for example, hyperlinkUrl and boundUrl (most Gx objects) and rootNode (AdminTool object). When entering a swid that references another object in the station, the swid format is shortened to drop the leading http://<hostname or IP address> portion. Instead, the swid begins with the /db string portion (root of the stations database). As an example (instead of the complete URL), a swid used as the property value:
/db/NetSup2000/services/NotificationService/class0
Caution
Tip
To avoid manually typing a swid in a property sheet field, you can simply use Tree View to select the target object, right-click, and choose Copy. You can then paste the properly-formatted swid in the property field, using CNTRL-V.
16
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Object Dependencies
In general, objects of different types can be placed in most levels of a station database. However, there are cases in which some types of objects have dependencies. For example, any service object must be located within the ServiceContainer object, of which there can be only one instance per station. In addition, the ServiceContainer object must be in the root level of the station. Using the New Station wizard in the JDE, these particular object dependencies are automated such that the ServiceContainer object and the selected service objects are correctly created and ready to modify, as needed. Parent (container) objects may have dependencies as well. For example, a GxPage object (a type of container object) may contain only Gx objects, and no other object types. However, Gx objects can be children in other container-type objects as well. The JDE enforces object dependencies when you are engineering a station. In each object description included in this document, Parent Dependencies are listed. Child Dependencies (for container objects that have them) are also provided.
Object Categories
Standard Niagara objects are organized in categories, reflected by category names when using the JDE. When adding a new object in the WorkspaceEditor (Figure 1-1), you select objects from within these categories.
Figure 1-1 New menu in WorkspaceEditor groups object types by categories.
Object categories seen when adding new objects.
The different object categories are: FoundationOnly one type, the Station object. Each station has only one. Control ObjectsSeveral standard types, used to handle values and status received by communications subsystems (provided by some services) and provide a common control logic model for system integration. Different types of control objects provide various control algorithms, and can be individually configured and linked together to provide complex control sequences.
17
Note
Niagara control objects have many characteristics of BACnet objects. Several Niagara object types can be exposed directly as BACnet objects, and the station itself exposed as a BACnet device.
Apps ObjectsSeveral standard types, used to provide scheduling control, data logging, and other global control functions. One type, the Program object, allows you to create a custom application for use with control objects. Gx ObjectsSeveral standard types, each can be used as a component of a graphical view built to show real-time values and status (user interface). Container ObjectsSeveral standard types, used to hierarchically organize and provide specific functionality to contained objects (children). Notification ObjectsSeveral standard types, each provides unique functions to a stations NotificationService (a particular type of service object). ServicesSeveral standard types, explained ahead. Service objects publish their functionality for other station objects to use.
Object Libraries
Most standard Niagara objects are distributed in the tridium JAR file, including the Station object, all control, apps, container, and Gx objects, and most service and notification objects. These objects are covered in detail in this manual. In addition to these standard object types, various integration and lib(rary) objects are distributed within the tridiumx folder. The tridiumx folder includes many JAR files, primarily for foreign device integrations. This includes both standard integrations (BACnet, LonWorks, and various vendor-specific LON types) as well as optional integration types. This latter group includes a few Modbus (open-protocol) integrations, and various proprietary integrations, such as Johnson Controls N2 network, Invensys GCM and DMS, and several others. Each JAR file contains various objects to support the integration (ranging from a service object to data objects). These integration objects are covered in separate documents, and are outside the scope of this manual. Aside from the JAR files for these device integrations, the tridiumx folder also contains a lib JAR file. The lib JAR contains two especially important folders: programsHolds various pre-engineered Program objects for standard use in data and unit conversions, HVAC routines, and other purposes. The purpose of each Program object is explained in comments of its TRIPL program code. In addition, a lib/docs/libdocs.html document provides an overview for each available Program object. applicationsA collection of various pre-engineered applications, each with one or more graphics (GxPages) linked to standard Niagara control objects. For more details, see the lib/docs/applicationInstructions.html document.
18
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Station
Quick reference for all properties: Table A-72 Inputs
(none)
Object Shape
Outputs
(none)
(none)
The Station object is the parent (root) container for all other objects in a Niagara station. Every station has one Station object. A Station object has various properties, but no inputs or outputs. Object views include those typical to any container, such as the Workspace, WorkspaceEditor, Properties, Links, and Report views. In addition to these views, each Station object has these Go views in the JDE: AddressBook UserAdmin ActiveUsers Alarms
Type
input output
Label
Property Name
Data Species
Typical Meaning
Station is open and online.
Station icon is gray. The station is a subordinate of another opened station (or) a station that was open when the JDE was last exited. Double-click (or expand) to open it online. Station is open offline. Gray cylinder. Gray cylinder with red shading. Station is open offline, and changes have been made but not saved.
The AddressBook and UserAdmin views are especially important for job configuration. A Station object provides various runtime commands. These commands perform station database backups or restart/reboot the station or station host.
Resource Count Range: 89 to 200, plus the sum of all other objects. Trigger Properties
None.
Commands
Users with Command, Admin privileges have the following available command: BackupXMLCauses the selected station to locally backup its running database to XML format (backup there). Applicable for JACE-NP and Web Supervisor stations only (and not JACE-4/5s, which store only in SNS format). BackupSNSCauses the station to locally backup its running database to SNS format (backup there). Applies to any selected Niagara station, including a JACE-4/5. BackupSubordinatesXMLApplies if the selected station is configured as supervisor (typically, Web Supervisor). Backs up the running station database in each subordinate-designated station, to the appropriate stations subfolder, in XML format (a global-backup here). All station types are supported. BackupSubordinatesSNSApplies if the selected station is configured as supervisor (typically, Web Supervisor). Backs up the running database in each subordinate-designated station, to the appropriate stations subfolder, in XML format (a global-backup here). All station types are supported.
19
Chapter 1 Station
RestartCauses an immediate restart of the selected station. If this command is given from the JDE, a Confirm dialog appears first. Applies to JACE-NP and Web Supervisor stations only (not JACE-4/5 stations).
Note
Restarts are not typically needed, except after adding a new service.
RebootCauses an immediate system reboot of the stations host machine. If this command is given from the JDE, a Confirm dialog appears first. Applies to all station types. Typically, this command is given only to a JACE-4/5 station, as the method of restarting the station. A reboot command to a Web Supervisor or JACE-NP station is the same as restarting Windows on that host! Generally, not recommended.
Note
Stack DumpCauses a dump of all station threads for use as an aid to debug deadlocks and CPU usage. Currently, this command is for internal (development) use only, as a non-standard JVM is required. dumpCauses a dump for the Station object to be sent to Standard Output.
Properties
Table 1-1 Station object properties.
Description
Read Only: The object type. Read Only: Current state of the objects status flags. A normal state (no flags set) is where the statusFlags value is {ok}. Read-Write: Permits a user-defined descriptor for the station. Any printable characters are allowed. Read-Write: The current time and date for the host running the station. Format is: date: dd Mon yyyy (ex: 18 Oct 20001) time: hr:min AM/PM (ex: 8:21 AM) Allows review/change of system (host) time, as in System Time tab of the Admin Tool.
Valid Values
Station {ok} or {down} See Descrip.
Default
Station {ok}
Notes
description
Niagara station. Unlike when using the Admin Tool to set system time, the time zone is not modifiable here.
Read Only: Timestamp of the last station startup. (Station has been running since.) Read Only: Timestamp of when the station last stopped (prior to recorded bootTime). Read Only: Timestamp of last station health check. Should be within 1 minute of the currentTime. Read Only: Indicates whether station is running properly.
isRunning
False, True
True
110
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Table 1-1
Description
Read Only: Operating system architecture. Is x86 for JACE-NP or Web Supervisor, or ppc for JACE-4/5. Read Only: Operating system name. Is Windows NT for JACE-NP, NX, or Web Supervisor, and VxWorks for JACE-4/5. Read Only: Operating system version. JACE-NP (NT) is 4.0 JACE-NX (XP) is 4.0 or 5.1. Web Supervisor (NT, 2000, or XP) is 4.0, 5.0, or 5.1, respectively. If JACE-4/5, will be latest VxWorks version. Read Only: Vendor of JVM used. Currently, is Sun Microsystems for r2.3.5 JACE-NX, JACE-NP, or WebSup. If a JACE-4/5, either Insignia Solutions Inc. or Wind River Systems Inc. Read Only: Version of JVM used by station. At 2.3.5 release time, version is 1.4.1 (Sun Hostspot) or 1.1 (Wind River Systems). Read Only: Niagara Release level in use. For example, 2.301.507.v1
Valid Values
x86 or ppc Windows NT or VxWorks See Descrip.
Default
See Descrip. See Descrip. See Descrip. and Note.
Notes
osName
javaVendor
See Descrip.
See Descrip.
javaVersion
See Descrip.
See Descrip. See Descrip. 80 If using a port other than 80, you also need a line in the station.properties file, for example: httpPort=85 Otherwise, you will not be able to do DbAdmin functions. An httpPort change becomes active after station restart.
release httpPort
80 Read-Write: Number of logical port used for (recommended) TCP/UDP connections in HTTPD access. Applies to normal station communications. or other unused port The JDE and browsers, by default, assume the well known port of 80. If you assign a different port, you need to append this number (with colon) after the hostname or IP address when opening the station in the JDE, or when accessing in a browser.
For example: http://192.168.1.25:85 for a browser connection on port 85. httpsPort Config Read-Write: (Future Use) Number of logical port for TCP/UDP connections in HTTPS access. Applies if enableSSL is True. Port 443 is the well known standard. enableSSL Read-Write: (Future Use) Allows SSL (secure socket layer) HTTPS connections. Requires the Niagara SSL service plus additional configuration, including certificate from a Certificate Authority (CA). defaultPage Read-Write: Specifies the HTML page (or valid swid to station swid) to display with browser access HTML page or to the station, if no specific URL is provided. GxPage, for example Applies if the user has no Browser Home entry (UserAdmin view, General Tab). Absolute references or release directory "/" should be used for linking in all interfaces. False, True False 443 or other unused port 443
111
Chapter 1 Station
Table 1-1
Description
Read-Write: Applies to JACE-NP and Web Supervisor stations only. Specifies the interval, in milliseconds, between automatic saves of persistently-stored properties. Updates the Config.db file in the proper stations subdirectory, at this frequency.
Valid Values
1000 to MAX_VALUE
Default
5000 (ms)
Notes
Does not apply to a JACE-4/5. Only properties modified since the last flush are saved.
snsBackupTime
Read-Write: Specifies the interval, in minutes, between automatic backups of the station database to sns (serialized nodeset) format. All persistently-stored properties are saved. Each backup updates the Config.sns file in the proper stations subdirectory. The previous Config.sns is renamed to Config.sns.old. For a JACE-4/5 or Web Supervisor station, if the Config.db database cannot be loaded, the Config.sns is automatically used (sometimes called Auto Restore).
180 (minutes)
Config, cont.
interstationSendTime
Read-Write: Specifies the interval, in milliseconds, between sending change of value updates to external subscriptions (external links, i.e., links between stations). Read-Write: (Future use) Read-Write: (Future use) Read-Write: (Future use) Leave at False (default) to avoid unnecessary messaging. Read-Write: (Future use) Minimum announcement frequency.
integer, 500 to n
5000 (ms)
More properties that affect external links are adjusted in system.properties. These properties are related to a future release of Niagara software. Their application will be explained at a later date.
maxAnnouncementFreq Read-Write: (Future use) Maximum announcement frequency. alarmText Read-Write: The (final) top-level alarmText available for any alarmable child objects.
Alarm Setup
alertText
255 characters For child objects to use this, their alarmText maximum. properties must have only the default Any text string, hyphen (-). See Alarm and Alert Text on including page 7-5 for more information. spaces and mixed case Read-Write: The (final) top-level alertText characters. available for any alert-capable child objects. For child objects to use this, their alertText properties must have only the default hyphen (-). See Alarm and Alert Text on page 7-5 for more information.
The alarmText value is not used in change-of-state events of Station objects. Instead, the messageText in alarm records for these events uses the enumerated descriptor, such as stationDown or stationUp. See Station Alarm Types on page 1-23.
112
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Table 1-1
Description
Read-Write: The notification class used for change-of-state events for the station (for example, coming Up after going Down). This class is also used in notifications of station events occurring for remote stations, meaning those monitored by this station (AddressBook view). If a JACE-NP on JACE-NX and environment monitoring is enabled (1-27), associated alarms are sent to this notification class.
Valid Values
0 to 8388607
Default
0
Notes
A NotificationClass object with this same notification class number is required in the stations NotificationService container.
Read-Write: Has no practical application for the Station object. Read-Write: (Future Use) Specifies the URL to display on alarm. Read Only: Shows the handle (number) that will be automatically assigned to the next object added to the station database. Each object has a unique handle. The 0 handle is reserved for the Station object. Handles are seen in Standard Output following a dump command.
-2147483648 x 0
Not currently implemented. The integer value of nextHandle approximates the number of objects in the station.
securityGroups
Read-Write: Shows the security groups to which the Station object is assigned.
General
General In the JDE, these security settings affect access to the Station object, and not all child HVAC objects (unlike with other container objects). Security A JDE user without any rights to the Station Life Safety object can still expand the station in Tree Group 4 View and see other container objects Group 5 (assuming that rights exist to securityGroups assigned to those objects). Group 6 Group 7
Security strongPasswords Read-Write: Specifies whether station users each require a strong password (True). The rules for entering a strong password (in the UserAdmin view of the station): False, True False
A JDE user with only operator-level property read access to the Station object can still use UserAdmin to change their logon password, JDE Home, and Browser Home.
At least 1 character must be uppercase. At least 1 character must be lowercase. At least 1 character must be a special
character, meaning either a numeral 0 to 9, or one of the following: ! @ # $ % Some examples of strong passwords: J%ohn9Tv 1toGoHome GroovyBaby!
If strongPasswords is enabled after users are already created, existing (non-strong) passwords will continue to work OK. However, no changes for a user (UserAdmin view) can be made until a strong password is assigned to them.
113
Chapter 1 Station
Station Notes
Special Go menu views of a Station object are described in the following sections: AddressBook UserAdmin ActiveUsers Alarms
The following additional topics, while not specifically about the Station object, are closely related. Station Limits and Guidelines, page 1-24, provides information about the capacities of the various Niagara host platforms. Monitoring JACE-NX, JACE-NP Environment Variables, page 1-27, provides information on configuring a JACE-NX or JACE-NP to allow a hosted station to monitor the internal (CPU) temperature and voltages. It applies to these Niagara platforms only.
114
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
AddressBook
A Station objects AddressBook stores information about other Niagara stations that are part of a job, and describes relationships among them.
Figure 1-2 AddressBook view lists currently defined remote stations.
For a Web Supervisor station, entries are required for each JACE station. For each JACE station, an entry is required for the Web Supervisor station, at a minimum. If external links are made between JACE stations, entries are required for those stations too. Figure 1-3 shows an example edit dialog.
Figure 1-3 Edit dialog (Add Address/Change Address) has several sections.
Station AccessInformation
about the remote station, including its name, a user account, and user password. NetworkIP address/hostname of the remote host running the station. If not HTTP port 80, also the HTTP port number n, as :n DialupApplies only if modem dialup access is required to connect to the remote station. Poll Archive GroupApplies only if the local station is running the PollArchiveService. (Station relationship) Peer, Subordinate, or Supervisor. Defines the relationship of the remote station. MonitorWhether the local station should monitor (ping) the remote station, and what non-response time is tolerated before an alarm occurs.
Station NameThe Niagara station name of the remote station. Must be unique from other station entries in the AddressBook. User NameAn existing user account in the remote station. This user requires admin-read (General) security rights to support the backupSubordinates command and Status Index from a Web Supervisor.
Note
By convention, a gdp user is often created in each station and assigned General Admin read rights and also a password. This user is referenced in AddressBook entries in other stations.
115
Chapter 1 Station
PasswordPassword for the user in the remote station. See the Note above. Confirm PasswordSame password again, repeated.
Host AddressIP address (recommended) or hostname for the remote stations host. If that station is using a non-default http port (other than 80), it must be included (with a colon delimiter). For example: 192.168.1.211:85 If using dialup access, leave this field blank unless the remote station is using a non-default http port (other than 80). Then, include a :<port>, e.g: :85
Dialup: This section is typically left blank, unless a dial-up modem connection is required to connect to the station.
Notes
Dialup connection to a station requires configuration of its hosts RAS (remote access service). For more information, refer to the Niagara Networking & Connectivity Guide, Chapter 4, Connecting with Direct Dial. External links between stations are not supported by dialup connections. However, dialup connections support archiving of logs, receiving alarms, and dialup access using the JDE.
Phone #Phone number to dial into the remote host machine. Host User NameLogon user name for the host machine. Host PasswordPassword for the user name above, to access the host machine. Confirm PasswordSame password again, repeated.
Poll Archive Group: Applicable only if this station has the PollArchiveService. Provided is a drop-down list of poll archive groupseach remote station can be assigned to any (including disabled). See PollArchiveService on page 4-40. (Station relationship): Drop-down list with description of the remote stations relationship to this station. Selections include:
PeerTypical between JACE controllers, where data is exchanged between stations. Less typical (but possible) is a peer also used as the archive destination, providing that it has the DatabaseService. SubordinateWhen in the AddressBook of a Web Supervisor station, this is typical for each JACE station entry. SupervisorWhen in the AddressBook of any JACE controller station, this is typical for the Web Supervisor station entry.
Monitor: Whether or not the remote station is to be monitored (pinged), and what
non-response time (in minutes) is tolerated before a stationDown alarm occurs. For the AddressBook of a Web Supervisor station, this is typical for each JACE station entry. Optionally, JACE stations can also monitor each other as well. Alarms generated by monitoring other stations can be reviewed in the Station objects Alarms view.
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
116
Chapter 1
UserAdmin
The UserAdmin view is especially important for any Niagara station. It is used to add, modify, and delete user accounts for accessing the station. A station can have up to 256 users. Each station user has specific security privileges (rights), plus other user preferences, such as home page defaults and hot links.
Figure 1-4 UserAdmin view lists currently defined user accounts for the station.
The following subtopics apply to adding and changing station users: The Administrator Edit Tabs (General, Hot Links, Security)
The Administrator
The New Station wizard creates a single Administrator user, with default user name of admin (and whatever password was entered). Consider this account the super user for the station, as it has fixed (full) security and administrative privileges. Moreover, the administrator user can never be deleted, although the password can be changed and other user preferences adjusted. A JDE user logged on as the default administrator can effectively replace the administrator account, using the menu bar command UserAdmin > Change Admin User. This allows changing the User Name of this special account, but also clears the password, and prior user preferences (home settings, logoff period, hot links).
Note
Edit Tabs
When adding or modifying a station user in the JDE, three tabs are available: General Tab Hot Links Security Tab
Note
Starting in r2.3.4, browser access to station user administration is available. The Niagara host (Web Supervisor or JACE) requires the tridiumx/webuser JAR installed, and the station must have the WebUserAdminService in its services folder. Most functionality found on the General and Security tab is available, including the ability to add new station users and/or change security rights. The URL to access the Web User Administration feature is: http://<host>/user For more information, refer to the Niagara Browser Access Guide.
117
Chapter 1 Station
General TabThe General tab provides user password access and home page logon preferences.
Figure 1-5 Example General tab of a user selected in UserAdmin view.
Entry fields are as follows: User NameThe user name, as used in the station. Case-sensitive, it must begin with a letter, and have no spaces. It must be unique among user names in the station. A user logs on using this name (often, a users initials are used). Once created, this name cannot be changedonly the entire account deleted. Full NameA descriptive name for the user, it is editable by the user. Initially, it is set to match the entered user name for a new user. Java Desktop Environment Home(optional) Swid to object (for example, GxPage) to display in the JDE Workspace after user logon, or whenever the standard Go menu option Home is selected. Editable by the user. Browser Home(optional) Swid or URL to object, HTML page, or other resource to display in a Web browser after user logon. Editable by the user. If left blank, the Station objects defaultPage swid or URL is used.
PasswordUsers login password. Unless strong passwords are enabled, can be any number of characters needed, including 0 (blank, or no password). Password is case-sensitive, cannot have spaces, and uses letters or numerals. Editable by the user. Also see the property strongPasswords, page 1-13. Confirm PasswordSame password again, repeated. Logoff Period (mins)Specifies the time, in minutes, in which a users JDE session with the station must be inactive before the user is automatically logged off. A popup warning with a 15-second countdown appears at the end of this period (allows the user to cancel the logoff, resetting this period). Editable only by the administrator or a user designated as a Security administrator. Can be any positive integer, in minutes, up to 999999999.
Note
If set to 0, automatic logoff is disabled (the user is never logged off due to inactivity).
118
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Hot LinksThe Hot Links tab provides a method of adding Go menu options, available to the user when using the JDE (Figure 1-7). Editable by the user.
Figure 1-6 Example Hot Links tab for a user (a new hot link is shown being added).
Delete
Move Up
Move Down
Moves the selected hot link down in the JDE Go pull-down menu.
Deletes the Moves the selected hot link. selected hot link up in the JDE Go pull-down menu.
When adding or changing a hot link, the two fields in the Hot Link dialog are: NameHow the link appears listed on the JDE Go pull-down menu, below the Previous, Next, and Home menu options (Figure 1-7). TargetThe swid of the object to display in the JDE Workspace when this link is selected. Typically copied in Tree View, and then pasted in this field.
Hot links appear listed in the JDEs Go menu, either user right-click access (as shown here) or from the Go menu on the JDE menu bar.
119
Chapter 1 Station
Security TabThe most critical edit tab for any user. A users security rights (Security Mask) apply whether the user is logged onto the station using the JDE or using a Web browser.
Figure 1-8 Example Security tab of a user selected in UserAdmin view.
Note
For any user except the administrator (or a user assigned as a Security administrator) all fields in the Security tab are read-only (cannot be modified). Entry field sections are:
Account enabled: Checked, by default, for any user. If cleared, the user will not be
able to logon to the station (using either the JDE or a Web browser).
Security administrator: Cleared, by default, for any user except the default administrator. If checked, the user will have full security administrator privileges.
Note
Without regard to any other security rights, a user with security administrator privileges can change their own security settings, as well as those for any other user. In addition, a security administrator can add and delete users. For these reasons, be careful about assigning security administrator rights.
Security Mask: Applies to the eight separate security groups that can be assigned to
any Niagara object. Each object must belong to at least one security group. A newly created object defaults to the General group. See About Security on page 1-21. For each security group, three main categories of security access apply:
AdminGives the user Read (R), or Read and Write (W) permissions for all properties of the object, including admin-level properties. In an objects property sheet, most (Config, Alarm Setup, Visual tabs) are admin-level. Admin-level write is also needed for edits of Calendar and Schedule objects. Note that selecting R or W for Admin-level automatically includes the same access for Operator-level properties.
120
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
OperatorGives the user Read (R) or Read and Write (W) permissions for any operator-level properties of the object. In an objects property sheet, these are typically only properties on the Status tab. CommandGives the user access to various commands or actions, depending on selections, as follows: StdStandard level commands. Applies to right-click, priority-level 8 (Manual) commands for object types AO, BO, MSO. Also applies to various right-click commands for other object types, including AnalogOverride, BinaryOverride, Command, DateTimeTrigger, Loop, MultistateOverride, and PeriodicTrigger.
AlarmAlarm acknowledgment. Gives the user alarm acknowledgment permissions for alarmable objects. EmerEmergency level commands. Applies to right-click, priority-level 1 (Manual Life Safety) commands for object types AO, BO, MSO. Note that if a user is given rights for emergency-level commands, standard-level (Std) commands are automatically included too.
AdminAdministrator commands. Applies to system-administration type commands of various objects. Example commands include clear, archive,, and clearLast Archive (log objects), cleanupSpecials (Schedule object), various backup commands, restart, and reboot (Station object). Note that if a user is given rights for Admin-level commands, rights are automatically given for the other three types (Std, Alarm, Emer) as well.
About Security
The eight security groups are independent of each other and their meaning is a local matter. This means that there is no prioritizing or weighting of any security group. Any object can be assigned to any combination of the eight security groups through its securityGroups property. Each object must belong to at least one group. In this way, many different security permissions can be defined simultaneously. A user's access rights to an object are determined by combining his or her rights for each group that is checked in the object's securityGroups property. If the object is assigned to any securityGroup providing access to that user, the user has those rights. Also (when working in the JDE), if a user has rights to a container type object, some rights are automatically applied to its child objects. If a user has Operator read rights to a container, child objects are visible in its Workspace. If a user has Admin write rights to a container, all the edit (WorkspaceEditor) right-click menu features are available for child objects, except Go menu items. Child objects can be linked, cut, copied, duplicated, deleted and renamed. In sections ahead on different object types, descriptions for object commands note the security rights needed. The security access-level required for each property of standard objects is included in the Attribute Notation of all properties listed in each object as they appear in the Property Quick References section on page A-3.
121
Chapter 1 Station
ActiveUsers
A Station objects ActiveUsers view lists all currently connected JDE users.
Figure 1-9 ActiveUsers view lists all JDE users that have the station open.
Each row shows the stations user name, full name, host machine name (IP address) on which the JDE is running, and the station logon time.
User Messages
In the stations ActiveUsers view, you can send messages to other JDE users, using one of the ActiveUsers pull-down options from the menu bar, or these toolbar icons:
Send Message
When a single user is selected (highlighted)
Broadcast Message
A user does not need to be highlighted.
Either selection produces a dialog box in which you can enter text for the message. When you type your message and click OK: Send MessageThe message appears as a pop-up at the selected users JDE. Broadcast MessageThe message appears as a pop-up on the JDE of all users.
In either case, the message popup remains on top of the JDE until acknowledged by a remote user. Figure 1-10 shows an example broadcast message being sent (left) and received (right).
Figure 1-10 ActiveUsers view lists all connected JDE users.
122
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Alarms
The Alarms view of a Station object lists only station alarms that have occurred since the last station startup. Each includes a timestamp, event type, and alarm message.
Figure 1-11 A Station objects Alarms view lists only station alarms.
Figure 1-11 shows an Alarms view for a station that is monitoring another station. It contains three alarms: its own startup alarm, and separate stationDown and stationUp alarms for a remote station (being monitored by this station). Unless the station is configured to monitor other stations (AddressBook setup), often only a single alarm existsa stationBoot Down ...Up alarm with a timestamp of when the station was last started. There are relatively few types of station alarmsall are change-of-state event types. The following types exist:
Note
For any station alarm, the enumerations description appears in the message field of the alarm record. If a JACE-NP configured for sysmon (internal environment monitoring), additional types of station alarms are possible. These alarms can apply to the JACE-NPs CPU temperature, various voltage levels, or CPU fan speed. For more information, see Monitoring JACE-NX, JACE-NP Environment Variables, page 1-27.
Note
123
Refer to the Engineering Notes document, Niagara Capacities, for a more complete discussion about this topic. Also, please note that capacity information for the newer JACE platforms (JACE-NX, JACE-NX-UPS, JACE-403, 404, 405, others) may be included in a later revision of that document, but is currently not available. Due to the flexibility of the Niagara Framework, it is risky to set arbitrary limits on the makeup of a station database. However, limits in Table 1-2 establish some rough guidelines, according to host platform (PC, JACE-NP, JACE-5 models, JACE-4).
Table 1-2
Niagara Platform
PC (Web Supervisor) 500MHz PIII, 256MB RAM 1GHz P4, 512MB RAM JACE-NP (earlier, 64MB) JACE-NP (current, 128MB) JACE-401 JACE-501, JACE-502 JACE-501-UI, JACE-502-UI JACE-511, JACE-511-UI, JACE-512, JACE-512-UI
1. 2. 3. 4.
Resource Count
1,000,0001 2,000,0001 400,0002 600,000
2
CPU utilization
Not applicable. Not applicable. Not applicable. 20% (or greater) CPU Idle is required by all embedded JACEs. A JACE-501 or 502 is also constrained by resource count. CPU utilization is the key constraint for any Jeode VM-based JACE (40x, 51x).
Disk/Flash Space
2GB minimum. Not applicable. Not applicable. n KB free /tffs n KB free /tffs4 n KB free /tffs n KB free /sm n KB free /tffs n KB free /sm Some free file space (n KB) is required to allow database backups. See Checking JACE-4/5 Flash Space on page 1-26.
External Links
25,000 50,000 ? ? ? ? ?
600,0003
300,000
600,0003
PC (Web Supervisor) maximum resource count limits are predicated upon (typical) DatabaseService resource loads. Tridium Systems Engineers (who provide technical support to the field) think these numbers are more realistic than ones previously published, which were: 600,000 for earlier (64MB) JACE-NP and 1,000,000 for current (128MB) JACE-NP. Chances are that various engines (control, ui) and poll threads will need to be slowed down to reach this600,000 resource count for a JACE-401 or JACE-51x. Refer to the Engineering Notes document, Niagara Capacities, for more detailed information. JACE-501 and JACE-502 models without WebUI are the most prone to flash memory limitations (database space limitations).
These limits apply to the four areas of resource boundaries, namely: RAM memoryThe station operates from RAM, consumed (roughly) according to the number of objects in the station. A more accurate yardstick is resource count, available (whole or in part) from a running station. See Checking Object Count and Checking Resource Count. CPU UtilizationThe ability of the host processor to execute the necessary program threads that allow the station to perform work. Of the three resource factors, this is the most important for the newer JACE controller models (JACE-401 and JACE-51x). It is also important for JACE-50x models (in addition to resource count). See Checking JACE-4/5 CPU Utilization.
124
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Disk storageTypically not an issue for a Web Supervisor or JACE-NP, this relates mostly to flash memory availability for a JACE-4/5. See Checking JACE-4/5 Flash Space. External linksTypically extensive in a Web Supervisor station, where graphics (Gx objects in GxPages) or log objects are linked to control logic. Limits shown in Table 1-2 are extremely high (25,000 or more)a dedicated Ethernet LAN would likely be needed to ensure network availability.
Checking Object Count Checking Resource Count Checking JACE-4/5 CPU Utilization Checking JACE-4/5 Flash Space Checking External Links
Checking Object CountThe total number of objects in a running station are reported by the Prism servlet:
http://<stationHost>/prism
The object count is in the line nodeCount=n. Checking Resource CountCheck the resource count for a running station by opening it in the JDE, selecting the station (or a portion of) in the Tree View, and selecting Search > Resource Count from the menu bar (or use the ALT-R shortcut). The Prism servlet also provides resource count statistics, using the URL:
http://<stationHost>/prism/resources
The Total Objects n line provides the stations total resource count. The Children section provides individual resource counts and percentages of total resource counts.
Checking JACE-4/5 CPU UtilizationCheck the CPU utilization of a station running in a JACE-4/5 by opening the spy utility with a browser connection to the JACE-4/5 host, using the URL:
http:<JACE-4/5 IP address>:3011/system/spy
(enter the host username and password, for example, tridium and niagara) The spy utility provides a snapshot of different tasks (threads) run by the CPU, including a total % column that gives some relative indication of CPU utilization. Near the bottom of this window, the line IDLE should read 20%, as a minimum. Failure conditions (less than 20% IDLE) typically result in: Slow or sluggish station. Many timeout messages in Standard Output. Devices being marked up or down.
Notes
125
During station boot and immediately thereafter, the tJmain task may appear to consume an excessive amount of CPU time. This is normal. It is the main JVM thread, and loads all of the classes and the station database.
Checking JACE-4/5 Flash SpaceUse the Admin Tools Summary tab to check free file space on a JACE-4/5. This panel lists that total number of bytes left on the primary /tffs drive and (according to JACE model) an /sm drive. A total of 128KB is reserved on each flash disk. The number reported via the AdminTool is actually total space minus the 128 KB reserve. Free file space requirements depend on the JACE-4/5 model and the size of the station database (stored by the JACE in two files, config.sns and config.sns.old): Models with the /sm drive must have enough free space on the /sm drive. Models without the /sm drive must have enough free space on the /tffs drive.
In either case, the required free space, when added to the 128KB reserve, must exceed the stations config.sns file size. For example, if config.sns is 144KB, the minimum required free space is >16KB. where 144KB - 128KB(reserve) = 16KB A config.sns file typically grows during runtime, due to logging activity. Typical failure symptoms of having insufficient flash memory space are: Failure to install a new module / upgrade (not applicable to a JACE-511 or JACE-512). Database backup failure (particularly if a JACE-501 or JACE-502 without WebUI).
Notes
The database backup failure should be rare. The 128 KB reserve should handle all but the largest databases. The newer JACE-511 and JACE-512 models have increased storage for Niagara modules, as shown on the /tffs drive. However, you should not install any extraneous (unused) modules. Extra installed modules consume RAM otherwise used by the station, and slow station startup.
Checking External LinksUse a browser connection to a station to quickly see the state of its external links, which are listed in a subscriptions table and a publications table. This feature is part of the prism servlet, common to any station. The URL is:
http://<stationHost>/prism/externalLinks
The subscriptions table is posted first, with a total number of subscriptions listed in brackets [n]. The publications table is posted next (the total number does not appear).
126
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Refer to
127
Figure 1-12 shows five possible properties files: System Properties, Gx Properties, BACnet Properties, Status Color Properties, and Time Zones the default r2.3.5 installation for the JDE. This menu is driven by the file adminfiles.txt, in your JDE (PCs) directory: D:\niagara\<release>\nre\lib (or equivalent). A standard r2.3.5 file is this:
# # # # # # # # # # # # #
adminfiles.txt This is a list of files that can be edited using the AdminTool. The entries in the list appear as menu items under the Host->Edit File menu of the AdminTool. The format of the lines is: [Menu Item Text;]file path The menu item text is optional. text is the name of the file. If excluded the menu item
Menu choices System Properties and Gx Properties always appear (even if you remove adminfiles.txt), but the other three (BACnet Properties, Status Color Properties, and Time Zones) are being sourced from this text file.
128
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
If necessary, you can define additional properties files to allow editing or creation on a JACE. For example, you may wish to modify niagarad.properties on a host. In this case, using the syntax
[Menu Item Text;]file path
Then, after saving adminfiles.txt, you must close and restart the JDE. Thereafter, when you select a JACE in the Admin Tool and use the Host > Edit File command, you will have access to the new properties file you added.
Figure 1-13 Host > Edit File command in Admin Tool, showing added Properties file.
Notes
The adminfiles.txt file resides only your Niagara PC (Web Supervisor, JDE engineering workstation, BACnet Supervisor, etc.), and not on a JACE. This is an important feature, especially for properties files on JACE-4/5 hosts, as previously you had to use (and enable) FTP on the JACE to put or get some of these properties files (gx.properties, bacnet.properties, etc). FTP can be a security riskand now you can disable it (system.properties file on the JACE). In general, you should not edit any properties file on a Niagara host unless you have been specifically directed.
129
Note
Step 1 Step 2
Open the JACE host in the Admin Tool. Using the recommended access method for that properties file (Table 1-3), open that properties file in the editor. Click in the edit window and press CTRL-A (to select all). All lines in the properties file should be highlighted. Press CTRL-C (to copy to the Windows clipboard). Open Notepad (or similar text editor) to start a New file. Click in the Notepad editor and press CTRL-V (to paste from clipboard). Use the Save As feature of Notepad to save the copied properties file to your local Niagara PC. Use the navigation controls and New Folder control, if needed. It is recommended that you use a filename with a JACE-specific-prefix, for example:
JACE-NP_Floor4_drivers.properties
Step 3
Step 7
Repeat steps 2 through 6 for each properties file you need to preserve. Now, if you need to re-create properties files on a replacement JACE, you will have copies that you can cut and paste from, as needed.
By design, each new Niagara build installation on a PC is directed to a new build <release> folder. Therefore, Niagara properties files are automatically archived. Following a new Niagara installation, you typically copy any properties file that you previously edited (from the previous niagara\<release>\nre\lib folder), along with the existing license.properties file and adminfiles.txt. This may be especially important for files such as drivers.properties or bacnet.properties.
130
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
However, first you may wish to save copies of all the new default properties files before overwriting them. This allows you to compare between the old and new versions, and possibly add new entries if needed.
File Name
bacnet.properties
Access Method
Admin Tool, command Host > Edit File (default in r2.3.4 and later Admin Tool)
Description / Notes
Applies only if the Niagara host is running a station with the BACnet service. In the initial r2.3.5 release of BACnet, very few parameters are accessed through the hosts bacnet.properties file. However, as later r2.3.5 build updates become available, this may change. For more information about bacnet.properties, refer to the Niagara BACnet Integration Reference, r2.3.4 or later.
ddns.properties
Starting in r2.3.4, DDNS (dynamic domain name service) support was extended to include LAN/WAN support, in addition to the previous RAS (dialout with captive ISP). This configuration file holds the DDNS parameters. More information may be found in the Niagara Networking & Connectivity Guide, 2.3.x (as an updated version becomes available).
drivers.properties
This is an essential file for any Niagara host. It is used to configure/specify various low-level communications drivers used by the Niagara host and the JDE. You may need to edit this file on various Niagara hosts, with some examples listed: JDE engineering PC: If configured for BACnet/Ethernet, must be edited with Ethernet adapter name (see Niagara 2.3.x BACnet docs). Same applies if a BACnet Supervisor. JACE-NX or NP: To configure sysmon, power monitoring limits. Refer to Engineering Notes doc, Niagara Sysmon and Power Monitoring. JACE-4/5: To configure power monitoring limits, BACnet MS/TP driver for VxWorks. Some integration drivers for JACEs may also require editing of drivers.properties (details in specific Niagara Integration documents).
Note: If your PC-based Niagara host (Web Supervisor/JDE engineering PC/BACnet Supervisor) requires edits to drivers.properties, after upgrading to a new Niagara build, you should copy and paste the old (edited) drivers.properties into the new niagara\<release>\nre\lib folder, replacing the default one installed by Niagara. This also applies to your license file (license.properties), plus any other properties file that you have especially edited.
This does not apply to any JACE you have upgraded, as the old properties files are retained.
Note: Changes to drivers.properties do not become effective for a station running on the host until the station is restarted.
131
Table 1-3
File Name
gx.properties
Access Method
Admin Tool, command Host > Edit File
Description / Notes
Applies if the Niagara host is running a station with the WebUiService. Currently, this file allows you to specify a small delay between serving Gx objects to a client browser, useful to avoid issues with animated .gif files. For more details, refer to gx.properties File, page 8-15. Lists the features licensed for the Niagara host, plus other information about the host. You should never edit this file. If you do, you will render your Niagara host unusable! Typically, you do not need to edit this file on any Niagara host. It is used by the web server to notify client browsers about the mapping of file extensions to MIME file types, so that client browsers can use appropriate applications. If you decide to add it to adminfiles.txt, use this entry:
Mime Properties;/rel/nre/lib/mime.properties
license.properties
mime.properties
Admin Tool, command Host > Edit File (can add entry, see notes)
ndio.properties
Read Only!
Starting in r2.3.4, it applies only to JACE-4 hostseither models with onboard I/O or that accept I/O expansion modules. It is used by the Menu access not recommended. Found in the JACE and its ndio module to map indexes of Ndio objects correctly. rel/nre/lib folder of a JACE-4, You should never edit this file. If you do, you will render I/O on the JACE-4 or JACE-IO-XX as inoperable! with other properties files. Typically, you do not need to edit this file. Includes optional parameter to specify the TCP Admin Port for the host (default port is 3011). This is the port used for most operations from the Admin Tool.
niagarad.properties
Admin Tool, command Host > Edit File (can add entry, see notes)
bufferSize=5000
Another parameter can specify the name of the NT Administrator group, typically for non-US installations (localization). For French, e.g.:
adminGroup=administrateurs
If you decide to add this to adminfiles.txt, use this entry:
Niagarad Properties;/rel/nre/lib/niagarad.properties
nre.properties
Applies only to Win32 hosts, to specify which JVM is used. Automatically set upon r2.3.5 installation, where the default (and Found in the nre/lib folder of supported) setting is: vm=hotspot any r2.3.5 Win32 host. Admin Tool, Network Settings tab, Edit Port Properties Admin Tool, Network Settings tab, Edit Modem Properties Applies only to JACE-4 hosts, to specify how serial port assignments COM1 and COM2 are mapped to physical ports RS-232, RS-485, and internal modem. Refer to the Niagara Networking & Connectivity Guide, or to the Installation Instructions document for that JACE-4. Sometimes referred to as modem.properties. Applies only to JACE-4 or JACE-5 hosts. Used to both configure modems and enable the direct-dial function on the JACE-4/5. Refer to the Niagara Networking & Connectivity Guide for more details. In r2.3.5, support was added for CHAP (Challenge Authentication Protocol), used to authenticate a user of dialup (PPP) connection. Previously, PAP (Password Authentication Protocol) was the only configuration option. Certain limitations apply to this feature. For more details, please refer to issue #3182 CHAP support in the r2.3.5 Release Notes document (section Core, dialup).
port.properties
ras.properties
132
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 1
Table 1-3
File Name
station.properties
Access Method
Admin Tool, command
Description / Notes
Unlike other properties files, which configure the host, this file is Station > Edit > Properties specific to a selected station, and is stored under that station directory. Included is whether the station auto starts (after a host reboot), (station must be selected) and/or auto restarts. (Note that Auto start is configured using a checkbox dialog, with Admin Tool command Station > Configure.) If the station is configured to use an HTTP port other than the default port 80, (Station object, config property: httpPort), a line is needed that specifies this same port (to support DB Admin functions), for example:
httpPort=85 Note: Changes do not become effective until the station is restarted.
statusColors.properties Admin Tool, command Host > Edit File (default in r2.3.4 and later Admin Tool) Starting in r2.3.4, this file allows global customizing of the status colors used by any station running on that host. Status colors are reflected in object and object output colors in the JDE, linked Gx objects in GxPages (JDE and browser) and in the status servlet (browser). Both status background (bg) and foreground (fg) colors are adjustable.
overridden.fg=ffafaf overridden.bg=404040
system.properties (continues next) Admin Tool, command Host > Edit File
See the comments in the statusColors.properties file for more details. In earlier releases, this file was primarily used to enable or disable FTP and Telnet in embedded (JACE-4/5) hosts; this usage still applies. For example: ftpEnable=false telnetEnable=false In Niagara r2.3.3 (2.3), various timeout properties were added, and the file had wider host applications (all JACEs, Web Supervisor). Also, a garbage collection daemon property became available for use with a host running a station with the DatabaseService and Cloudscape. In Niagara r2.3.4, more properties were added, including several that affect publications (sending) of external links (interstation links) and control the number of processing threads to the stations web server.
Note: Starting in r2.3.4, changes to the following properties become immediately effective, without a system reboot: connectionTimeout requestTimeout readTimeout sessionTimeout gc.daemon webServer.traceLevel webServer.resolveIPAddress interstationLink.reassert interstationLink.reassert.trace interstationLink.maxSendTime.enable interstationLink.maxSendTime.lo interstationLink.maxSendTime.hi
133
Table 1-3
File Name
system.properties (continued)
Access Method
Admin Tool, command Host > Edit File
Description / Notes
In Niagara r2.3.5, more properties were added, including one for disabling DirectX on Windows platform (to prevent Sun JVM conflict), a method to disable UTF-8 encoding by the MailService, and properties to aid operation of master/slave interstation links between hosts running different Niagara releases. Log archive tracing was also added, as was a configurable steady state delay to permit a station, upon startup, to allow all objects adequate execution time before enabling web server operation.
Note: Starting in r2.3.5, the system.properties entry: gc.daemon=n is no longer necessary, as the Sun Hotspot JVM has no related memory leak (DatabaseService with Cloudscape appdb). Be sure to disable this entry if present, otherwise, station performance may slow.
See the comments lines (#) in the r2.3.4 and later system.properties file for explanations of the various properties. Please note that additional coverage of when (and why) you would change properties in this file are planned in a future Engineering Notes document.
Note: Changes to the following properties added in r2.3.5 become immediately effective, without a system reboot: archive.trace mail.useUTF masterSlave.checkRelease masterSlave.releaseSpoofing.enabled
Also starting in r2.3.5, any running station provides a debug servlet available from a browser using the URL:
http://<host>/debug
Included is System Properties link, with this URL (also in r2.3.4): http://<host>/prism/systemProperties to review currently effective system.properties values. time.properties Menu access not recommended. Reflects the currently selected Java time zone for the Niagara host, by time zone ID. The hosts time zone database is customizable, and is For r2.3.5 host only, in nre/lib stored locally in a file named timezones.txt. folder if Win32, or /sys folder if JACE-4/5 host. Admin Tool, command Host > Edit File > Time Zones (default for r2.3.5 and later Admin Tool) New in r2.3.5, not exactly a .properties file, but the hosts source time zone database, stored in its nre/lib folder as a plain text file. Useful mainly for localization scenarios. Applies to all Niagara platforms. Allows editing of individual time zones, where each line represents one time zone. Each time zone begins with a time zone ID, which is visible when selecting the hosts time zone in the Admin Tool (System Time tab). Time zone ID is also seen in all timestamp data in the station, e.g. log records, alarms and alerts, and time-based object properties. Other parameters in each time zone line determine the UTC offset in milliseconds, and various start/end changeover points for Daylight Savings Time (if DST is used at all). All parameters in each time zone are delimited using the pipe (|) symbol. For more details, including translated values for each available time zone in the standard r2.3.5 timezones database, please refer to the localization document Java Time Zones for Niagara r2.3.5.
timezones.txt
134
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
CHAPTER
Data Species
Properties are implemented with data types (species), which fall under three general classifications: Data Primitives Data Enumerations (Enums) Variable Types (Types)
Note
This section explains Niagara data species, but provides only a few examples. For a complete listing of all documented variable types and enumerations, refer to Appendix A, Object Property Quick Reference.
21
Data Primitives
A primitive is the most basic of data types. A property implemented as a primitive has a value expressed as one of the following: booleanEither false or true. float (floating-point)IEEE floating-point standard 754, 32-bit single precision. Very small and large numbers are possible. int (integer)a signed 32-bit integer, within the following ranges: minimum: -2,147,483,648 to maximum: 2,147,483,647
Note
In object property sheet fields, the integer minimum and maximum limits above are represented as MIN_VALUE and MAX_VALUE.
For example, the property description (a property of most object types) uses a data species of type String. This is a read-write property that you can use to describe the object. For most object types, the default value of this property is empty.
Data Enumerations
Some data species use enumerations. An enumeration is simply a numbered list with a choice of values. There are about 40 documented enumerations used among data species. Refer to the Enumerations section on page A-53 for a complete listing. For example, WeekdayEnum is an enumeration for days of the week, with the following definition: Sun (0) Mon (1) Tue (2) Wed (3) Thu (4) Fri (5) Sat (6) As with primitives, some properties are implemented with just one enumeration. For example, the property eventState, a status property in many control objects, uses a data species of EventStateEnum. This enumeration is defined as follows:
normal (0) fault (1) offnormal (2) high_limit (3) low_limit (4) unknown (64)
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
22
Chapter 2
Variable Types
Like data primitives, enumerations can be used as pieces in other data species, called structured types. Structured data species are defined by some combination of data primitives, enumerations, and sometimes other (nested) structured data types. Structured data species are classified as variable types, along with the four primitive data types. There are about 32 documented variable types. Refer to the Variable Types section on page A-49 for a complete listing. For example, the DateTimeTrigger object has an engineering property, lastTrigger, that uses the variable type DateType. This data species is structured with the following data fields in its definition, where: {rw} means read-write capable, and {r} means read-only:
year {rw} int month {rw} MonthEnum day {rw} int weekday {rw} WeekEnum nextDay {r} DateType prevDay {r} DateType
Note that data fields year and day are primitives (int), while fields month and weekday are enumerations. Data fields nextDay and prevDay both use the definition of the variable type DateType.
Among the variable types are two important classes used for many input and output (linkable) properties, particularly among control objects. These two classes of variable types are: Status TypesEach is a primitive value and a status flags enumeration. Priority TypesEach is a primitive value and a control-priority enumeration.
Status Types
Status-variable types are used in object input and output properties named statusInput (sIn) and statusOutput (sOut), and include these variable types: booleanStatusType floatStatusType integerStatusType
Each has two components, the primitive data value and a status flags component. The status flags component provides a general indication of health of the received property value (if a statusInput), or of the object itself (if a statusOutput). Status flags for a statusOutput (sOut) property are reflected by the objects statusFlags property (visible on the objects property sheet, Status tab).
Note
23
Status flag enumerations include: inAlarm, fault, overridden, outOfService, unackedAlarm, down. Depending on object type, these may be set in combination. The normal or ok condition is for all status flags to be cleared. If viewing objects in the JDE Workspace, any statusOutput in ok condition shows the value, in normal color. However, if status flag(s) become set, this is indicated by color change of the statusOutput and the object shape, as follows:
Note
If a fault or down condition is received at a linked statusInput (or other input using a status type data species), the object uses its configured default input value, if available. Object types such as AnalogInput, BinaryInput, Comparison, IntToFloat, Logic, Loop, Math, MultistateInput, and Totalizer, have such configuration properties.
Priority Types
Priority-variable types are used in object input and output properties named priorityArray (pIn) and prioritizedOutput (pOut), with these variable types: BooleanPriorityType FloatPriorityType IntegerPriorityType
Priority variable types each have these three components: valueThe primitive data, either boolean, float or integer. autoA boolean, true only while all control-priority slots are empty. priorityThe active control priority-level, whether received (priorityArray), or generated from the object itself (prioritizedOutput). Control priority enumerations include 16 levels, from highest (1) to lowest (16). Objects that have both priorityArray inputs and prioritizedOutputs include the commandable types, such as AnalogOutput, BinaryOutput, and MultistateOutput. Other objects have prioritizedOutputs, including the BinaryOverride, Comparison, FunctionGenerator, Logic, Loop, Math, MultistateOverride, and Schedule objects.
Note
For an explanation of how the Niagara control priority scheme operates, refer to the Priority Levels section on page 5-46. Although this explanation references the BinaryOutput (BO) object, priority levels are evaluated in the same way for the AnalogOutput and MultistateOutput objects (objects with priorityArray input).
24
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 2
Property Attributes
Apart from the data species a property uses, it also has a number of attributes. These attributes determine the following about the propertys usage: Read/Write accessread-only (status) or read-write. Station storage optionsPropertys value is either: stored to disk (flash), that is: persistent operating only in RAM, that is: transient typically stored to disk (flash), but may be subject to change in a shadowed foreign device. A fetch command may be necessary to update the station with the latest value. This is called on_demand_transient. Input/Output/Internalwhether the property is available as a linkable input or output (or not). If available, whether it appears by default on the object shape. User (Security) Accesswhether the property is accessible to a station user with Operator-level property access, or only Admin-level property access. For example, a property may be either readable or both readable and writable. It may be persistently stored. It may be a linkable input or output, or an internal value only. It may be accessible (on the JDE property sheet) at both the Operator and Admin levels, or only the Admin level.
Refer to Appendix A, Object Property Quick Reference, for listings of each propertys attributes, as well as an explanation of Attribute Notation.
Links
Most Niagara objects have one or more properties that you can link to another object to establish data relationships. Examples include control objects, apps objects, Gx objects, and integration (shadow) objects. Some objects are not typically linked, for example, Container objects. A linkable property is typically either an output or an input, and a link connects an output to an input. The following link-related topics are explained ahead:
Note
Link Editor Link Categories Link Types Link Rules Link Data Flow Link Resources
25
Chapter 2 Links
Link Editor
The JDE provides a Link Editor you use to establish links between any two selected objects. The Link Editor simplifies link choices by indicating, by color, which properties of an object are available (after you select a property of the other object). As shown in Figure 2-1, selecting the first property (in this case, prioritizedOutput) of one object results in the isolation (using the color green) of the properties in the other object can be selected for a link. In this case, only one property is available for linking, namely, the priorityArray input. Properties that cannot be selected are colored red. Reasons for properties showing as unlinkable (red) include: Incompatible data species, which must match (except for Gx object links). An input property is already linked, and can accept only one source (typical).
Figure 2-1 Link Editor pre-validates links by showing only linkable properties as green.
After selecting two compatible properties, the pending link is listed on the Links side. This lists the link type and the properties to be linked.
After you select a compatible property in the second object, the link to be made appears listed in the right-side, showing the link type, object names and properties (the Service column applies only if a LonWorks shadow object is involved). You can select multiple links to be made before selecting the OK button, if needed. An OK makes the link between the selected properties and closes the Link Editor. In the property lists, the arrow icons must point in the same direction for a link. Color of the arrow icons indicates the general type of the property, either boolean, float, integer, or trigger. In the JDE, these property colors are adjustable, using the menu bar options View > Options > Property Colors.
Note
26
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 2
Links View
In addition, for any object, a right-click Links view is available when using the JDE (Go > Links), as shown in Figure 2-2.
Figure 2-2 Links view of a selected object lists all links to and from the object.
The Links view lists all existing links for the selected object, including each links:
Type Property Other swid Other Property Service (typically applies only if a LonWorks-related link)
Note
The Links view for any object is also available from a Web browser connection, providing that the station has the WebUIService. The URL requires the station swid of the object, ending with string $Links. For example:
http://192.168.1.2/db/demoR2/Sim/Logic/AirHandler/coolingCoil$Links
Link Categories
A link connects two Niagara objects. From a connection standpoint, any link can be categorized as one of the following: Local Link Internal Link External Link
A typical Niagara station is engineered with many local and internal links. Unless it is a standalone JACE station (no Web Supervisor), there are typically external links as well.
27
Chapter 2 Links
Local Link
A link between objects in the same container. When using the JDE and viewing the container in the either the Workspace or WorkspaceEditor, each link shows as a line connecting the two objects (Figure 2-3). When you mouse over the link, the status bar reports the logical type of the link, either normal, ui, or trigger.
Figure 2-3 Local links are the only kinds visible in the Workplace view.
Status bar shows the type of local link when you mouse over.
Internal Link
A link between two objects in the same station, but in different containers. When using the JDE and viewing either object in the WorkspaceEditor, the link appears at the objects input or output as a small shaded box with a letter, a to z (or if needed, aa to az) as shown in Figure 2-4. When you mouse over the link box, the status bar shows the swid of the linked object.property.
Figure 2-4 Internal links show in the WorkspaceEditor as shaded boxes with letters.
Status bar shows Internal Link and the target swid of the linked property when you mouse over.
28
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 2
External Link
Sometimes called an interstation link, an external link is between objects in different stations. When using the JDE and viewing either object in the WorkspaceEditor, the link appears at the objects input or output as a small box with a numeral (0 to n). The default color of the link box is white. When you mouse over the external link box, the status bar shows the link as either: externalSubscription (at an input), plus the swid of the linked object.property. externalPublication (at an output), plus the swid of the linked object.property.
Figure 2-5 External links show in the WorkspaceEditor as shaded boxes with numbers.
Status bar shows the target swid of the linked property when you mouse over.
Notes
External link processing requires AddressBook setup in both stations. Refer to the AddressBook section on page 1-15. Only receiving (externalSubscription) link configuration is persistently stored in a station database. Output (externalPublication) links are transient, and are visible only while an external station is actively subscribed. The interstationSendTime property of the Station object specifies the wait time used before pushing change-of-value updates to externally linked objects in subscribed stations. The default send time is every 5 seconds (5000 ms); the minimum send time is every 500ms. In r2.3.4 and later, other parameters affecting interstation links can be set in the hosts system.properties file. The prism servlet provides a special snapshot listing of external links in a station, useful for troubleshooting purposes. It is available from the JDE or a Web browser connection to any Niagara station, at URL: http://<host>/prism/externalLinks (also from new r2.3.5 debug servlet). No more than 50,000 external links should be made in a Web Supervisor station. This limit was empirically established based on data from actual jobs. See the Link Rules section on page 2-11 for special restrictions that apply to external links.
29
Chapter 2 Links
Link Types
Links are further categorized logically, with the following types possible.
Normal: A normal link describes most links made between objects except one including a Gx object. This includes links between other object types, typically control objects, apps objects, and integration objects. When using the JDE and looking at the Links sheet for either object, the link type shows as normal. UI: User Interfaceany link between a Gx object and another type of object. Typically, the other object is a control object, apps object, or integration object. When using the JDE and looking at the Links sheet for either object, the link type shows as ui. Trigger: A link between trigger-type properties of the two objects. Trigger links initiate actions of objects, instead of moving data (values, status, strings). When using the JDE and looking at the Links sheet for either object, the link type shows as trigger. Composite: A link to an object inside a Bundle, Composite, or GxPage container
that allows it to be exposed on the parent object. This scheme allows encapsulation of important inputs and outputs to be represented on a simplified object (the parent Bundle, Composite, or GxPage object). When using the JDE and looking at the Links sheet for the exposed child objects and the parent object, the link type shows as composite.
LonTalk Local Bindings: A link between a standard Niagara object (typically a
control or apps object) and a Lon device (shadow) object. The Lon shadow object resides under the LonTrunk container in the station database. When using the JDE and looking at the Links sheet for either object, the link type shows as localLonBind.
LonTalk Network Bindings: A link between two Lon device objects. The Lon device objects reside under the LonTrunk container in the station database. When using the JDE and looking at the Links sheet for either object, the link type shows as lonNetBind.
210
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 2
Link Colors
In the JDE menu bar option View > Options > Link Colors, you can assign each link type a color. Link colors apply to all link categories, meaning local link (lines) and link boxes (internal and external links). Usually, link colors are left at defaults. It is helpful to learn link colors, so you can quickly distinguish link types when viewing containers in the WorkspaceEditor. Link colors is a JDE tool setting, not associated with any particular station.
Figure 2-6 Link colors are editable from the JDE menu bar View > Options menu.
Note
The Background color for each link type is the main color used. The default Background color for each link type is as follows: Link Type normal link trigger link Lontalk Local Binding Lontalk Network Binding ui link composite link external link Color blue black black green gray yellow white
Link Rules
In most cases, in order for two properties to be linked, they must use the same data species. In a link, one objects output supplies the value (or trigger) used by the other object with the receiving input. The Link Editor in the JDE enforces this rule when you select a property on one side of the window to link. An exception to the need for matching data species occurs when linking Gx objects, which have only inputs. For example, the binding input of a GxText object can be linked to any internal (configuration property) of another object, in addition to most output properties. When linked to an internal property, a GxText object displays text showing the value of that property. Unlike normal links, Gx object links are considered user-interface (ui) links, not part of control logic. Instead, they provide the building blocks of a user interface.
Note
211
Chapter 2 Links
The Link Editor also enforces additional link rules, which you may wish to know when attempting links.
1. 2.
You can link as many inputs to a single output as needed (one-to-many). For any input property that is already linked, no further link to it is permitted unless the property is a priorityArray type or trigger type (or certain types of Lon properties). Only then is a many-to-one link allowed. External links (between stations) have further restrictions. The following types of external links are not permitted (nor are they shown in the Link Editor): Links between prioritizedOutputs and priorityArray input properties. Links between properties using triggerType data species. Links from a GxText object to an internal property of another object (only inputs or outputs are available).
3. a. b. c.
Pull data: This is the typical method of data transfer in a link. When an object
executes, it reads all of its inputs, and pulls the data into its input properties. The input (receiving side of the link) can be linked to only one object output. However, any output can be, and often is, linked to multiple inputs (one-to-many).
Push data: This occurs when linking prioritizedOutputs to priorityArray inputs.
The priority array scheme allows an input to receive a command plus a priority level from more than one source, that is, the input can be linked to multiple outputs (many-to-one). The command at the input with the highest priority wins control of the object. (Priority levels are from 1-to-16, highest-to-lowest). When you link multiple prioritizedOutputs to the priorityArray input of a controllable object (for instance, a BO, AO, or Loop), these links push values (active/inactive/auto) into their respective array slots of the input.
Event-based (trigger) data: This occurs when linking a trigger-type output and
input. A fired trigger typically initiates an action in another object. For example, each log-type object has two special trigger-type inputs (doArchiveTrigger and doClearTrigger) that perform special actions (as named). These inputs can be connected to the trigger-type outputs available in the Command, PeriodicTrigger, and/or DateTimeTrigger object, as needed. Note that trigger-type properties are similar to priority-array properties in that many-to-one links are allowed.
212
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 2
masterOut and slaveIn properties for establishing special links between like-type objects. This feature allows changes in the master object to be replicated in slave objects. These properties are especially suited for linking between different stations (external links). Note that if the communications link between stations is broken, the slave object retains its current configuration and continues its operation.
Link Resources
Each link between objects consumes a small amount of RAM memory. In the JDE, a running stations usage of RAM is measured with resource count. The resource count is a numerical value that can be viewed for the entire station, or any object-level portion of it. In further sections where each object type is described, a Resource Count Range figure is provided. For example, an AnalogInput (AI) object is listed as having a:
Resource Count Range: 63 to 116
It is important to note that this range does not include link resources, only what resources are consumed by the object itself (by editing internal properties from default values). Each link to (or from) the object consumes additional RAM, incrementally adding to resource count. While values at the object-level are small (typically a resource count of 2 or 3 for each link) it is worth noting. Remembering that a link affects two objects, the following resource count values show the approximate station-level resource counts, per link.
Table 2-1 Link resource counts, station-level, per link.
normal
5
ui
5
trigger
8
composite
12
external
3
Check the resource count for a station by opening it in the JDE, selecting the station (or portion of) in the Tree View, and selecting Search > Resource Count from the menu bar (or use the ALT-R shortcut). For related topics on station resources, refer to the Station Limits and Guidelines section on page 1-24.
213
Chapter 2 Links
214
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
CHAPTER
Commands
Commands for objects in a running Niagara station vary by object type. Commands can provide control functions, such as with a BinaryOutput object or administrative (admin) functions, such as with a Station object. The following topics apply to commands: Control Commands Admin Commands All Available Commands
Control Commands
Control commands apply mainly to commandable control objects. Commands are available only if the user has Std (standard) or Emer (emergency) level command rights for a security group assigned to that object. For example, if a JDE user is signed on with sufficient command privileges, a BinaryOutput (BO) object provides the user with right-click commands to set it active, inactive, or in auto (Figure 3-1, left). If the object is linked to a Gx object in a GxPage, the same command menu is available from a browser, by right-clicking on a linked Gx object (Figure 3-1, right). Command access through a Gx object is validated using the Gx objects securityGroups property. Refer to Providing Command Access, page 8-6.
Note
31
Chapter 3 Commands
Figure 3-1
Admin Commands
Administrative (Admin) commands apply to various standard Niagara objects, including the Station object, and various apps, service, control objects. For example, if a JDE user is signed on with sufficient command privileges, an AnalogLog object provides the user with right-click commands to clear (the log buffer), archive, or clear the last archive (Figure 3-2, left). If the object is linked to a Gx object in a GxPage, the same command menu may be available from a browser, by right-clicking a linked Gx object (Figure 3-1, right). Gx object securityGroup settings apply (see Providing Command Access, page 8-6.)
Figure 3-2 Right-click Admin commands are available for many Niagara objects.
Note
Typically, these commands are available only if the user has Admin-level command rights for a security group assigned to that object (or to the Gx object). Admin-level commands are available in the JDE using two methods: From the pull-down Command menu on the JDE menu bar, when the objects property sheet is displayed in the Workspace. All commands are included. From a right-click menu for the object, from its Workspace (monitor mode). Depending on the object type, not all Admin commands may be available on an objects right-click menu (for example, with the BinaryOutput object). However, commands that are right-click-accessible are also typically available through a linked Gx object, using a Web browser connection.
32
Niagara Release 2.3.5 Niagara Standard Programming Reference Revised: April 20, 2004
Chapter 3
Notes
Table 3-1
Object Type
AdminTool AnalogInput AnalogLog
Right JDE Security Command Rights Click Only Std Alarm Emer Admin