background image

Fidelix FX-RP multiDISPLAY  

Programming manual  

page 33 of 38  

How to work with input/output registers 

Each display point (POINT1, POINT2, ..., POINT250) has 6 registers attributed to it (3 input and 3 output).  
When making graphics, you can assign a unit and a divider (the number of decimals) to each point. You can 

also set these attributes from your master, if that is desirable, into register 0, 3, ..., 747. This feature is currently 

no longer frequently used. Its original purpose (during development there were only 50 display points) was to 

set the point type dynamically; having only 1 page, "looping through" different values. Currently that register is 

set at 0F99x16 (3993) if it has not been written over by the Modbus master. 
Each point has an "info" register (1000, 1003, ..., 1747) which indicates if the point’s value has been set from 

the display (=1). This is useful when you allow a user to enter a value (you ticked the “controller set value” box 

in the EditPoint dialog box in the graphics editor) and you have not defined #MIN and/or #MAX on the graphics, 

but want to validate the input, or simply monitor this register to detect changes in setpoints. In this case you can 

use the "Parameters, Divider, Unit" registers (0, 3, ..., 747) to initially hide the user input value, validate it in your 

master and only then write it to the display (bits 7 and 8 of the most significant byte, see 

Input Data

). 

A value set from the display will be saved into registers 1001+1002, 1004+1005, ..., 1748+1749. At the same 

time, it will set register 1000, 1003, ..., 1747 to "1", indicating a point's value has been changed locally. If the 

master reads these values, it can “confirm” them by writing the same value into registers 1+2, 4+5, ..., 748+749. 

Once that has been done, the display will set the info register (1000, 1003, ..., 1747) back to 0, again notifying 

the Modbus master that all points and values have been properly synchronized. 
A 4-and-a-half-minute video is available on Youtube to clarify this process

https://youtu.be/tEushV8ugsA

 

This rather complex process is however not always necessary. Actually, in most cases, we don't use it when not 

working with the Fidelix multi24 controller (where all of these functionalities are embedded into two functions 

GetDisplayPointF and SetDisplayPointF). Using a third party controller, the easiest way is to just write directly 

into registers 1001+1002, 1004+1005, ..., 1748+1749, overwriting any value from the display when the point 

value is editable from both the multiDISPLAY and the Modbus master.  

TL;DR: 

In most cases, you will have a very distinct separation between the points you want to read and the ones 

you want to write and only select “controller set value” for those points you will set from the multiDISPLAY. Read 

those from registers 1001+1002, 1004+1005 etc and write “read only” values on the multiDISPLAY that are 

being written by the Modbus master into registers 1+2, 4+5 etc. 

Trends (history) 

The  FX-RP multiDISPLAY  can show trends  with  up to 300 points.  The data is requested by the FX-RP 

multiDISPLAY from the Modbus master. The data is presented as 16bit signed integers, the divider is taken from 

the point definition. Instead of polling registers 2000 and 2001, the Modbus master may poll register 3012 which 

also contains information about requested trend.  

Reg2000 

0=Trend ready (cleared by Modbus master), 1=Trend request (set by display) 

Reg2001 

Point number of requested point 

Reg2002 

Minimum value (used for y-axis scaling) 

Reg2003 

Maximum value (used for y-axis scaling) 

Reg2004 

Sample interval (seconds, used for x-axis scaling) 

Reg2005 

Number of points (max 300) 

Reg2006 

Last unsaved measurement 

Reg2007 

seconds from last unsaved measurement (0=not used) 

Reg2008 

Update interval (seconds, 0=not in use) 

Reg2009 

reserved 

Reg2010 

Trend data start (300 registers) 

Reg2011 

 

… 

 

Reg2309 

Trend data end 

Summary of Contents for multiDISPLAY FX-HP

Page 1: ...ing projects on the multiDISPLAY 14 Loading projects into the FX RP multiDISPLAY s internal memory 14 With an FX controller 14 With a multi24 module and a PC 15 With a µSD memory card 15 Using graphics from a μSD Card 15 Minimizing binary file size 15 Multiple projects on one μSD Card 16 Uploading a project via Modbus 16 Detailed programming 17 Introduction 17 Visualisation customisation 18 IEEE 7...

Page 2: ...X RP multiDISPLAY as a slave and a master device uses the Modbus RTU protocol The FX RP multiDISPLAY has 250 predefined points POINTxxx that can be freely used Each point has 6 registers containing its value unit divider etc see Input data and Output data When working with other Fidelix devices the programmer does not need to know about the Modbus registers for the multi24 all necessary code is ge...

