I am not sure what level you are at, so at a basic level:
1, Siemens uses a system of individual blocks of code called from OB1. Generally, you cannot see the entire program, only 1 block at a time. The exception is if you generate source code. In that case you get the entire program in one text file in STL (assembly) format.
2, to do a basic search, you need to have opened a block and you can either go to Edit->Find/Replace for addresses or text within the block, Edit->Goto->Location for addresses anywhere (although you have to have highlighted an address to use this option) or, Options->Reference Data->Display. With this final option, you select cross reference, and filter for inputs. You will be able to find the location of all the inputs in the code by this method.
3, Tricks. I have found that for some reason a lot of German companies like to use indirect addressing, and move all their inputs into the DB range. Unfortunately, this makes finding the input impossible through the search functions. By this method, a pointer to an address is assembled and this is used to move the contents of the input registers over. It is generally done in STL, and can usually be found by looking for the shift left function. The easiest way I found to look for this is to generate the entire program in source code, open it with the text editor, and search for the shift left function, or variables of the type pointer.
Hopefully they did not use this method.
Doug