当前位置:   article > 正文

Python 创建Modbus Server_python modbus server

python modbus server

Python 创建Modbus Server

加入软件包
import modbus_tk.modbus_tcp as mt
import modbus_tk.defines as cst
import logging
import struct
import time
  • 1
  • 2
  • 3
  • 4
  • 5
创建modbus服务器
def modbusServerInit():
    ## 初始化Modbus
    try:
		## 所有设备都能访问
        modbusServer = mt.TcpServer(address='0.0.0.0')
        ## 本地访问
        ## modbusServer = mt.TcpServer(address='127.0.0.1')
        modbusServer.start()
        modbusServerSlave = server.add_slave(1)
        modbusServerSlave.add_block(
            '0', cst.HOLDING_REGISTERS, 0, 200
        )
    except:
        logger.error('[Modebus Server]创建失败')
    logger.debug('[Modebus Server]创建成功')

    return modbusServerSlave
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
完整代码
import modbus_tk.modbus_tcp as mt
import modbus_tk.defines as cst
import logging
import struct
import time

logger = logging.getLogger('my_logger')
    
def logInit():
	## 初始化日志
    logger.setLevel(logging.DEBUG)
    fh = logging.FileHandler('modbusServer_app.log',encoding="utf-8")
    fh.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    logger.addHandler(fh)

def floatToModbus(float_value):
    int_value = struct.unpack('<I', struct.pack('<f', float_value))[0]
    values_to_write = [int_value & 0xFFFF, (int_value >> 16) & 0xFFFF]
    return values_to_write

def modbusServerInit():
    ## 初始化Modbus
    try:
		## 所有设备都能访问
        modbusServer = mt.TcpServer(address='0.0.0.0')
        ## 本地访问
        ## modbusServer = mt.TcpServer(address='127.0.0.1')
        modbusServer.start()
        modbusServerSlave = server.add_slave(1)
        modbusServerSlave.add_block(
            '0', cst.HOLDING_REGISTERS, 0, 200
        )
    except:
        logger.error('[Modebus Server]创建失败')
    logger.debug('[Modebus Server]创建成功')

    return modbusServerSlave
            
logInit()
slave = modbusServerInit()  
            
// 写数据
slave.set_values('0',0,floatToModbus(12.32))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/991514
推荐阅读
相关标签
  

闽ICP备14008679号