基于PLC的养殖场环境监测控制系统 包括梯形图 电气图 博途v15.1版本及以上均可打开 西门子plc1200 当各个电动机运行时 实时参数也会发生相应变化(附电气接线图,I O接线图,系统流程图)
最近给老家养猪场搞了套环境监控系统,用西门子1200 PLC搭的。这玩意儿看着复杂,其实拆开了看就是一堆传感器、继电器和电机控制。老张头说以前靠人工看温度湿度,现在手机都能查数据,直呼高科技。
先看硬件怎么接的
核心设备是1214C DC/DC/DC的PLC,带了三个EM DP扩展模块。温湿度传感器用了个4-20mA输出的工业级探头,直接怼到AI模块上。风机、水泵这些大功率设备走中间继电器,PLC的DO点控制继电器线圈,强电部分单独做了隔离。
IO分配表长这样:
| 设备 | 信号类型 | 地址 | 备注 |
|---|---|---|---|
| 温度传感器 | AI | IW64 | 4-20mA对应0-50℃ |
| 湿度传感器 | AI | IW66 | 0-10V对应0-100%RH |
| 风机启停 | DO | Q0.0 | 中间继电器控制 |
| 水泵故障 | DI | I0.3 | 常闭触点接入 |
梯形图里藏着玄机
控制逻辑主要用梯形图实现,博途的FB块封装了设备控制逻辑。比如这个风机自动控制程序:
Network 1: A "温度过高" //DB1.DBX0.0 AN "手动模式" //DB1.DBX0.1 = "启动风机" //Q0.0 Network 2: A "湿度阈值" //DB1.DBW10 L "当前湿度" //PIW66 >=I = "开启除湿" //Q0.1其实就是个简单的比较逻辑,但要注意模拟量处理要做标定转换。比如湿度传感器的0-10V信号,在PLC里对应0-27648的数值,得用SCL指令做线性转换。
基于PLC的养殖场环境监测控制系统 包括梯形图 电气图 博途v15.1版本及以上均可打开 西门子plc1200 当各个电动机运行时 实时参数也会发生相应变化(附电气接线图,I O接线图,系统流程图)
实时监控玩点花的
用WinCC做了个简易HMI,关键参数都做了趋势图。这里用SCL写了个数据记录功能:
//每5分钟记录一次数据 IF "Timer".Q THEN "温度历史"[%DB1.DBW20] := REAL_TO_INT("当前温度" * 10); "湿度历史"[%DB1.DBW22] := REAL_TO_INT("当前湿度" * 10); SHL(IN:=ARRAY[1..50], N:=2); //数据移位 END_IF;这个移位操作相当于环形缓冲区,存最近4小时的数据。老张头最喜欢看这个曲线图,说比股票走势图还刺激。
扩展功能留着后手
现在这套系统能加装不少玩意儿:
- 加个4G模块,断网自动发短信
- 饲料投喂机联动控制
- 氨气浓度超标报警
- 对接微信小程序远程控制
电气图里专门留了备用DI/DO点,扩展模块的导轨位置也空着。下次准备加个称重传感器,自动计算饲料余量,到时候再改程序也就是加几个网络的事。
(系统流程图、接线图已打包在项目文件,用博途V15.1可以直接打开看。注意强电部分一定要做隔离,别让PLC板子成了烤乳猪!)