Archive Page 2

Changing the BACNet Present Value (Or Why the Present Value doesn’t change)

All devices on a BACNet network are effectively peers. This means that any device (we take device here to mean any Bacnet capable entity – device or software application) can write to the writable properties of another device’s objects. This can result in conflicting commands.

BACnet has a mechanism to resolve the conflict. It differentiates between writable and commandable properties and the conflict resolution only applies to commandable properties. For writable ( and non-commandable properties) the last write wins and overwrites any previous writes – there is no conflict resolution.

Which properties are commandable and how does the command resolution work ?

• The Present Value of AO, BO, MO objects are always commandable.
• The Present Value of AV, BV, MV objects are commandable if the vendor implemented  them that way. It’s a vendor choice.  You can tell what choice they made by looking for the Priority_Array and Relinquish_Default properties on the object. That’s a clue but not a guarantee (we have found). Last resort is their documentation. (good luck).
• A vendor may choose to make any vendor (proprietary) property commandable.  If a property is commandable then it is required to have appropriately named Priority_Array and Relinquish_Default properties.

If an object has a Present Value that is commandable then it also has two additional properties ; Priority Array and Relinquish Default. These two properties are used to resolve command conflicts.

When a write is sent to a commandable point it always contains a priority. If the priority is not specified then the priority is assumed to be the lowest. There are 16 priorities. 16 is the lowest. On restart each slot in the array is set to a Null (unused) state. When the command is received the BACnet device updates the slot in the Priority Array that corresponds to the commanded priority with the new value.

The device continuously looks thru the priority array of each commandable property and looks for the highest priority slot that is non Null. It uses that value to update the Present Value. Now its easy to understand why the command you sent to an objects Present Value has no effect. You may have commanded with a priority lower than the one currently in use.

How to you empty a priority slot ? You send a command to the point to relinquish (give up control). This is like a normal command – its specifies a value ( a special value – Null ) and a priority. The device frees the Priority Array slot that corresponds to the relinquished priority. There are 3 possible outcomes to a relinquish – 1) There is no change to the Present Value because the relinquished priority is lower than the one in use 2) The Present Value changes because the relinquished command was at a higher priority than another commanded value. 3) All the Priority Array slots are now Null (unused). In this case the device uses the value of the Relinquish Default property to set the value of the present value.

What happens if two remotes device command at the same priority ? The last command wins, overwriting the value in the Priority Array for the given priority ? The same applies to relinquishing – the first relinquisher wins. How do you avoid this ? Assign different devices, application or functions different priorities. These choices are site specific. BACnet does names the priorities to suggest a use but how they are used is up to you – the implementor.

Some Objects that have commandable Present Values also have properties that define a minimum on and/or off time. When either of these are present it could affect the outcome of the write you send to the Present Value. A full description of this behavior will be provided in a subsequent article.

Worked Example:

The Relinquish Default Value is set by the device. The Vendor may choose to make it a writable property in which case in can be changed remotely. Even though the present value is commanded the device stores the commanded value in the priority array and uses the highest priority array slot to set the Present Value.

Relinquish Default Example - Figure 1

In our example, the device boots, the Priority array slots are all Null (Unused) and this vendor has set the Relinquish Default to 50. Since all the slots are null the device sets the Present Value to the Relinquish Default Value. The Present Value changes to 50.
Relinquish Default Example - Figure 2

Now a command is sent to set this objects Present Value to 45 at Priority 5. The device sets slot 5 in the Priority Array to 45. It then starts at the highest priority (1) and looks for the 1st non Null slot. It finds slot 5 filled with 45 and sets the Present Value to 45.

Relinquish Default Example - Figure 3

Now a new command is sent to set this objects Present Value to 70 at Priority 8. The device sets slot 8 in the Priority Array to 70 . It then starts at the highest priority (1) and looks for the 1st non Null slot. It finds slot 5 filled with 45. Thus there is no change to the Present Value to 45.
Relinquish Default Example - Figure 4

