Guidelines for programming S-Bus communication
FAQ #100537
In order to achieve a high and constant data throughput with S-Bus, the following guidelines can be helpful for the programmer of S-Bus communication.
S-Bus in Fupla
- Fupla handles all Transmit- and Receive FBoxes equally. By default, all requests are handled cyclically and are serialized automatically.
This means that the value of an alarm flag is sent as often as the value of an outside temperature (that generally doesn't change within minutes).
- S-Bus communication is always commanded by the user program. The performance can be influenced by the cycle time of the user program.
Given the cycle time of the user program is 300 ms, in maximum one telegram will be sent every 300 ms, too.
- Every FBox creates one telegram per communication cycle.
- A telegram can hold up to 128 bytes (array of 32 registers or 128 flags).
The transmission of a telegram that contains 128 bytes doesn't take much longer than the transmission of a telegram with 1 bit data (the times are depending on the baud rate).
On the other hand, sending two telegrams take double the time than sending one telegram.
This results in the fact that the performance is rather depending on the amount of telegrams than on the bytes transmitted.
Conclusions
- Send multiple medias with one FBox whenever possible.
Use the FBoxes "Transmit- respectively Recive quick".
- In order to increase the communication performance, it is recommended sending slowly changing values in intervals.
One possible solution for this could be two or more send- or receive FBoxes that are enabled alternatively (see fupla page above). Make sure the enable time of each of these FBoxes is at least equal to the communication cycle.
- Transmit In- and Outputs as flags (in an array). Or, even better, map them into registers.
This way telegrams (and therefore communication time) can be spared.
- Use the "S-Bus station (-IP)" FBox in order to avoid massively higher communication cycle times in case of a slavestation failure!
This FBox does not constantly send telegrams to a station known as missing but only in intervals (after a short- or long reconnect time). Also refer to FAQ 100496 in case PCD7.Lxxx modules are used.
- For receiving slowly changing values consider using the FBox "Receive Integer Multiple" (only PG5 1.4 and higher)
Depending on the project not all or only few of these actions can/should be taken.
Categories
Local FAQ Deutschland / Fupla
Communication / Ether-S-Bus
PG5 2.0 / Profi-S-Bus
PG5 2.0 / Serial-S-Bus
Last update: 01.06.2015 06:55
First release: 01.03.2006 09:52
Views: 7104