Excel ActiveX control JPIN value

Mason Lieb 1 year ago in IQANsimulate updated by Gustav Widén (System support) 1 year ago 3

I'm working on developing a method of automating simulations based on the "IQANsimulate control.xlsm" excel file. This is the file included with the IQANsimulate installation and described in Chapter 5 of the user manual for external control. Generally, the file has been easy to work with but I cannot seem to directly control the value of a J1939 Parameter In (JPIN) channel from this Excel sheet.

Image 3478

For the above screenshot, the channel listed is set up in a simulation group with manual control. When running the simulation, the output reading for the channel does not change and returns status 201 (J1939 not available). Even if I set the status for the channel to be 64 (OK), I get a status message on the input side of J1939 not available.

To get around this, I can control the JPIN channel with another system input (like a digital input), but that requires that I modify the IQANdesign project and add additional inputs to the master module(s). Another potential method of controlling the JPIN value could be using the signal generator option, but then my question becomes can I set the values for this signal generator externally in the Excel sheet?

Basically, I want to know if/how I can control the JPIN values from this excel sheet or in general from an ActiveX/COM integration with IQANsimulate. Thanks!

Satisfaction mark by Mason Lieb 1 year ago

It looks like the parameter you are controlling is a 2-bit JPIN with J1939 error check, value type Boolean, so the attempt to enter TRUE as value seems logical. But it does not work. 

If you instead enter the integer value 1 or 0 in the field for either raw or scaled value, the simulation control will set the JPIN to True. 

Image 3482

JPIN status can only be controlled indirectly, from the input value. For a 2-bit JPIN, raw value 3 give the status J1939 Not available. 

What I think happens is your test is that the text TRUE in the cell for raw value gets interpreted as an integer, and this happens to be a value with ones in the two least significant bits.. 


That seems to have worked, not sure why I hadn't thought to try that before. Thanks for the help!