基于三菱PLC和MCGS组态农田智能灌溉系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面

蹲在去年晒裂的田埂翻手机的时候,张叔的微信弹出来差点砸我脚——还是配着哭丧表情漫玉米的视频。他说昨天忙着接进城看病的老伴,忘了关南头那片滴灌总阀,今早水顺着新修的排灌沟漫出去三公里,沟尾的菜畦也遭殃。其实这种事在村里不是一次两次,要么晒晕头算不准周期,要么临时有事没人顶,水肥跟着跑水也是常有的。

去年底就和同院搞自动化的发小攒了个小局,最后捣鼓出一套三菱FX3U和MCGS7寸屏搭的低成本农田滴喷灌切换系统,现在发小已经把它做成可以批量出给农机合作社或者种植散户的“半成品包”了,图纸、分配表、组态甚至简单的培训小纸条都印好封装。今天就拉出来唠唠核心的几块——


先唠唠「看得见摸得着」的IO分配

很多新手搞自动化第一步就怕IO乱套,尤其是农田这种现场要加流量计、电磁阀还要留温度、湿度传感器扩展的地方,我们就把它做了一张很清晰的黑白+彩色圈注表:

【三菱FX3U-32MT 本地IO分配表(基础版)】
---输入--- 信号类型 设备位置/备注
X0         手动/自动 转换开关(本地箱/MCGS同步控制)
X1         手动开总阀 按钮(本地箱防误触发)
X2         手动关总阀 按钮
X3         手动开1区滴灌 按钮
X4         手动关1区滴灌
X5         2区滴灌开
X6         2区关
X7         土壤湿度1(低阈值触发-自动启动) 三线式湿度传感器接ADC FX3U-4AD的AI1通道,通过FX3U的FROM/TO指令转成0-100%
X10        土壤湿度1(高阈值触发-自动停止) 或者干脆全转4-20mA,省阈值传感器?我们两种都做了图纸,按需取
...(扩展到X17是4区)
---输出--- 信号类型 设备
Y0         总阀(220V交流接触器线圈)
Y1         1区滴灌电磁阀线圈
Y2         1区喷灌备用切换线圈
Y3         2区滴灌
Y4         2区喷灌
...(Y7是4区喷)

彩色圈注就是红色圈接触器线圈(接的时候要加熔断器+浪涌保护器!这个很重要,农田里电压不稳浪涌多,烧PLC哭都来不及),蓝色圈传感器的预留接线柱(扩展模块用灰色虚线标在表旁边),彩色圈让张叔这种只会换灯泡的也能对着接。


梯形图没那么吓人!基础自动逻辑贴个核心段

FX3U的梯形图真的对新手友好,我们没用太复杂的FB块(主要怕散户换PLC不懂移植),都是最基础的常开常闭、计时器、FROM/TO。

基于三菱PLC和MCGS组态农田智能灌溉系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面

比如湿度转百分比那段,把FX3U-4AD接好后,在开头加一段初始化:

// 初始化AD模块FX3U-4AD:AI1通道设为4-20mA(对应0-100%湿度,传感器校准好的话)
LD M8002  // 开机只扫一次
TO K0 K0 K2 K1  // K0是模块编号(最近的第一个扩展模块),K0是通道选择寄存器,K2是选4-20mA,K1是改1个寄存器
TO K0 K1 K0 K1  // 通道1偏移量设0(传感器4mA对应湿度0%)
TO K0 K2 K4000 K1 // 通道1增益设4000(20mA对应数字量4000,刚好对应100%)

然后是自动启动停止的核心,不用分开接高低阈值,直接用转好的数字量和设定值比就行:

