網站首頁 編程語言 正文
主要在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'表示要寫入的四個字節的數據。
原文鏈接:https://blog.csdn.net/weixin_44656422/article/details/129129482
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-04-09 SpringBoot 集成MyBatis-Plus提示反序列化異常:cannot deseriali
- 2022-06-27 教你用Python按順序讀取文件夾中文件_python
- 2022-08-13 Flutter實現不同縮放動畫效果詳解_Android
- 2022-09-26 Ubuntu 22.04 源碼安裝 openssl 1.1 error while loading
- 2022-03-20 Android自動攔截與接聽功能APK黑白名單_Android
- 2022-02-07 SSH遠程連接Linux服務器,提示“Keyboard-interactive authentica
- 2022-05-01 C#實現提取Word中插入的多媒體文件(視頻,音頻)_C#教程
- 2022-11-20 WPF實現自帶觸控鍵盤的文本框_C#教程
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支