请问一下,PLC的通信端口接收到一串28个字节的数据,我需要其中7个字节的数据(以FF 05为开头标志,后面是5个字节的数据,比如“FF 05 19 02 39 EB 12”,其余的数据基本上都是00),但这串7字节的数组在总的数组里游走不定,极端情况是一部分在末尾一部分在开头。现在的思路是利用指针进行排序,将需要的7字节数组拍到开头,然后取出来。也大概了解冒泡法排序,但不知道如何去找准“FF 05”这个标志。对实现这个功能的程序不知道怎么写,希望得到各位的指点,谢谢!
问题补充:
“FF 05 XX XX XX XX XX”这串数组总是整体的移动,其中5个字节的数XX会变化。其余的数据基本都是00,但有时会出现一个随机数,不会再次出现“FF 05”的情况(FF 05标志是唯一的)。极端情况下会出现类似“XX XX XX 00 00 00 ..... 00 00 FF 05 XX XX”的情况。
最佳答案
没有人会设计一个这样的通讯协议的,希望你读通协议,不要把好像正确的结果误会成正确的结果。白操心。
自由口通讯接收程序有多种多样的接收方式。请选择最正确的一种。
你可以用循环的方式把整段字符向前或者向后循环移位,直到排头的两个字节等于你期望的字符,然后开始读取后面的5个字节。
提问者对于答案的评价:
谢谢!用for循环语句配合成块字节移动指令做出来了,也多谢大家的指点
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc370608.html