[Python] Choosing a language/framework for a Lab Equipment Control GUI (Modbus, TCP/IP, CSV)...

Discussão em 'Python' iniciado por Stack, Junho 3, 2025.

  1. Stack

    Stack Membro Participativo

    I am just starting at a new job, and I have been tasked with creating a test setup (controls + GUI) for some new lab equipment they got, based on an old setup. The old setup uses LabView for communication and to file IO. However, they’re looking to move away from LabView and are looking for a dedicated program. I have a lot of flexibility, but that can make it difficult to make decisions :). Some high-level requirements of the system are:

    • Modbus Communication (USB to RS-485)
    • TCP Ethernet (for a DAQ (Data Acquisition Device)
    • Ability to write to CSVs (and potentially to a SQlite Database)
    • GUI for sending control signals, loading configuration files, etc.

    Most of my programming background is in embedded C, and I really don’t have much experience building desktop application (though I do have some experience with Linux command line and setting up desktop environments). That leads to option 1: C (likely on a Raspberry Pi). They already have a Raspberry Pi setup for a smaller-scale system that has a command-line “GUI”, but my system would need to be more complex and would ideally have a real GUI with buttons,sliders, dials, etc. Through research, I could use something GTK to make the GUI and use C libraries for the IO. I would know that once the system is bult, it would be responsive and reliable. And my experience with C would likely result in a smaller learning curve (though I don’t have much experience with memory management and large-scale C projects).

    However, this doesn’t have strict timing constraints. It will be sending and requesting data/commands every second or so and therefore also won’t be resource intensive. This leads me to believe that Python would also be a viable option. I feel that even though I don’t have too much experience in Python beyond some data science applications in college, from what I’ve researched, creating the GUI would be much quicker and streamlined. Furthermore, access to libraries for Modbus, ethernet, etc., from what it seems, would be more accessible than system level libraries. It seems that python have the capability to perform all these functions with a GUI, but I’m determining if it’s (generally) quicker development will make it worth the learning curve. Few people here have used Python, so they’re unable to tell if Python is a reliable option.

    Lastly, another option is C# through visual studio, any thoughts on that? From what I understand it’s simple to make a standalone app, but that would likely also require me to use a Windows machine. That is potentially problematic because our company has strict requirements for security and updates for Windows devices (whereas the Raspberry Pi would stay offline). But, if C# development is more straightforward and worth the Windows hassle, then it’s an option too.Any input from anybody with experience with similar projects would be greatly appreciated. Thank you!

    I have already put a lot of research into these different frameworks, but it's difficult to tell which one offers the best balance of development speed for the GUI, ease of integrating hardware communication (Modbus/TCP), and long-term maintainability for someone with my C background. Each option seems to have significant pros and cons for my specific use case.

    Continue reading...

Compartilhe esta Página