Change EPIC ITM Point Type Programmatically

Is it possible to programmatically change points on an ITM module from Thermocouple to mV and back? Either through PAC Control or Node Red?

Hi Joey! Yes, you can do this from either PAC Control or Node-Red. The values can be configured using OptoMMP - https://documents.opto22.com/1465_OptoMMP_Protocol_Guide.pdf. Check out the section called “Configuring I/O Channels for groov I/O Units”

Thanks! What if I have a control strategy though. I don’t want to have to have someone change the type in the control strategy. Or will changing it through OptoMMP overwrite the strategy?
I’ve usually done this through the PC SDK since most of my Opto programming is PC control. But this one will be just the EPIC.

That is a great question. If you have a control strategy running, that will overwrite any outside configurations as far as I know.

Only on a download or re-config.
If you don’t stop / start the strategy often, when you make the change via MMP, it will stick around.

The scenario involves a system to test products with multiple sensors. Some of these may be temperature and some may be voltage and the combination may change depending on the product under test. Rather than having separate modules for temperature and modules for voltage, my thought is we would have a common set of modules and the user could setup which inputs will be temperature and which will be voltage when they setup the test (which can last for several weeks). When the test starts, it auto configures the modules for the selected input types.

Perhaps I could put the configuration as the first thing in the test chart. It will run on power up and strategy start.

I have not tried this with Epic yet, but with the SNAP you could build the strategy without the IO Module. Then sense the module type and then do all the configuration with MMP. With SNAP you could save it to Flash so that a reboot reloads the last setup.
With EPIC it might work well since every module type can be detected through MMP. With SNAP you could not specifically identify some of the 4 channel module types.

Maybe create a set of persistent variables that describe the types and details about a particular channel. Then on startup (or change) I would run through those channel setups configuring the details in the memory map per channel.

That could work.
It’s been a long while, but there is a PAC Control option of having a pre-run (like a before you start recipe) file. You could set things up like that as well as what @dengsberg suggested.

Which command do I use? Is it WriteNumToIoUnitMemMap?

You will probably use both Write Number to I/O Unit Memory Map and
Write Numeric Table to I/O Unit Memory Map.