这里的“数据接收”特指下位机发送给上位机的数据。其“时机”有两种方式:1>上位机请求下位机数据时,下位机被动“数据发送”给上位机;2>下位机主动“数据发送”给上位机。
下面分析这两种方式应用场合。
方式1>的实现方式有两种,a>在上位机界面,用户主动触发发送请求命令,如点击按钮;b>上位机定时发送请求命令。有下列情形之一,使用方式1>:
a> 使用方式2>数据发送频率过快,导致串口缓冲器压力过大;或没必要使用2>方式过频繁更新上位机数据。
b> 一台上位机挂载多个下位机,而且是单工串口通信,导致下位机无法掌控发送时机,所以必须上位机控制发送进度,采用请求下位机A数据,阻塞等待下位机A返回数据,然后请求下位机B数据······
方式2>实现方式有a>下位机数据改变时,主动发送数据给上位机;b>如果下位机是由控制板和采集器组成,而控制板可以控制定时,可以由下位机定时给上位机发送数据。有下列情形之一,使用方式2>:
a> 下位机数据更改频率较慢,而采用上位机定时请求定时过快数据浪费,定时过慢数据更新很不及时,所有采用下位机数据变化时主动上传数据。
情形一:
下位机数据有时1秒钟变化2-5次,有时5分钟变化一次。使用下位机数据改变时发送。
情形二:
下位机数据有时1秒钟变化20次。如果a>过快更新导致串口和上位机UI刷新压力;b>数据发送不是变化累计而是完整数据,使用上位机定时请求。
情形三:
上位机无法控制进度,容易导致串口压力过大等问题,请使用上位机定时请求或者用户触发时再请求。