树莓派在卧螺离心机污水处理装置电控系统的应用
文:张双驰 潘芝渭 金丰(中国)机械工业有限公司 2019年第四期
导语:树莓派GPIO扩展RS485/GPIO模块,借助Modbus协议和变频器进行双向通讯,控制污水处理装置。不但实现了传统PLC控制系统所具备的全部功能,还能实现物联网功能,且总体成本大幅下降。
树莓派GPIO扩展RS485/GPIO模块,借助Modbus协议和变频器进行双向通讯,控制污水处理装置。不但实现了传统PLC控制系统所具备的全部功能,还能实现物联网功能,且总体成本大幅下降。
关键字:树莓派;PLC;离心机
1.前言
图1带扩展模块和风扇的树莓派
树莓派3B的CPU是1.2GHz的64位4核ARMCortex-A53芯片,而其他的物联网设备一般鲜有搭载主频超过600MHz的CPU,强大的处理器性能使树莓派具有强大的数据处理能力,能够流畅的执行多线程任务;集成了Wi-Fi芯片和蓝牙芯片,为树莓派接入无线网络,搭建物联网提供方便;此外提供40脚GPIO和4个USB2.0接口及其他接口,使树莓派可以方便的进行功能扩充。树莓派官方默认推荐的Linux操作系统,软件库里的软件包数量已经超过35万;目前,全球有约600万个树莓派在运行。树莓派的硬件和软件优势,为下面介绍的新产品提供了强大的支撑。
目前,国内生产的离心机大都采用PLC作为电控系统的核心控制元件,运行数据如果需要远传,必须借助各种各样的网关产品(例如:台达的DX2100,西肯麦的1149,华辰智通的M111N)才能连接到外部网络,是典型的物联网三层体系结构。
本文介绍的基于树莓派的电控系统,摒弃了传统的PLC,数据直接连接到外部网络,树莓派实质上起着控制器和网关的双重作用。
2.系统架构
图2系统框图
硬件配置:树莓派3B+RS485/GPIO;变频器:汇川MD380+MD38IO1;为污水处理装置配套的10台外围设备的控制信号、运行状态反馈信号、13个传感器信号全部接入变频器的I/O口,图1是树莓派实物照片,图2是系统图。
软件配置:操作系统Linux;编程软件Python3.5;界面制作软件PyQt5;通讯软件Modbus_tk.
3.研发过程
3.1代码编制概述
树莓派串口UART有3个功能:①蓝牙通讯(默认)②控制终端调试口③与其他设备进行串口通讯。但同一时间只能使用一种功能,应用于本例,需要关闭蓝牙通讯功能和控制台功能。
①设置Modbus_tk通讯协议:modbus_rtu,9600,8N1;
②用命令logger.info(master.execute(1,cst.READ_HOLDING_REGISTERS,28672,12))
读取变频器起始地址为7000H的12个数据(此处是读1#变频器)存放在日志文件中;
③对日志文件进行分割,所谓分割,就是保留一部分记录,其余抛弃,本例每2秒保存一次,文件名为“pzw”。
④解析日志文件:下面是文件“pzw”中1#变频器的部分日志内容(2#~5#格式相同):
2018-05-2519:42:11,200-->1-3-112-0-0-12-95-15
2018-05-2519:42:11,306-<-1-3-24-0-0-14-16-16-232-0-0-0-0-0-0-0-0-0-0-0-0-1-252-1-240-0-134-87-101
2018-05-2519:42:11,395-(0,3600,4328,0,0,0,0,0,0,508,496,134)
第1行是树莓派发送到变频器的读数据命令(读数据帧),第2行是变频器发送给树莓派的数据(读回应帧),第3行是数据(该行没有站号信息)。
分析前2行发现:①每条记录去掉头部日期时间后,第1个字符就是变频器的站号②含有变频器参数值的记录的字符数远大于其他记录,根据这2个特点,编制下述代码,作用是:对日志文件进行解析,最终得到代表变频器12个参数值的5个字符串:b1~b5,对其进一步处理就能得到具体的数据值。
withopen('pzw')asfile_object:
lines=file_object.readlines()#逐行读文件,存到表lines中
n=len(lines)#获取表的长度
foriinrange(n):
lines[i]=(lines[i])[27:]#截取表第27项到末尾,保存到表
iflen(lines[i])>63and(lines[i])[0]=='1':#判断站号,判断是否是数据
abc1=lines[i]#存放到表abc1中
a1=abc1[7:]#截取表abc1第7项到末尾,保存到表a1
b1=a1.split('-')#以‘-’为分隔符将字符串分割为新的表
u0_00_1=str(float(int(b1[0])*256+int(b1[1]))/100)#变频器输出频率
self.l1_1.setText(u0_00_1+'Hz')#标签显示
................
u0_11_1=str((int(b1[22])*256+int(b1[23]))/4)#pt100左轴承温度
self.l7_1.setText(u0_11_1+'℃')
iflen(lines[i])>63and(lines[i])[0]=='2':
..................
⑤主程序结构
“启动”“停车”等控制信号是非周期命令,读取变频器参数并对它进行处理是周期命令,为此,主程序采用主线程-子线程结构模式。流程见图3,2个计时器模块QTimter定时0.5秒,从而构成2秒左右一个循环的程序执行过程。
图3主流程图
3.2操作界面设计
图4树莓派端操作界面
污水处理装置可以在本地控制也可以远程桌面控制:本地操作界面如图4;远程操作界面如图5。win7系统远程访问Liunx系统下面的树莓派,需要安装xrdp和vncserver,并设置静态IP,然后进入远程桌面连接,用户名:pi,密码:raspberry。
图5远程电脑操作界面
3.3物联网应用开发
总体设计思路是:先把数据上传到阿里云服务器(ECS服务),然后在云服务器使用PHP程序语言和MySQL数据库来存储数据,最后作为客户端,在宁波建立物联网数据汇集中心。
把数据上传到阿里云,树莓派端要做(1)设置静态IP地址(2)搭建PHP网站服务器(3)编制程序(多线程后台运行)。
租用云服务器实现数据远程,无论对用户或厂家都有利:
①厂家可以随时随地监视远处离心机实际运行情况,对潜在故障及时作出预判,向用户提供有益的建议;②历史数据查看和历史故障查看功能,对故障定位和原因判定非常有用,可以减少用户停机时间,减少因停机给用户带来的各方面损失,有效避免双方因为对故障原因的认定产生异议而引起不必要的纠纷;③通过对大量数据的积累和分析,及时发现设计和制造缺陷,利于厂家进一步提高产品质量。
上述方案目前处于尝试阶段,有2个问题需要妥善处理:①有的用户耽心重要工艺参数外泄,有一种被人“偷窥”的感觉,持不欢迎态度②阿里云提供的Web服务页面服务,显示的数据表格不能直观反映整个系统运行状况,工程师希望提供类似监控画面的界面。
4.结论和展望
读取一台变频器数据耗时200ms,5台变频器需要1s,因此数据更新速率最少1.5s,要控制更多变频器,势必降低数据更新速率,操作时显得迟钝,降低实用价值。为此,可以考虑2台或几台树莓派协同运行,组成树莓派集群,解决控制规模问题。
树莓派借助modbus对变频器和接在变频器I/O口的外围设备进行通讯控制,如果该工程项目不包含变频器,则树莓派将发挥不了如此大的作用。这进一步说明树莓派应用于离心机电控系统是十分经济和合理的,既解决了数据上网问题,又大大降低了产品成本。应该指出,这种控制方案不仅仅适合于离心机电控,凡是有变频器的工程项目都值得借鉴。
树莓派在离心机行业的应用前景,可用图6来描述,来自全国乃至全球的离心机运行数据,通过云服务器,汇聚于宁波数据中心,工程师可以随时随地对设备进行监控,到那时运筹帷幄决胜千里变成现实。
图6离心机监控中心
参考文献
【1】张双驰:基于Modbus树莓派控制多台变频器的方法及应用实例,控制与传动,2018.4
【2】柯博文:树莓派(RaspberryPi)实战指南,清华大学出版社,2015.6
中传动网版权与免责声明:
凡本网注明[来源:中国传动网]的所有文字、图片、音视和视频文件,版权均为中国传动网(www.chuandong.com)独家所有。如需转载请与0755-82949061联系。任何媒体、网站或个人转载使用时须注明来源“中国传动网”,违反者本网将追究其法律责任。
本网转载并注明其他来源的稿件,均来自互联网或业内投稿人士,版权属于原版权人。转载请保留稿件来源及作者,禁止擅自篡改,违者自负版权法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

关注伺服与运动控制公众号获取更多资讯

关注直驱与传动公众号获取更多资讯

关注中国传动网公众号获取更多资讯
- 运动控制
- 伺服系统
- 机器视觉
- 机械传动
- 编码器
- 直驱系统
- 工业电源
- 电力电子
- 工业互联
- 高压变频器
- 中低压变频器
- 传感器
- 人机界面
- PLC
- 电气联接
- 工业机器人
- 低压电器
- 机柜