python 小说 云_小说python操作PLC
PLC(Programmable Logic Controller)可編程邏輯控制器,可以理解為一個微型計算機,廣泛應用于工業控制中,如樓宇智控、精密機床、汽車電子等等。
隨著物聯網的興起,越來越多的傳統工業設備需要和外界通信,但很多情況下,類似PLC這種微控制器,由于自身硬件的因素,無法直接與外界互聯互通,通過PC這種上位機作為一個中介橋梁,為PLC與外界溝通打開了一扇門。
Python作為當前最火的語言,在AI、云計算等諸多方面都能看到它的身影,當然在工業控制中,也不能少了它。
這里,就小說一把如何使用Python構建PC與PLC的通信,也算show一把Python在工控領域的風采。
Snap7簡介
當前市場上主流的PLC通信方式為網絡通信和串行通信。網絡通信這塊主要協議有profinet,modbus-tcp等,串行通信主要是基于RS232/485的modbus居多。
本次接觸到的是西門子S7系列的PLC,通信方式都為網絡型的,而Snap7正是一個開源的、32/64位的、多平臺的以太網通訊庫:
支持多硬件體系結構(i386/x86_64、ARM/ARM64、Sun Sparc、Mips)
支持多系統(Windows、Linux、BSD、Solaris)
支持多語言(C/C++、Phyton、Node.js、Pascal、C#、VB)
官網為: http://snap7.sourceforge.net/
Python對其進行了封裝,具體可以參見:
https://github.com/gijzelaerr/python-snap7
開發環境搭建
這里主要從Windows和Linux(Ubuntu)兩個平臺,說說如何搭建Python環境下的Snap7開發環境。
Python的安裝這里就不再贅述,環境搭建主要就是Snap7和python-snap7兩個庫的安裝。
1
安裝Snap7
Windows下,需要根據Python的結構版本(32位/64位),將下載的Snap7的發布庫copy到對應的Python安裝根目錄下即可。
如上圖所示,我的python是32bit,所以需要將Snap7中Win32目錄下的文件copy到python的安裝根目錄下,如下圖所示:
Linux(Ubuntu)下安裝,相對簡單些,按如下命令即可:
2
安裝python-snap7
snap7的python庫安裝就簡單很多了,不管是Windows還是Linux,直接pip安裝即可。
經過上面兩步,環境就算搭建好了,通過一個連接測試代碼試試,判斷下環境是否搭建正常。
如果是下圖提示,則環境正常(192.168.0.1的PLC不存在)
如果是下圖提示,則環境異常(snap7庫安裝不正確)
讀寫PLC
環境搭建正常后,在正式建立通信前PLC還需做些配置工作,主要是開發自身的讀寫權限,具體參照下圖配置:
通過上述配置,PLC可以正常通信了。
1
python-snap7讀寫分析
結合python-snap7的文檔API和源碼分析,python-sna7重要的兩個方法是read_area和write_area,通過這兩個方法就能讀和寫PLC的對應存儲地址。
從參數可見,需要提供PLC的區域地址、起始地址、讀和寫的數據長度。
區域地址什么東西,PLC能提供的是如下信息:
PLC程序員的眼里只有I、M、Q、DB,
python程序員,現在慌了一比,這是what?
如何才能看到PLC程序員眼里的美麗風景,就得多看一眼PLC了。
2
PLC數據存儲和地址
通過閱讀PLC的手冊,獲取到了如下信息:
PLC的數據存儲通過tag的形式與存儲區間關聯,分為輸入(I)、輸出(O)、位存儲(M)和數據塊(DB),程序在訪問對應(I/O)tag時,是通過訪問CPU的Process Image Out,對相應地址進行操作,具體對應關系如下:
到這里就能明白python-snap7中定義的areas地址是什么含義了。
現在離讀寫PLC還差最后一步,就是起始地址如何確定呢?
從上可見對于M3.4,對應的就是M(0x83),起始地址是3,對應bit位是4。
實戰
經過上面的精心準備,下面就來一波實戰。
通過讀寫PLC的M10.1、MW201來具體看看如何讀寫PLC。
從代碼可見,MW201,根據M確定area為MK,根據W確定數據amount為2Btye,根據201確定start為201,讀出來的數據根據數據長度用struct進行unpack,寫數據對應strcut的pack。
這里給出PLC變量類型和大小,這樣對應確定讀寫的amount。
最后給出一段視頻,python操作PLC來個跑馬燈。
總結
以上是生活随笔為你收集整理的python 小说 云_小说python操作PLC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么买入不了创业版_详解实战抄底——如
- 下一篇: 来自百度的一篇如何关闭Centos7的防