Now a command is sent to Relinquish the command at Priority 5. One would hope that the device that sent the original command sent the relinquish command but that is up to you and how you configured you system.  When the relinquish command is received, the device sets the corresponding slot in the Priority Array to Null. The device then starts at the highest priority (1) and looks for the 1st non Null slot. The device finds slot 8 filled with 70. It changes the Present Value to 70.
Relinquish Default Example - Figure 5

The most recent command at a specific priority wins. Here a command is sent to set the Present Value to 80 at priority 8. The device overrides slot 8 in the array with the new value. In this case it is also the highest priority slot that is used so the device updates the Present Value to 80.
Relinquish Default Example - Figure 6

Finally, a command is sent to relinquish the command at priority 8. Slot 8 is set to Null and when the device looks through the priorty array it finds it all empty and it thus uses the Relinquish Default value to set the Present Value to 50.
Relinquish Default Example - Figure 7

This mechanism can be complicated if the object has minimum on/off times.

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 MSTP - Bandwidth usage - How many devices on a network.

How many devices to install on a single RS485 Trunk (Bandwidth Issues). There are non electrical considerations to determine how many devices you put on an MSTP network.

The chart below illustrates (from one installation) how little of the bandwidth is used to transfer data. The APDU’s are application layer message that poll and respond with property values - they do work for us as data consumers. The rest is used to maintain the network - passing the token around and looking for new devices.

Pie Chart Showing MSTP Bandwidth Usage

 

 

It’s not possible to provide a calculator to work out how many devices to install on a single network but the following list provides some help in assessing bandwidth considerations.

  • How many of the devices will be BACnet slaves.

Token passing and looking for new devices on the MSTP trunk consumes a fair amount of bandwidth.

A BACnet slave can be read/written but never gets token so it cant initiate any messages because it never gets the token. The more slave the fewer token passes. Typically you are not able to put a device in slave mode. Most vendors implement their devices as masters (ie token passing devices)

  • How many Objects in each device are you interested in monitoring ?

The more you read and the greater the frequency the more bandwidth that will be consumed.

It takes approx 30 bytes to poll for a single property. It takes about 40 bytes to reply. A token is 8 bytes as is a Poll for master.
Assume that 50% of your bandwidth will be used by overhead (token, poll for master).
Divide the baud rate by 10 to get bytes per seconds.
Using a number like 30+40=70 as a best case and 100 as a worst case (obviously reading descriptions will take more) multiply by the number of objects and properties you are going to poll on a regular basis.

Here are some typical numbers assuming device doesn’t support the ‘multiple’ services (see below).

  • How many properties from each of these objects ?
  • What is the baud rate?
  • What is Max Master Set to?

Every few cycles each (master) token passing device on the network must look to see if there are new devices. Max Master determines the biggest address that must be searched for. Each search involves sending a message and waiting for a response or a timeout (if the devices isn’t there). Timeouts cost time. The higher the number of Max Master (default is 127) the more potential devices must be searched for. If you use Max master to improve bandwidth then you must adjust it in each device.

  • Do the devices support the “Read/Write Property Multiple” services or must each property be read in a separate message?

Every few cycles each (master) token passing device on the network must look to see if there are new devices. Max Master determines the biggest address that must be searched for. Each search involves sending a message and waiting for a response or a timeout (if the devices isn’t there). Timeouts cost time. The higher the number of Max Master (default is 127) the more potential devices must be searched for. If you use Max master to improve bandwidth then you must adjust it in each device.

Obviously, if you can read a chunk of properties in one message you will be better off than if you can only read a single one.

  • Can you use BACNet’s COV mechanism?

COV stands for Change of Value. When a device supports COV another device / application can subscribe to receive notifications when an object property changes. This means the data client doesn’t have to poll for data continuously but can wait passively to be notified of the change. This reduces the number of messages on a network dramatically.

  • Some devices are slower than others.

