Archive for August, 2007

Modbus Developer Resources

This article will present Modbus resources to further aid the automation developer. The internet offers a wide variety of sites related to Modbus development from personal to commercial sites. This article will focus on two of the more detailed Modbus related websites.

The first website to be examined will be the official Modbus organization site, which offers a webpage specifically geared for the developer. The developer page on this site is divided into two categories:

  • Modbus Technical Resources
  • Offsite Links

The Modbus Technical Resources section of the developer page includes the following links:

The offsite links section of the developer page offers:

  • The link allows the developer to compile with Visual C++ 6.0 with Windows 95/98/2000 support.
  • FreeMODBUS offers the developer a no-cost implementation of the Modbus protocol, and is specially targeted for embedded systems. This implementation is based upon the most recent standards and should be fully standard compliant.
  • Modbus implementation through a Java library. The site is geared towards Java developers that need to access or share data using the Modbus protocol. The library is fully object oriented, based on abstractions which should support easy understanding, reusability and extensibility. This library is a free and open source to the public.
  • This link offers communication with Modbus/RTU slave devices connected to a PC serial port.
  • Modbus Poll allows the developer to test Modbus slave devices. Modbus Poll is a shareware program that supports Windows 95/98/ME/2000/XP.

There are other links in this section of the webpage. Developers should closely examine this page for other information and products for their specific needs.

A page of the Chipkin Automation Systems (CAS) website is the second important resource for the Modbus developer. CAS is a premier building automation authority. The company’s primary focus is on system integration and protocol conversion.

The CAS Modbus Scanner provides the developer with a utility program for the retrieval and review of Modbus enabled device(s) in a wide variety of formats, and at no-cost to the developer.

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Free Tool: CAS Modbus Scanner

Chipkin Automation Systems has updated there CAS Modbus Scanner to version 1.00bE.

The changes to the utility has come from comments and requests of ts users, if you have a suggestion or a request that you would like to see in the next version of CAS Modbus Scanner feel free to contact us or leave a comment.

As always this utility still remains 100% free, no registration, no email, no trial period, its 100% functional with no disabled features.

screenshot_sm.gif

This new version includes

  • New interface – The interface of CAS Modbus Scanner has been updated to include a side bar where you can defined different connections, devices and tasks. flicker free updates, status bar, auto refresh have also been added to enhance your user experiences.
  • Multiple Connections, Devices, and tasks - In the previous version of CAS Modbus Scanner you where only able to define one connection, device and task at a time. If you wanted to query a different devices you has to set up a new query over writing the old one. In the new version you can set up multiple tasks each with there own query. Each of these tasks are displayed in a easy to read tree format on the left side of the dialog. changing between two different tasks is as easy as selecting a new tasks from the tree.
  • Better error message - All the error messages have been updated, to include possible causes and resolutions to common problems. Chipkin Automation Systems wants your system to work and we do our best to help you in any way possible.
  • Works with RS485 and RS232 – Your are no longer limited to just one physical layer

You can download the new version from Chipkin Automation Systems web site CAS Modbus Scanner 1.00bE

If you have any questions or comments (we like comments) feel free to contact us or leave a comment.

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet: The Trend Log Object

The Trend Log object is defined by the standard as a property monitor for a specific object. When certain conditions are reached, a log is produced with the property value and a date/time stamp which is placed into a buffer for future retrieval. This buffer can be optionally fixed in size by the developer.

The Trend Log object offers the developer two ways in which the value is logged:

  • Periodically
  • During a change in value

The log entry is referred to by the standard as a Trend Log Record. Other items included into the Trend Log Record:

  • Data Entry Error(s)
  • Logging Operational Status

The following table will present the actual properties and datatypes of the Trend Log object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Description Character String
Log_Enable Boolean
Start_Time BACnet Date Time
Stop_Time BACnet Date Time
Log_Device Object Property BACnet Device Object Property Reference
Log_Interval Unsigned
COV_Resubscription_Interval Unsigned
Client_COV_Increment BACnet Client COV
Stop_When_Full Boolean
Buffer_Size Unsigned32
Log_Buffer List of BACnet Log Record
Record_Count Unsigned32
Total_Record_Count Unsigned32
Notification_Threshold Unsigned32
Records_Since_Notification Unsigned32
Last_Notify_Record Unsigned32
Event_State BACnet Event Event State
Notification_Class Unsigned
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Profile_Name Character String

