通过Snap7与 LOGO!8PLC通信
前言
因一項目需要web控制LOGO! PLC,利用西門子自帶的免費LOGO!8.2 Web Editor工具可以很完美的做web頁面開發??梢詤⒖家曨l教程。此外西門子還提供數據導出到excel工具——LOGO8.2 Access Tool。
上面兩款工具雖然使用起來非常便捷,但還是想結合Snap7、樹莓派、Python做一個簡單的動態web頁面。
由于LOGO!PLC通訊方式與1200 1500PLC完全不同,有很多坑。
PLC 控制邏輯為:
M1=0時,泵Q1啟動;而M1=1時,泵Q1關閉。
M2=0時,閥門Q2打開;M2=1時,手閥門Q2關閉。
當NI1=1時,閥門Q3打開,NI1=0時,閥門Q3關閉。
注意:數字量輸入LOGO不可以遠程更改;NI表示網絡輸入。
本文僅僅是個人經驗總結,并一步步詳細記錄snap7獲取和寫入數據的步驟。snap7獲取數據后的web頁面可以用python flask或php等實現,就不再介紹。
硬件
Logo! PLC: 西門子6ED1052-1MD08-0BAD(8.FS4 固件版本號1.82.01 )
軟件
西門子LOGO! 編程軟件:LOGO!8.2 Soft Comfort
Python: 3.7.4
Snap7:1.42
python-snap7:0.10
主要參考
1)http://www.ad.siemens.com.cn/club/bbs/post_one_floor.aspx?b_id=28&a_id=1481079
2)https://cache.industry.siemens.com/dl/files/852/109768852/att_990439/v1/Help_zh-CHS.pdf?download=true
3)http://www.ad.siemens.com.cn/productportal/prods/logo/8_communication/Erthenet/S7/logo_1200_S7_logo_client/logo_1200_S7_logo_client.html
4)http://snap7.sourceforge.net/logo.html
PLC編程
新建網路項目
1) 在logo! Soft Comfot中選擇工具-》設置,將編輯器變為成LAD和語言可以改為中文狀態
2) 新建項目,需要選擇網路項目(NWP)
3)添加新設備,注意IP地址和網關
編程
在電路圖編輯器中編程(這與1200,200 PLC非常不同,剛開始接觸比較難懂)
其中網路輸入NI1為V0.0.
本地連接
1)Logo設置IP地址為192.168.0.3
2)設置本地連接網路屬性
下載
1)點擊工具欄上的下載按鈕
2)選擇連接方式
3)測試是否可以連接通過
4)刷獲取連接信息
5)確定
監控調試
1)下載完成程序后,泵Q1和閥門Q2自動開啟(可以聽到繼電器吸合聲音)
2)點擊電路圖編輯器中的在線測試圖標
可以發現M1和M2為灰色,Q1和Q2為黃色亮燈狀態,Q3為灰色。表明程序運行正常
3)點擊指示燈右側最后一個圖標(數據表)
4)編輯數據監控表
如下圖填寫數據表
從上圖中可以看出QB0的實際二進制值為0000 0011,即泵Q1和閥門Q2都是開啟狀態,而QB1和QB2均為00000000,QB3輸入不了,這是我們需要特別注意——LOGOPLC數據存取方式。
4)修改M1值使得泵Q1關閉
MB0賦予新值為1
結果如下:
5)M2強制賦值為1
在M1為1基礎上強制M2為1,因為M1實際存儲在M0.0(M0字節中的0號位),而M2存儲在M0.1(M0字節中的1號位),所以對應的M0二進制位0000 0011,即數值為3.
5)修改網絡輸入值NI1
直接在V0.0賦予新值為1即可。
LOGO!VM映射
LOGO! VM數據存儲方式比較奇特。
其數據類型有:
I數字量輸入;AI模擬量輸入;Q數字量輸出;M:M標志位;V變量位存儲器;VW變量字存儲器;AQ模擬量輸出;AM模擬量M標志位。
利用S7通信時需要用到VM映射,詳細介紹見LOGO!Soft Comfort在線幫助手冊。
VM地址和數據類型
I/O 與 LOGO! 0BA8 VM對應關系
LOGO! 與 S7通過 VM 地址分享數據
LOGO! 主機模塊也可通過 VM 地址(991 至 1002)與 SIEMENS SIMATIC S7/Modbus
兼容設備及 HMI 設備共享時間和日期信息。
監控測試VM區
1)對泵Q1啟動M1標志位和閥門Q2啟動標志位M2的VM修改,根據VM和I/O對應表,M起始位置為1104,故只需在“數據表中”輸入VB1104,選擇二進制數據類型,此時數值為2#0000 0011
將其賦予新值為0(M1、M2均為0)或1(M1為1,M2為0)或2(M1為0,M2為1)
① VB1104為0時
②VB1104為1時
③VB1104為2時
2)NI1網絡輸入值得修改
NI網絡輸入塊類型對應的VM地址1246-1261。
NI1強制為0,具體如下圖。
注意:這里VB1246為紅色表明這個地址沒有激活或者賦值,而我們在網路輸入設置時試將NT1保持到V0.0中,所以用VB0。
Snap7讀寫數據
S7連接設置
S7連接設置折騰了很久,具體參考以下鏈接或文本:
1)softComfort 說明書2.8。5.37
2)http://snap7.sourceforge.net/logo.html
3)http://www.ad.siemens.com.cn/club/bbs/post_one_floor.aspx?b_id=28&a_id=1481079
4)http://www.ad.siemens.com.cn/productportal/prods/logo/8_communication/Erthenet/S7/logo_1200_S7_logo_client/logo_1200_S7_logo_client.html
才略知一二。
1)在網路視圖中的logoPLC上點擊右鍵
2)選擇添加客戶端連接中的S7連接
3)在服務器端填寫IP地址和TSAP值
其中若編程電腦作為服務器,IP地址為本機的(例如192.168.0.10);TSAP:03.00(TSAP是通信連接地址)。
4)填寫傳輸數據
備注說明:Snap7讀取時可以不用寫傳輸數據表。下面操作均沒有填寫此表。
5)重新下載程序
Snap7連接PLC
這與Snap7官方輸入方式不同,而且按照官方輸入不能成功,非常感謝cen827在西門子論壇提供的解決方法。
讀取PLC值
Snap7 讀取PLC各塊值編號如下:
1)讀取Q1,Q2,Q3值
①QB區讀取
②DB區讀取
對比實際值,完全一致(二進制11就是十進制3)。
2)讀取M位
將閥門Q2標志位M2賦予新值為1,即MB0=2#0000 0010
獲取值如下圖:
寫入PLC值
注意:
①LOGO!PLC中數字量輸入DI是不能被寫入,
②當外部強制賦值時,可能不會改變是因為程序原因,即修改后,程序在下一個周期馬上復位到原來值,不是沒有修改成功。
1)將M2賦值為0,M0賦值為1,即MB0值由2#0000 0010變為為2#00001
初始值:
寫入
結果
2)通過VM數據塊寫入
將閥門Q3網絡輸入NI1賦值為1
未賦值前狀態圖:
寫入
運行結果
總結
Snap7連接LOGO! PLC主要步驟:
1)設置S7連接IP地址和通信連接地址TSAP
2)參數VM,Q,M變量變量范圍,尤其是VM地址范圍
3)讀取最小的都是一個字節不是一個位,讀取和賦值時都需要進行相應的處理
總結
以上是生活随笔為你收集整理的通过Snap7与 LOGO!8PLC通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络ospf配置命令,华为OSPF
- 下一篇: HDFView安装及使用教程