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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM