基于MODBUS通信协议的智能农业大棚数据采集无线传输系统设计

2023-04-01 07:38沈斌
电子制作 2023年5期
关键词:智能仪表光照度手动

沈斌

(1.苏州高等职业技术学校,江苏苏州,215000;2.江苏联合职业技术学院苏州分院,江苏苏州,215000)

0 前言

当今社会科学技术日新月异,传统的农业大棚在规模化、智能化、无人化上已经无法满足要求。本设计基于MODBUS通信协议设计了一套数据采集无线传输系统,将传感器、智能仪表、无线传输设备、智能控制设备(PLC)引入到农业大棚中,通过农业大棚中的各类传感器和智能仪表自动采集数据,无线传输给几公里外的控制室智能控制系统,智能控制接收数据进行处理后,自动发出各类控制指令,传输给农业大棚中的执行机构,完成温度、湿度、光照度等参数和作业的自动调节。极大地提高了农作物的生产效率及产品质量。

1 硬件设计

本设计中通过携带MODBUS通信协议的温湿度传感器、光照度传感器、智能仪表(数字电压表、数字电流表),实时采集多个农业大棚中的温度、湿度、光照度及相关设备的电压、电流的数据。通过农业大棚内本地LORA无线透传模块传输到几公里外的控制室内LORA无线透传模块中,进而LORA无线透传模块把数据传送至控制室内PLC中,经过数据转换处理后,在人机上显示出来。同时PLC内的智能程序会根据这些数据的变化远距离驱动风扇、水泵、照明灯的运行,进而完成通风、增湿、辅助照明等功能,从而实现农业大棚远距离数据采集及智能控制,使得农业大棚的环境满足植物的生长需要,原理框图如图1所示。

图1 远距离智能农业大棚数据采集系统原理框图

1.1 智能仪表模块设计

