You can always define an HMI variable that accesses the IDB. That would make it possible to read the IDB values. TEMP is not possible (of course !).
To write into an IDB from an HMI is highly problematic, I would never do it.
You can define the address of tags by indirection. I.e. the DB is fixed, but the element is defined by another tag. Such as %DB100.DBW["Recipe_no"]
Or the DB is variable while the byte offset is fiexed, or both DB and byte offset are variable.
I have never used this functionality. Too risky for me. And if you use this with IDBs it is a disaster waiting to happen.
edit: This indirection also only works with Tags defined by absolute addresses, no symbolic addressing ! Another reason why it is not something I would use.
What is it that you want to achieve ?
I think that what you should look into, is to have one or more shared DBs with data structures defined by UDTs. You can then pass the data between the FBs in question and the shared DB via IN_OUT pins. And then you can connect you HMI to the shared DB.