The automation developer should pay close attention to the defined properties in the following list:

  • Log_Enable property – Enable/disable logging process.
  • Start_Time property – Start logging process on a specific date and time.
  • Stop_Time property – Stop logging process on a specific date and time.
  • Record_Count property – By indicating “0″ will clear the buffer.
  • Log_Interval property – Specifies the logging interval.
  • Stop_When_Full property – Stop logging when the buffer is Full.
  • Buffer_Size property – Indicates the maximum number of records in the buffer.
  • Log_Buffer property – Details of the buffer itself.

The following example from the standard will present the Trend Log object structure from an actual automation application. This example will specifically focus on the record log of the air temperature in a certain room within a building:

Object_Identifier (Trend Log, Instance 1)
Object_Name “Room 3Log”
Object_Type TREND_LOG
Description “Room 3 Temperature”
Log_Enable TRUE
Log_DeviceObjectProperty ((Device, Instance 100), Analog Input, Instance 3, Present_Value)
Log_Interval 6,000
Stop_When_Full FALSE
Buffer_Size 250
Log_Buffer (((23-MAR-1998,12:32:33.0), 72.0,(FALSE,FALSE,FALSE,FALSE)),(23-MAR-1998,12:34:32.0),72.1,(FALSE,FALSE,FALSE,FALSE)),…)
Record_Count 250
Total_Record_Count 131040
Notification_Threshold 83
Records_Since_Notification 30
Last_Notify_Record 131010
Event_State NORMAL
Notification_Class 1
Event_Enable {FALSE, TRUE, TRUE}
Acked_Transitions {TRUE, TRUE, TRUE}
Notify_Type EVENT
Event_Time_Stamps ((23-MAR-95, 18:50:21.2),(*-*-*,*:*:*.*),(23-MAR-95, 19:01:34.0))

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet Developer Resources

This article will present BACnet resources to aid and inform the automation developer. The internet offers a wide variety of sites related to BACnet development from personal to commercial sites. Two of the more impressive, detailed websites will be the focus of this article. All the items discussed in this article will be available through links on both websites for easy access.

The first website to be profiled will be the official BACnet site, which offers a webpage specifically for the developer. The links on the developer webpage includes:

  • CAS BACnet Explorer is a BACnet utility that can be used to Explore, Test, Monitor, and Debug BACnet networks. Its easy to use and free to download.
  • The SCADA Engine is a commercial resource that offers software development for Client and Server applications for a variety of operating system platforms.
  • BACnetSim is a portable implementation of BACnet for the developer to evaluate functionality before final large-scale implementation of the protocol.
  • BACpypes is a BACnet library for the application and network layers. BACpypes were drafted in “Python” for scripting and graphical interfaces. Python is a programming language for application domains, and similar other such languages as Scheme, Java, etc.
  • The Visual Test Shell (VTS) will allow the developer to evaluate BACnet device functionality in automation applications. VTS was developed by the BACnet Testing Laboratories (BTL), and often upgraded to maintain this application tool.
  • The Wireshark provides the developer an open-source protocol analyzer. The site also includes protocol development and educational information for the developer as well.

The BACnet International website is the second important site for the BACnet developer. This site like the first examined site offers a page geared for the developer. The links on this webpage includes:

  • BACnet Standard and Implementation guides , and through another link to the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE) bookstore for these and other related publications.
  • A link to an email list server called BACnet-L, which is an open list to all and provides a discussion forum for BACnet development. Note that advertising and other such activities are not allowed on the list. For a subscription to BACnet-L.
  • The BACnet International Product Catalog provides the automation developer with detailed information on the most recent BACnet devices.

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet: The Loop Object