Page 3: ...andard European pattress box electrical socket or light switch size Both have external dimensions of 85x85mm The FX RP A is straight The FX RP B is 7 tilted upwards The FX RP C is without encasing The FX HP Fidelix Hand Panel Though the PCB for the Room Panel and Hand Panel have a different shape they have in fact the same hardware specifications and can thus be used with the exact same software ...

Page 4: ...he second generation displays use a processor with product code STM32F405 and require firmware with version number 2 xx You can also recognise the different generation displays by their different programming connector the red plastic connector used during production capacitor the part looking like a small button battery holding time schedule settings and the clock for 10 50 hours and tamper switch...

Page 5: ...d from a link on the multiDISPLAY After calibration the settings screen is opened Time Date Modbus address display brightness and the five internal time schedules can be adjusted from this page Also the firmware version is show here and click sounds can be en disabled the orientation of the display can be changed and the precision of the screen can be adjusted by selecting finger mode Here the fiv...

Page 6: ... the RDFW BIN file to update several displays consecutively by naming the file RDFWKEEP BIN Basically this has the same effect as having both the RDFW BIN and the RDFW_LOADED BIN file on the μSD card Using the FX RP multiDISPLAY with the Fidelix multi24 room controller module The FX RP multiDISPLAY can be connected to the multi24 s external bus either using the RJ12 connector or via the P2 G0 EA a...

Page 7: ...or all files The second way to achieve the same goal is by following the steps below carefully sometimes the unblocking doesn t seem to be enough and then the following method needs to be used 1 Unzip the program preserving the subfolder structure and save the folder on your local hard drive 2 Delete the downloaded zip file 3 Re zip the whole folder you just unzipped locally and save the new zip f...

Page 8: ...asiest way to mark the available graphics area is to put an element without pointID at 320 X and 240 Y pixels like in the example files Important to know is also that the project folder and the graphics editor program folder have to be on the same logical Windows drive e g C because of the same Windows rights reasons the editor needed to be unblocked With the editor a set of htm pages can be made ...

Page 9: ...gh the pages in your project folder Be careful when switching from page to page through the menu any unsaved changes will be lost and there is NO popup box to remind you to save changes Caution Trying to load the FXINDEX page without it being present in your working folder will cause an error like this to pop up and will cause the editor to completely freeze or get stuck in an endless loop of erro...

Page 10: ...aphical elements have to be either bmp gif dynamic gifs don t work on the display jpg jpeg or png Display points are referenced by their pointID POINT1 through to POINT250 Modbus master points are defined by using MODBUS followed by the configuration of the point in the pointID input field If you want to use a multi stage image like the power buttons in the example pages enter the desired values t...

Page 11: ...programming section HTML to Multi Display Room Display Converter The program s UI The Open file button is used to start the process Select the htm page that you want to use as a start page each time the display is powered on Also any links inside your project to CLOSE will direct the user to this page The converter can also be used to check how much memory a single image will take after conversion...

Page 12: ...ackground for images The loading of images takes more time if a transparent background is used If not selected then instead of transparency the page s background colour is used The Use Transparency for Text selection defines if you want to have transparent background for text The loading of text takes more time if a transparent background is used If not selected then instead of transparency the pa...

Page 13: ...settings and the converter The converter works in such a way that it loads each page and then takes a screenshot of your actual computer screen This means that during conversion no other windows are allowed inside or on top of the converter window as whatever is placed on top will be visible on the display Make sure to set the Microsoft Windows zoom or scale factor to 100 in the Windows settings H...

Page 14: ...ou want to use the graphics from the FX RP multiDISPLAY s internal memory the uSD card tick box is NOT ticked When the box is not ticked the converter will generate 1 file that contains the whole project and that will be copied into the display s internal memory When the box is ticked the same file will only contain the used fonts of the project and links to the files on the µSD card With an FX co...

Page 15: ...the FX RP multiDISPLAY A μSD card also needs to be used if more than 768 kB storage space is needed When using a µSD memory card please make sure you are using cards of good quality from a trustworthy manufacturer SDXC cards are not readable by the FX RP multiDISPLAY A good reference list for memory cards quality can be found here https elinux org RPi_SD_cards Minimizing binary file size If your p...

Page 16: ... card can then be removed making this a very useful feature for situations where you don t know in advance with what equipment the FX RP multiDISPLAY is going to be used Uploading a project via Modbus Graphical pages stored on the FX RP multiDISPLAY s internal memory or on the µSD can be updated through Modbus registers 65278 65343 by any Modbus master 65278 65341 64 data registers 65342 statusCPU...

