现在做的一个项目需要labview与modbus控制器通讯,通过串口发送控制指令和读取控制器返回的数据。控制命令发送和数据接收放在一个while循环中,采用顺序控制,分3步
1,用serial write发送控制命令1。当modbus控制器接收到命令1并校验,正确的话会返回一个状态信息,是一串相应的16进制字符串。
如发送: 01 10 00 00 00 02 04 F7 FF 1F FF B9 9B
返回 01 10 00 00 00 02 41 C8
2,采用serial write发送控制命令2。该命令采集modbus的相关寄存器中的数值,用于在lv程序中进行显示和计算。modbus控制器接收到命令2并校验正确的话返回相关寄存器的数值。
如: 发送 0103 0065 0008 5413
返回 01 03 10 1C CB 07 37 00 0E 00 97 00 05 02 2D 01 91 00 8F 7C 38
3.采用serial read来接收命令2发出后modbus控制器返回的数值。
现在存在的问题是,我的程序运行的时候,接收到的数值经常会受到很多杂乱的数据,好像是会接收到命令1中返回的数据。我想问问怎么才能保证我的程序只接收到2中返回的数据。即保证程序每循环一次只接收到字符串01 03 10 1C CB 07 37 00 0E 00 97 00 05 02 2D 01 91 00 8F 7C 38 这样的信息帧