LD M8000  // 一直扫
FROM K0 K5 D0 K1  // 把通道1的实时数字量读到D0
DIV D0 K40 D1  // D1就是实时湿度%(4000/40=100)
LD X0  // 切换到自动
AND M0  // M0是MCGS里的“自动灌溉允许”按钮
LD>= D1 D200  // D200是MCGS里的“高湿度阈值”,默认80%
OR< D1 D201  // D201是“低湿度阈值”,默认30%
ANB  // 以上三个条件都满足才进下面的周期控制
OUT M10  // 自动准备标志
LD M10
ANI T0  // T0是灌溉间隔计时器,默认3小时,MCGS可改
OUT T0 K18000  // FX3U的100ms计时器,K18000=1800s=30分钟?不对不对,刚才打错了!K108000是3小时?哦NO FX3U普通T0-T199是100ms,最大K32767=3276.7s≈54分钟,所以要加个计时器叠加!散户一般地块小,54分钟够,但我们还是做了叠加版的可选梯形图,比如:
// 下面是54分钟不够的3小时版本叠加
LD T0
OUT C0 K4  // 计4次54分钟=216分钟≈3.6小时,差一点点没关系,MCGS里可以微调C0的设定值
LD C0
RST T0 C0  // 到时间重置,准备下一个周期
// 回到自动启动灌溉
LD M10
LD C0  // 间隔到了
AND< D1 D201  // 还低于低阈值
ORB
OUT Y0  // 开总阀
OUT T1 K600  // 1区滴灌先开10分钟(FX3U-32MT只有16个普通100ms?哦不刚才数错,FX3U-32MT的本地T是T0-T255?不对T0-T199是100ms,T200-T245是10ms,T246-T255是1ms加电池保持,完全够用)
LD T1
OUT Y1  // 1区开
OUT T2 K1200  // 1区滴20分钟
LD T2
RST Y1 T1
OUT Y3  // 2区开
...以此类推到4区
LD T8  // 4区滴完的最后一个计时器
RST Y0 T8  // 关总阀

这段代码看起来有点长,但拆开来就是“AD转百分比→判断自动/手动→判断间隔和湿度→按顺序开电磁阀”,注释全是大白话,张叔拿着培训小纸条对着也能改默认的时间和阈值。


MCGS组态画面!这个最讨张叔喜欢

张叔说“对着按钮太枯燥,对着手机字太小,就喜欢这种大字体的彩色屏幕”,所以我们做的组态画面只有5个——

  1. 主监控画面:顶栏是当前时间和天气(可以连个WIFI模块,但基础版没加,加模块成本涨100多,散户觉得没必要,顶栏留了“实时天气”按钮的位置,打印了链接让他们扫本地气象局的公众号);中间是田块的俯视图,1-4区用不同颜色的小方块标,滴灌/喷灌开启时方块会闪绿色/黄色,总阀开启时会有个小水泵的动图;下面是四个实时数值框:湿度1、湿度2(扩展版可以加)、当前灌溉区、剩余灌溉时间。
  2. 参数设置画面:可以改湿度高低阈值、灌溉间隔、每个区的灌溉时间,每个数值框下面都有“增加”“减少”“确认”三个大按钮,按钮直径有2cm,戴手套也能按。
  3. 手动控制画面:和本地箱的按钮一模一样,同步控制,双重保险。
  4. 报警记录画面:湿度超过90%、低于20%、总阀故障(加了个电流反馈的话)都会弹红色报警框,记录保存最近100条,张叔可以翻来看什么时候报的警。
  5. 帮助画面:全是图片和箭头,没有大段文字,教怎么接传感器、怎么换电池、怎么重启PLC。

最后放一张接线图的缩略图(基础版黑白打印也清楚)

(这里可以插个手绘感的接线图,比如本地箱里的PLC、电源、浪涌保护器、接触器、按钮按顺序排,用彩色线条连电源220V、直流24V、输入输出,彩色线条黑白打印的话会有深浅区别,也能看清)

现在这套“半成品包”已经卖给了张叔的合作社,南头那片10亩玉米田已经用上了,上周张叔还拍了个视频给我——老伴在城里做饭,他在村头下棋,手机对着MCGS的实时画面看,湿度降到32%的时候自动开了总阀,20分钟后自动关了,一滴都没浪费。发小现在正在攒连WIFI的版本,加个阿里云的小程序,在外打工的年轻人也能远程帮家里的老人控制灌溉。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