Thanks for the additional details! I completely understand why you can't touch the other PLC; I'm sure there are a
lot of very strict validation procedures going into a theme park ride's code.
We've also realised that our other potential option of replacing the AV PLC with a newer one and using Produced/Consumed tag would probably also not work, as the other PLC is expecting a specific model of (now obsolete) PLC.
Actually, that would almost certainly be possible. Produced and consumed tags are very backward-compatible.
For example, I have set up a produced tag between a 1769-L35E (which I'd hazard a guess is the same as the PLC you're looking to replace) and a 5069-L306ERS2 Compact Guard Logix. In the 5069 PLC I can easily add a 1769-L35E to the ethernet tree as the target, but in the L35E, well, it's old version of RSLogix doesn't know that the 5069 series even exists. So I added it to the tree of the L35E as
another L35E, gave it the IP address of the 5069 controller, and away it went. The 5069 controller recognises a connection request targeted at a legacy PLC and goes "sure, I can pretend to be an L35E and exchange data with you". So if you were to get a new 5370 or 5380 compact logix and give it the same IP address and the same produced/consumed tags, the old PLC would probably continue to exchange data the way it always has without being any the wiser that the box it's talking to has changed.
I'm assuming you've got a copy of the PLC code for the PLC to be removed? If so, post a screenshot of it's produced and consumed tags data structure. They must be identical at the other end, even if you can't see them, and that will tell you whether or not they're using the inbuilt connection status or not. In my screenshot below you can see a produced tag that
does use that functionality - as shown, the product and consumed tags are UDT's, and the first element of the UDT has the data type CONNECTION_STATUS, which contains a RunMode BOOL and a ConnectionFaulted BOOL. When you set up produced/consumed tags, those two BOOL's are updated automatically by the processor regardless of connection status or whether either PLC is actually running code. It all happens in a system task of some sort, so you can't override the RunMode or ConnectionFaulted bit with user code. You could write the whole UDT, CONNECTION_STATUS included, with an explicit message, but then the background system tasks would just change the CONNECTION_STATUS tags back straight away. If that's how your produced/consumed tags are set up, then you might have to look at retaining (or upgrading) the existing AV CompactLogix, because if the programmer has gone to the trouble of using a UDT with the CONNECTION_STATUS element built in, it's very likely they're using it to monitor the connection status and take certain actions if it goes down.
If your data structure
doesn't contain the CONNECTION_STATUS element, they may still be using a heartbeat of some sort. Have a look through the logic that maps tags in and out of the produced and consumed tags, to see if there's any sort of heartbeat defined. Usually it'll be either a bit that toggles on and off at a specified interval, or a number that increments continuously. At the receiving end, there will presumably be logic to make sure the bit keeps changing state (or the integer value keeps changing). Once again, if it's there, whatever solution you choose will have to be able to accurately simulate that heartbeat.
The other possibility is of course that they're using a GSV to check the connection status object of the remote PLC. It's possible, and that
would be a show stopper, but I'd say it's the least likely option. Just checking that the remote PLC is connected doesn't tell you that (a) the PLC is in run mode and executing code, or (b) that your data exchange structure (be that produced/consumed or explicit message) is configured and working correctly and that data exchange is actually happening. So, it's not a good way of confirming data exchange, and because of that, I've never seen it used for that purpose.
Of course, it's possible there's no connection status monitoring at all, and all this waffling on is irrelevant. You could test this easily - just disconnect your existing AV PLC from the network, and see if you can still run the ride, or if it gives you any alarms or errors or any other indication that something is not right. If it doesn't, then this gets a whole lot simpler!