最近項目上要開發基於TCP/IP協議的PC上位機和西門子S7系列PLC的通訊和數據采集,網上搜羅了一圈發現有python snap7這個工具,鑒於此次開發時間有限,就自己研究上手了,期間也碰到很多安裝和連接、讀取數據的問題,網上解決方案有限,現提供一個測試版本,該版本有如下功能:
2018-03-14 更新python s7-1200測試版程序技術特性:
1、PC直接通過TCP網口連接S7-1200系列PLC;
2、按照PLC導出的點表地址獲取I、Q、M區的地址和類型進行讀取;
3、讀出的值下一步可以通過MYSQL或socket的方式記錄和推送;
4、目前是按照每個點逐個讀取,因此效率較低,后續考慮按塊讀取,那樣效率就很高了,基本上讀一次時間控制在ms級別;
5、擺脫了OPC的束縛,之前都需要從OPC中轉一下,這下PC可以直接通過網絡連接PLC。
感謝(https://www.jianshu.com/p/5284de40a139 的總結和分析,因為我也是個PLC小白,python snap7的優勢就在於,一個PLC小白也能很快地利用python和PLC建立通訊,並獲取寄存器的值,這些值為我們的數據分析提供了數據基礎,基於TCP/IP方式的通訊,是它最大的優勢,期間也用過modbus TCP的方式讀取,但是40001和M區的對應地址關系把我搞的頭暈,相比而言modbus簡單更易操作,python snap7更加專業。