硬件構成
PLC為西門子1211DCDCDC
電腦上位機用PYTHON編寫
二者通訊用網線,通訊協議用S7
PLC上的數據
PLC上的數據是2個uint,在DB1,地址偏移分別是0和2
需要注意的是DB塊要關閉優化的塊訪問,否則是沒有偏移地址的
PLC中的數據內容如下:
在監控表中將數據設置如下
41和42就是AB
63和64就是cd
Python編程
需要先安裝snap7庫
pip3 install python-snap7
完整代碼如下
import snap7
import timeplc1 = snap7.client.Client()
plc1.connect('192.168.60.43', 0, 1)
print(f"connect: {plc1.get_connected()}")for x in range(0, 10):data = plc1.read_area(snap7.types.Areas.DB, 1, 0, 4)print(data)time.sleep(0.5)plc1.disconnect()
代碼說明:
plc1.connect('192.168.60.43', 0, 1)
192.168.60.43是PLC的IP地址,0和1是默認連接參數,用默認的就行
data = plc1.read_area(snap7.types.Areas.DB, 1, 0, 4) # 讀取數據
將讀取的數據存放到data,
括號內的參數:
snap7.types.Areas.DB 表示讀取的是DB塊
1 PLC中待訪問的DB塊的編號
0 數據的起始偏移地址,也就是圖2中的偏移量
4 數據的長度,4字節
運行結果
連接狀態:True
數據 ABcd 正常讀出