温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
MODBUS
通信协议
数据
采集
无线
传输
系统
设计
沈斌
30|电子制作 2023 年 3 月智能应用0 前言当今社会科学技术日新月异,传统的农业大棚在规模化、智能化、无人化上已经无法满足要求。本设计基于 MODBUS通信协议设计了一套数据采集无线传输系统,将传感器、智能仪表、无线传输设备、智能控制设备(PLC)引入到农业大棚中,通过农业大棚中的各类传感器和智能仪表自动采集数据,无线传输给几公里外的控制室智能控制系统,智能控制接收数据进行处理后,自动发出各类控制指令,传输给农业大棚中的执行机构,完成温度、湿度、光照度等参数和作业的自动调节。极大地提高了农作物的生产效率及产品质量。1 硬件设计本设计中通过携带MODBUS 通信协议的温湿度传感器、光照度传感器、智能仪表(数字电压表、数字电流表),实时采集多个农业大棚中的温度、湿度、光照度及相关设备的电压、电流的数据。通过农业大棚内本地 LORA 无线透传模块传输到几公里外的控制室内LORA 无线透传模块中,进而 LORA 无线透传模块把数据传送至控制室内PLC 中,经过数据转换处理后,在人机上显示出来。同时 PLC 内的智能程序会根据这些数据的变化远距离驱动风扇、水泵、照明灯的运行,进而完成通风、增湿、辅助照明等功能,从而实现农业大棚远距离数据采集及智能控制,使得农业大棚的环境满足植物的生长需要,原理框图如图 1所示。1.1 智能仪表模块设计本设计所采用的智能仪表为 AOB195U-9TY DC30V 数字电压表和 AOB195I-9TY DC5A 数字电流表,这两个仪表基于 MODBUS 通信协议的智能农业大棚数据采集无线传输系统设计沈斌1,2(1.苏州高等职业技术学校,江苏苏州,215000;2.江苏联合职业技术学院苏州分院,江苏苏州,215000)摘要:传统农业大棚过度依赖人工,对温度、湿度、光照度这些影响农作物生长的关键因素调节能力差,致使生产效率低,产品质量不稳定。本文基于MODBUS通信协议设计了一套智能农业大棚数据采集无线传输系统。该系统通过引入智能仪表、传感器、无线传输设备、智能控制设备(PLC),将农业大棚中的各类传感器和智能仪表自动采集数据,无线传输给几公里外的控制室智能控制系统,智能控制接收数据进行处理后,自动发出各类控制指令,传输给农业大棚中的执行机构,完成温度、湿度、光照度等参数和作业的自动调节。实现了农业大棚的智能化、规模化和无人化。极大地提高了农作物的生产效率及产品质量。关键词:MODBUS;智能农业大棚;LORA无线透传;数据采集;PLC+24VDC进项电源10-30V电压表10-5A电流表1LED指示灯开关按键LED报警灯PLCS7-200HMITK6071+24VDC进项电源20-30V电压表20-5A电流表2风机水泵照明灯PLCS7-200HMITK60710-30V电压表10-5A电流表10-30V电压表20-5A电流表2温湿度传感器LORA无线透传模块光照度传感器LORA无线透传模块PLC/PC/HMIRS485总线RS485总线无线图 1 远距离智能农业大棚数据采集系统原理框图DOI:10.16589/11-3571/|31智能应用都自带 MODBUS 标准通信协议,如图 2 所示。本设计智能仪表由两组构成(一个电压表和电流表为一组)。其中一组智能仪表安装在农业大棚中,主要监控各类传感器、风机、水泵、照明灯等设备的用电量。另一组安装在控制室中,监测 PLC、人机等控制设备的用电量。两组智能仪表的数据也是通过 RS-485 总线传送至 PLC 中,进行数据转换处理,进行显示。智能仪表 1、2 脚接 AC220V 供电,7、8 脚INPUT接待监测的直流电压/直流电流(030V/05A),61、62 脚接 RS-485 总线 A、B 线。其通讯参数设置如下:波特率 bAud 设置在 9600bps,通讯格式 pAr 设置为 n8.1(无校验,8 个数据位,一个停止位),通讯地址 Adr 设置为2247(地址1被光照度传感器所单独占有)的其他数值。本设计用到两个数字电压表和两个数字电流表,故而通讯地址设置为 2(农业大棚电压表)、3(农业大棚电流表)、4(控制室电压表)、5(控制室电流表)。在上述通讯参数设置下通过 MODBUS 标准通信协议进行通信。图 2 智能仪表(数字电压表、数字电流表)实物、接线图 1.2 无线通信模块设计无线通信模块采用 LORA 无线透传模块,型号为F8L10T,两个一组进行配对完成数据交互功能,如图 3 所示。该组 LORA 无线透传模块均采用 DC24V 供电。一个安装在农业大棚中,通过 RS-485 总线 A、B 线与智能仪表及传感器相连,另一个安装在控制室,与PLC数据通信端相连。参数设置时,波特率设置在 9600bps。ID 和透传地址为不同的数值,且配对的两个 LORA 无线透传模块互为相反,例如:LORA 无线透传模块 A,ID 为 0,透传地址为 1。那么LORA 无线透传模块 B 则 ID 为 1,透传地址为 0。工作频率则应该根据允许范围内自行设定,如果有多组 LORA 无线透传模块,则每组的工作频率应该区分开来,通过实践我们得出建议间隔 1MHz。发射功率一般在 520W 之间设置,原则上距离越远功率越大,在城市范围内一组 LoRa 无线透传模块可以传输的距离在25km,如果在开阔无遮挡的区域,则传输范围更大。1.3 传感器模块设计本设计数据采集系统的核心为光照、温湿度传感器,这两个传感器均自带 MODBUS 通信协议,且由 DC24V 供电,安装在农业大棚中,实时采样数据,如图 4 所示。其中光照度传感器选用型号为 HYDZ-GZD,温湿度传感器选用型号为 AW1485B。他们都通过 RS-485 总线 A、B 线(并联)与 LORA 无线透传模块 A 相连。图 3 LORA 无线透传模块实物、参数设置图 图 4 光照度、温湿度传感器实物图传感器设置方面,光照度传感器通讯地址默认设置为1。温度和湿度传感器地址设置为 6,在传输数据时在地址中同时读取温度和湿度两个数据。1.4 I/O 模块设计PLCI/O 模块设计如表 1 所示。表1 I/O模块设计PLC 输入采用 6 按键组合按钮。包括手动模式 I0.0、自动模式 I0.1、手动照明 I0.2、手动报警 I0.3、手动风机I0.4、手动水泵 I0.5。PLC 输出有六盏指示灯(过湿报警 Q0.4、高温报警Q0.5、过干报警 Q0.6、低温报警 Q0.7、手动模式 Q1.0、自动模式 Q1.1),一个独立的带蜂鸣器的闪烁报警灯Q1.3,风机 Q0.2,水泵 Q0.0,LED 照明灯 Q1.2。32|电子制作 2023 年 3 月智能应用2 软件设计 2.1 MODBUS 通信程序设计本设计利用 MODBUS 通讯协议在 PLC 内部编写通信程序,通过程序轮询多个智能仪表(数字电压表、数字电流表)以及光照度、温湿度传感器,把农业大棚的各项数据进行实时采集、监控、调节,完成智能化的控制。要访问各个智能仪表以及传感器,采集相关的数据,则需要根据 MODBUS 协议的要求,构建数据帧结构,读取指令构成如表 2 所示。表2 MODBUS协议数据帧结构仪表、传感器从机地址功能码数据CRC16校验名称1字节1字节n字节2字节光照度传感器010300000002C40B数字电压表10203001d0001143F数字电流表10303001d000115EE数字电压表20403001d00011459数字电流表20503001d00011588温湿度传感器060300000002C5BC表2中指令由从机地址、功能码、数据、校验四部分组成。从机地址即为前文所提的通讯地址。功能码 03 则为读保持寄存器即读取仪表、传感器内部数据。数据部分分两段,前一半为仪表、传感器内部数据所存放的地址,后一半为读取的字节数。校验采用 MODBUS CRC16 校验。在调试阶段我们可通过 485 转 USB 接口,通过电脑端串口调试助手来检测所有智能仪表和传感器是否正常工作。在完成检测后,编写 PLC 端的 MODBUS 通讯协议。PLC 我们可选择三菱、西门子等品牌的各类支持 MODBUS通讯协议的型号,本设计选择运用较广泛的西门子进行举例。编写通讯协议时分为四步。第一步,创建一个名字为MODBUS的子程序,如图5所示。在子程序中编写整个 MODBUS 通讯协议来访问智能仪表及传感器。这里需要指出的是在主程序中始终接通这个子程序,这样子程序所采集的数据能够实时的被 PLC 所记录。图 5 MODBUS 子程序图第二步,进行 MODBUS 通讯程序初始化设定(MBUS_CTRL 指令),如图 6 所示。MBUS_CTRL 指令中 EN 和MODE 始终处于接通状态。Baud 波特率设置为 9600,与智能仪表和传感器保持一致。Parity 设置为 0。Timeout设置为 1000 1500(根据经验超时时间大约 1 1.5s 之间),这个数值太小则智能仪表和传感器以及 LORA 无线透传模块来不及把数据传输过来,如果太长则实时数据更新太慢。Done 设置为 L0.0 即完成该功能后的 L0.0 标志位置 1。Error 出现错误后存储在 LB0 区域。图 6 MODBUS 初始化设定图第三步,进行智能仪表及传感器的数据读取程序设置(MBUS_MSG 指令),如图 7 所示。数据读取程序采用的轮询的方式,即同一时间段只读取和传输一个智能仪表和传感器的数据,完成一个关闭一个,随即打开下一个,以此循环。MBUS_MSG 指令中,Slave 为从机地址(例如光照度传感器从机地址为 1)。RW 为读写指令,读为 0,写为 1,本设计为读取仪表数据,设置为 0。Addr 为读取数据的地址,在 PLC 的程序中地址与智能仪表和传感器中数据存储地址不同,前者是从 0 开始计算地址,后者是从 1 开始计算地址。以数字电压、流表为例,数据存储在 29(十进制)里,在 PLC 程序中该地址为 30。所以地址的正确数值应为40030。Count 为读取几位,一般只读一个数据故而为 1。如果像温湿度传感器,温度和湿度数据在一起,则需要读取2 个,应设置为 2。DataPtr 为读取的数据在 PLC 内的存储区域,一般情况下,存储在 V 区,应该用指针来填写,例如:&VB XXXX。Done 为完成数据读取后的标志位,我们这里为了能够实现轮询,使用 M0.0 M0.6,将上一个智能仪表或传感器读取程序标志位复位的同时,打开下一个智能仪表或传感器读取程序。Error 出现错误后存储在 LB1 LB7区域。图 7 MODBUS 数据读取程序(部分程序)图第四步,数据处理程序,如图 8 所示。该部分程序分成数据转换、数据处理、数据运算三部分。|33智能应用(1)数据转换,主要功能是把读取的数据类型由整数转化成实数。例如西门子 PLC 没有直接把整型转换成实数的指令,所以转换过程中先把整型转换成双整型,再转换成实数。(2)数据处理,主要是在数据上保留多位小数,方便进行计算和显示。主要方式是使用乘法、取整和除法指令实现。例如将电压 24.5678V 要保留两位小数进行显示的话,则需要先将数据乘以 100,得到 2456.78,然后取整得到2456,再除以 100 得到 24.56V。(3)数据运算。主要是实现数据之间的计算。例如电功率的计算,就是由电压乘以电流。2.2 PLC 主程序设计(1)手动模式和自动模式切换程序,如图 9 所示。图 9 手动、自动模式切换程序图本设计中为了提高手动和自动模式切换的便利性,不仅设置了实体按钮而且在人机里设置了虚拟按钮 M2.0。按下手动模式(I0.0 或 M2.0),对应指示灯点亮,操作人员可以根据此时的温度、湿度、光照度进行通风、加湿、照明操作。按下自动模式(I0.1 或 M2.0),对应指示灯点亮,自动程序根据传感器传输数据进行自动调节。由于手动模式和自动模式是互斥条件,故而在编程的时候采用 RS 触发器。同时为了