如何使用Python将数据写入plc中的int值

问题描述

我的代码

import snap7.client as s7

ip = '192.168.0.7'
rack = 0
slot = 1
data_blok = 100
start_adress = 0
size = 260
try:
    plc = s7.Client()
    plc.connect(ip,rack,slot)
    con = plc.get_connected()
    print(f"Bağlantı Durumu: {con}")

    db = plc.db_read(data_blok,start_adress,size) //read

    name = db[0:256].decode('UTF-8').strip('\x00')
    print(f'Data AA: {name}')
    value = int.from_bytes(db[256:258],byteorder='big')
    print(f'Data BB: {value}')
    boll = bool(db[258])
    print(f'Data CC: {boll}')
except:
    print("hata")

输出

BağlantıDurumu:真的
数据 AA: HELLO WORD //string
数据BB:55 //int
数据 CC:True //bool
进程完成,退出代码 0 ...

///////////////////////////////////////////

如何在这里更改整数值??
plc.db_write(?????????)

解决方法

首先,您需要操作缓冲区。 (db 命名变量).

client.db_write(data_blok,start_adress,size,db)

https://github.com/gijzelaerr/python-snap7/blob/master/example/example.py

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...