weixin_53582602 2022-01-28 15:45 采纳率: 52.4%
浏览 111
已结题

Python通过snap7库与西门子S7-200smart 读取 M0.4,0.5,0.6,0.7数据问题

根据网上的说明

例子:M3.2位置写入1,并读出来

client.write_area(snap7.types.Areas.MK,0,3,struct.pack('B',4))

这里表示对中间M区中的M3.2位置写入1。4->0100

img

我试了一下读取方法只能读取到0F ,也就是 二进制 1111,对应M0.0 0.1 0.2 0.3

请问我想读取M0.4,0.5,0.6,0.7这些区域的值应该怎么写语句,谢谢

  • 写回答

1条回答 默认 最新

  • 於黾 2022-01-28 16:26
    关注

    client.write_area(snap7.types.Areas.DB,1,4,data_tobewrite)
    4个参数分别是:地址区、地址区号、起始地址、数据
    read_area(self, area: Areas, dbnumber: int, start: int, size: int)
    4个参数分别是:地址区、地址区号、起始地址、数据数量
    写入的时候不需要数量参数,因为你传入的本身就是byte数组,数据数量就是byte数组长度
    读取的时候,你传入参数1,当然就只读取1个字节,data的长度也只有1,你改成别的多试试呗

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月4日
  • 创建了问题 1月28日