python - 通过 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 设备。
所以我的问题是:
任何想法为什么我可以 ping,但 snap7 似乎有连接问题?
如果我无法使 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)
解决方案
有几个原因,下面列出了一些原因:
- TIA 门户上可用的机架和插槽。
- 您无法访问该 IP 上的 PLC
- 您没有可以在https://sourceforge.net/projects/snap7/files/1.4.2/上找到的 snap7 模块的两个 DLL 文件
推荐阅读
- glsl - 获取“位置”:使用 glslang 时片段输出错误太大
- tinkerpop - Tinkerpop 的 Hyperloglog,.count() 近似值
- javascript - 如何检查电子邮件是否不是 gmail 或 hotmail
- docker - 如何使用 selenium 网格和 docker 访问 localhost 应用程序
- rest - 属性值可以用作 REST url 中的标识符吗
- android - 混合内容:页面通过 HTTPS 加载,但请求的图像不安全
- angular - Angular + RxJS BehaviorSubject 订阅不起作用
- unity3d - 仅渲染框内的点云数据
- git - 如何解决阅读我的结束标签问题
- node.js - 我正在尝试安装 npm 包,但它不起作用。错误:EPERM:不允许操作,mkdir 'C:\Users\HAMZA~1'