搜索

查看: 3072|回复: 11

[Python] python snap7读写PLC的操作方法

[复制链接]
发表于 2023-5-4 17:23:09 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:23:09 3072 11 看全部
目录
  • 主要在DB块里操作
  • 读DB块
  • 写DB块
    主要在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'表示要写入的四个字节的数据。
    到此这篇关于python snap7读写PLC的文章就介绍到这了,更多相关python snap7读写PLC内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
  • 回复

    使用道具 举报

    发表于 2023-6-28 17:32:25 | 显示全部楼层
    音乐之家1 2023-6-28 17:32:25 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    回复

    使用道具 举报

    发表于 2023-6-28 20:27:20 | 显示全部楼层
    123456825 2023-6-28 20:27:20 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-28 22:43:11 | 显示全部楼层
    知足常乐77 2023-6-28 22:43:11 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 10:03:25 | 显示全部楼层
    123456868 2023-6-29 10:03:25 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 16:55:57 | 显示全部楼层
    462710480 2023-6-29 16:55:57 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    发表于 2023-6-29 18:21:49 | 显示全部楼层
    墙和鸡蛋 2023-6-29 18:21:49 看全部
    楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
    回复

    使用道具 举报

    发表于 2023-7-1 00:40:17 | 显示全部楼层
    贰十岁装成熟装s 2023-7-1 00:40:17 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-7-3 11:34:57 | 显示全部楼层
    幸福341 2023-7-3 11:34:57 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    回复

    使用道具 举报

    发表于 2023-7-3 19:10:07 | 显示全部楼层
    落败的青春阳落s 2023-7-3 19:10:07 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 知鸟论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表