BACnet allows up to 15 msec for a device to use the token. Since most messages on a MSTP network are token passes a device that uses the token in 5 msec will consume much less bandwidth than one that takes 15msec. (A number of vendors relax this requirement to allow for other vendors implementations. The more relaxed the more bandwidth is consumed doing nothing.)

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

Changing the header of a phpBB3 forum.

Changing the default header of a phpBB3 forum is easy.

I used this very useful website that is pretty self-explanatory to change the picture shown within the header:

http://www.easytutorials.org/phpbb3_styles_logo.html

Note: When you refresh your forums to see if the changes have taken place, do so by pressing SHIFT+F5. (This clears the cache and does a full refresh)

A faster way would be to rename your image to “site_logo.gif” and overwrite the default one by moving it into the “styles/*stylename*/imageset/”  folder.  The image will most likely be scaled to a default size so you must change the size manually by going into Administration Control Panel>Styles>Imagesets>Edit and under Select Image select Main Logo. Select ‘yes’ to Include Dimensions and manually type in the desired image size.

Keep in mind that if your image has a background with a solid colour, it will show up on top of the background of the header, sometimes making it look unprofessional. To fix this you must either create the image with a transparent background,  or edit the header background to match the image.

To do the latter, go to Administration Control Panel>Styles>Themes>Edit and comment out the following line by changing:

background-image: url(”{T_THEME_PATH}/images/bg_header.gif”);

to

//background-image: url(”{T_THEME_PATH}/images/bg_header.gif”);

Right on top of this line, the code “background-color: #FFFFFF;” can be seen. The “FFFFFF” part can be changed to any colour hexidecimal code (more colour codes can be found here).

When done, hit Submit and check out the new forum header (remember to refresh with SHIFT+F5).

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

How does BACnet MSTP discover new devices on a network ?

(To provide clarity this article does simplify the issues to some extent.)

BACnet MSTP is a token passing protocol. Only nodes with the token are allowed to initiate service requests such as requests for data. A device that receives a request, a request that requires a response, may respond without having the token.

 

Based on this behavior it is easy to understand the difference between a MSTP master and slave. A slave is a device that can only send responses. A master is an initiator of a service request.

 

Only allowing masters to initiate a message exchange when they have the token provides a mechanism whereby there can be multiple masters on a network and contention or collision can be avoided. Ethernet uses a different system – it allows collisions and provides a recovery mechanism. Imposing rules on the token passing such as specifying how much a master can do while it has the token provides a mechanism to balance the performance of various devices on a single network.

 

Back to the question of how new devices are added to the network. If you add a new slave device then you will need to program at least one master on the network to exchange data with that slave. The master needs to be programmed specifically to read that slave since slave devices don’t support discovery. (That’s one of the reasons that most field devices are not slave devices.)

 

If you add another master it needs to receive the token before it can act like a master but the other devices on the network need to discover the new device first. Every master on the network, has the job, of periodically polling for a new master.

 

Each master knows who the next master on a network is, because that is who it will pass the token to. So, each master, must poll for masters that could exist in the address range that exists between its own address and the next master’s address. Thus a master addressed as 1 must look for master’s in the range 2 to 10 if the next known master is 11. Master number 11 must look for new masters starting at 12 etc. The master with the highest number must try masters …,127,0…… When a device receives a poll asking if it is a master (Called a ‘Poll for Master’ message) it replies immediately. In the above example, if master number 1 cant find a master number 2 it should try number 3.

 

When should it try ? That’s a choice that is left up to the implementor of the BACnet protocol on that device. The spec only demands a minimum of 1 Poll for Master every 50 times a master receives or uses the token. The new master must respond within 20 milliseconds.

 

You can see, that if every master polls for a large number of new masters and they do this often then lots of bandwidth is lost. For this reason BACnet MSTP has a parameter called Max Master. Each master has its own setting for this variable. Typically it is set at 127 but imagine that master number 50 is the highest master on the network, and its Max Master is set to 64. Then it will never discover a new master whose address is larger than its max master, ie it will never discover master with address 65 to 127. This is a common reason why a new device on a network is not discovered.

 

 

