alexeshoo / modbus_visualizer Goto Github PK
View Code? Open in Web Editor NEWA simple GUI tool for monitoring data on Modbus devices
A simple GUI tool for monitoring data on Modbus devices
From the wikipedia page for modbus:
coil numbers span from 000001 to 065536,
discrete input numbers span from 100001 to 165536,
input register numbers span from 300001 to 365536,
holding register numbers span from 400001 to 465536.
Therefore the maximum register number accessible (and decodable in uin16) is 65535. This is the highest register that should be allowed by the program to access. The startRegisterSpinBox
should allow this value since a poll of data length 1 is valid for that start address, but the program should limit the value in the numberOfRegistersSpinBox
to max(65536 - startRegisterSpinBox.value(), 100)
to prevent illegal data access.
The console message signal should accept a color option which is printed to the console in that color when received. The console window is an HTML box, so we can utilize that appropriately.
Example: Error messages should show up as red in the window.
Currently the timout for the modbus client is set to default and despite there being a timout spinbox in the GUI for the serial interface, it does nothing. The timout setting should be set as a common setting for both client types and actually affect the client.
There should be a tick box on the GUI to add timestamps to the messages in the console window. Perhaps even a tickbox to show the console message number as well.
The behavior should be such that when it is toggled, the entire console window is updated with the timestamps/message numbers for each message in it.
This means that meta data should be stored in the program and the entire console window should be written over each time with the appropriate data on settings change.
Could you clarify about the modbus index? It looks it should start at 1 but on this project, it starts (in the GUI) at 0
There are a lot of messages thrown to the console and often it is impossible to see them since they are immediately overwritten with new ones. The console should be scrolling to show all past messages.
Serial and TCP connections need to be properly released when the applications exits.
The control sequence of the initiation of signals and slots in the restructure branch is bad. Fix it.
The number 0x8000
is displayed as -32768 when the display mode is signed short.
From the Wikipedia page for C data types:
Short signed integer type. Capable of containing at least the [−32,767, +32,767] range;[3][4] thus, it is at least 16 bits in size. The negative value is −32767 (not −32768) due to the one's-complement and sign-magnitude representations allowed by the standard, though the two's-complement representation is much more common.[6]
Need to investigate and see if this is a problem and how it can be fixed if so.
The padding 0
s for ocal numbers may be the wrong length. Octal numbers are currently padded to 5 character, should be 6 I think
Hi @AlexEshoo ,
This is a very useful tool. It would be great if you could add a license to allow others to use and/or develop.
When polling registers, if a data type of size 4 bytes is selected, but the register length is an odd number, the data is truncated and the last half value is not displayed.
This can be confusing when 1 register is selected as the length, as no data will be displayed at all when the program reports a successful poll.
Either a console message should be made, or the poll request should be updated such that the length of the poll is rounded up to the nearest even number. It should also be reflected in the numberOfRegistersComboBox.
When writing data to the modbus it is possible to enter text in the second half of the register displayed which results in the value written to write half of two different pairs of registers.
For example, when displaying floats, it is possible to write to register "1" which results in the value of the 0,1 pair and 2,3 pair being affected since the value is written to register 1 and 2. This should either be prevented or made to write to register 0,1.
When changing modes from Serial to TCP connection, the modbus worker client is not reconfigured if none of the children settings changed for the new network type.
The Network type radioboxes need to be connected to the configure client method in the same way the children widgets are.
The negative sign for numbers represented as hex, octal, or binary is inserted between the prefix identifier and the number. Example: 0x-BAD1
. It should be: -0xBAD1
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.