UDP 上跑MODBUS 有人用过吗?
我看网上都是MODBUS on TCP, 用UDP 不更方便吗 我猜:丢包后UDP不会重传,工控行业可靠性第一 UDP看似简单,实际应用上比TCP难多了,譬如两个对同一个地址的写操作[ 0, 1],间隔10ms;接收方可能收到 [ 0, 1] ,, , [ 1, 0] UDP丢包不会重发,楼主慎用 TCP,别搞偏门的东西UDP有什么优势呢?响应时间不确定,怎么确定是否丢包,超时的判断。
TCP:
1、大家都用,经过了验证
2、有一堆工具可以直接使用,以及类库;
3、TCP是可靠连接,如果查询请求发送后,可以快速的知道对方是否收到,最多等他多久。可以快速查询。。UDP虽然速度可以更快,但你不确定包是丢了还是从机超时。容易堵死。 都有网线了,为啥要用modbus这种垃圾东西呢。 udp过路由器后包的顺序可能交换。要在协议层做超时重发 redworlf007 发表于 2023-10-20 12:42
都有网线了,为啥要用modbus这种垃圾东西呢。
(引用自6楼)
modbus是一种协议,或者一种交互的规范。介质是TCP而已。
即便有了以太网,数据交互肯定也是要有协议的。 qwe2231695 发表于 2023-10-20 12:46
udp过路由器后包的顺序可能交换。要在协议层做超时重发
(引用自7楼)
不过路由器,但有交换机 主机带几个从机,想用UDP on MODBUS是因为,我自定协议的时候发现这个项目很适合用MODBUS,就是各种寄存器数据读写。而下位机又不想用TCP 负担有点重,RAW UDP 简洁一点
不好的话 我还是自定义算了 redworlf007 发表于 2023-10-20 12:42
都有网线了,为啥要用modbus这种垃圾东西呢。
(引用自6楼)
西门子垃圾么? ABB垃圾么? 人家的接口就是 MODBUS TCP
难道人家工业上把通讯改成互联网那个JSON 格式上发下传才叫先进
我倒是看过那群秃顶程序猿叫个搞单片机的直接串口传JSON 格式命令;连效验都不加 polarbear 发表于 2023-10-20 14:52
西门子垃圾么? ABB垃圾么? 人家的接口就是 MODBUS TCP
难道人家工业上把通讯改成互联网那个JSON 格式 ...
(引用自10楼)
JSON 格式对单片机来说就是字符串,很不稳定,解析还要消耗很多内存 可用,好用,modbus是请求响应模型,UDP封包不用担心粘包,至于乱序问题,不会加个序列号吗? polarbear 发表于 2023-10-20 14:52
西门子垃圾么? ABB垃圾么? 人家的接口就是 MODBUS TCP
难道人家工业上把通讯改成互联网那个JSON 格式 ...
(引用自10楼)
大哥,有网线,直接tcp协议上面跑json,tcp能保证数据完整性,和串口不是一个原理。
工业上大把的modbus那是历史遗留问题,但不代表就是好,科技是在进步的。网络时代没必要一定固守之前的东西。 qwe2231695 发表于 2023-10-20 15:00
JSON 格式对单片机来说就是字符串,很不稳定,解析还要消耗很多内存
(引用自11楼)
能跑的起tcp ip协议栈的系统,不差那点内存。 哈哈哈 怎么方便怎么搞我还在CAN上发送 自定义 JSON协议呢自己打包 校验,,,MODBUS数据载荷 一样塞JSON进去 云贵3314 发表于 2023-10-20 18:32
哈哈哈 怎么方便怎么搞我还在CAN上发送 自定义 JSON协议呢自己打包 校验,,,MODBUS数据载荷 一样塞 ...
(引用自15楼)
赞同,紫薯布丁 redworlf007 发表于 2023-10-20 12:42
都有网线了,为啥要用modbus这种垃圾东西呢。
(引用自6楼)
是的!我赞成 unifax001 发表于 2023-10-21 09:46
是的!我赞成
(引用自17楼)
谢谢,哈哈哈。 UDP自定义通讯就行,可以借鉴MODBUS的帧结构和命令,做成主从应答,增加重发机制。适合够用就行。
如果对可靠性要求高,TCP肯定要好很多。 redworlf007 发表于 2023-10-20 18:19
能跑的起tcp ip协议栈的系统,不差那点内存。
(引用自14楼)
单片机跑JSON太痛苦,上位机是简单,一个反序列化函数就能直接生成对象,单片机最喜欢直接一个指针扎出一个结构体{:lol:}
页:
[1]