回复:串口服务器 Modbus-RTU 主站库 (基于OUC之UDP协议)

已锁定

yanxiao

版主

  • 帖子

    12148
  • 精华

    46
  • 被关注

    183

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2023-04-12 00:11:55

7楼

展开查看
以下是引用不欲勿施在2023-04-11 23:49:25的发言 >

楼主,仔细看我的提问

1、程序没有CRC校验错误反馈。不是说你的程序没有CRC校验,我说的是没有CRC校验错误反馈。

2、当执行功能15时,也就是写数字量输出时,比如向从站写12个位,那个第二个字节的高4位会置0吗?

3、程序里没有Modbus正在忙于其它请求反馈。也就是官方指令的错误6.

4、实现指令轮询很简单,我是用户,我没法用你的指令实现写优先,掉站等功能

1、如果是CRC校验错误,直接就扔了该条信息,因为不确定该条信息是从站回应的。

不过,这个CRC错误,可以开放出来,错误码定为16。

2、这个库程序,只负责通讯的,不包括数据如何处理。12个位,字节内其它4位置0,由用户程序自己处理;

3、从站忙是从站响应的,这个如果从站有错误码6,你可以看到。从站忙到 无响应,那是超时错误。

4、优先策略,是主程序的事。你可以让所有的REP=0,也就是不自动循环轮询。要通讯的参数块的REQ=1,它就进入通讯,完了自动复位REQ,等待下一次置位。

5、掉站。我记得 芳季 说过,那一个站掉了,程序还能无事一样运行。

超时时间是每个通讯单独设置的,当然可以统一为100ms之类的。让掉站影响最小,可为每一个通讯具体计算一个合适的超时时间。

每个参数块内有两个计数器,分别为通讯成功 和通讯 失败。掉站可以由主程序来监控判断。


总之一点,这个库程序不做全部的事,但是开放一些必要的数据接口供主程序进一步处理。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8945条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。