Python Can';t通过串行/Modbus从Windows 10连接到EPsolar Tracer 3210an充电控制器 总结

Python Can';t通过串行/Modbus从Windows 10连接到EPsolar Tracer 3210an充电控制器 总结,python,modbus,minimalmodbus,Python,Modbus,Minimalmodbus,我正在使用将我的Windows 10 developer工作站连接到 我正在使用Python 3.8.6和minimamodbus模块来尝试连接到设备、检索数据和控制设备参数 预期结果 充电控制器返回光伏(PV)面板的输入电压 实际结果 我试过的 改用pymodbus模块 尝试了easymodbus模块 将波特率更改为9600 尝试使用ASCII模式而不是RTU(但99%的人相信它需要RTU模式) 将串行设备上的COM端口从COM3更改为COM4 重新启动的计算机 将MT-50显示器连接至充电

我正在使用将我的Windows 10 developer工作站连接到

我正在使用Python 3.8.6和
minimamodbus
模块来尝试连接到设备、检索数据和控制设备参数

预期结果 充电控制器返回光伏(PV)面板的输入电压

实际结果 我试过的
  • 改用
    pymodbus
    模块
  • 尝试了
    easymodbus
    模块
  • 将波特率更改为
    9600
  • 尝试使用
    ASCII
    模式而不是
    RTU
    (但99%的人相信它需要
    RTU
    模式)
  • 将串行设备上的COM端口从
    COM3
    更改为
    COM4
  • 重新启动的计算机
  • 将MT-50显示器连接至充电控制器(工作正常)
  • 将奇偶校验设置更改为其他值(偶数、奇数、空格等)
问题:
  • 如何将开发人员工作站成功连接到充电控制器
  • 有可能这根电缆刚刚断了吗
  • 我还可以做些什么来测试电缆以确保其功能正常
  • 我还可以做些什么来测试充电控制器,以确保其响应

  • 与这些控制器()的通信通过RS485(通过RJ45连接器传输)。本手册仅简要介绍了这一点(“技术规范”部分中的“RS485接口”)

    您使用的电缆似乎是路由器控制台电缆,我相信它使用RS232协议(以Cisco为例)。RS232和RS485不同,且不兼容,因此此电缆无法工作

    该控制器的手册没有太多细节,我看不到现场的modbus手册。我使用Tracer BN系列装置,epever支持部门通过电子邮件向我发送了一份手册,详细说明modbus设置;由于您的设备也支持MT50远程仪表,我假设其寄存器是相同的。您可能可以通过搜索“通用软件或MT50 LCD单元”(带引号)来找到该手册-我相信2.5版是最新版本(注意:我不会发布该链接,因为官方网站上似乎没有该链接,因此单击该链接的风险由您自担!)

    RJ45接线(来自上述手册)为:

    注:这些设备可以串联连接;如果您只是连接到一个,请使用针脚3、5和7。我发现可靠的通信需要接地连接

    注2:Epever有一根“官方”USB至RJ45电缆(CC-USB-RS485-150U);我有三个这样的产品,但都无法正常工作(一位当地经销商提到有类似问题)。这些电缆可从(由于您的控制台电缆链接而拾取)获得

    检查电缆接线是否正确的一个好方法是将其与软件一起使用(我相信这使用MODU与设备通信,但它们可能支持另一种协议)


    为了进行测试,我使用了一个便宜的USB->RS485适配器(115200,n,8,1),它工作得很好(大约有10个在现场连接到内置RS485的设备)。这是Aliexpress提供的(获得了10个,没有问题),但您可以获得类似的结果(但如前所述,我认为您需要接地连接器,但并非所有适配器都有接地连接器-我无法使用双线连接使其可靠工作)。我把一根标准的网络导线切成两半,然后把它连接到这个适配器上(省去了挖出压接工具等的麻烦);我还没有在其他地方见过这种布线设置,所以不要认为您可以从现货中购买(从Epever购买除外)。

    与这些控制器()的通信通过RS485(通过RJ45连接器提供)。本手册仅简要介绍了这一点(“技术规范”部分中的“RS485接口”)

    您使用的电缆似乎是路由器控制台电缆,我相信它使用RS232协议(以Cisco为例)。RS232和RS485不同,且不兼容,因此此电缆无法工作

    该控制器的手册没有太多细节,我看不到现场的modbus手册。我使用Tracer BN系列装置,epever支持部门通过电子邮件向我发送了一份手册,详细说明modbus设置;由于您的设备也支持MT50远程仪表,我假设其寄存器是相同的。您可能可以通过搜索“通用软件或MT50 LCD单元”(带引号)来找到该手册-我相信2.5版是最新版本(注意:我不会发布该链接,因为官方网站上似乎没有该链接,因此单击该链接的风险由您自担!)

    RJ45接线(来自上述手册)为:

    注:这些设备可以串联连接;如果您只是连接到一个,请使用针脚3、5和7。我发现可靠的通信需要接地连接

    注2:Epever有一根“官方”USB至RJ45电缆(CC-USB-RS485-150U);我有三个这样的产品,但都无法正常工作(一位当地经销商提到有类似问题)。这些电缆可从(由于您的控制台电缆链接而拾取)获得

    检查电缆接线是否正确的一个好方法是将其与软件一起使用(我相信这使用MODU与设备通信,但它们可能支持另一种协议)

    为了进行测试,我使用了一个便宜的USB->RS485适配器(115200,n,8,1),它工作得很好(大约有10个在现场连接到内置RS485的设备)。这是Aliexpress提供的(获得了10个,没有问题),但您可以获得类似的结果(但如前所述,我认为您需要接地连接器,但并非所有适配器都有接地连接器-我无法使用双线连接使其可靠工作)。我把一根标准的网络导线切成两半,然后把它连接到这个适配器上(省去了挖出压接工具等的麻烦);我没见过这个w
    MinimalModbus debug mode. Create serial port COM4
    MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): '\x01\x041\x00\x00\x01?6' (01 04 31 00 00 01 3F 36)
    MinimalModbus debug mode. Clearing serial buffers for port COM4
    MinimalModbus debug mode. No sleep required before write. Time since previous read: 105406.00 ms, minimum silent period: 1.75 ms.
    MinimalModbus debug mode. Response from instrument: '' () (0 bytes), roundtrip time: 1015.0 ms. Timeout for reading: 1000.0 ms.
    
    Traceback (most recent call last):
      File "tempCodeRunnerFile.python", line 17, in <module>
        pv_voltage = ins.read_register(PV_VOLTAGE, 2, 4, False) 
      File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 441, in read_register
        return self._generic_command(
      File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1170, in _generic_command
        payload_from_slave = self._perform_command(functioncode, payload_to_slave)
      File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1240, in _perform_command
        response = self._communicate(request, number_of_bytes_to_read)
      File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1406, in _communicate
        raise NoResponseError("No communication with the instrument (no answer)")
    minimalmodbus.NoResponseError: No communication with the instrument (no answer)
    
    Pin  | Define 
    -----|-------------------------------------
    1    | Power supply output +5V or +7.5V 
    2    | Power supply output +5V or +7.5V 
    3    | RS-485-B 
    4    | RS-485-B 
    5    | RS-485-A 
    6    | RS-485-A 
    7    | Ground 
    8    | Ground