• python实现对modbusSIM的数据读取


    一、modbusSIM软件介绍

      1.界面

      2.参数设置

        链接设置,选择链接设置/Modbus/TCP服务器

    二、python 代码编写

      1.python程序编写  Modbus_read.py

    # -*- coding: utf-8 -*-
    
    import  modbus_tk.modbus_tcp as mt
    import  modbus_tk.defines as md
    import time
    #创建TCPMASTER对象
    
    master = mt.TcpMaster('192.168.6.24',502)
    # master = mt.TcpMaster('127.0.0.1',502)
    
    #设置超时时间
    
    master.set_timeout(5.5)
    #读取寄存器数值
    while True:
        db2 = master.execute(slave=1,function_code=md.READ_HOLDING_REGISTERS,starting_address=0,quantity_of_x=30)
        print(db2)
        time.sleep(2)

      打印结果如下图:

      2.更改数据,查看打印结果

      3.读写整数及布尔代码如下,原理相同,modbus_02.py

    import  modbus_tk.modbus_tcp as mt
    import  modbus_tk.defines as md
    #创建TCPMASTER对象
    master = mt.TcpMaster('127.0.0.1',502)
    #设置超时时间
    master.set_timeout(5.5)
    #写入保持寄存地址1-10,值对应时
    # values = (100,200,300,400,500,600,700,800,900,1000,1100)
    
    # master.execute(slave=1,function_code=md.WRITE_MULTIPLE_REGISTERS,starting_address=0,quantity_of_x=20,output_value=value)
    #写入单个寄存器
    
    # master.execute(slave=1,function_code=md.WRITE_SINGLE_REGISTER,starting_address=0,output_value=888)
    # 读取线圈
    # data = master.execute(slave=1,function_code=md.READ_COILS,starting_address=0,quantity_of_x=20)
    # print(data)
    #写入一个线圈
    # master.execute(slave=1,function_code=md.WRITE_SINGLE_COIL,starting_address=0,output_value= True)
    #写入多个线圈
    
    values = (True,False,True,False,True,False,True,False,True,False)
    master.execute(slave=1,function_code=md.WRITE_MULTIPLE_COILS,starting_address=0,output_value= values)
  • 相关阅读:
    UiAutomator自动化测试框架介绍
    mongkeyrunner实现循环随机输入值的方法
    python出输出字符串方式:
    Python之字符串小代码解析
    安装JDK,Python SDK及环境变量的配置
    Monkeyrunner小脚本关于camera的使用
    ubuntu 下安装32位库 ia32-libs方法
    关于monkeyrunner的一些初步理解性的题目
    基于redis的限流
    表单防重复提交
  • 原文地址:https://www.cnblogs.com/liuwenhua/p/13746044.html
Copyright © 2020-2023  润新知