From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Triggering injections (NI 9751) whenever Boolean outputs TRUE

Dear NI Community Experts,

 

I sincerely need your expertise and inputs for building FPGA/RT VIs for triggering the fuel injection (NI 9751).

 

Background:

I am trying to make VIs for controlling my automobile engine experiment. My engine does not have an engine block (I am only using the cylinder head part) and therefore there is no crankshaft. I am using an electric motor connected to a Camshaft to spin the camshaft and to operate the intake/exhaust valve trains. Piston is fixed and I am using only one cylinder, meaning only one DI injector. However, as I need to operate the high pressure fuel pump as well to supply the fuel (gasoline) to the fuel rail, I connected the DI injector to Ch#1 of NI 9751 and high pressure fuel pump to Ch#2 of NI 9751 module.

 

Based on my understanding, it is usual to use an EPT VI to track the engine position and use this to control/trigger the DI Injector injections. However, as mentioned above, I am only reading a Camshaft signal which provides long-long-short-short pulses per revolution. I am currently accepting some error due to having just one camshaft signal as a reference for triggering injection and ignition.

 

Until now, though there is a lot to improve, I managed to have a FPGA and a RT VIs (attached) for triggering the spark ignition and separately controlling the DI injector. However I would like to trigger the DI injection (and the high pressure fuel pump) as well at the same time as the spark ignition whenever my Boolean outputs TRUE (as for now; I think I can manage/change the delay time in between fuel injection and spark ignition later)

 

Issue:

The main issue I am currently having is that I have no clue how to connect my Boolean output to DI injector to trigger injection. What I would like to do is activate Ch#1 and Ch#2 of NI 9751 DI Injector module whenever my Boolean outputs TRUE. Similar approach was done for Spark Ignition as you can see in the FPGA VI attached. And this worked just fine. I just want to do the something with the DI injector.

 

Initially I thought it would be as easy as connecting my Boolean to “One Shot” button in the [DI Control] tap shown in Front Panel of both VIs. However this [DI Control]’s block diagram is password protected and therefore I was not able to connect my Boolean to this “One Shot” button. Even if this did work, another issue is that this “One Shot” button is meant for one channel at a time. As I need to activate both Ch#1 and Ch#2, I think I need a different approach which I have no clue as of now (I understand that two channels cannot overlap, but I am currently aiming to activate them one after another with the minimum delay possible).

 

Do you have any idea on what to do in the “case loop for DI Injection” (shown in FPGA VI attached) so that I can trigger Ch1 and Ch2 of NI 9751 whenever my Boolean outputs TRUE? Thank you in advance!

 

Sincerely,

Dong Eun Lee

 

FPGA and RT VIs are attached.

System configuration:

-Controller (8 slots): cRIO 9045

-Slot 1: NI 9751 DI Injector Module (Ch#1: DI Injector, Ch#2: High Pressure Fuel Pump)

-Slot 3: NI 9757 O2 Module

-Slot 5: NI 9211 AI TC Module

-Slot 6: NI 9263 AO Module

-Slot 7: NI 9205 AI Module

-Slot 8: NI 9402 DIO Module

Download All
0 Kudos
Message 1 of 2
(1,874 Views)

Does this question still need an answer?

0 Kudos
Message 2 of 2
(1,490 Views)