Page 1 of 2 12 LastLast
Results 1 to 20 of 31

Thread: Free BACnet Widget - Time Sync

  1. #1
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes

    Free BACnet Widget - Time Sync

    I have spent most of my professional life building controllers for HVAC field, but I have not spent much time building GUI's of any type.

    I decided on a lark this morning to try a new compiler that can build graphical apps for both Linux and Windows. I could think of no better test of this program than to build a simple BACnet tool which could be given away freely to you all.

    Granted, this is not a complex program, nor is it polished with fancy icons and the like, but it seems to do exactly what I intended, so I'm stopping here for the night. (Time for a beer )

    This application allows anyone to easily build and send a BACnet TimeSync to any BACnet controllers on their local IP network, any connected MS/TP networks and presumably any connected via BBMD.

    In this zip file you will find an exe, 5 required DLL's and one readme.txt file. This application can be run from any location on your computer, assuming only that you have the dll's in the same folder as the exe.

    Let me know if this is of any use to any of you, if there is interest, I may make more.


  2. #2
    Join Date
    Sep 2002
    Location
    Hampton Roads, Virginia
    Posts
    2,029
    Post Likes
    I'm not really a BacNet guy, but thank you for your work, and keep them coming.

    Cheers, Have a beer for me

    Kevin

    Controls is a lifestyle not a job

  3. #3
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    I just noticed that I was not all that clear above- When I say that it can talk to MS/TP devices, I do not mean to imply that this program will run over PC's serial port. I mean any MS/TP devices that can be reached via a BACnet MS/TP to IP router.

    Also, this doesn't bind to any sockets, so it should run just fine without having to exit out of any other BACnet programs you may be running at the time.

  4. #4
    Join Date
    May 2006
    Posts
    334
    Post Likes
    I like portable apps. Nice to have it under my tools folder. Thanks.

  5. #5
    Join Date
    Aug 2007
    Location
    Western Oregon
    Posts
    499
    Post Likes

    Thank You!

    Thank you! I haven't yet done much BacNet but I have several projects coming up that include the protocol. Maybe now I'll be better prepared!
    RealEyes
    Realize
    RealLies!




  6. #6
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    I'm thinking of making a file transfer program next. Something to upload or download files to controllers via AtomicFileRead/AtomicFileWrite. Is that of any interest to anyone but me?

    Of course I need some free time (and serious motivation) to get the pertinent parts of the open source BACnet stack tied into the widget. I don't think it'll happen this week.

  7. #7
    Join Date
    Dec 2007
    Location
    Hopkins, South Carolina
    Posts
    165
    Post Likes
    Thanks

  8. #8
    Join Date
    Oct 2008
    Location
    Twin Falls, ID
    Posts
    524
    Post Likes
    This program runs great. I have a site with over 40 JCI NAEs that have time sync issues and this works great. Is there a way to get your source code or make it get the time on the system that it is running on? I would like this to be able to schedule the program to run on a schedule without setting the time manually.

  9. #9
    Join Date
    Apr 2008
    Location
    UK
    Posts
    160
    Post Likes
    The thing I've always wanted was for some clever chap to make an alarm receiver widget. A building manager could then just have this installed on his PC and any alarms could then be sent direct to his PC desktop (as long as its on the same network of course).

    If your looking for requests that is...
    -----------------------------------------------------
    Don't be a stupid dwarf. It's not big and it's not clever!

  10. #10
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    Quote Originally Posted by NickDeal View Post
    This program runs great. I have a site with over 40 JCI NAEs that have time sync issues and this works great. Is there a way to get your source code or make it get the time on the system that it is running on? I would like this to be able to schedule the program to run on a schedule without setting the time manually.

    If the beers in my fridge hadn't been so cold and alluring on Sunday, I would have followed through and added those features before posting the application.

    Now that you have asked for them, I'll make a new version of this that has those features. It doesn't have to have a GUI for what you want to do, but since that's the part I'm experimenting with I hope you don't mind if I still include one. :-)

    Out of curiosity, how much are you seeing those controllers drift? E.G. What would be an appropriate default time delay between syncs?

  11. #11
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    Quote Originally Posted by picnik View Post
    The thing I've always wanted was for some clever chap to make an alarm receiver widget. A building manager could then just have this installed on his PC and any alarms could then be sent direct to his PC desktop (as long as its on the same network of course).

    If your looking for requests that is...
    Does it need to work for all types of alarms? Does it need to acknowledge alarms? Does it need to work for non-ASCII text?

    Building an alarm viewer sounds like fun but if it needs to do all things for all people it would quickly grow into a much larger project...

    But keep the suggestions coming, I just built a new computer last night and I'm raring to break it in. :-)

  12. #12
    Join Date
    Oct 2008
    Location
    Twin Falls, ID
    Posts
    524
    Post Likes
    Quote Originally Posted by BACnet View Post
    If the beers in my fridge hadn't been so cold and alluring on Sunday, I would have followed through and added those features before posting the application.

    Now that you have asked for them, I'll make a new version of this that has those features. It doesn't have to have a GUI for what you want to do, but since that's the part I'm experimenting with I hope you don't mind if I still include one. :-)

    Out of curiosity, how much are you seeing those controllers drift? E.G. What would be an appropriate default time delay between syncs?
    They have never been synced. They are supposed to sync every hour using windows time sync, but they never have been on time. This causes issues with the time stamps for the trends. I am going to test in the next week or so to see how far off the clocks drift on the individual NAEs.

  13. #13
    Join Date
    Apr 2008
    Location
    UK
    Posts
    160
    Post Likes
    Quote Originally Posted by BACnet View Post
    Does it need to work for all types of alarms? Does it need to acknowledge alarms? Does it need to work for non-ASCII text?

    Building an alarm viewer sounds like fun but if it needs to do all things for all people it would quickly grow into a much larger project...

    But keep the suggestions coming, I just built a new computer last night and I'm raring to break it in. :-)
    I suppose I was just looking for something basic, flagging up an alarm has occured and at what time. What I was thinking of was that Siemens Europe have a device called a PXM20 (a hand held device) that, among other things, receives all alarms that are on the system. No need to set it up as a recipient in the notification classes or anything. I suppose it just does a broadcast to ask all points in alarm to make themselves known, but the mechanism of how that works is beyond me.

    There again, if it could be used by end users and not just engineers, you should really be thinking about charging!!
    -----------------------------------------------------
    Don't be a stupid dwarf. It's not big and it's not clever!

  14. #14
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    Version 1.01 has been released!

    Thanks for the feedback NickDeal & others. Over the past couple of evenings I've polished it up a bit.

    I've taken the original program offline and uploaded the new package here.

    Changes:

    • Time is now automatically read from the computer at launch time & anytime thereafter via a push button
    • Seconds have been added
    • Settings can be saved (in a local, readable text file)
    • It can be set to automatically sync when launched
    • It can be set to automatically exit when synced (read the txt file for suggestions, NickDeal)
    • A specific network number can be specified if you don't want to sync the entire network


  15. #15
    Join Date
    Apr 2007
    Location
    Amarillo by mornin'
    Posts
    1,059
    Post Likes
    Man! BACnet I'm impressed! Keep it coming. I think you might have opened a can of worms though!
    "It's not that I'm smart, it's that I stay with the problem longer”
    Albert Einstein

  16. #16
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    What are these worms you speak of?

    There's already a ton of open-source BACnet stuff out there- its just that very little of it has a GUI. I want to rectify that.


  17. #17
    Join Date
    Jul 2006
    Location
    Southern California
    Posts
    319
    Post Likes

    Open Source BACnet Programs and Applications?

    Quote Originally Posted by BACnet View Post
    What are these worms you speak of?

    There's already a ton of open-source BACnet stuff out there- its just that very little of it has a GUI. I want to rectify that.

    BACnet,

    If it is not too intrusive, which app creation tools or formats are you using to create the new BACnet Apps you are working on?

    With BACnet controllers completely turning the keys to automation over to the system owners and operators, the only thing that has really slowed down the thru "open system" concept is app tools which will remove the last vendor lock on client owned BACnet systems.

    You are starting a walk down a very interesting path, I applaud you for taking the time, and making the effort to share you work.

    I have stayed away from source level codeing for years, but you may have inched me a bit closer to a revisit.

    Respectfully submitted,

    Drac
    "We are what we repeatedly do. Excellence, then, is not an act, but a habit" Aristotle

    Remember to "Pay it Forward"; help out the newer generation of techs, remember someone during our career helped us! ("Pay it Forward" was by someone smarter than me!!)

  18. #18
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    Drac,

    I made the TimeSync widget using a free tool called QT4 (QT is pronounced "Cutie", and 4 is the revision level). I was playing around with it last weekend because it allows you to make GUI's for both Windows and Linux. I currently have very few BACnet tools for Linux so that was important for me.

    The programming language is C/C++, which is both very powerful for bit-based operations and very comfortable to many since it's been around basically forever. As you can see with the screencap above, it's hardly a work of art but that there are more options I have not yet explored. I think I'm going to have to actually read the guide if I want to make any "pretty" tools.

    Hope this helps,

    -BACnet

  19. #19
    Join Date
    Jul 2011
    Posts
    1
    Post Likes
    BACnet,

    Your info was very useful. I'm new with this kind of programming, I usually program for GUI but I'll begin a project to get information from some devices running the BACnet but I have not found some guides or examples to get connection using BACnet protocol. My tools for programming are WMI Script, VB, PERL and ILE/RPG, I found some sorces for Java but this examples uses third parties Classes but I like to use my own code. Do you know for some resources to read or use to begin into this new world ?

    Thanks,

    PJC


  20. #20
    Join Date
    Aug 2009
    Posts
    2,456
    Post Likes
    Thread Starter
    Welcome to the site, vieques!

    There is a free BACnet stack that is probably 70 or 80% complete and it can be found on sourceforge. It is written in C though, so it's not likely that you want to use it as is unless you call it as a DLL or something. Along those lines, there are sample apps included in that package that will allow you to discover all devices on a network, and read and write all "primitive" BACnet data.

    In addition, there are a number of companies that used to make money selling BACnet stacks to developers. But over the years many people have written their own stacks and with the onset of the free one I don't think that they get much business anymore. You may be able to buy one from them at a bargain price since they likely aren't selling many of those stacks anymore.

    Of course the single most important thing if you're going to build any BACnet tools would be buying a copy of the latest BACnet specification. There is absolutely no way that I would attempt to design a BACnet client or server without having the manual in front of me.

    Lastly, I would read up on a lot of the information written by the late "BACnet Bill" Swan. He had a way of explaining some of the harder concepts that really made it simple to understand.

Page 1 of 2 12 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •