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
创建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
完整代码
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 = modbusServer.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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值