Welcome to the forum!
Your screenshot is from RSLogix 500 software, and in that PLC there is no
need to map the I/O. The PLC's that use the RSLogix 500 platform run a synchronous I/O update - that is, the PLC does:
Code:
Read inputs
Execute code
Write outputs
Repeat
However, the newer series of AB PLC's that use RSLogix Designer/Logix Designer run an
asynchronous I/O update. That is, inputs and outputs are updated at a fixed rate, completely independent of the code being executed.
This can cause problems, because the state of an input could change partway through the program cycle. Imagine if you had two rungs of code, one that says "if input A is on, do this". Then two rungs later, you have a rung of code that says "if input A is not on, do that". It's possible that the status of input A could change between those two rungs, and then the PLC will either do both of those things, or neither of them, when you only wanted it to do one or the other. Depending on what those things are, that could have negative consequences.
So, to prevent this, most programmers map the physical I/O once each scan. That way, the status of the input can change partway through the code if it wants, but I won't update the internal state of that input until I've finished my program scan. I will read the input, execute all my code based on the status of that input at the time I scanned it, then set my outputs, then start again - basically mimicking the way the old PLC's used to work.
I couldn't say whether or not you have the same issue on Siemens PLC's - I don't have enough in depth experience with them to know whether they use asynchronous I/O updates or not. But the important thing to note is, it's not the
software that determines whether this is necessary, it's the
hardware. It's a matter of whether the PLC itself updates the I/O synchronously or asynchronously. In Allen-Bradley world, it just so happens that they updated the software and hardware at the same time, so as a general rule, there's no need to buffer I/O in RSLogix500, but there
is in RSLogix 5000. But that's still not because of the software, it's because of the hardware that each of those software packages is used to program. So it's less "do I need to map I/O in Step7" and more "do I need to map I/O for this processor".
All that said, there are some good reasons to map I/O even if you don't have the asynchronous I/O problem. If you have a sensor short circuit and blow up an input, usually a maintenance technician will just replace the sensor and try to move it to a spare input. If your input is only used once in the code, in an input mapping routine, it's a moment's work to re-map it in the code. You might have the sensor status tag used dozens of times throughout your code, but as long as the physical input itself is only referenced once, you only have to change one rung of code.
On the other hand, if you have the input referenced directly each time, it'll be scattered through dozens of routines. It'll be much more time consuming to find it and update all the references, and you run a much higher risk of messing something up and accidentally pasting in a normally open when it should be a normally closed, and so on.
Plus, it just makes things a whole lot cleaner, and it's much easier for a maintenance tech to get a foothold into your code if they can trace a wire to an input, and then easily find that input because all your input are mapped one after the other in a routine labelled "Digital_Input_Mapping"