網(wǎng)站首頁 編程語言 正文
主要在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塊的編號,90表示DB塊內(nèi)的偏移地址,4表示要讀取的字節(jié)數(shù)。?
data2=PLC.db_read(db_number=1200, start=90, size=4) print(data2)
data2是個bytearray(b'\x00\x00\x00\x05'),struct.unpack()方法將讀取到的4個字節(jié)數(shù)據(jù)按照大端字節(jié)序("!"表示大端字節(jié)序)解包為一個整數(shù)。解包的結(jié)果以元組的形式返回
data3 = struct.unpack('!i', data2) print(data3) #data3 = 5
'!i'
和'!h'
都是Python中struct庫中的格式化字符串,用于指定要解析的二進制數(shù)據(jù)的格式和字節(jié)順序。
其中:
-
'!'
表示使用網(wǎng)絡(luò)字節(jié)順序(big-endian)。 -
'i'
表示要解析的數(shù)據(jù)類型是4字節(jié)的整數(shù),也就是int類型。 -
'h'
表示要解析的數(shù)據(jù)類型是2字節(jié)的有符號整數(shù),也就是short類型。
因此,'!i'
用于解析4字節(jié)的大端整數(shù),'!h'
用于解析2字節(jié)的大端有符號整數(shù)。
當(dāng)解析不同類型的數(shù)據(jù)時,需要使用相應(yīng)的格式化字符串。在這里,根據(jù)PLC中數(shù)據(jù)類型的不同,可以選擇不同的格式化字符串來解析數(shù)據(jù)。通常需要根據(jù)PLC的數(shù)據(jù)類型和大小來選擇正確的格式化字符串,否則解析出來的數(shù)據(jù)將會是錯誤的。
寫DB塊
已經(jīng)知道這個要寫入的DB塊是DINT類型的。要把數(shù)字1寫進去
a=struct.pack('!i', 1)
a= b'\x00\x00\x00\x01'
PLC.db_write(1200, 90, a)
在這個例子中,1200
表示要寫入的DB塊的編號,90
表示從該塊的偏移地址90處開始寫入數(shù)據(jù),b'\x00\x00\x00\x01'表示要寫入的四個字節(jié)的數(shù)據(jù)。
原文鏈接:https://blog.csdn.net/weixin_44656422/article/details/129129482
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-06-23 教你編寫bat腳本W(wǎng)indows批處理_DOS/BAT
- 2022-03-29 C#算法之冒泡排序、插入排序、選擇排序_C#教程
- 2022-09-09 C#流程控制詳解_C#教程
- 2022-09-17 python?Pandas之DataFrame索引及選取數(shù)據(jù)_python
- 2022-10-27 kotlin?協(xié)程上下文異常處理詳解_Android
- 2022-12-02 解析Golang中的鎖競爭問題_Golang
- 2023-02-09 MongoDB中aggregate()方法實例詳解_MongoDB
- 2022-10-16 python?os.path模塊使用方法介紹_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支