毕业设计:大棚管理系统

本文介绍了设计了一种基于PLC、触摸屏和多种传感器的智能农业大棚控制系统,通过485和CAN总线进行数据通信,实现光照、温湿度、烟雾监测及报警,利用node-red进行数据采集、处理和显示,提供实时监控与远程管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际生活中,有很多不能完成的工作,一般会交给各种控制系统,例如交通红绿灯。

人们并不能实时监督,所以体现出了控制系统的重要性。

本项目设计了四种大棚,分别为植物大棚、鸟禽大棚、畜牧大棚、水产大棚

其中人机交互界面为现场触摸屏,用于现场实时查看数据

智能终端ui界面为管理员控制界面,可以远程查看大棚数据和修改预设值

植物大棚需要采集光照,鸟禽大棚需要采集温湿度和烟雾值,畜牧大棚需要采集温湿度和烟雾状态,水产大棚需要采集水温

四个继电器作为中间继电器,连接不存在的四个报警灯

当植物大棚内光照值小于预设值时,植物大棚报警灯打开

当鸟禽大棚内温度大于预设值或者湿度大于预设值或者烟雾大于预设值,鸟禽大棚报警灯打开

畜牧大棚、水产大棚同理

四个按钮指示灯分别代表四个大棚,按下按钮即可在人机交互界面中切换至对应大棚

再次按下即可将该大棚的数据采集至历史数据表格中,当有第一个按钮与最后一个按钮同时按下时,即可切换会主界面

一、设备选型

1.西门子PLC(S7-200 SMART)

2.威纶通触摸屏(TK8071IP)

3.数字量5入5出模块(ETH-MODBUS-IO5R)

4.开关量模块

4只指示灯

4只按钮

4只继电器

5.采集模块

485型温湿度变送器

485型烟感火灾探测报警器

模拟量型光照变送器(0-5V)

CAN 总线导轨式温湿度传感器(SM1810C)

MQ2 烟雾传感器检测模块(范围0-10V)

PCTA-4018(8路CANOpen协议采集模块)

USR-DR404(485转WiFi模块)

USR-CANET200(CAN转485模块)

模拟量转485模块(普锐森社、0-5V、0-10V)

 热电偶

6.树莓派(Raspberry PI400)*注:其他的终端也行,例如电脑

7.TP-Link路由器

8.5口导轨式交换机

 9.端子排(样式自选)

 二、线路设计

一套完善的通信控制系统是十分复杂的,需要熟悉各个模块的作用以及在不同的通信方式之间建立连接,因此,我们应该先绘制拓扑图和接线图,才能进入下一步。

通信拓扑图

 

PLC、触摸屏、按钮、指示灯接线图

详解: 指示灯一端接地,另一端接在PLC的地址位上,可以实现当PLC发出指令时,指示灯跟随指令改变;同理,按钮需要一端接在电源上,另一端接在PLC上,可实现当按钮按下时,PLC实时监测按钮状态。

采集区接线图

 详解:根据拓扑图将所有485通信的模块建立485总线,将所有CAN通信的模块建立CAN总线

再根据拓扑图将所有直连模块连接即可。

中间继电器电路图

中间继电器触点

按钮控制继电器闭合控制负载

 三、地址配置

在这套系统中,拥有两种总线,分别是485总线和CAN总线

485总线采用标准modbus协议,因此需要为每个485通信的模块配置地址

模块地址配置
模块地址
485型温湿度变送器0x01
模拟量转485(0-5V)0x02
模拟量转485(0-10V)0x03
485型烟感火灾探测报警器0x04

另一条总线为CAN总线,需要配置帧ID与波特率,但是两个模块的帧ID并不相同,因此帧ID可以不用配置

SM1810C的波特率配置方法如下:

更改设备速率
    可以用主站通过命令重新设置设备速率,速率编号值范围为1~11。重新设置节点号后,速率立即生效。因通讯都为十六进制格式,表格里的速率编号都为16进制格式。

速率值实际速率速率值实际速率
110kbps(未用)220kbps
325kbps(未用)440kbps
550kbps6100kbps
7125kbps8200kbps
9250kbpsA400kbps
B500kbpsC1M

    不在上述范围的速率,暂不支持,若有特殊需求,可订制。比如设备速率为50k,根据上表,编号为05,要将速率更改为40k,40k的编号为04,则操作的通讯报文如下:01 06 0A 05 00 04,如下图所示。

PCTA-4018波特率配置需要拨动模块上的拨码开关,配置如下:

模块地址设置:
模块拨码开关的位 1-7 为模块节点地址设置开关, 拨码开关为地址的二进制表示,位 7 为二进
制站地址最高位。
拨码开关ADR0ADR1ADR2ADR3ADR4ADR5ADR6
ON1248163232
OFF0000000
如设置模块地址为 20,把开关 ADR2 ADR4 拨到“ON”的位置,开关 ADR0 ADR1 ADR3 ADR5
ADR6 拨到“OFF” 位置即可。当拨码全为 OFF 位置时模块地址等同地址 1。
CAN 波特率设置:
模块拨码开关的位 8-10 为 CAN 波特率设置开关,具体设置如下
DR0DR1DR2CAN波特率最大通信距离
OFFOFFOFF1Mbps25m
ONOFFOFF800Kbps50m
OFFONOFF500Kbps100m
ONONOFF250Kbps250m
OFFOFFON125Kbps500m
ONOFFON50Kbps1000m
OFFONON20Kbps2500m
ONONON10Kbps5000m

根据上述表格,进行CAN总线配置,配置如下

CAN通信模块配置
模块帧ID波特率
SM1810C0x00000001500Kbps
PCTA-40180x00000601500Kbps

*注:PCTA-4018帧ID下面会解释,SM1810C帧ID默认为0x00000001

四、协议解读

1.485型温湿度变送器

请求协议
地址码功能码起始地址数据长度校验位_L校验位_H
0x010x030x00 , 0x000x00 , 0x020xC40x0B
接收协议
地址码功能码有效字节数湿度温度校验位_L校验位_H
0x010x030x040xSh,0xSl0xWh,0xWl****

例如获取的湿度值为 0x02 0x92,那么换算成10进制就是658,

所以湿度=292H=>658=>65.8%RH,温度同理

2.模拟量转485模块(0-5V)

请求协议
地址码功能码起始地址数据长度校验位_L校验位_H
0x020x030x00 , 0x000x00 , 0x020xC40x38
接收协议
地址码功能码有效字节数数据1数据2校验位_L校验位_H
0x020x030x040xLh,0xLl0x00,0x00****

例如获取的光照模拟量为 0x00 0x3C 

那么获得的模拟量为3C H=>60

除以量程4096可得电压(V)  60/4096=0.0146484375

最终光照值=电压(mV)*13.107  0.0146484375*1000*13.170 ≈ 192 Lux

3.模拟量转485模块(0-10V)

请求协议
地址码功能码起始地址数据长度校验位_L校验位_H
0x030x030x00 , 0x000x00 , 0x020xC50x38
接收协议
地址码功能码有效字节数数据1数据2校验位_L校验位_H
0x030x030x040xYh,0xYl0x00,0x00****

 为节省时间,烟雾只求电压值,通过判断电压的大小来开启或关闭报警灯

电压求法同上

烟雾ppm求法

4.485型烟感火灾探测报警器

请求协议
地址码功能码起始地址数据长度校验位_L校验位_H
0x040x030x00 , 0x100x00 , 0x010x850x9A
接收协议
地址码功能码有效字节数数据1烟雾状态校验位_L校验位_H
0x040x030x020x00,0x00,0x00

0x00  无烟雾

0x01  有烟雾

****

5.SM1810C(CAN温湿度采集器)

*若从CAN总线转换至485总线,DLC、帧ID和末尾保留需补位

CAN总线中请求协议
地址码功能码起始地址数据长度
0x030x030x00 , 0x000x00 , 0x02
485总线中请求协议
0xDLC帧ID地址码功能码起始地址数据长度保留位
0x060x000000010x010x030x00 , 0x000x00 , 0x020x00 , 0x00
接收协议
0xDLC帧ID地址码功能码有效字节数温度湿度保留
0x070x000000010x010x030x040xWh,0xWl0xSh,0xSl0x00,0x00

例如收到温度为 0x08 0xAD

则实际温度=8AD H => 2221 => 22.1 ℃

6.PCTA-4018(8路模拟量采集器) 

读对象字典协议( upload protocol)
从服务器的对象字典里读数据 0xd0d...,客户端应该发送的报文如下

 如果成功,服务器的应答如下

例如模块地址拨码拨至0x01,那么发送协议的帧ID需+600,因此,模块准确的帧ID是0x06 0x01

因为PCTA-4018模块使用的是CANopen协议,因此需要借助CAN分析仪来解析他的协议

详情请见8路热电偶采集,Can协议,通道独立设置 (bjpct.com.cn)

PCTA-4018CAN转485后的请求协议
0XDLC帧ID固定Index_LIndex_H采集口固定保留
0x060x000006010x400x300x710x020x00,0x000x00,0x00
0xDLC帧ID固定Index_LIndex_H采集口温度固定保留
0x080x000005810x4B0x300x710x020xWl,0xWh0x00,0x000x00,0x00