The Loop object is defined by the standard in terms of the object properties representing the external, physical attributes of any category of control loop. The Loop object is a detailed and complex object in the standard.

The optimal flexibility of this object is attained by including three specific gain constants with no assumed values as the units:

  • Proportional Constant
  • Integral Constant
  • Derivative Constant

The developer should pay close attention to these three constants when drafting the object structure for BACnet devices. The suitable gain units are figured by a control algorithm, which is a local matter for the automation developer.

The following table will present the actual properties and datatypes of the Loop object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Present_Value Real
Description Character String
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Update_Interval Unsigned
Output_Units BACnet Engineering Units
Manipulated_Variable_Reference BACnet Object Property Reference
Controlled_Variable_Reference BACnet Object Property Reference
Controlled_Variable_Value Real
Controlled_Variable_Units BACnet Engineering Units
Setpoint_Reference BACnet Setpoint Reference
Setpoint Real
Action BACnet Action
Proportional_Constant Real
Proportional_Constant_Units BACnet Engineering Units
Integral_Constant Real
Integral_Constant_Units BACnet Engineering Units
Derivative_Constant Real
Derivative_Constant_Units BACnet Engineering Units
Bias Real
Maximum_Output Real
Minimum_Output Real
Priority_For_Writing Unsigned
COV_Increment Real
Time_Delay Unsigned
Notification_Class Unsigned
Error_Limit Real
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Profile_Name Character String

The following example from the standard will present the Loop object structure from an actual building automation application. This example will specifically focus on the air temperature control in a HVAC unit:

Object_Identifier (Loop, Instance 1)
Object_Name “AHU_SAT_LOOP”
Object_Type LOOP
Present_Value 8.3
Description “Supply air temp. PI control”
Status_Flags {FALSE, FALSE, FALSE, FALSE}
Event_State NORMAL
Reliability NO_FAULT_DETECTED
Out_Of_Service FALSE
Update_Interval 1
Output_Units POUNDS_FORCE_PER_SQUARE_INCH
Manipulated_Variable_Reference ((Analog Output, Instance 5),Present_Value)
Controlled_Variable_Reference ((Analog Input, Instance 3), Present_Value)
Controlled_Variable_Value 56.1
Controlled_Variable_Units DEGREES_FAHRENHEIT
Setpoint_Reference ((Analog Value, Instance 7), Present_Value)
Setpoint 57.0
Action DIRECT
Proportional_Constant 0.5
Proportional_Constant_Units PSI_PER_DEGREE_FAHRENHEIT
Integral_Constant 0.1
Integral_Constant_Units PER-MINUTE
Derivative_Constant 0.0
Derivative_Constant_Units NO-UNITS
Bias 9.0
Maximum_Output 15.0
Minimum_Output 3.0
Priority_For_Writing 10
COV_Increment 0.2
Time_Delay 3
Notification_Class 1
Error_Limit 5.0
Event_Enable {TRUE, TRUE, TRUE}
Acked_Transitions {TRUE, TRUE, TRUE}
Notify_Type ALARM
Event_Time_Stamps ((23-MAR-95,18:50:21.2),
(*-*-*,*:*:*.*),
(23-MAR-95,19:01:34.0))

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

PlugFest 2007 – October 16-18 2007 – Milwaukee, Wisconsin

The BACnet International BACnet Testing Laboratory Working Group invites manufactures of BACnet products to attend the 2007 Interoperability Workshop at the Pfister Hotel in Milwaukee Wisconsin. This is the eighth annual BACnet Interoperability Workshop and is hosted this year by Johnson Controls.This event allows vendors to test their BACnet products in a neutral and friendly environment with BACnet devices from other vendors. Last year more than 100 BACnet engineers representing 27 companies attended the workshop and improved their BACnet implementations and testing methods.

The event will begin on Tuesday morning to allow for arrival on Monday. The testing starts at 9:00 am and continues through Thursday afternoon. This year, the BTL has added some new types of testing sessions and will be offering training sessions on the second day.

So register now for the BACnet interoperability testing event of the year!

Click here for complete details or to register for PlugFest 2007.

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have