How often should a master search ?

http://www.chipkin.com/articles/how-often-should-a-bacnet-mstp-device-search-for-a-new-master

 

You may also wish to read our article on duplicate Mac Address and Device Instance Numbers. 2 BACnet MSTP devices with the same device ID

 

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

RS232 Serial Port Sniffing / Snooping

Have you ever needed to snoop a RS232 serial port to observe the messages passing back and forth? It’s easier than you thought. All you need is application called HyperTerminal and the simple cable below. The cable can be assembled in minutes and requires a couple of diodes which you can probably buy for pennies. HyperTerminal is provided free with the Windows Operating System.
Here is what you need to do

1. Assemble the cable.
You need a 3 conductor cable and a 3 9-pin d-type connectors. We suggest you put a male on one end and a female on the other end and do not cross pins 2 and 3 over. That way you have a cable segment that will extend any cable without reuiring sex changes or worrying about 2-3 cross over. Put a female connector on the snoop end so it connects to your PC port without a sex change.
The Diode part number is 1N4148. The black band on a diode is the cathode end and corresponds to the vertical bar in the schematic of a diode.
A diagram is provided below the text of this article.

2. Connect
Connect the devices with your cable and connect the snoop to your computers serial port.

3. Run HyperTeminal
START, Programs, Accessories, (Communications), HyperTerminal
Set the port and configure it. In this example we use COM2 to snoop on a 9600,Even,8,1 conversation.

4. Capture Messages
In HyperTerminal, select the ‘Transfer’ menu.
Select Capture Text (even if the protocol you are snooping on is binary)
Specify a file name.
When you have captured enough, stop the capture and you can then use the file to view the conversations.

5. Limitations
No timing will be captured. All the messages sent and received by the devices you are snooping on will be ‘received’ only in HyperTerminal. This you will have to deduce the message ends/starts.
No timing information is available
If the messages are binary you will need to view the binary file in binary mode. You cant do this with notepad or WordPad. We use the Visual Slick Edit editor – Use Ctrl-Shift-H to change the view to binary.

ScreenShots

01.jpg

02.jpg

03.gif

04.jpg

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

How often should a BACnet MSTP device search for a new master?

A BACnet MSTP device should search for a new master after it has gotten the token more then Npoll – 1 times.
If your device is on a large network (20+ nodes) and Npoll is set to a very high number it may take a long time for your device to find a new device between its own MAC address and its next station.

For example
There are three devices on the network, 0×02, 0×03, 0×07.
All of the devices have a Npoll of 255, and have received the token 254 times since the start.

0×02 receives the token and increments its own TokenCount to 255. 0×02 now goes in to poll for master mode and attempts to find a new master, the NS (next station) just happens to be the PS (poll station) as well so TokenCount is reset to zero with out a poll for master message being sent out. 0×02 sends the token to 0×03.

0×03 receives the token and increments its own TokenCount to 255. 0×03 now goes in to poll for master mode and attempts to find a new master. It will poll for a new master between the range of 0×04-0×06. If it does not find a new master it will pass the token on to 0×07.

0×07 receives the token and increments its own TokenCount to 255. 0×03 now goes in to poll for master mode and attempts to find a new master. It will poll for a new master between the range of 0×08-Nmax_master then 0×00-0×01. But 0×07 has a Nmax_info_frames of 5 so it will only poll for 5 new master before it will pass on the token to 0×02. Next time 0×07 receives the token it will start to poll for a new master where it last left off at 5 frames a time.

Npoll
The number of tokens received or used before a Poll For Master cycle is executed: Default: 50.

Nmax_master
This parameter represents the value of the Max_Master property of the node’s Device object. The value of Max_Master specifies the highest allowable address for master nodes. The value of Max_Master shall be less than or equal to 127. If Max_Master is not writable in a node, its value shall be 127.

