adccommunitymod (AutomationDirect) asked a question.

RX/WX vs MRX/MWX Error Detection

Created Date: March 20,2010

Created By: JohnRaynes

**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****

I'm developing a system with DL06-DL06 MODBUS serial comms using CPU P2 exclusively on all units. These are radio-coupled links, RS232 for the local port-to-radio wiring. All is working well thus far in my bench setup with radios in close proximity, doing 64 word read-write transfers. I'm switching back and forth (for testing purposes) between using the RX/WX MODBUS and MRX/MWX instructions, to try and see whether one instruction type is more robust and/or useful than the other. I 've observed a couple peculiar things that I thought I would put out for comment: SP117, the comm error flag for P2 fires reliably for comm errors using the RX, WX and MRX instructions, but never for the MWX instruction. I'm defining "comm error " as an unplugged data link between the slave PLC's Port 2 and its radio. The MWX exception response buffers appear to be no help with this particular type of error, I guess because it isn't a MODBUS error. Here's a potential clue as to why, but I'm not quite sure what to make of it. I have comm cycle timer monitors on each of the instructions (TMRF on when SP116 true). At my Port 2 baud rate of 38.4K, the RX and MRX instructions each take about 150 mSec to execute on good reads. The MRX, however, only takes about 40-50 mSec and the WX takes about 230 mSec! So it seems likely to me that the MWX instruction is not doing some comms validation that the WX instruction is. I'm using Base Timeout X2 in the port configuration. Any comments or insight are appreciated.


  • adccommunitymod (AutomationDirect)

    Created Date: March 25,2010

    Created by: stimpsonjcat

    For starters be careful when using cable disconnecting as a failure method for testing. If you do this always disconnect from the OTHER device. This is because the 06 port 2 will not even try to talk if the cable is disconnected from it. Either the 232 or 422 jumpers must be there before the port will even attempt to comm.

    Having said that I am not sure why there would be a difference between an RX and a MRX or between a WX and a MWX as far as timing. Neither allows for any changes to the port settings. I suppose the MWX might be faster as the PLC might not have to check protocol when using that instruction, whereas if using WX the PLC has to stop and check the protocol selected in the port settings before forming the packet.

    The exception response will only help if the slave gets data it sort of doesn't like and sends back a "close but no cigar " message.

    Between two DL PLCs I would stick with using the RX/WX code just because the mapping is easier if you do...but that's just me.

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: March 20,2010

    Created by: JohnRaynes

    I'm developing a system with DL06-DL06 MODBUS serial comms using CPU P2 exclusively on all units. These are radio-coupled links, RS232 for the local port-to-radio wiring. All is working well thus far in my bench setup with radios in close proximity, doing 64 word read-write transfers.

    I'm switching back and forth (for testing purposes) between using the RX/WX MODBUS and MRX/MWX instructions, to try and see whether one instruction type is more robust and/or useful than the other. I 've observed a couple peculiar things that I thought I would put out for comment:

    SP117, the comm error flag for P2 fires reliably for comm errors using the RX, WX and MRX instructions, but never for the MWX instruction. I'm defining "comm error " as an unplugged data link between the slave PLC's Port 2 and its radio. The MWX exception response buffers appear to be no help with this particular type of error, I guess because it isn't a MODBUS error.

    Here's a potential clue as to why, but I'm not quite sure what to make of it. I have comm cycle timer monitors on each of the instructions (TMRF on when SP116 true). At my Port 2 baud rate of 38.4K, the RX and MRX instructions each take about 150 mSec to execute on good reads. The MRX, however, only takes about 40-50 mSec and the WX takes about 230 mSec! So it seems likely to me that the MWX instruction is not doing some comms validation that the WX instruction is. I'm using Base Timeout X2 in the port configuration.

    Any comments or insight are appreciated.

    Expand Post