• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2021-11-10 14:32:13袁金慶
      科學(xué)與生活 2021年17期
      關(guān)鍵詞:工業(yè)控制自動(dòng)化

      袁金慶

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

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

      1、概述

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

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

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

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

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

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

      3、python語(yǔ)言?xún)?yōu)勢(shì)

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

      (1)簡(jiǎn)單、易學(xué)

      (2)免費(fèi)、開(kāi)源

      (3)高層語(yǔ)言

      (4)可移植性

      (5)解釋性

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

      (7)可擴(kuò)展性

      (8)豐富的庫(kù)

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

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

      (1)與PLC通訊

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

      ① python安裝snap7只需要簡(jiǎn)單命令pip install python-snap7即可。

      ② 使用snap7.client.Client庫(kù)中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號(hào),0為CPU所在槽號(hào),1012為端口號(hào)。

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

      例:

      read_area(area,dbnumber,start,size)

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

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

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

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

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

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

      from socket import *

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

      PORT = 21567 #端口號(hào)

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

      ADDR = (HOST,PORT)

      tcpCliSock = socket(AF_INET,SOCK_STREAM)

      tcpCliSock.connect(ADDR)

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

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

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

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

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

      例:import MySQLdb

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

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

      例:cursor=conn.cursor()

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

      如果數(shù)據(jù)庫(kù)連接存在我們可以使用execute()方法來(lái)為數(shù)據(jù)庫(kù)創(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ù)庫(kù)查詢(xún)

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

      5、結(jié)束語(yǔ)

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

      參考文獻(xiàn):

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

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

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

      猜你喜歡
      工業(yè)控制自動(dòng)化
      從電氣自動(dòng)化安全角度談西門(mén)子工業(yè)控制PLC應(yīng)用
      分頻計(jì)數(shù)在汽車(chē)檢測(cè)中的應(yīng)用
      供熱站自動(dòng)控制系統(tǒng)中PLC的應(yīng)用
      AGV小車(chē)在白酒行業(yè)自動(dòng)化立體倉(cāng)庫(kù)中的應(yīng)用
      配電室無(wú)人職守集控站在京博石化的運(yùn)用
      科技視界(2016年20期)2016-09-29 14:13:02
      配電線路運(yùn)行資料管理自動(dòng)化的探討
      科技視界(2016年20期)2016-09-29 13:45:10
      淺論工業(yè)控制過(guò)程DCS系統(tǒng)常見(jiàn)電磁干擾及抑制方法
      ZigBee技術(shù)在工業(yè)控制中的應(yīng)用探討
      论坛| 满城县| 大英县| 江源县| 山东省| 荆门市| 宁蒗| 岳池县| 上林县| 巍山| 大港区| 绍兴县| 芦溪县| 巩义市| 嵩明县| 永寿县| 渭源县| 永善县| 资兴市| 拉萨市| 泸定县| 昭平县| 遂宁市| 秦皇岛市| 文成县| 南宫市| 达日县| 大足县| 枞阳县| 神木县| 南雄市| 永兴县| 梓潼县| 石台县| 秦安县| 鹤峰县| 洞头县| 进贤县| 澄城县| 姜堰市| 威远县|