发表于:2017/4/10 15:41:35
#0楼
请教下各位:
现在我使用台达PLC RS指令进行自由协议的通信,现在遇到的问题是:比如一台设备发回一组数据 STX 01 02 52 CR这个数据,其中STX是帧头,CR是帧尾。我分别用RS d0 0 d10 5来接收数据,即使分别用D10-D14接收数据。
但接收到的数据并不是每次D10都是接收到帧头,有可能帧头在D11-D14之间。如果D10不是帧头的话此时读D11-D13就不是正确的数据。我现在的办法是如果遇到D10不等于帧头时,要求重新接收数据直至帧头是D10=STX为止,但这样的操作效率太低。我想正确的做法是把STX和CR之间的数据拼接起来才对。但试了一段时间还是没有办法实现。
请各位指点一二。
现在我使用台达PLC RS指令进行自由协议的通信,现在遇到的问题是:比如一台设备发回一组数据 STX 01 02 52 CR这个数据,其中STX是帧头,CR是帧尾。我分别用RS d0 0 d10 5来接收数据,即使分别用D10-D14接收数据。
但接收到的数据并不是每次D10都是接收到帧头,有可能帧头在D11-D14之间。如果D10不是帧头的话此时读D11-D13就不是正确的数据。我现在的办法是如果遇到D10不等于帧头时,要求重新接收数据直至帧头是D10=STX为止,但这样的操作效率太低。我想正确的做法是把STX和CR之间的数据拼接起来才对。但试了一段时间还是没有办法实现。
请各位指点一二。