Nmax_info_frames
This parameter represents the value of the Max_Info_Frames property of the node’s Device object. The value of Max_Info_Frames specifies the maximum number of information frames the node may send before it must pass the token. Max_Info_Frames may have different values on different nodes. This may be used to allocate more or less of the available link bandwidth to particular nodes. If Max_Info_Frames is not writable in a node, its value shall be 1.

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 MSTP - Tusage_timeout, Nretry_token

Tusage_timeout
The minimum time without a DataAvailable or ReceiveError event that a node must wait for a remote node to begin using a token or replying to a Poll For Master frame: 20 milliseconds. (Implementations may use larger values for this timeout, not to exceed 100 milliseconds.)

Nretry_token
The number of retries on sending Token: 1.

Tusage_timeout variable is used when the token is sent out.
If the node that receives the token (NS) does not use the token before the previous stations (TS) Tusage_timeout the previous station (TS) will resend the token Nretry_token times before attempting to poll for a new master.

For example
If Tusage_timeout is set to 20 and Device A sends the token to Device B, device B has a total of 20 ms to use the token before Device A times out and sends the token again. This cycle will continue Nretry_token times. If Device B never responds in time then Device A will attempt to poll for a new master starting at Device B + 1 MAC.

I suggest that you increase the Tusage_timeout from 20 ms to something like 50-100 ms.
Must not exceed 100ms

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 Device Backup and Restore Procedures

The automation developer should be aware of the BACnet procedures concerning device Backup and Restore activities. Both procedures are defined in detail by the standard in Clause 19 for future reference. The procedures may involve either network visible BACnet objects and/or non-network visible settings.

Backup and Restore procedures employ File objects to contain and move configuration data. The specific content and format of this data is a concern for the developer. In addition, the choice of whether to use stream-based or record-based files is also a matter of decision for the developer.

The following is a list of services required for both Backup and Restore procedures from the standard:

  • Reinitialize Device
  • Read Property
  • Write Property
  • Atomic Read
  • Atomic Write
  • Create Object (optional)

Both of these procedures operate in a similar with only a singular difference. The standard further defines the following events to perform the Backup or Restore procedures:

  • Procedure Initiation
  • Procedure Preparation
  • Load Parameters (Backup Procedure only)
  • Configuration of Files
  • Procedure Ending

In the Initiation phase, a Reinitialize Device message is sent from one device to another using the following structure:

  • ReinitializeDevice(STARTBACKUP or RESTORE, <password>)

The sender device will wait for a response from the receiver device before continuing either procedure.

The Preparation phase entails receiving an approval or rejection from the previous phase. The following codes will indicate approval or rejection conditions:

  • ‘Result(+)’ - Approval
  • ‘Result(-)’ - Rejection

The Backup procedure has an additional step referred to as: Loading Parameters. At receiving an approval result, the sender device will the Configuration_Files property within the Device object. These configuration files contains vendor-specific data related to the procedures.

The next phase involves the actual Backup or Restore operation. This task is accomplished with the information from the Configuration_Files property, and through the Atomic Read and Write services.

The Ending phase for both procedures involves another Reinitialize Device message from the sender to the receiver device in the following structure from the standard:

  • ReinitializeDevice (ENDBACKUP or RESTORE, <password>)

Both of the procedures will end with the approval and receipt from the previous message.

In building control applications, many automation devices have configuration data developed by the manufacturer. The developer should be aware of the procedures that the BACnet standard will use if an interoperable device Backup and Restore feature is made available in the automation device.

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: Priority Array

The BACnet Priority Array is a specific property type described by the standard as one of the command prioritization mechanisms.

The developer should be aware of the manner in which this property type functions concerning priorities within building control systems.

The Priority Array is further defined by the standard as a read-only property that consists of commands that categorized by priority levels of decreasing order. NULLs may also exist in this property type as well. The highest priority will reside with the lowest array index and a non-NULL value will represent the active command.

