I have started to use DQMH on a project that is about controlling step-motors, controlling magnetizer and reading position encoder using FPGA.
My idea is to use DQMH. The application will be made of independent modules but they have to communicate asynchronously.
My question is...is the DQMH module appropriate choice if one of the modules is FPGA module that is doing RT measurement and controlling HW? Will you advice me to use DQMH or there is other, better way to realize it?
Just to be clear, you can't use DQMH on an FPGA. I don't think that's what you meant, but wasn't 100% sure!
Having said that, I have been doing a project that is a high speed image acquisition and analysis project, running on an Industrial Controller IC-3120, and the RT application is written in DQMH.
I have setup a DQMH module to interface directly with the FPGA via the FPGA interface VIs (ie. Read/Write Controls mostly), and in the very same DQMH module acquiring and analysing images from a camera - they are in the same module because I needed them to be tightly coupled and for optimum performance.
The FPGA is handling a digital trigger input to start the acquisition and analysis process. The FPGA informs the RT when this trigger is received via an interrupt. Then the RT module performs image acquisition and analysis. The FPGA is also managing the camera trigger, which needs to be very precise. Then the RT module informs the FPGA (via a Read/Write Control) of the analysis results, so that the FPGA can set a digital output to indicate PASS/FAIL.
The RT DQMH module is doing most of this work in a Helper loop, because the process defined above is running continuously.
So long story short - yes DQMH works fine!
thanks for considering to use DQMH.
We do use DQMH on RT systems, and we also use DQMH modules to manage FPGA communication. It's a great approach to encapsulate the details of the FPGA part into a module. You can't use DQMH on FPGA itself.
From my personal experience, nothing speaks against your plans.
Edit: Chris beat me to it. That's what you get for forgetting to hit the "Post" button...
Thank you very much for reply.
I didn't mean that I will like to program FPGA code with DQMH. I was thinking exactly as you described bellow, so that I have some FPGA code running somewhere in my HW and then I'm just asking FPGA with I/O nodes for some data in my top level application. Application will be programmed in DQMH and some of its modules will like to access FPGA data.
Do you have any simple example of your project? Sounds exactly what i'm looking for...
Thank you for idea.
So when using DQMH... If I want to continuously reading data from FPGA RIO for example, I have to implement reading in DQMH Helper Loop? So the FPGA Read/Write Controls are called in Helper Loop?
Sorry AndrasZ - I don't have any examples I could share (without customer specific logic) right now.
It would be nice to try and create some sample code for these sorts of things, but it might be a while before I can get to that.
It might be worth your while seeking help from a DQMH Trusted Advisor. Several DQMH Trusted Advisors offer training that can be tailored to your application. Go to dqmh.org for more information.