本设计所采用的智能仪表为AOB195U-9TY DC30V数字电压表和AOB195I-9TY DC5A数字电流表,这两个仪表都自带MODBUS标准通信协议,如图2所示。本设计智能仪表由两组构成(一个电压表和电流表为一组)。其中一组智能仪表安装在农业大棚中,主要监控各类传感器、风机、水泵、照明灯等设备的用电量。另一组安装在控制室中,监测PLC、人机等控制设备的用电量。两组智能仪表的数据也是通过RS-485总线传送至PLC中,进行数据转换处理,进行显示。智能仪表1、2脚接AC220V供电,7、8脚INPUT接待监测的直流电压/直流电流(0~30V/0~5A),61、62脚接RS-485总线A、B线。其通讯参数设置如下:波特率bAud设置在9600bps,通讯格式pAr设置为n8.1(无校验,8个数据位,一个停止位),通讯地址Adr设置为2~247(地址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。发射功率一般在5~20W之间设置,原则上距离越远功率越大,在城市范围内一组LoRa无线透传模块可以传输的距离在2~5km,如果在开阔无遮挡的区域,则传输范围更大。

图3 LORA无线透传模块实物、参数设置图

1.3 传感器模块设计

本设计数据采集系统的核心为光照、温湿度传感器,这两个传感器均自带MODBUS通信协议,且由DC24V供电,安装在农业大棚中,实时采样数据,如图4所示。其中光照度传感器选用型号为HYDZ-GZD,温湿度传感器选用型号为AW1485B。他们都通过RS-485总线A、B线(并联)与LORA无线透传模块A相连。

图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。

2 软件设计

2.1 MODBUS通信程序设计

本设计利用MODBUS通讯协议在PLC内部编写通信程序,通过程序轮询多个智能仪表(数字电压表、数字电流表)以及光照度、温湿度传感器,把农业大棚的各项数据进行实时采集、监控、调节,完成智能化的控制。

要访问各个智能仪表以及传感器,采集相关的数据,则需要根据MODBUS协议的要求,构建数据帧结构,读取指令构成如表2所示。

表2 MODBUS协议数据帧结构

表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所示。该部分程序分成数据转换、数据处理、数据运算三部分。

图8 MODBUS数据处理程序图

(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触发器。同时为了防止被干扰,采用边沿触发。

(2)温湿度、光照度自动报警程序,如图10所示。

图10 温湿度、光照度自动报警程序图

自动模式下,Q1.1常开触点闭合,比较指令将土壤湿度VD6500与湿度上限VD6700进行比较,高于设定的湿度上限时,过湿报警指示灯亮起;低于设定的湿度下限VD6800时,过干报警指示灯亮起。当比较指令将土壤温度VD6900与温度上限VD6100进行比较,高于设定的温度上限时,高温报警指示灯亮起;低于设定的温度下限VD6300时,低温报警指示灯亮起。当光照度VD4000低于光照度设定值VD7000时,M1.2照明灯间接控制线圈得电,进行辅助照明。

(3)输出控制程序,如图11所示。

图11 输出控制程序图

本段程序为手动模式和自动模式下实现水泵、风机和照明灯的双控。先分析手动模式下控制方式,其功能为按下相应的按钮,对应的设备工作,再按一次就停止,水泵为例。当前系统处于手动模式下,RS触发器R1和S两输入端口从左母线开始:Q1.0常开触点闭合,按下手动水泵按钮I0.5,两个I0.5常开触点闭合,触发上升沿P,S端口水泵Q0.0常闭触点闭合,R1端口常开触点断开,故而只有S端口接通,Q0.0置位,水泵启动。同时Q0.0常开触点闭合,常闭触点断开,为下一次Q0.0复位做好准备。当再次按下手动水泵按钮I0.5后,RS触发器R1端口接通,Q0.0复位,水泵停止,其触点复位。

自动模式下,还是以水泵为例。当过干报警Q0.6时,其常开触点接通,触发上升沿P,使得RS触发器S输入端口接通,Q0.0置位,水泵启动。当过湿报警启动或者过干报警停止,都接通RS触发器R1端口接通,Q0.0复位,水泵停止。实现水泵的手动和自动模式的双控。

风机和照明灯的双控类似。

2.3 人机界面及程序设计

本设计人机设计3个界面分别是:主界面、电量控制界面和管理员界面。

(1)主界面完成实时采集的温度、湿度和光照度数据,以及风扇、水泵、照明灯、报警灯的状态,如图12所示。

图12 人机主界面

(2)电量控制界面显示设备的实时用电数据,如图13所示。

图13 人机电量控制界面

(3)管理员界面设计以下功能,如图14所示。

图14 人机管理员界面

可进行手动模式和自动模式的切换。

输入温湿度的偏移量,用于校准温湿度模块采集的温湿度值,即实际温湿度值=传感器采集的温湿度值+温湿度偏移量。

温湿度上下限的设置。当实际温湿度处于设定的温湿度上下限范围内时,对应 LED 指示灯和报警灯熄灭,风扇和水泵均停止工作。反之则启动。

3 结束语

得益于MODBUS通信协议及智能控制设备(PLC)的数据处理能力,使得我们最多能够带247个从站,接收几百个传感器的数据,因此可以实现多个农业大棚管理的智能化、规模化和无人化,进而不断提高生产效率及产品质量。但本设计也有一些需要改进的地方,比如由于采用轮询访问从站时的数据更新的速度较慢。此外5公里以上的数据传输问题等,我们会在今后的设计中进行升级和改进。

猜你喜欢
智能仪表光照度手动
光照度传感器在智能家居照明系统中的应用
三种光照度对广西地不容生理生化特性的影响
智能仪表的抗干扰和故障诊断研究
智能仪表技术及工业自动化应用发展分析
光照度对不同产地南方红豆杉幼苗生长发育的影响
智能仪表在动态称重系统中的应用
智能仪表在工业自动化控制中的运用研究
小巧手动起来
“农地种电”型光伏电站可种植区域光温环境参数研究
风行S5001.6L手动尊享型