仿真s7 snap7 写入

# 准备写入数据
data = bytearray(20)  # 创建 20 字节的缓冲区 (每个整数占 2 字节,共 10 个整数)

# 按顺序将值 1, 2, 3, ..., 10 写入数据缓冲区
for i in range(10):
    set_int(data, i * 2, i + 1)  # 每个整数占 2 字节,从 i * 2 的位置开始写入整数

    # 将数据写入到 DB1 的起始位置 (从字节 0 开始)
    _client.write_area(Areas.DB, 1, 0, data)

    # 读取 DB1 的前 20 字节
    read_data = _client.read_area(Areas.DB, 1, 0, 20)

    # 打印读取的数据
    print(f"读取到的数据: {read_data}")

# 解析并显示每个整数值
for i in range(10):
    int_value = get_int(read_data, i * 2)
    print(f"读取到的第 {i + 1} 个整数值: {int_value}")

(还是得依赖chatgpt,进行快速试错。结合源码理解意思)

写小数:

# 准备写入数据
                data = bytearray(20)  # 创建 20 字节的缓冲区 (每个整数占 2 字节,共 10 个整数)

                # 按顺序将值 1, 2, 3, ..., 10 写入数据缓冲区
                for i in range(10):
                    set_int(data, i * 2, i + 1)  # 每个整数占 2 字节,从 i * 2 的位置开始写入整数

                # 将数据写入到 DB1 的起始位置 (从字节 0 开始)
                _client.write_area(Areas.DB, 1, 0, data)

                # 读取 DB1 的前 20 字节
                read_data = _client.read_area(Areas.DB, 1, 0, 20)

                # 打印读取的数据
                print(f"读取到的数据: {read_data}")

                # 解析并显示每个整数值
                for i in range(10):
                    int_value = get_int(read_data, i * 2)
                    print(f"读取到的第 {i + 1} 个整数值: {int_value}")


                ####
                # 准备写入数据(20 个小数)
                data = bytearray(80)  # 创建 80 字节的缓冲区 (每个 REAL 类型占 4 字节,共 20 个小数)

                # 按顺序将 20 个浮动小数值写入数据缓冲区
                for i in range(20):
                    set_real(data, i * 4, (i + 1) * 1.5)  # 将浮动小数值 (i + 1) * 1.5 写入到数据缓冲区

                # 将数据写入到 DB1 的起始位置 (从字节 20 开始,因为前面已经写了 20 个整数)
                _client.write_area(Areas.DB, 1, 20, data)

                # 读取 DB1 的第 20 到第 99 字节(包含 20 个小数)
                read_data = _client.read_area(Areas.DB, 1, 20, 80)

                # 打印读取到的数据
                print(f"读取到的数据: {read_data}")

                # 解析并显示每个浮动小数值
                from snap7.util import get_real

                for i in range(20):
                    real_value = get_real(read_data, i * 4)
                    print(f"读取到的第 {i + 1} 个浮动小数值: {real_value}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值