国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談python在工業(yè)控制領(lǐng)域的應(yīng)用

2021-11-10 14:32袁金慶
科學(xué)與生活 2021年17期
關(guān)鍵詞:自動化

袁金慶

摘要:現(xiàn)在工業(yè)控制領(lǐng)域大部分仍是以PLC(可編程邏輯控制器)為控制核心的工業(yè)自動化,但隨著工業(yè)4.0概念的提出,制造業(yè)對自動化、智能化生產(chǎn)模式的需求日益增長,作為邏輯控制器的PLC對一些大數(shù)據(jù)量處理工作力不從心。本文主要將淺顯談?wù)撓聀ython在工業(yè)控制領(lǐng)域的應(yīng)用。

關(guān)鍵詞:python;自動化;工業(yè)控制;

1、概述

隨著科學(xué)技術(shù)的發(fā)展,越來越多的企業(yè)開始進(jìn)入智能化生產(chǎn),PLC在對連續(xù)數(shù)據(jù)采集,數(shù)據(jù)顯示,數(shù)據(jù)庫管理等工作顯得心有余而力不足。連續(xù)數(shù)據(jù)采集,數(shù)據(jù)顯示,數(shù)據(jù)庫管理等工作使用上位機(jī)比較適合,而上位機(jī)開發(fā)語言主要有C、C++、C#、VB.NET、python等,python相對與其他語言簡單易學(xué),效率高,免費且開源等優(yōu)勢。

2、PLC發(fā)展現(xiàn)狀

(1)在PLC技術(shù)中,開關(guān)量的邏輯控制是最為常見的類型,其應(yīng)用最為廣泛?;陂_關(guān)量的邏輯控制技術(shù)取代了傳統(tǒng)繼電器電路,使電路控制技術(shù)的真正進(jìn)入了邏輯控制時代。

(2)由于PLC只能處理數(shù)字信號,在應(yīng)用過程中需要將模擬量進(jìn)行數(shù)字化轉(zhuǎn)換,此過程需要借助A/D和D/A轉(zhuǎn)換器實現(xiàn),為便于用戶使用,PLC廠家在進(jìn)行設(shè)計的過程中,就已經(jīng)研發(fā)了與之相匹配的A/D和D/A轉(zhuǎn)換器,從而保證PLC器件能夠?qū)δM量控制信號做出正確的響應(yīng)。

(3)在控制機(jī)構(gòu)的配置上,基于開關(guān)量的串口控制模塊需要與位置傳感器相連接,根據(jù)執(zhí)行機(jī)構(gòu)的運(yùn)動情況,進(jìn)行周期性的響應(yīng),這就是基于運(yùn)動控制的PLC技術(shù)。

(4)所謂過程控制,也就是自動控制原理中的反饋控制(或閉環(huán)控制),在PLC技術(shù)的實際應(yīng)用中,不僅需要對現(xiàn)場狀態(tài)進(jìn)行及時的反饋,還應(yīng)當(dāng)具備對過程量的控制能力。

3、python語言優(yōu)勢

Python語言目當(dāng)前最為流行的編程語言之一,相對于其他語言Python具有明顯優(yōu)勢。

(1)簡單、易學(xué)

(2)免費、開源

(3)高層語言

(4)可移植性

(5)解釋性

(6)面向?qū)ο?/p>

(7)可擴(kuò)展性

(8)豐富的庫

(9)規(guī)范的代碼

4、python在工業(yè)控制領(lǐng)域的應(yīng)用

(1)與PLC通訊

本文以西門子S7系列的PLC為例,使用Snap7庫實現(xiàn)與PLC的數(shù)據(jù)交換。

① 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為端口號。

③ 數(shù)據(jù)讀取,又分為ct?_read、db_read、mb_read、tm_read或者read_area等。

例:

read_area(area,dbnumber,start,size)

#area為內(nèi)存地址區(qū)域如下表,dbnumber為DB號,僅讀取DB區(qū)域時使用,start為偏移起始地址,size讀取字節(jié)數(shù)

④ 數(shù)據(jù)寫入,同數(shù)據(jù)讀取,又分為ct?_write、db_write、mb_write、tm_write或者write_area等。

通過以上,用很少的代碼就可以實現(xiàn)PLC的讀寫。

(2)機(jī)器人或其他第三方智能設(shè)備通訊。

