I have a strange situation, I searched the forum for a solution but it was not possible.
I started a Project on TIA V19 (on V16 the same situation) and used the Template from Factory IO.
On the Hardware Config, it is pre given a DI device with the DI-adress range of 512+
But on Factory IO, I can only use an offset of max. 64.
So my possible Inputs are as example I64.0, I64.1, a.s.o.
So its not fitting to the Template of TIA.
If I change the adress range on TIA, the PLC-SIM gives an error and flashing.
What do I wrong??
How can I solve this??
Best Regards
Ercan
Hello dear Friends,
I solved the issue by myself but I think there is a something to understand and needs explanation regarding this confusing constellation.
- If the stock S1500 Template downloaded from FIO-Server and opened on TIA, thann you get by default this Hardware pre-configuration as I/O constellation:
So at the first glance it it´s very annoying, because it makes really not sense.
So you think, you need the change the address ranges because it`s not possible to offset the inputs on FIO above 60 but you have a address range above 512.
As soon as you change something on this adres constellation, your PLCSIM gives a error out and you are not able to control the I/O via FIO.
-
Then I added an additional Inpul-Module to the S1500:
It got the automatically the address range above B64.
So now: If I use some Inputs on FIO on Address range B0, it controls the inputs B64 on TIA.
As example:
I press on FIO on Button E0.0 and it is controlling on TIA E64.0
I press on FIO on Button E0.5 and it is controlling on TIA E64.5
I think, this Information is helping for Colleges with similar situation to come further.
BUT MY QUESTION IS:
What is the sense of this situation?
If you have to do this constellation, than give a possibility to change the OFFSET ON TIA for every possible address range. In such a possibility, I can change the offset to 64 and am on equal address ranges on FIO and TIA.
Please let us find a solution and a explanation if I do not see a possible simple way.
TIA_Portal_FactoryIO_Guide_EN.pdf (307.2 KB)
Title: Guide: TIA Portal V19 & Factory I/O S7-1500 Template Usage & The Addressing Paradox
Hello Freiends
I want to share an important guide regarding a major source of confusion when setting up a Virtual Commissioning environment using TIA Portal V19 and Factory I/O with S7-1500 CPUs. If you are struggling with I/O addressing and offset limits, this step-by-step breakdown will help you.
-
The Template Requirement
To simulate an S7-1500 (or S7-1200) with TIA Portal and Factory I/O, creating a standard project from scratch is not enough. For the system to establish a proper communication bridge, downloading the official template project from the Factory I/O website is mandatory. All your programming must be built directly on this template, or the pre-configured CPU from the template must be copied into your existing project.
-
The Trap: Pre-configured I/O Modules
When you open the template and check the Device overview, you will notice pre-added input and output devices (e.g., analog addresses from 0 to 63, and digital inputs starting from 512).
The Misconception: The presence of these addresses gives the false impression that they are allocated for our use. Users naturally think, “I can use these predefined modules to control my inputs.”
- Why We Cannot Use Them (The Offset Limit)
These devices are not for our project; they are the fundamental communication infrastructure for Factory I/O itself.
- Modifying or deleting them will instantly cause an error in PLCSIM.
- More importantly, attempting to control inputs using an offset above 64 (like the digital input address 512 provided in the template) is technically not possible due to offset limitations.
- The Solution: Adding Our Own I/O Modules
To overcome this, we must follow one golden rule: Do not touch, modify, or delete the pre-configured modules. Completely ignore them. Instead, we must add our own input and output modules from the hardware catalog (e.g., a new 64-channel input module).
-
A New Confusion: Automatic Address Assignment (Bit 64)
When you add your new 64-channel input module, TIA Portal automatically assigns it to the first available address. Since the template’s infrastructure occupies addresses 0 through 63, your new module will inevitably be assigned to address 64.
-
The Addressing Paradox: TIA Portal vs. Factory I/O
Here is where the real confusion begins. Our new module is assigned to 64.0, 64.5, etc., in TIA Portal. However, during the programming and simulation phase, things behave differently.
Let’s look at a simple test:
In Factory I/O, I added two inputs:
- Continuous Button (Normally Open): A button that stays active when pressed.
- Normal Button: A standard push button.
The Paradox: When the buttons are pressed, the addresses that turn green and become active in our logic are %I0.0 and %I0.5. Even though TIA Portal assigned our digital input system to bit 64, the program completely ignores the 64.0 / 64.5 addresses and operates on the 0.0 and 0.5 addresses used by Factory I/O. (I have asked about the exact reason for this behavior in the forums and will update this post if a technical explanation is provided).
- The Golden Rule for Programming
Until we get a deep technical explanation, the definitive workaround is this:
Regardless of the starting offset value TIA Portal assigns to your newly added inputs (even if it forces it to 64), you must completely ignore this offset in your code. Always base your programming on the starting offset (Zero) dictated by Factory I/O.
If the addresses start at bit 0 in Factory I/O, your address in the TIA Portal logic must be 0.0, and it will execute perfectly in the CPU.
I hope this saves you hours of troubleshooting!
Hello @ehpakkan,
Thank you for taking the time to expose and explain this subject here.
However, I think there is some confusion here.
The template’s AI modules can be used for the digital inputs.
If you look at the tag list, you’ll find three tags with the addresses I%0.0 and I%0.1. These tags come with the template.
If you open the IO module in slot 2, under the “IO tags” tab, you’ll see that these addresses are linked to it.
In the image you shared from your TIAPortal program, you are using the addresses I0.0 and I0.5. This is possible because addresses from 0 to 63 are automatically linked to the IO modules that come with the template, even if the module is analog(AI) and not digital (DI); the template does not use them for communication, so there is no conflict.
If the addresses don’t match in both TIAPortal and Factory I/O, the signal will not be exchanged correctly, and the PLC program won’t work as expected.
When using the template, you only need to add the tags you need and write the program.
I hope this helps to clarify any possible confusion. If you feel like there’s still something that isn’t clear, please feel free to reach out, and I’ll do my best to explain and help.