Hi ,
Recently I have update the BACnet stack into 0.8.5 version from 0.7.1. I have connected five number of devices in my network(MS/TP). I am facing the communication drop problem in the network. It is happening on both versions. Any one of the device will be down on few seconds (5secs to 3 mins) and comes back. I am using the Jenysys as a master, the polling frquency on master is 5 secs(Normal). How can i resolve this issue? What are the parameters I need to look for?
I couldn't configure the device as Slave (above 127 mac address). If I configure as a slave device, will it solve the issue? I had disabled the automac functionality and set my input as the MAC address.
Kindly help me.
Processor : STM32f4
Configuration:
MAC address : 121
MAC ID :107
MAC address : 122
MAC ID :106
MAC address : 123
MAC ID :105
MAC address : 124
MAC ID :104
MAC address : 125
MAC ID :103
Baudrate : 38400
Network ID : 26
Total number of objects per device 36.
Thanks,
Paramasivan.
Last edit: Paramasivan S 2018-09-03
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Paramasivan
Do you have a capture of the MS/TP bus traffic? (See demo/mstpcap for a tool&docs). Look at that and see what is happening.
Also, try setting your MAC addresses low in the range -e.g. 1-5, and max-masters to e.g. 10. That SHOULD NOT be the cause of your problems, but may provide a clue as to what is broken. Since Steve has tested 128 nodes in a network, I am going to bet it is not the stack. ;)
Ed
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Most of the time the problem in newly developed products using this stack relate to the FSM timing violations. The MS/TP state machine was designed to be tasked consistently and to never exceed 5ms between invocations.
The typical microcontroller application architecture is a non-blocking main loop so that the mstp_receive() is called as fast as possible (along with every other application entity being non-blocking as well).
Another architecture is to call mstp_receive() from a 5ms timer interrupt, but separate the data received into a queue that is read later by main loop (application layer).
Another architecture is to call mstp_receive() from a 5ms RTOS task, incrementing the silence timer within that task.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the reply. In my firmware , i am saving a log into SD card in every 5 mins. I had seen the drop in 5 mins interval (happening randomly not always). SoI had commented out the SD write section and running the firmware overnight. Still now i didn't get any communication drop. I will update the results.
One more doubt.
While discovering the objects from master,it shows as "Read only" for all objects(AV,BV) . I need to change in the setting as Writable point in master device, then i can write the values into .
What I will do to show as the wirlable objects during discover from master?
Thanks,
Paramasivan.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
BACnet doesn't currently have the concept of marking points (properties) as read-only, read-write, etc. electronically (i.e. via protocol), so the only way another device knows if a property is writable is to try to write it, and the device will respond with write-access-denied if the property is not writable, or SimpleACK if written, or some other error if some other error occurred (out-of-range, unknown object, etc).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi ,
Recently I have update the BACnet stack into 0.8.5 version from 0.7.1. I have connected five number of devices in my network(MS/TP). I am facing the communication drop problem in the network. It is happening on both versions. Any one of the device will be down on few seconds (5secs to 3 mins) and comes back. I am using the Jenysys as a master, the polling frquency on master is 5 secs(Normal). How can i resolve this issue? What are the parameters I need to look for?
I couldn't configure the device as Slave (above 127 mac address). If I configure as a slave device, will it solve the issue? I had disabled the automac functionality and set my input as the MAC address.
Kindly help me.
Processor : STM32f4
Configuration:
MAC address : 121
MAC ID :107
MAC address : 122
MAC ID :106
MAC address : 123
MAC ID :105
MAC address : 124
MAC ID :104
MAC address : 125
MAC ID :103
Baudrate : 38400
Network ID : 26
Total number of objects per device 36.
Thanks,
Paramasivan.
Last edit: Paramasivan S 2018-09-03
Paramasivan
Do you have a capture of the MS/TP bus traffic? (See demo/mstpcap for a tool&docs). Look at that and see what is happening.
Also, try setting your MAC addresses low in the range -e.g. 1-5, and max-masters to e.g. 10. That SHOULD NOT be the cause of your problems, but may provide a clue as to what is broken. Since Steve has tested 128 nodes in a network, I am going to bet it is not the stack. ;)
Ed
Most of the time the problem in newly developed products using this stack relate to the FSM timing violations. The MS/TP state machine was designed to be tasked consistently and to never exceed 5ms between invocations.
The typical microcontroller application architecture is a non-blocking main loop so that the mstp_receive() is called as fast as possible (along with every other application entity being non-blocking as well).
Another architecture is to call mstp_receive() from a 5ms timer interrupt, but separate the data received into a queue that is read later by main loop (application layer).
Another architecture is to call mstp_receive() from a 5ms RTOS task, incrementing the silence timer within that task.
Thanks for the reply. In my firmware , i am saving a log into SD card in every 5 mins. I had seen the drop in 5 mins interval (happening randomly not always). SoI had commented out the SD write section and running the firmware overnight. Still now i didn't get any communication drop. I will update the results.
One more doubt.
While discovering the objects from master,it shows as "Read only" for all objects(AV,BV) . I need to change in the setting as Writable point in master device, then i can write the values into .
What I will do to show as the wirlable objects during discover from master?
Thanks,
Paramasivan.
BACnet doesn't currently have the concept of marking points (properties) as read-only, read-write, etc. electronically (i.e. via protocol), so the only way another device knows if a property is writable is to try to write it, and the device will respond with write-access-denied if the property is not writable, or SimpleACK if written, or some other error if some other error occurred (out-of-range, unknown object, etc).