Python自帶socket模塊,可以通過socket通訊實現(xiàn)與支持socket通訊方式的設(shè)備通訊。

第三方設(shè)備一般作為服務(wù)端會與多個設(shè)備相連接,上位系統(tǒng)一般使用客戶端,使用python如下代碼建立客戶端。

from socket import *

HOST = '127.0.0.1' #第三方設(shè)備的ip地址

PORT = 21567 #端口號

BUFSIZ =1024 #設(shè)置緩存器大小

ADDR = (HOST,PORT)

tcpCliSock = socket(AF_INET,SOCK_STREAM)

tcpCliSock.connect(ADDR)

(3)建立數(shù)據(jù)庫

現(xiàn)在已經(jīng)存在了很多優(yōu)秀的商業(yè)數(shù)據(jù)庫,如Oracle、DB2、SQL Server、Access等。同時,還有很多優(yōu)秀的開源數(shù)據(jù)庫,如MySQL、PostgreSQL等。

其中MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),因為其速度、可靠性和適應(yīng)性而備受關(guān)注。MySQL是流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。本文以MySQL為例介紹。

① 數(shù)據(jù)庫安裝。首先必須確保安裝MySQL。Python中使用pip install MySQL-python安裝即可。

② 數(shù)據(jù)庫連接。

例:import MySQLdb

db=MySQLdb.connect("localhost","testuser","test123","TESTDB", charset='utf8') #打開數(shù)據(jù)庫連接

③ 獲取游標(biāo),要想操作數(shù)據(jù)庫,光連接數(shù)據(jù)是不夠的,必須拿到操作數(shù)據(jù)庫的游標(biāo),才能進(jìn)行后續(xù)的操作。

例:cursor=conn.cursor()

④ 創(chuàng)建數(shù)據(jù)庫

如果數(shù)據(jù)庫連接存在我們可以使用execute()方法來為數(shù)據(jù)庫創(chuàng)建表:

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

⑤ 創(chuàng)建表

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)

⑥ 插入單條數(shù)據(jù)

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

⑦ 數(shù)據(jù)庫查詢

查詢Mysql使用fetchone()方法獲取單條數(shù)據(jù),使用fetchall()方法獲取多條數(shù)據(jù)。

5、結(jié)束語

Python具有大量的第三方庫,比如Numpy庫具有支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫,可以處理PLC或第三方設(shè)備中的大量數(shù)據(jù)。再比如PIL、matplotlib庫,可以將讀取的數(shù)據(jù)進(jìn)行圖片形式或三維形式的直觀顯示。Xlwt/xlrd等EXCEL庫可以將數(shù)據(jù)寫入EXCEL中,便于數(shù)據(jù)的整理保存比較等工作。Python作為現(xiàn)在最流行的編程語言,在工業(yè)控制領(lǐng)域我們也可以適當(dāng)應(yīng)用,解決一些小問題,提高工作效率。

參考文獻(xiàn):

[1]陳琥.PLC的發(fā)展現(xiàn)狀及應(yīng)用前景[J].電子技術(shù)與軟件工程,2017,000(009):120-120.

[2]宋春穎.基于Python的數(shù)據(jù)挖掘與分析[C]//第三十四屆中國(天津)2020’IT、網(wǎng)絡(luò)、信息技術(shù)、電子、儀器儀表創(chuàng)新學(xué)術(shù)會議.0.

[3]丁未.將工業(yè)與科技世界的運(yùn)行統(tǒng)一在Python語言的開源框架中[J].中國儀器儀表,2013,000(008):23-25,31.

猜你喜歡
自動化
AGV小車在白酒行業(yè)自動化立體倉庫中的應(yīng)用
配電室無人職守集控站在京博石化的運(yùn)用
配電線路運(yùn)行資料管理自動化的探討
莱西市| 搜索| 东至县| 潜江市| 张家港市| 苍南县| 刚察县| 抚顺市| 贺兰县| 桦南县| 民权县| 邛崃市| 增城市| 合阳县| 怀仁县| 怀安县| 和顺县| 博客| 新疆| 黑河市| 铜山县| 宁河县| 镇康县| 青州市| 高淳县| 萨嘎县| 当涂县| 延川县| 利辛县| 措勤县| 西藏| 额尔古纳市| 应用必备| 绿春县| 平遥县| 河南省| 蓬溪县| 长顺县| 桂林市| 湖南省| 吴江市|