回复:用自由口通信制作的ModbusRTU协议的Master指令的SCL源码

已锁定

宝冬

  • 帖子

    319
  • 精华

    26
  • 被关注

    253

论坛等级:奇侠

注册时间:2016-07-06

钻石 钻石 如何晋级?

发布于 2021-11-16 15:08:36

27楼

展开查看
以下是引用不欲勿施13478405725在2021-11-16 14:19:09的发言 >26楼

认真研读后发现的一些问题

1、同一链路上多条指令如果没有做好轮询的话,你的这个指令能工作正常吗,是否会报错?

2、反馈到块外的错误信息极少,如超时,接收错误,接收信息的CRC错误,从站返回的错误

3、写多个线圈时,要将最后一个字节的不使用的高位置0,不做处理就发送出去是错误的,读取的数字量同样需要此操作。

4、两个指令间还是要有时间间隔的,因为串口上至少需要3.5个字符的间隔,程序没有体现出来

5、静态区见到有6个数据区,上限99字节,MODBUS RTU最大的数据量是120个字,显然是不够的。这又出来一个问题,如果程序中使用多条指令,那么PLC被使用的空间也是很可观的。

关于楼主之前帖子里的那个从站返回的数据帧分帧了,主要问题应该是从站的问题,不是PLC的问题。另外通过修改消息结束(通过字符间超时识别消息结束)的设置就可以解决问题。

程序确实没有封装过多功能,只是功能不全

总结:楼主分享的精神可嘉,看看就好,没法较真,还无法真正应用到实际项目中。

问题回答如下


1、同一链路上多条指令如果没有做好轮询的话,你的这个指令能工作正常吗,是否会报错?

不会报错。轮询是设备的功能与这个指令无关。使用上它的地位就和官方的Master指令一样。关于从多个设备的交互界面,到多个动态任务队列,再到通信通道的匹配执行,我有一套通用的稀缺公共资源的竞争与协调的完整调度架构,与此无关。这里不是提供完整解决方案,只是展示如何自己写协议指令而以。


2、反馈到块外的错误信息极少,如超时,接收错误,接收信息的CRC错误,从站返回的错误。

首先这个指令是给我自己用的。我所需要的错误提示,是那种能提示错误发生在某个代码段落的提示,比如501,601等,这比通常的那些指令错误提示对我更有意义。这样我就知道错误出现在哪个局部,这在调试非常便利定位错误。官方帮助里有的东西我无须重复做。


3、写多个线圈时,要将最后一个字节的不使用的高位置0,不做处理就发送出去是错误的,读取的数字量同样需要此操作。

多个线圈,我测试的时候不用,基本没怎么写。


4、两个指令间还是要有时间间隔的,因为串口上至少需要3.5个字符的间隔,程序没有体现出来。

帧的间隔在组态中设备,与通信协议无关。指令之外的问题不需要写在指令里面,调度框架能解决所有问题。


5、静态区见到有6个数据区,上限99字节,MODBUS RTU最大的数据量是120个字,显然是不够的。这又出来一个问题,如果程序中使用多条指令,那么PLC被使用的空间也是很可观的。

即使指令有多条,但实例只用一个。一个端口只需要一个Master实例。至于数据量自己改就得了,我自己用够了。


我用示波器分析线路报文的那个例子,靠帧结束条件解决不了。你还是没懂。那么我在代码中是如何对多帧进行校验的,你是没看还是没看懂。


这个指令是完全可以用的,我主要自己测试用,还有官方做不到的一些东西。之所以开源,只是为了向初学人展示一下完整的协议如何搭建。

每个人平时都是自己用,也不是商用卖钱,没必要考虑所谓的完整,自己够用随时调整即可。

开源社区的做法应该知道吧,大家自己参与完善,不是提供现成的商用产品。

既然有这么多想法,建议你把自己做的指令也向论坛免费开源。热烈欢迎!


另一个开源的主要目的,也是看见居然有人在论坛里拿自由口做的东西出来卖钱。所以抵制这种风气

串口协议本身很简单。协议格式是固定死的,指令用法也是固定死的,CRC16算法也是固定的,就是字节码牌的游戏。本质上没啥技术含量,就是做功课搬砖的问题。


这个指令我自己平时不用,就是玩一玩。UDP那个,也是玩一玩。但都好用。

这个指令不包含任何与调度有关的元素。那是每个人自己的项目风格的问题,不干扰。


真正面向开放动态工艺的通用调度架构,我还没打算开源。是完全的平行调度,只要拽几个设备FB实例进去就OK了,可以在HMI上参数化配置通信通道。



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15376条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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