首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法与Pymodbus TCPserver建立连接

无法与Pymodbus TCPserver建立连接
EN

Stack Overflow用户
提问于 2019-09-13 01:29:13
回答 1查看 520关注 0票数 0

我正在设置一个新的TCP服务器,它通过以太网TCP/IP modbus连接到客户端,并且应该每隔几秒钟将某些值推送到给定的modbus寄存器(hr = 6022)。我没有看到脚本引发的任何异常/错误,但是客户端没有接收到任何数据。使用StartTCPserver命令,我希望看到任何网络流量(至少握手),但我在Wireshark上看不到任何流量。下一个可能的诊断是什么?

我尝试在本地运行类似的脚本(没有外部以太网连接);一个充当客户端,另一个充当服务器,并且确实在客户端寄存器上看到值更新。

代码语言:javascript
运行
复制
from pymodbus.server.sync import StartTcpServer
from pymodbus.device import ModbusDeviceIdentification
from pymodbus.datastore import ModbusSequentialDataBlock
from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext
import time
import logging
FORMAT = ('%(asctime)-15s %(threadName)-15s'
          ' %(levelname)-8s %(module)-15s:%(lineno)-8s %(message)s')
logging.basicConfig(format=FORMAT)
log = logging.getLogger()
log.setLevel(logging.DEBUG)


def run_server():
    store = ModbusSlaveContext(
        ir=ModbusSequentialDataBlock(6022, [152, 276]), 
        zero_mode=True
    )
    context = ModbusServerContext(slaves=store, single=True)
    StartTcpServer(context, address=("192.168.10.2", 502))


if __name__ == "__main__":
    run_server()
EN

回答 1

Stack Overflow用户

发布于 2019-09-13 14:27:51

永远不会到达run_server()之后的行。连接到服务器的代码可以放在不同的脚本中;

代码语言:javascript
运行
复制
from pymodbus.client.sync import ModbusTcpClient as ModbusClient     

cli = ModbusClient('192.168.10.2', port=502)                       
assert cli.connect()                                                 
res = cli.read_input_registers(6022, count=1, unit=1)                
print(res.registers[0]) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57911830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档