首页 > 解决方案 > 通过 python 与 Fluke 耐久高温计 (profinet/RS485) 通信

问题描述

我有一个 Fluke Endurance 高温计(和一个非常脆弱的用户指南),它通过以太网电缆输出,然后我通过 USB3.0 到千兆以太网适配器连接到我的计算机(Windows 控制面板告诉我它正在工作)。根据指南,应该可以通过 RS485 和 profinet 进行通信。但我不清楚两者是否可以通过同一根电缆实现。

我最初的计划是尝试使用 snap7 来尝试 profinet 通信,但是当我尝试时:

import snap7
plc = snap7.client.Client()
plc.connect("192.168.42.132",0,1)

我明白了

snap7.snap7exceptions.Snap7Exception: b' TCP : Unreachable peer'

我可以在该 IP 地址 ping 设备。

所以我的问题是:

  1. 任何想法为什么我可以 ping,但 snap7 似乎有连接问题?

  2. 如果我无法使 profinet 通信正常工作,我是否有可能通过以太网电缆以某种方式进行 RS485 通信?我查找的所有内容都在谈论拥有进行转换的硬件,所以我假设它不仅仅是在正确的电线上寻找正确的信号格式。我在手册中找不到任何可以打开/关闭一种通信形式的东西,如果可能的话,从菜单上看它们都处于活动状态。

更好的是,如果有人在 python 中与此设备进行过通信,任何建议将不胜感激!

谢谢,

马修

更新:

如果其他人有类似的问题,我通过使用这样的套接字和 ASCII 命令解决了这个问题:

import socket 
pyrometerIP = "192.168.42.132"
pyrometerPORT = 6363

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(3) # 3 second timeout on commands
s.connect((pyrometerIP, pyrometerPORT))


MESSAGE=bytes('U=C\r', 'ascii')
s.send(MESSAGE)

标签: pythonpingethernetrs485snap7

解决方案


有几个原因,下面列出了一些原因:

  1. TIA 门户上可用的机架和插槽。
  2. 您无法访问该 IP 上的 PLC
  3. 您没有可以在https://sourceforge.net/projects/snap7/files/1.4.2/上找到的 snap7 模块的两个 DLL 文件

推荐阅读