Published by Steven Smethurst August 28th, 2007
in Modbus and Scott Cosby.
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
Published by Steven Smethurst August 23rd, 2007
in Modbus and RS485.
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.

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
Published by Steven Smethurst August 21st, 2007
in BACnet and Scott Cosby.
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
Published by Steven Smethurst August 14th, 2007
in BACnet and Scott Cosby.
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
Published by Steven Smethurst August 7th, 2007
in BACnet and Scott Cosby.
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
Published by Steven Smethurst August 1st, 2007
in BACnet.
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