中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python?snap7怎么讀寫PLC

發布時間:2023-02-22 10:30:47 來源:億速云 閱讀:112 作者:iii 欄目:開發技術

這篇文章主要介紹“python snap7怎么讀寫PLC”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python snap7怎么讀寫PLC”文章能幫助大家解決問題。

主要在DB塊里操作

讀DB塊

import snap7
import struct
 
def plc_connection():
    PLC_IP = '192.168.10.10'
    PLC = snap7.client.Client()
    PLC.connect(PLC_IP, rack=0, slot=1)
    return PLC
PLC = plc_connection()

PLC.read_area()方法從PLC中讀取指定區域的數據。
1200表示DB塊的編號,90表示DB塊內的偏移地址,4表示要讀取的字節數。 

data2=PLC.db_read(db_number=1200, start=90, size=4)
print(data2)

data2是個bytearray(b'\x00\x00\x00\x05'),struct.unpack()方法將讀取到的4個字節數據按照大端字節序("!"表示大端字節序)解包為一個整數。解包的結果以元組的形式返回

data3 = struct.unpack('!i', data2)
print(data3)
#data3 = 5

'!i''!h'都是Python中struct庫中的格式化字符串,用于指定要解析的二進制數據的格式和字節順序。

其中:

  • '!'表示使用網絡字節順序(big-endian)。

  • 'i'表示要解析的數據類型是4字節的整數,也就是int類型。

  • 'h'表示要解析的數據類型是2字節的有符號整數,也就是short類型。

因此,'!i'用于解析4字節的大端整數,'!h'用于解析2字節的大端有符號整數。

當解析不同類型的數據時,需要使用相應的格式化字符串。在這里,根據PLC中數據類型的不同,可以選擇不同的格式化字符串來解析數據。通常需要根據PLC的數據類型和大小來選擇正確的格式化字符串,否則解析出來的數據將會是錯誤的。

寫DB塊

已經知道這個要寫入的DB塊是DINT類型的。要把數字1寫進去

a=struct.pack('!i', 1)

a= b'\x00\x00\x00\x01'

PLC.db_write(1200, 90, a)

在這個例子中,1200表示要寫入的DB塊的編號,90表示從該塊的偏移地址90處開始寫入數據,b'\x00\x00\x00\x01'表示要寫入的四個字節的數據。

關于“python snap7怎么讀寫PLC”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍邱县| 桦甸市| 翁牛特旗| 丹棱县| 忻州市| 延寿县| 台州市| 松原市| 醴陵市| 开原市| 金川县| 奉贤区| 栾城县| 黄龙县| 清丰县| 乌鲁木齐县| 进贤县| 白河县| 杭锦后旗| 鹤峰县| 嘉峪关市| 虹口区| 新巴尔虎左旗| 巧家县| 临桂县| 福贡县| 西宁市| 榕江县| 郯城县| 云和县| 和龙市| 奉贤区| 凤山市| 新乡市| 昌黎县| 古浪县| 鹰潭市| 桃园市| 宁陵县| 城固县| 抚宁县|