Page 17: ...sed in the yellow part is to 1 define the number of decimals and the unit displayed 2 help to get the graphics correct during design Ticking Show point value will enable the displaying of the actual value of the point or register mentioned in the PointID field When not ticked the middle column needs to contain the texts that will be shown when the point has the corresponding value specified in the...

Page 18: ... to evaluate this user entered value Showing text based on the value of a point like for instance on off day night or off startup slow fast error is done by selecting a text type element and writing the desired values and corresponding texts in the yellow box inside the EditPoint dialog box More details can be found in the Status texts section later in this document To use a multi stage image like...

Page 19: ...aling out completely The hiding is particularly useful when your value has decimals as the Low Middle and High values are before division for example if one decimal is in use and you need to limit minimum value to 10 0 use parameter MIN 100 The Middle value can be omitted and even HAS to be omitted when using this combined with the NOEDIT tag NOEDIT makes a Bar Display element only show a value wh...

Page 20: ...ributed to it So only the actual received value can be visualised Increment Decrease Minimum Maximum When a symbol or button is selected this can be used to increment or decrease the value of a point For this the pointID just contains the point name e g POINT145 and in the Fixed value field 3 numbers separated by spaces define the incrementation or decrementation step the minimum value and the max...

Page 21: ... consumption to the screen show the price that needs to be paid To use math operators simply add a suffix to the pointID field POINTxx MATH POINTyy POINTzz POINTxx MATH POINTyy POINTzz POINTxx MATH POINTyy POINTzz POINTxx MATH POINTyy POINTzz This function is only available during slave mode operation Status texts By default the number of different texts for fixed values so called Status Texts is ...

Page 22: ... for example when you are making a text input page Time and date temperature firmware version and Modbus address Time date locally measured temperature and the display s firmware version and Modbus address can be displayed in various ways pointID Further customisation in Text field of the EditPoint dialog box Result TIME n a 16 23 45 TIME2 n a 16 23 TIME3 hh HH 24h 12h without leading zero mm minu...

Page 23: ... rest of the project layout and graphical style For this use following pointIDs Day selection 0 not active 1 active TIMESCH1_MON TIMESCH1_TUE TIMESCH1_WED TIMESCH1_THU TIMESCH1_FRI TIMESCH1_SAT TIMESCH1_SUN TIMESCH5_MON TIMESCH5_TUE TIMESCH5_WED TIMESCH5_THU TIMESCH5_FRI TIMESCH5_SAT TIMESCH5_SUN Time schedule status Any integer value from 0 15 TIMESCH1_STATE1 TIMESCH1_STATE5 TIMESCH1_STATE2 TIMES...

Page 24: ...like it does when you trigger the calibration by pressing in the same spot on the display for 10 seconds If DISPLAY_SETTINGS is specified in the link field of the object the link will go to settings page immediately a page otherwise brought up by long pressing on the same place on the multiDISPLAY Dynamic links can be created by using the value of a display POINT to select the page to navigate to ...

Page 25: ...pages can be force shown at any given time meaning the user doesn t have to be on the page containing the link for the linked page to pop up when instructed so by the Modbus master This function is only available during slave mode operation If HISTORY is suffixed to the pointID from which the link is called in this case the linked must be called from one of the 250 points the history graph window ...

Page 26: ...on1 png FdxButton2 png FdxButton3 png FdxButton4 png FdxButton5 png FdxButton6 png FdxButton7 png FdxButton8 png FdxButton9 png FdxButtonBackSpace png FdxButtonPlusMinus png FdxButtonCancel png FdxButtonDot png FdxButtonOk png The multiDISPLAY demo projects folder contains an example project folder named Keypad example that will help you on your way Extended UTF 8 character support The FX RP multi...

Page 27: ...egister order IEEE 754 dual register single precision floating point IEEE 754 dual register single precision floating point with reversed register order bitmask operation for register bitmask is presented in hex format and it can contain one or more bits set Example BITMASK 0020 means the 6th bit In addition to these settings some serial settings and other communication related settings are needed...

Page 28: ...es are not shown on the multiDISPLAY In this case it can be used in combination with MODBUSDEVICES AUTO MODBUSDEVICE ADDRESS 10 READREG 33 WRITEREG 4 COUNT 1 TYPE HOLDING TIMEOUT 250 Affects only if MANUAL mode defined Use this to make a field that shows the value of register 33 but that writes to register 4 The slave will most likely handle the writing of the value you write into register 4 into ...

