首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于tcp的modbus rtu (modbus tcp网关)

基于tcp的modbus rtu (modbus tcp网关)
EN

Stack Overflow用户
提问于 2018-05-30 20:53:05
回答 3查看 3K关注 0票数 1

是否可以使用linux box或arduino构建modbus-RTU以太网网关?

我使用modbus RTU将plc从站连接在一起,我想将其中一个通过TCP连接到我的pc作为主站。

我想知道我是否可以使用连接到路由器的linux盒(rasbery pi/raspbian)作为modbus到tcp的转换器,通过管道将usb端口连接到某个端口上的本地ip,因为一个plc将在modbus rtu中连接到linux盒的usb端口。管道命令将如下所示:

代码语言:javascript
运行
复制
nc -l 5626 > /dev/ttyUSB0 < /dev/ttyUSB0

我的目标是使用modbus通过linux盒将pc (与linux盒联网)连接到该plc。

EN

回答 3

Stack Overflow用户

发布于 2018-12-13 23:03:57

是的,你可以使用带以太网端口的linux机器。

这不是一个简单的'nc‘,它是。

首先,您需要知道,您的PLC是否支持Modbus TCP或Modbus RTU over TCP。

bcos这两种格式并不相同,它们是不可互换的。

一旦确定了这一点,就需要编写一个TCP客户端,以便在从机运行服务器时连接到从机。

如果它们还不支持Modbus TCP,您还需要编写一个TCP服务器。

最重要的是,你有握手延迟和半开放的连接等等。

如果它是商业设备,您还需要查看它将运行的设置。

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2019-01-31 23:45:49

我不能完全确定您的需求是什么,但您可能想看看下面的库。这是一个Modbus TCP->RTU库,我想您可以使用它。

https://github.com/3cky/mbusd

诚挚的问候

票数 1
EN

Stack Overflow用户

发布于 2018-08-26 18:30:31

虽然当然可以构建Modbus TCP/RTU网关,但您不能使用简单的nc命令来实现,原因有两个:

  1. 实际的Modbus协议数据单元(PDU)仅包含Modbus功能代码和数据,被嵌入到应用数据单元(ADU)中,因此请求到达正确的设备时没有通信错误。此ADU对于RTU和TCP是不同的。一般来说,ADU看起来像这样:

对于RTU,“附加地址”是识别串行线路上的单元/从机的单个字节,而“错误校验”是16位CRC。

对于TCP,“附加地址”是7字节的Modbus应用协议报头(MBAP),由事务标识符、协议标识符和长度字段(每个2字节)加上标识单元/从站的单个字节组成(通常为255,但对于网关,这将是其后面的RTU从站的ID )。“错误检查”是空的(零字节),因为它已经由TCP负责。

  • TCP和RTU的通信语义是不同的。

对于RTU,您向串行线路写入请求,等待回复,然后才写入下一个请求。帧之间必须有3.5个静音字符。

对于TCP,原则上可以同时处理多个连接。如果您尝试同时将两个TCP请求转发到串行线路,则会出现混乱。

不过,您可以使用比nc稍微复杂的程序来构建工作网关

  • 接受TCP端口5626上的连接(请注意,Modbus TCP的实际推荐端口号为502),将收到的TCP转换为RTU,并将它们与back channel.
  • Another放入队列中。程序的一部分从该队列中一次提取一项,通过串行线发送ADU,并通过反向通道报告结果。然后转到下一项,依此类推。
  • 到达反向通道的结果将转换为TCP,并通过相应的TCP连接发回。

这当然可以在Raspberry Pi上工作,也可能在Arduino上工作,这取决于您希望队列有多大。

资料来源:

  • http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
  • http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50605244

复制
相关文章

相似问题

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