一、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)
