基于nRF2401的PLC无线通信控制器
随着信息科学技术的发展,无线通信技术应用广泛。在工业生产控制中,现阶段通信方式基本上还都是以有线方式,实现各种控制功能,但有线网络布线麻烦,线路故障难以检查,设备重新布局就要重新布线,且不能随意移动等缺点越发突出。针对上述问题,这里提出一种基于nRF2401的PLC无线通信控制设计方案。
1 系统总体设计
针对西门子S7-200 PLC,设计基于nRF2401的PLC无线通信控制器,其系统结构如图1所示。
在发送信号时,单片机从PLC获取现场数据,再将获取的数据经nRF2401传输至另一台PLC;接收数据时,nRF240l从另一台PLC接收信号,经单片机传送到接收端的PLC。
2 系统硬件设计
2.1 单片机与PLC接口电路
在西门子S7-200 PLC端,通过RS-485总线与单片机AT89S52通信,为了避免RS-485信号与单片机之间的电气信号不匹配,二者之间采用6N137进行光电隔离。
在PLC端,采用MAX485通过一个9针端口与西门子S7-200 PLC的自由接口连接,MAX485通过光电隔离6N137与单片机AT89S52相连。单片机的P1.2通过光电隔离6N137控制MAX485的使能端和DE。当为逻辑0时,MAX485处于接收状态;当DE为逻辑1时,则处于发送状态。在任意时刻这2个使能端都只有1引脚有效。使得MAX485能够满足其半双工的通信方式。
接收与发送控制信号时,单片机的P3.0/RXD端通过6N137与MAX485的R0端相连,单片机的P3.1/TXD通过6N137与MAX485的DI端相连,从而实现PLC与单片机的通信。其电路原理图如图2所示。
2.2 单片机与nRF240l接口电路
在无线通信端,单片机AT89S52与nRF2401模块相连实现无线通信。此处,由于单片机用5 V电源供电,而nRF2401采用3.3 V电源供电,为了避免两者之间产生电气干扰,仍需要采用光电隔离实现两者问的电气连接。表1给出了单片机AT89S52与nRF2401模块的通信接口描述。图3给出单片机AT89S52通过光电隔离4N35与nRF2401的对应端口相连的电路原理图。
2.3 波特率的设置
在接口电路设计完成后。要使单片机与nRF2401之间实现通信,还要考虑单片机的传输率,此处选择单片机的波特率为9 600 b/s。根据波特率计算公式:
式中,波特率控制位SMOD置O,定时器时间常数X=253。
由此可得晶振频率fosc=11.0592MHz,则单片机选用11.0592MHz的晶体振荡器。
2.4 电源
该系统的电源部分由外部电源、集成稳压电路和部分外围元件组成,这里选用集成稳压电路LMlll7为构成各元件提供供电电源。为了改善nRF2401的瞬态响应,在LMlll7外接2只电容,且在输出端另加2只电容用于滤波,以改善输出电压波形。
3 软件部分设计
在单片机与PLC的通信中,主要利用单片机向PLC发送命令和接收返回数据,用于读取数据或修改PLC程序中控制参数。通信协议选用莫迪康Modbus ASCII串行通讯协议。
实现来自于RS-485通信接口基于Modbus ASCII串行通信协议的命令及数据转换成满足无线数据传输要求的通信格式,并传送给其他通信终端,同时将现场采集的实时信号及状态信号转换为满足Modbus ASCII串行通信协议要求的格式,并传送给RS-485通信接口。图4为无线通信控制器发送数据程序流程。图5为无线通信控制器接收数据的程序流程。
图4中,在单片机与nRF2401通信端,单片机先向nRF2401写入配置字,然后检测CE是否为高,若CE为高电平,则检测通道1的中断DRl是否为高,DRl为高,则有中断信号,使nRF2401进入发送状态,开始发送数据,每发送完l位,系统检查l帧数据发送是否完成,若未完成,则继续发送,反之,结束该帧的发送程序。由此将获取的现场数据传送给另一通信终端设备。
4 试验结果
实验室采用GFG8016G信号发生器与计算机进行模拟PLC数据无线传输,试验结果表明,在9 m范围内,该无线通信控制器可实现数据的无线传输。
5 结论
基于nRF2401的PLC无线通信控制器,可根据需求实现短距离无线数据传输;对于该无线传输研究,后续需从其传输中的抗干扰和扩展传输距离方面进一步研究。