学习生产者消费者模式!!!

首先是contolnet 网络的概念

​ControlNet是基于生产者/消费者模式(Producer/ConsumerModel)的网络。ControlNet允许在同一链路上有多个控制器共存,支持输入数据或端到端的多路发送,这就大大的减少了网络上的交通量,提高了网络效率和网络性能。ControlNet是高度确定性、可重复性的网络。ControlNet能预见数据何时能够可靠传输到目标的能力,同时数据的传输时间不受网络节点添加/删除情况或网络繁忙状况而保持恒定的能力。在实际应用中,通过网络组态时选择性设定有计划I/O分组或互锁时间,这些要求能得到更进一步的保证。

生产者/消费者模式允许网络中所有的节点同时获取来自同一数据源的数据。最终,该模式提高了效率,因为数据只发送一次,而与数据使用者(Consumer)的数量无关,并且具有精确的同步性。因为数据将同时到达每一个节点。生产者-消费者模式的优点在于:多个节点可以同时消费(Consume,即读取)来自同一个生产省(Producer,即数据源)所提供的数据。节点间易于同步,可以获得更为精确的系统性能,设备可以实现自主通信,无需系统主站。ControlNet提供了简单、高度确定而且灵活的传输数据方式。ControlNet在执行操作、数据实时监控时不会影响到I/O控制的性能。因此,ControlNet非常适用于一些控制关系有复杂关联、要求控制控制信息同步、协调实时控制、数据传输速度要求较高的应用场合。

ControlNet的明显优点是:同一链路上满足I/O数据、实时互锁、端到端报文传输和编程/组态等信息应用的多样要求;是确定性、可重复性的控制网络,适合离散控制和过程控制;同一链路上允许有多个控制器同时共存;输入数据和端到端信息的多路发送支持;可选的介质冗余和本征安全;安装和维护的简单性;网络上节点居于对等地位,可以从任意节点实现网络存取;灵活的拓扑结构(总线型、树型、星型等)和介质选择(同轴电缆、光纤和其它)。

接着是生产者和消费者模式的概念

类似与点对点传送,又略有不同,一个生产者可以对应N个消费者,但是一个消费者只能对应一个生产者,每个生产者消费者对应一个地址,占一个网络节点,属于预定性数据,在网络中优先级最高。

由于此模式如果在网络中设置过多会影响网络传输速度,一般用在传输比较重要的信息上,比如设备的启动、停止、故障、急停等等,因为在Controlnet网络中节点数是有限制的,最高节点数为99。

如果两个控制器之前建立了多个生产者消费者的连接,只要一个失败,则所有的均失败。将数据整合到用户自定义结构或数组中 ,两个控制器中只保留一个连接。

生产者消费者信息可以通过以太网和Controlnet传输,但是同时只能通过一种途径传输。 在建立标签时必须建立在全局变量里面,不能建立在局部变量里标签的大小不能超过500B。如果生产者几个数据传输到到同一个控制器的的几个消费者中,将几个数据合并在一个用户自定义标签中,可以减少连接数,但合并后的数据将会会用相同的RPI。

生产者消费者标签只能用DINT和REAL,或它们的数组,或用户自定义结构数据,因为对外操作数据必须是32位的,如果有SINT和INT的数据要传输,必须将它们组合在用户自定义结构中传送,生产者和消费者的标签数据格式必须一致,才能确保数据的准确性,如果数据打包后超过了 32位,那么生产者和消费者双方必须使用一个复制缓冲指令,以获得数据的同步,例如Control Logix中的CPS指令。

如果生产者要发送的32位数据,与非Control Logix的对方设备的数据结构不匹配,例如对方是16位的数据,为避免偏差,改为用户自定义结构。

消费者的 RPI必须大于等于网络刷新时间NUT,如果几个消费者请求同一个生产者,则会以最小最快的RPI为准

业务需要咯!自己先留着学习学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值