技術源於生活,服務生活
demo.py
# demo:modbus_tcp應答機制
import modbus_tk.defines as md
import modbus_tk.modbus_tcp as mt
from xlwt.compat import xrange
class ConfigModbus(object):
host = "127.0.0.1"
port = 502
# 創建連接對象
master = mt.TcpMaster(ConfigModbus.host, ConfigModbus.port)
master.set_timeout(5.0)
print('連接成功')
try:
# master.execute 遠程連接到服務器端
# 判斷是否鏈接正常
START_POS = 0 # 起始位置
MAX_LENGTH = 10 # 取值的位數
# md.READ_HOLDING_REGISTERS # modbus讀取保持寄存器 3
Hold_value = master.execute(slave=1, function_code=md.READ_HOLDING_REGISTERS, starting_address=START_POS,
quantity_of_x=MAX_LENGTH, output_value=5)
print(Hold_value)
# 寫寄存器起始地址爲0的保持寄存器,操作寄存器個數爲68
START_POS = 0 # 起始位置
MAX_LENGTH = 10 # 取值的位數
# md.READ_HOLDING_REGISTERS # modbus讀取保持寄存器 3
output_value_2 = [1,1,1,1,1,1,1,1,1,1,]
data = master.execute(slave=1, function_code=md.WRITE_MULTIPLE_REGISTERS, starting_address=START_POS,
quantity_of_x=MAX_LENGTH, output_value=output_value_2)
print(data)
Hold_value = master.execute(slave=1, function_code=md.READ_HOLDING_REGISTERS, starting_address=START_POS,
quantity_of_x=MAX_LENGTH, output_value=5)
print(Hold_value, '程序結束')
except Exception as e:
print("error:", e)
pass
運行結果:
連接成功
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 10)
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) 程序結束
配合mod_RSsim.exe軟件使用
軟件下載地址:mod_RSsim.exe