3系统软件设计
如图2所示,该系统的工作原理是:现场从机分布在钻井现场的各个位置,将附近的仪表数据采集到单片机内的存储单元,等待控制室主机查询。控制室主机以点名的方式查询现场从机,将数据采集到主机内,并送到上位机进行处理。当控制室主机查询从机时,分布在现场的各个单位的旁听主机也会收到现场从机的数据,这样就实现了现场数据的实时更新。当控制室需要对现场电机控制时,就可以向控制电机的从机发控制命令,从机接到命令将电机歼启或停止,并将所检测的电机状态发回主机。
通信协议设计如下:
现场每个从机都有一个固定的8位地址(通过拨码开关设定),所以整个网络能容纳256个从机。现场从机一直处于侦听状态,等待主机点名。点名命令是一个4 B的命令包,分为两种,查询命令和控制命令,格式如下:
命令包头:一个命令包的开始,并说明是哪种命令。0xAA:查询命令;0xBB:控制命令。
从机地址:被点名的从机地址,地址范围是0~255。
命令数据:当为控制命令时,该字节的后四位表示4路开关量的状态。
命令包尾:数据包的结束标志,也是从机判断命令是否正确接收的标志。
当从机收到点名命令时,首先判断命令包中的从机地址与自己的地址是否相符,如果不是则等待下一次点名,如果是再判断是哪种命令。如果是查询命令则首先将自己地址发送给主机作为点名确认信息,随后再将数据包发送出去,数据包为一个13 B数据包,具体格式如下:
字节1:从机地址;
字节2:主机用来判断是否是更新数据的标志字节,此字节为1;
字节3:开关量输入输出,高4位为开关量输入,低4位为开关量输出;
字节4:脉冲计数;
字节5~宁节12:4路十位A/D转换数据;
字节13:数据包结束字节。
如果是控制命令则首先返回自己的地址作为点名确认信息,主机收到后,将发送5次命令数据,从机收到后,将这5次收到的数据与开始收到的控制命令里的命令数据比较,如果一致则将命令输出到I/O口,控制继电器,0.5 s后再采集一次数据,将开关量数据传回到主机来显示电机的工作状态,这样就完成控制室主机控制现场电机的过程。 当控制室主机访问现场从机时,那些旁听主机也收到了现场传来的数据,从而不断更新数据。
4 结 语
日前此系统已经应用到钻井现场。经过实践,本系统运行稳定,实时性能良好.可以满足现场的要求。而且本系统采用的无线通信模块是基于FSK的调制方式,采用高效信道编码技术,具有抗突发干扰和随机干扰的能力。