modbus tcp

技術源於生活,服務生活

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

mod_RSsim

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章