akreel
Member
I hope someone here is familiar with Emulate. We're having some interesting complications, which I'll try to describe. Has anyone tried this before?
Background
The logic we are attempting to simulate contains a subroutine call to a standard function block. The function uses its own internal (program scoped) tags to run its logic. Each instance (we are currently only testing one) is passed all the data from a global tag of the same data type used in the subroutine. The results are then passed back to the global tag. Essentially, the subroutine is being used as a user-defined function block. We have no trouble with these "function blocks" when we run them in a CLX CPU.
Problem
When we run the same function blocks in emulate, the data seems to be periodically reset. For example: there is a self-maintained output coil in the routine which will periodically (every 9 seconds or so) decide to drop out. We have discovered that the "ON" condition for the output is being reset, which of course causes the coil to drop out.
I wrote a simple test, using a NO contact (TAGXXX) and a coil (also, TAGXXX). If TAGXXX is one of the tags passed into the subroutine, it will periodically drop out. But, when TAGXXX was not one of the data members being passed into the routine, the coil would hold indefinately (as it should).
I hope my explanation makes sense! Am I crazy? Has anyone seen this?I've checked for all the obvious stuff: dual-use coils, memory overlap, etc. I've dumbed down everything to the point where I can say this has to be an issue with Emulate. Of course, our on-site Rockwell support is going to hear about this, too.
AK
Background
The logic we are attempting to simulate contains a subroutine call to a standard function block. The function uses its own internal (program scoped) tags to run its logic. Each instance (we are currently only testing one) is passed all the data from a global tag of the same data type used in the subroutine. The results are then passed back to the global tag. Essentially, the subroutine is being used as a user-defined function block. We have no trouble with these "function blocks" when we run them in a CLX CPU.
Problem
When we run the same function blocks in emulate, the data seems to be periodically reset. For example: there is a self-maintained output coil in the routine which will periodically (every 9 seconds or so) decide to drop out. We have discovered that the "ON" condition for the output is being reset, which of course causes the coil to drop out.
I wrote a simple test, using a NO contact (TAGXXX) and a coil (also, TAGXXX). If TAGXXX is one of the tags passed into the subroutine, it will periodically drop out. But, when TAGXXX was not one of the data members being passed into the routine, the coil would hold indefinately (as it should).
I hope my explanation makes sense! Am I crazy? Has anyone seen this?I've checked for all the obvious stuff: dual-use coils, memory overlap, etc. I've dumbed down everything to the point where I can say this has to be an issue with Emulate. Of course, our on-site Rockwell support is going to hear about this, too.
AK