回复:【开源】Modbus设备的单FB封装和多设备平行调用的通用架构 ------ 一个温控器案例的完整项目文件

已锁定

宝冬

  • 帖子

    203
  • 精华

    26
  • 被关注

    249

论坛等级:奇侠

注册时间:2016-07-06

黄金 黄金 如何晋级?

发布于 2023-04-13 19:26:17

22楼

展开查看
以下是引用xiatianyun在2023-04-13 16:30:23的发言 >21楼

宝冬大侠:今天有空看了会,我看ModbusChannel的UDT有个激活波特率的数据,请问是说每个设备都可以有自己的波特率吗?或者说可以让不同波特率的设备挂载在总线上,每和一台设备通讯都根据激活波特率来初始化通讯端口?

还有,通道里面的DeviceQTY是什么意思?

1、今天有空看了会,我看ModbusChannel的UDT有个激活波特率的数据,请问是说每个设备都可以有自己的波特率吗?或者说可以让不同波特率的设备挂载在总线上,每和一台设备通讯都根据激活波特率来初始化通讯端口?

是这样的。每个设备自己单独初始化,这代表它选择如何运用485端口,它有自己的波特率。

每个设备都是自己裁定是否上线通信,是否被淘汰,这是它自己的事情,与其它设备没有关系,所以它可以按照自己的波特率去使用端口。因为对这个设备FB而言,端口就是底层的IO资源,想怎么用就怎么用,与其它设备无关。

这个FB是面向设备封装的,而波特率作为该设备功能全集中的Modbus子集的重要元素,当然是属于设备对象的私有重要属性。这就是面向对象的思想。


再有,这个FB的架构不是为了只能连接在一个固定485端口上设计的。可以根据现场的电路接法,直接在屏幕上根据实际情况,更改或自动匹配波特率。

有一种设计是:485端口也都参数化,在屏幕上为每个设备单独设定。

比如:你在写程序的时候,不确定到底哪些设备,是连到CB1241或哪个CM1241或哪个串口服务器的哪个串口(一个串口服务器有多个串口)。一切都等到了现场再说,根据实际情况从屏幕配置参数。

再比如:你给一个Modbus设备写FB,不止针对眼前案例的PLC本体485模块,也考虑到未来的以太网途径,想一并解决,而不是到时候再为同一个设备写另一种FB。因为没有规定,一个串口modbus设备只能接在PLC本体485模块上,而不是串口服务器的更多485口。



2、通道里面的DeviceQTY是什么意思?

QTY是quantity的缩写。DeviceQuantity,每个通道的设备数量。

每个通道的设备数量只有是1的时候才是正确的,是0或者多个都不对。

在这个案例中,通道是自动分配的。也就是说:各个设备的默认轮询次序被固定了。

其实是可以开放的,由操作者在屏幕上,为每个设备分配通道。这个变量可以用于避免用户的胡乱分配。

手动分配通道,意味着可以在现场改变设备的轮询次序。这对于消除因线路内在缺陷而产生的485网络噪声干扰有妙用(打破噪声干扰的相位条件)。也就是说:先轮询设备A再轮询B,和先B后A,对于线路中噪声共振的影响是不同的。

给定线路上的电磁信号的不同演奏法,就像是不同乐章的乐谱,效果不同。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15118条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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