LabVIEW Real-Time Idea Exchange

Showing results for 
Search instead for 
Did you mean: 

Provide external method for adjusting cRIO module/channel properties

Status: In Development

Working on more robust system configuration and management solutions: Point of VIEW-System Configuration Gauntlet Accepted

I have just gone through a somewhat painful support process to figure out how to adjust something as simple as the analog channel scaling on a NI-9203 module installed in a cRIO rack.  Why there is no external way to adjust those properties, besides having a development system hooked up and accessing them through the Project Explorer, is a little baffling.  After going a little round and round on the support call, it came down to this:  modify your embedded program to include property references, where you can adjust the scaling programmatically.  That means I need to modify my code, rebuild the executable, email it to the customer, get them to shut their entire line down, put the cRIO in the "don't run your startup VI" mode, upload the new program, restart, then finally get their entire line back up and running.  All because they need to change the scaling on one 4-20mA analog channel from 0-400 to 0-500 units to match their PLC control system changes.


Seems like there should be a way to get into that configuration, maybe in MAX?  We can see the cRIO processor, but can't get individual module or channel configurations.  Distributed System Manager might be another place that properties could be adjusted.  Anything to make the cRIO simpler to support in the field!

Knight of NI

Hi Vrmithrax,


to be honest: it's up to the programmer to provide adjustable settings. When you programmed all this with constants you cannot put your customers PITA on NI...


I tend to use some CSV files to store all relevant settings (including scaling of analog inputs). The cRIO exe loads those files, you can change them by FTP and you can send a command to your cRIO to re-load them at run-time. BUT: you have to program all that, when you need it!


I would support your idea when you say: "Hey NI, let's provide an example showing how to use settings changable at run-time!" But right now: no Kudos...

Best regards,

using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019

Hi GerdW,


I definitely see where you are coming from, and a "channel configuration" type of configuration file is something I will be incorporating into my code.  My suggestion is more tailored towards getting a system like the cRIO platform accepted as comparable to a PLC controller, at least from a customer/consumer perspective.  Electricians in plants and mills are used to being able to just pop in and reconfigure a system's I/O easily.  That's actually part of why I ran into this issue - typically nothing really changes after installation and startup of my NI-based equipment, but in this case the mill updated their entire system and were able to safely run at higher speeds (partially due to enhanced performance through our cRIO control system).  It's actually a nice problem to have, that our very fast and efficient system is helping their entire line run faster, right?  The problem is often that a system like a cRIO becomes a "black box" option, which is way outside a typical plant or mill's maintenance and electrical personnel comfort zone.  Allowing a non-PLC system in is often a hard sell, and the more hoops required to jump through or even minor inconveniences your system causes, the more likely they are to develop reservations about it.  Getting these people to recommend a system often makes or breaks the continued success of that product line.  It's often more about perception than reality, unfortunately.  We could be the best thing since sliced bread, but if the customer thinks it's too hard to butter, they won't buy it.


Our old FieldPoint controllers required manual scaling and I/O parameter configurations, so it's not completely alien.  I just found it a bit frustrating that the cRIO system provides much of those features (which simplifies the program and initialization routine), yet still requires hardcoding a manual configuration option if anything could possibly change at any moment.  It just seemed like a simple method of accessing and changing those base module parameters could be implemented, considering all of the tools we have available (MAX, Distributed System Manager, etc).

Active Participant
Status changed to: In Development

Working on more robust system configuration and management solutions: Point of VIEW-System Configuration Gauntlet Accepted

Deborah Burke
NI Hardware and Drivers Product Manager
Certified LabVIEW Architect