欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?snap7讀寫PLC的操作方法

 更新時(shí)間:2023年02月22日 09:39:28   作者:蘇坡愛豆的笑容都沒你的甜  
這篇文章主要介紹了python?snap7讀寫PLC的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

主要在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中讀取指定區(qū)域的數(shù)據(jù)。
1200表示DB塊的編號(hào),90表示DB塊內(nèi)的偏移地址,4表示要讀取的字節(jié)數(shù)。 

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

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

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

'!i''!h'都是Python中struct庫中的格式化字符串,用于指定要解析的二進(jìn)制數(shù)據(jù)的格式和字節(jié)順序。

其中:

  • '!'表示使用網(wǎng)絡(luò)字節(jié)順序(big-endian)。
  • 'i'表示要解析的數(shù)據(jù)類型是4字節(jié)的整數(shù),也就是int類型。
  • 'h'表示要解析的數(shù)據(jù)類型是2字節(jié)的有符號(hào)整數(shù),也就是short類型。

因此,'!i'用于解析4字節(jié)的大端整數(shù),'!h'用于解析2字節(jié)的大端有符號(hào)整數(shù)。

當(dāng)解析不同類型的數(shù)據(jù)時(shí),需要使用相應(yīng)的格式化字符串。在這里,根據(jù)PLC中數(shù)據(jù)類型的不同,可以選擇不同的格式化字符串來解析數(shù)據(jù)。通常需要根據(jù)PLC的數(shù)據(jù)類型和大小來選擇正確的格式化字符串,否則解析出來的數(shù)據(jù)將會(huì)是錯(cuò)誤的。

寫DB塊

已經(jīng)知道這個(gè)要寫入的DB塊是DINT類型的。要把數(shù)字1寫進(jìn)去

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

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

PLC.db_write(1200, 90, a)

在這個(gè)例子中,1200表示要寫入的DB塊的編號(hào),90表示從該塊的偏移地址90處開始寫入數(shù)據(jù),b'\x00\x00\x00\x01'表示要寫入的四個(gè)字節(jié)的數(shù)據(jù)。

到此這篇關(guān)于python snap7讀寫PLC的文章就介紹到這了,更多相關(guān)python snap7讀寫PLC內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論