07-03-2026 08:03 AM
Hello,
First of all, due to work ethics / confidentiality, I unfortunately cannot share my project files.
I am working on a LabVIEW (2025 Q3) application for communication via Modbus. My application creates Modbus requests for holding registers, both read and write. The data read from the device is displayed in a table.
In the front panel screenshot, the current layout is marked as follows:
[1] Main table with read values and tag information
[2] Separate "NewValue" table where the user enters the value to be written
[3] Separate "Write" buttons used to confirm writing the value for a given row
If a tag / row / register has its access type defined as RW (ReadWrite), user can change its value by entering a new value in the corresponding row of the NewValue table and then pressing the Write button on the same row.
Quick note: Keeping all the data as holding registers is intentional, because it minimizes the number of requests needed to get all the information from the device. I know that input registers exist. 🙂
The current solution works, but it does not look very professional. I also have problems keeping these three UI elements aligned with each other. After building the application, the table, NewValue column, and the buttons are sometimes slightly misaligned or have different sizes.
Ideally, I would like to have the editable cells and the write buttons directly inside the main table, next to the corresponding read values. However, UI design and programmatically modifying UI elements are not my strongest areas, so I would appreciate suggestions.
What would be a cleaner and safer way to implement this kind of UI in LabVIEW?
I have also attached a simplified block diagram screenshot showing how the current write logic works:
I search for the pressed button.
I use the index of the pressed button to select the corresponding value from the NewValue array.
I use the same index to select the corresponding row from the main tag table.
These values are then used to create the Modbus write request.
Any suggestions regarding a better UI architecture or a more robust implementation would be appreciated.