例如获取的温度为0xF0 0x00

则实际温度为 00F0 H => 240 => 24.0℃

******************************************************注释***************************************************

0xDLC值=帧ID后面有多少个字节

例如PCTA-4018的DLC值包括固定值、index_L、Index_H、采集口、固定。一共6字节,最后的两位为协议保留位

Index值为对象字典,在PCTA-4018的使用手册中有所收录,0x7130为采集通道数据的索引,采集口是热电偶所接入的通道口

五、智能终端数据采集

1.数据采集

运用node-red的节点控制以及dashboard节点的网页显示,可以便捷的访问和维护系统

在树莓派终端中输入node-red并打开路由器输入127.0.0.1:1880即可进入node-red界面

或者与电脑连接至同一局域网,然后输入"树莓派IP":1880即可在电脑进入树莓派的node-red界面

首先,要把刚刚整理的协议全发出去,要注意发送的时间间隔,不然会导致数据丢失。

 请求协议数据流

 

 请求协议

2.数据处理 

然后在dashboard栏中创建一个tab,然后在tab中创建7个group,并依次为这些group命名为"主界面","报警界面","设置","植物类","鸟禽类","畜牧类","水产类"。

紧接着就是数据处理部分,通过前文的接收协议分析、模块模拟量数据分析,进而获取各个大棚的数据,一定要进行数据调整,否则数据乱流会扰乱真实数据。

数据处理流

 

数据处理1

 数据处理2

 数据调整

3.页面处理 

然后是页面处理部分,因为要接收PLC传来的实时按钮状态,因此,需要对PLC的数据进行判断并且将处理完成的数据以二进制流的形式返回至PLC,实现PLC与node-red的数据共享

页面控制流

 页面控制方法

*hide表示隐藏该group,show表示显示该group

PLC数据发送

 

 PLC发送协议

*通过拆除高低位的方式发送给PLC做下一步运算

4.报警判断

通过对比采集数据与设定值,来判断是否打开报警灯

报警灯判断流

 

判断函数

 5.预设值设置区

各数据设置流

 

数据保存函数

6.node-red dashboard-ui界面 

至此,node-red界面部署完毕,配置好485转wifi模块和CAN转485模块,连上路由器即可采集到数据,这是各个界面

主界面

报警界面

设置界面

 

植物大棚

 

鸟禽大棚

 

畜牧大棚

 

水产大棚

 由于预设值全是0,因此各个报警灯会因为判断函数而点亮

 六、PLC与人机交互界面编程

 1.PLC编程

首先建立node-red的tcp通信和数字量5入5出(ETH-MODBUS-IO5R)的tcp通信

使用PLC自带的TCP通信块,再稍微配置即可

node-red通信

 

数字量5入5出通信(ETH-MODBUS-IO5R)

*因为LAD图不能截全,因此截取FBD图。

 接下来就是按钮控制人机交互界面跳转以及控制node-redUI界面跳转,要求第一次按下按钮时,跳转至对应的大棚数据界面,再次按下按钮即可将该大棚采集的数据存入人机交互界面的历史数据表格,同时,对应指示灯闪烁3s

数据采集设计

 *本设计只运用了字节位移块,原理如下

 

指示灯工作原理

 最后便是数据处理部分,将从node-red获取的数据进行数据处理,因为PLC独特的地址结构,就可以直接将拆分好的高低字节组装成一个字的数据,如图所示

高低位组合

 数据处理

最后判断预设值与采集数据,是否启用报警灯

报警判断

 2.人机交互界面部署

人机交互界面部署在现场,由现场工作人员进行监视。PLC获得的数据通过交换机发送至人机交互界面,以实时获取数据。首先需要在easybuilder中配置好PLC的参数

配置界面

*IP地址一定是在同一网段上的不同地址中,例如192.168.1.101,192.168.1.102,端口号102 

主界面包含各个大棚的数据,设置按钮只能由现场管理员进入

主界面设计

 

登录界面设计

 

登录设计原理

 

登录功能演示

 

设置界面设计

 在人机交互界面中也应该遵循这按下按钮切换至对应页面,使用在PLC中的VB1寄存器来实时切换页面

页面切换设计

 在现场控制中,按第二次按钮后会将数据储存至历史数据表格中,而人机交互界面的历史数据需要先资料取样,才能存储

资料取样1 

资料取样2

历史数据表格

 然后设计4各大棚的数据界面

植物类

鸟禽类

畜牧类

水产类

 

页面切换演示

 至此,全部功能已经完善

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值