Closed kyle-github closed 4 years ago
I got the emulator to work by reversing the byte order of the masks. But... really??
Huh, I would have guessed that the Micro800 wouldn't have supported it. But reversing the byte order, I'm not surprised, because Rockwell. Let me give you an example. Until recently, none of the Rockwell controllers supported unsigned integers or 64 bit math, until the Mirco800 series. What? Then comes along the high end 5380 and 5580 controllers, only v32. So the lowest end and highest end (with the latest firmware) support what should be standard features.
BTW, thanks, I'll test this out when I get a moment, I have a Micro820 on loan.
@kyle-github this behavior seems to be only with the simulator. Actual controllers don't behave this way. I'm going to submit a couple of bugs to Rockwell about this and how ForwardClose is being handled.
Thanks very much for testing this out! I'll revert my code changes. I generally try not to swear in code comments but...
Thanks again. I really appreciate the feedback on this weird problem. Good to know that it is the emulator not the hardware.
Question for @dmroeder, I am implementing the RMW command to support individual bit selection from e.g. DINT tags. I got it all working nicely against my Control Logix PLCs. Then I tried the Micro8xx emulator that you (thanks!) mentioned. Major Whiskey Tango Foxtrot moment: it appears that (the emulator at least) the Micro8xx treats the mask parts of the command as big-endian!?!
Have you run into this?