Prioritized commands are essentially those commands that are specific towards commandable properties. The following is a parameter example from the BACnet standard:

  • Property Identifier: Commandable_Property
  • Property Value: Desired Value
  • Priority: Priority

The following table from the BACnet standard will examine the common command priorities of the priority array:

Priority Level Application
1 Manual-Life Safety
2 Automatic-Life Safety
3 Available
4 Available
5 Critical Equipment Control
6 Minimum On/Off
7 Available
8 Manual Operator
9 Available
10 Available
11 Available
12 Available
13 Available
14 Available
15 Available
16 Available

Command entities are assigned one of the sixteen priority levels. These assignments are usually a matter for the developer.

The table may include other commands such as the following building automation related applications mentioned in the BACnet standard:

  • Temperature Override
  • Demand Limiting
  • Duty Cycling
  • Scheduling

The following priority array structure example from an actual building automation application was obtained from the Synergy lighting control system developed by Lithonia
Lighting. The following are the local priorities used for the Synergy system:

#define PRIO_PRIORITY_ON 3 /* Synergy Unique */
#define PRIO_PRIORITY_OFF 4 /* Synergy Unique */
#define PRIO_MANUAL_OPERATION 8 /* only used with flash to find */
#define PRIO_NORMAL_OPERATION 10 /* Synergy Unique */
#define PRIO_PRIORITY_LOW 13 /* Synergy Unique */

Because the BACnet standard does not specifically indicate the automation application of lighting controls. The developers at Lithonia Lighting essentially made their own priority decisions when they implemented the BACnet protocol in the Synergy design.

The following paragraph was obtained from a PDF source that describes the priority assignment for effective operation of the lighting control system by Lithonia Lighting:

“It is strongly suggested that writes intending to turn lighting ON be made at command priority 10 and writes intending to turn lighting OFF write a NULL unless the intention is to forcibly override the normal functioning of the lighting controls.”

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

Wireless Sensor And Web Applications Product

The Arch Rock Corporation has developed an effective wireless sensor and web services system in their Primer Pack/IP product.

This product has unique qualities that would be beneficial to the following areas of building automation:

  • Data Management
  • Building Safety
  • Security Applications
  • Environmental Controls

The Primer Pack/IP will offer the end-user the option to move from a static, wired system to a dynamic wireless network able to share valuable data and information to all areas of operation through Ethernet, WiFi, and other connections. The wireless network allows the user a more effective and simple integration process as well.

The Primer Pack/IP is described as a complete standards-based, wireless sensor network (WSN) application development and deployment platform. Composed of a service-oriented architecture (SOA), Internet Protocol (IP)-based networking, and a secure, reliable, responsive, low-power mesh networking.

Primer Pack/IP Set-up

The process requires the separation of the logical communication of data in such functions as naming, routing and security from the physical links that carry the data.

Recently, developers of communication networks have adopted the Internet Protocol (IP) as their common routing protocol, along with transport protocols that enable data bits to be delivered properly to their destination.
The Primer Pack/IP product should work well within BACnet due to the protocol’s communication through RS232, RS485, Ethernet, and others that conform to BACnet.

Another advantage for the BACnet protocol would be through the various services included in the protocol. Such as the following services:

  • Data Sharing
  • Alarms
  • Scheduling
  • Remote Device Management

Primer Pack/IP users can actually develop custom applications to monitor physical conditions without special programming that’s usually required to build sensor network applications. Sensor data becomes immediately available to the plant manager or field worker on the desired mobile IP device, or to the office worker in a web browser environment.

This technology removes the limitations of wired sensors, and develops networks to make that information readily accessible. In addition, the leading internet and web technology provides a platform for the networks and to further the development of varying information sources.

The San Francisco-based Arch Rock Corporation is a developer that concentrates on products and technology for wireless sensor networks. The corporation’s goal is to connect the physical and digital world through wireless sensor networks, where the data can be simply viewed, analyzed, and managed by the user.

For more information about the Arch Rock Corporation and its products, visit the following link: http://www.archrock.com/
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