Specifically for the S7-400 PLCs, which does not allow the use of symbolic addresses, is there any advantage — such as performance improvements or bug fixes — in using the new Siemens driver available in Ignition 8.3?
Performance improvements
It has been months since I did any performance testing. However, when I tested the read performance against an S7-300, the new driver was over 30% faster than the legacy driver. YMMV, there are a lot of variables, most notably network latency. In my test, I was performing multiple reads of 5,000 contiguous DInt tags. We optimize the requests when reading from a contiguous block of memory on the PLC (so did the legacy driver), so that is another variable to keep in mind.
Hopefully, I'll have time to do some more profiling soon. There have been a number of changes since I ran those performance tests, and I would like to get some benchmarks together that are worth sharing.
Bug fixes
Off the top of my head, the legacy drivers have some known issues relating to String tags that should be resolved in the new driver. If you know of any bugs/issues in the legacy driver, I would be happy to check their status in the new driver.
Any advantage
Aside from those listed above, there's support for a few more datatypes in the new driver. Most notably, there is better support for reading/writing arrays in the new driver. The new driver also supports an address syntax that more closely matches the address syntax you would find in the TIA Portal. The legacy address syntax is still supported, so you can easily migrate your existing tags. When adding new tags, you should have an easier time because you can mostly copy/paste the address from TIA.
Additionally, going forward, the new driver will have better support. The legacy driver(s) will likely not receive any new features, and because migrating to the new driver should be seamless, bug fixes in the legacy driver(s) will be limited.
This is not a bug, but in my company we primarily use S7-400 on H-System (CPU redundancy), and unfortunately it doesn’t support a floating IP like other brands. There is an exchange package focuses on IP changes, but for this product you must also change the rack number, and it isn’t supported by the script. An extremely welcome feature would be native support for this in the Siemens driver.
Thanks for bringing this up! I've gotten another similar request in the past about this. Unfortunately, I've not been able to test this in-house, yet. Our PLCs do not support this, but I am hoping it is something I'll be able to test with a simulator.
To clarify the use case, you're hoping the driver can communicate with the shared/switched IP for both PLCs instead of the individual IP addresses of each CPU, correct?
Yes with S7-400, you have to read data from each cpu with its desicated ip Address if you want a quick failover.
The other solution is to monitor each cpu and to run a script to configure device ip address and rack slot. The Ignition S7 device doesnt support that and especially if you have a redundant gateway....
To clarify the use case, you're hoping the driver can communicate with the shared/switched IP for both PLCs instead of the individual IP addresses of each CPU, correct?
No, the Siemens H-System doesn’t support shared or floating IPs; it assigns a fixed IP to each CPU in a redundant pair. When one CPU fails, you have to connect to the other CPU using its own IP address and rack-number parameter.
I’d like the Ignition driver to handle that automatically, given all the IPs, rack numbers, and slots.
Gotcha. Looks like there’s a difference between S7-400H and S7-1500H with regards to a shared IP.
I’ll look into this a bit more and discuss it with product management, but it is currently not planned.