Page 29: ...at when using a lot of Modbusdevices you calculate the actual memory used The multiDISPLAY demo projects folder contains an example project folder named Modbus master example which will help you on your way Also the folders text editing example basic example and time editing example contain example files for the master functionality An example of each of the features available in the ModbusMasterS...

Page 30: ... 2 COUNT 1 SOURCEREG 3001 TIMEOUT 300 SENDREGISTERS ADDRESS 10 WRITEREG 5 COUNT 1 SOURCEREG 3002 TIMEOUT 300 SENDREGISTERS ADDRESS 10 WRITEREG 8 COUNT 1 SOURCEREG 3003 TIMEOUT 300 SENDREGISTERS ADDRESS 11 WRITEREG 2000 COUNT 1 SOURCEREG 3004 TIMEOUT 300 SENDREGISTERS ADDRESS 29 WRITEREG 456 COUNT 5 SOURCEREG 3007 TIMEOUT 300 local minute 0 59 SENDREGISTERS ADDRESS 12 WRITEREG 1044 COUNT 1 SOURCERE...

Page 31: ...1 Reg00 Parameters Divider Unit Reg01 Value 16 highest bits Reg02 Value 16 lowest bits POINT2 Reg03 Reg04 Reg05 POINT3 Reg06 Reg07 Reg08 POINT250 Reg747 Parameters Divider Unit Reg748 Value 16 highest bits Reg749 Value 16 lowest bits The Parameters Divider Unit register is divided into two Parameters Divider most significant byte of the Parameters Divider Unit register and Unit least significant b...

Page 32: ...ernal Modbus master reads from these slave display registers POINT1 Reg1000 Info Reg1001 Value 16 highest bits Reg1002 Value 16 lowest bits POINT2 Reg1003 Reg1004 Reg1005 POINT3 Reg1006 Reg1007 Reg1008 POINT250 Reg1747 Info Reg1748 Value 16 highest bits Reg1749 Value 16 lowest bits The Info register contains 0 if the value is not set from the display and 1 if the value set from the display The FX ...

Page 33: ...e Modbus master that all points and values have been properly synchronized A 4 and a half minute video is available on Youtube to clarify this process https youtu be tEushV8ugsA This rather complex process is however not always necessary Actually in most cases we don t use it when not working with the Fidelix multi24 controller where all of these functionalities are embedded into two functions Get...

Page 34: ...is Reg2315 Divider Reg2316 Point count Reg2317 Hairline 0 do not draw 1 draw Reg2318 adjust buttons 0 no buttons 1 upper left corner 2 upper right corner 3 lower left corner 4 lower right corner Reg2319 reserved Reg2320 X value of point 1 Reg2329 X value of point 10 Reg2330 Y value of point 1 Reg2339 Y value of Point 10 String Variables The string section registers 2400 2911 is divided into 8 bloc...

Page 35: ...ur multi 24 module If the FX RP multiDISPLAY is connected directly to an FX controller these registers should be handled by using Modbus devices Reg Function R W Notes 3000 Internal Temperature Measurement in C R Multiplied by 10 for example 255 25 5 C 3001 Current Day R Current Day 1 31 3002 Current Month R Current Month 1 12 3003 Current Year R Current Year e g 2018 3004 Current Hour R Current H...

Page 36: ...ction 3047 Calibration Page R W 0 normal 1 disabled also the settings page will be disabled 2 skip calibration and jump directly to settings 3048 Calibration delay R W 0 normal 7 sec all other values seconds 3049 Startup sound R W 0 normal Positive action in Quiet mode 1 or higher startup sound disabled 3050 En Disable Daylight Saving Hour Change R W 0 enabled default 1 disabled no automatic chang...

Page 37: ...added READREG xx WRITEREG yy for master added Added feature to send fixed values from the display master depending on the internal time schedule status 1 58 1 23 Added SINGLEREG for reading writing single holding registers from the multiDISPLAY as Modbus master 1 59 1 25 Register 3053 can now be set from the local display itself also 1 60 1 27 Added dynamic links 1 63 Added free graphical interfac...

Page 38: ...master mode Increased available memory for projects in V2 displays File table is now dynamic when more than 2 kB are needed for the internal file allocation table the converter will dynamically attribute more memory to the file table Added LOCKPATH feature to make another project start up by default Added possibility to hide on BIT or BYTE value Added UNITSPACE PointID suffix x 96 1 51 Small fix l...

Reviews: