无法通过串行/Modbus 从 Windows 10 连接到 EPsolar Tracer

概括

我使用此 USB 转 RJ45 电缆将我的 Windows 10 开发人员工作站连接到EPEver Tracer 3210an 太阳能充电控制器

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

预期结果

充电控制器返回光伏 (PV) 面板的输入电压。

实际结果

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)

我尝试过的

  • 使用pymodbus模块代替

  • 尝试了该easymodbus模块

  • 将波特率更改为9600

  • 尝试使用ASCII模式而不是RTU(99%确信它需要RTU模式)

  • 将串行设备上的 COM 端口从 更改COM3COM4

  • 重新启动计算机

  • 将 MT-50 显示器连接到充电控制器(工作完美)

  • 将设置更改parity为其他值(偶数、奇数、空格等)

问题

  1. 如何成功地将我的开发者工作站连接到充电控制器?

  2. 有没有可能这根电缆已经死了?

  3. 我还能做什么来测试电缆以确保其功能正常?

  4. 我还能做什么来测试充电控制器以确保其响应?


HUX布斯
浏览 78回答 2
2回答

Smart猫小萌

与这些控制器的通信(手动)是通过 RS485(通过 RJ45 连接器传输)进行的。这仅在手册中简要提及(技术规格部分中的“RS485 接口”)。您使用的电缆似乎是路由器控制台电缆,我相信它使用 RS232 协议。RS232 和 RS485 不同且不兼容,因此该电缆不起作用。我使用 Tracer-BN 系列设备,并且支持人员通过电子邮件给我发送了一份详细说明 modbus 设置的手册;由于您的设备也支持 MT50 远程仪表,我假设其寄存器是相同的。您可能可以通过搜索“常用软件或 MT50 LCD 单元”(带引号)找到该手册 - 我相信版本 2.5 是最新的(注意:我不会发布链接,因为它似乎在请自行承担点击官方网站的风险!)RJ45 接线(来自上述手册)是: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注:这些设备可以串联;如果您只是连接到一个,请使用引脚 3、5 和 7。我发现需要接地连接才能实现可靠的通信。注 2:Epever 确实有“官方”USB 转 RJ45 电缆 (CC-USB-RS485-150U);我有其中三个,但无法让任何一个工作(当地经销商提到有类似的问题)。这些电缆可从亚马逊购买(由于您的控制台电缆链接而选择它们)。检查电缆是否正确接线的一个好方法是将其与充电控制器软件一起使用(我相信这使用模式与设备进行通信,但它们可能支持其他协议)。为了进行测试,我使用了一个廉价的 USB->RS485 适配器,如上所示接线(115200, n, 8, 1),效果非常好(现场有大约 10 个连接到内置 RS485 的设备)。我使用的USB- >485 适配器 来自 Aliexpress(买了 10 个,没有任何问题),但你可以从亚马逊获得类似的东西(但正如前面提到的,我认为你需要接地连接器,并非所有适配器都有 - 我无法得到这些通过两线连接可靠工作)。我将标准网络引线切成两半并将其连接到该适配器(节省了挖掘压接工具等);我还没有在其他地方看到过这种接线设置,所以我认为您无法购买现成的(除了 Epever 以外的)。

温温酱

在有关如何使用 Python 和 InfluxDB 捕获和分析太阳能发电指标的文章中找到了此问题的完整解决方案。

慕后森

事实上,上面使用的正确术语应该是8P8C而不是RJ45。8P8C用于各种RJ 注册插孔类型。也许那里列出的类型之一对应于示踪剂正在使用的类型?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python