浅谈python在工业控制领域的应用

2021-11-10 14:32袁金庆
科学与生活 2021年17期
关键词:自动化

袁金庆

摘要:现在工业控制领域大部分仍是以PLC(可编程逻辑控制器)为控制核心的工业自动化,但随着工业4.0概念的提出,制造业对自动化、智能化生产模式的需求日益增长,作为逻辑控制器的PLC对一些大数据量处理工作力不从心。本文主要将浅显谈论下python在工业控制领域的应用。

关键词:python;自动化;工业控制;

1、概述

随着科学技术的发展,越来越多的企业开始进入智能化生产,PLC在对连续数据采集,數据显示,数据库管理等工作显得心有余而力不足。连续数据采集,数据显示,数据库管理等工作使用上位机比较适合,而上位机开发语言主要有C、C++、C#、VB.NET、python等,python相对与其他语言简单易学,效率高,免费且开源等优势。

2、PLC发展现状

(1)在PLC技术中,开关量的逻辑控制是最为常见的类型,其应用最为广泛。基于开关量的逻辑控制技术取代了传统继电器电路,使电路控制技术的真正进入了逻辑控制时代。

(2)由于PLC只能处理数字信号,在应用过程中需要将模拟量进行数字化转换,此过程需要借助A/D和D/A转换器实现,为便于用户使用,PLC厂家在进行设计的过程中,就已经研发了与之相匹配的A/D和D/A转换器,从而保证PLC器件能够对模拟量控制信号做出正确的响应。

(3)在控制机构的配置上,基于开关量的串口控制模块需要与位置传感器相连接,根据执行机构的运动情况,进行周期性的响应,这就是基于运动控制的PLC技术。

(4)所谓过程控制,也就是自动控制原理中的反馈控制(或闭环控制),在PLC技术的实际应用中,不仅需要对现场状态进行及时的反馈,还应当具备对过程量的控制能力。

3、python语言优势

Python语言目当前最为流行的编程语言之一,相对于其他语言Python具有明显优势。

(1)简单、易学

(2)免费、开源

(3)高层语言

(4)可移植性

(5)解释性

(6)面向对象

(7)可扩展性

(8)丰富的库

(9)规范的代码

4、python在工业控制领域的应用

(1)与PLC通讯

本文以西门子S7系列的PLC为例,使用Snap7库实现与PLC的数据交换。

① python安装snap7只需要简单命令pip install python-snap7即可。

② 使用snap7.client.Client库中connect(self,address,rack,slot, tcpport=102)与PLC连接。

例:

import snap7

client = snap7.client.Client()

client.connect("127.0.0.1",0,0,1012) #"127.0.0.1"为PLCip地址,0为PLC号,0为CPU所在槽号,1012为端口号。

③ 数据读取,又分为ct¬_read、db_read、mb_read、tm_read或者read_area等。

例:

read_area(area,dbnumber,start,size)

#area为内存地址区域如下表,dbnumber为DB号,仅读取DB区域时使用,start为偏移起始地址,size读取字节数

④ 数据写入,同数据读取,又分为ct¬_write、db_write、mb_write、tm_write或者write_area等。

通过以上,用很少的代码就可以实现PLC的读写。

(2)机器人或其他第三方智能设备通讯。

Python自带socket模块,可以通过socket通讯实现与支持socket通讯方式的设备通讯。

第三方设备一般作为服务端会与多个设备相连接,上位系统一般使用客户端,使用python如下代码建立客户端。

from socket import *

HOST = '127.0.0.1' #第三方设备的ip地址

PORT = 21567 #端口号

BUFSIZ =1024 #设置缓存器大小

ADDR = (HOST,PORT)

tcpCliSock = socket(AF_INET,SOCK_STREAM)

tcpCliSock.connect(ADDR)

(3)建立数据库

现在已经存在了很多优秀的商业数据库,如Oracle、DB2、SQL Server、Access等。同时,还有很多优秀的开源数据库,如MySQL、PostgreSQL等。

其中MySQL是一种开放源代码的关系型数据库管理系统,因为其速度、可靠性和适应性而备受关注。MySQL是流行的关系型数据库管理系统之一。本文以MySQL为例介绍。

① 数据库安装。首先必须确保安装MySQL。Python中使用pip install MySQL-python安装即可。

② 数据库连接。

例:import MySQLdb

db=MySQLdb.connect("localhost","testuser","test123","TESTDB", charset='utf8') #打开数据库连接

③ 获取游标,要想操作数据库,光连接数据是不够的,必须拿到操作数据库的游标,才能进行后续的操作。

例:cursor=conn.cursor()

④ 创建数据库

如果数据库连接存在我们可以使用execute()方法来为数据库创建表:

cursor.execute('CREATE DATABASE IF NOT EXISTS pythonDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;')

⑤ 创建表

sql="""CREATE TABLE IF NOT EXISTS user` (`id`int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) NOT NULL, `age` int(11) NOT NULL,PRIMARY KEY (`id`) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0"""

cursor.execute(sql)

⑥ 插入单条数据

insert=cur.execute("insert into user values(1,'liming',18)")

⑦ 数据库查询

查询Mysql使用fetchone()方法获取单条数据,使用fetchall()方法获取多条数据。

5、结束语

Python具有大量的第三方库,比如Numpy库具有支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,可以处理PLC或第三方设备中的大量数据。再比如PIL、matplotlib库,可以将读取的数据进行图片形式或三维形式的直观显示。Xlwt/xlrd等EXCEL库可以将数据写入EXCEL中,便于数据的整理保存比较等工作。Python作為现在最流行的编程语言,在工业控制领域我们也可以适当应用,解决一些小问题,提高工作效率。

参考文献:

[1]陈琥.PLC的发展现状及应用前景[J].电子技术与软件工程,2017,000(009):120-120.

[2]宋春颖.基于Python的数据挖掘与分析[C]//第三十四届中国(天津)2020’IT、网络、信息技术、电子、仪器仪表创新学术会议.0.

[3]丁未.将工业与科技世界的运行统一在Python语言的开源框架中[J].中国仪器仪表,2013,000(008):23-25,31.

猜你喜欢
自动化
AGV小车在白酒行业自动化立体仓库中的应用
配电室无人职守集控站在京博石化的运用
配电线路运行资料管理自动化的探讨