S7-1200一种通用化的Modbus站点任务队列执行的模块实现.pdf

S7-1200一种通用化的Modbus站点任务队列执行的模块实现.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一种通用化的Modbus站点任务队列执行的模块实现

首先上两幅HMI的动态GIF截图,看一下这种通用化解决方案,在界面上看起来是什么样

子的。它们分别描述了站点通信良好,和站点掉线通信故障的情形。

PLC与任意一个Modbus从站进行通信,都会有一个通信队列。这个队列由多个通信任务

组成,它们一个接一个的执行,读或写整数或二进制。

所以设计思路就是:不管和什么样的站点通信,一个给定通信队列的执行过程的处理逻辑是

完全一样,可以通用的。这个通信队列从哪里来呢?就需要事先给每一类别的站点,预备一

个队列加载的FC模块,把这个队列所需的通信信息和任务配置,定制加载到一个标准队列

中。这个标准队列在通信执行完毕后,还需要有这同一个类别站点的数据解析FC模块,把

队列中的所有的读取数据都解析到它们该去的地方。这就是一个站点的通信过程。这个过程

暗示了一个通信队列UDT的需求,而这个UDT一定是由通信任务UDT做为基本单元组成

的。

多个站点就需要轮询调度,一个站点执行完毕就执行下一个。这下一个站点有可能和上一个

站点是同类的,也可能是不同类的。每一类不同的站点都要有自己专用的通信前加载和通信

后解析模块。这暗示着一种通用的站点调度UDT的需求。

站点轮询中,通信质量不好的,或者不在线的,需要从轮询调度中淘汰出去。这只是临时的,

以观后效,表现好了可以召回。

多个站点之间的轮询,如何切换调度等等,或者每一个具体站点在通信前后的数据如何处理,

那些很多是个性化的东西。

这里要介绍的是这个通用的负责单个站点的通信队列执行的模块。

这个模块有两个FB:一个是站点FB;一个是Modbus任务执行FB,后者嵌入在前者内部

做为子模块被调用执行。站点FB的功能是把任意从站的通信队列,在其内部调度分派给

Modbus任务FB。任务FB每次执行一个任务,依次把整个队列执行完毕。同时顺便采集一

些必要的监控信息。

1、站点FB

下面的图片是站点FB被调用的样子。这个FB的设计是基于假设通常大多数情况下,多个

从站会采用相同的通信参数连接到一个485端口,所以没有为每一个从站的执行单独进行

不同的端口初始化设置。如果情况需要,比如每个从站的协议有所不同,可以把端口初始化

的子模块嵌入到站点FB内部,这样可以为每个不同的从站配置不同的端口参数。

下图是站点FB内部的结构,分为5个部分。

下面的图片是5个部分分别的细节展示。

(1)485端口除了上电初始化,运行中随时可以初始化。如果需要,每个从站单独的端口

初始化的可以在此处进行。

(2)来自人机界面操作者的命令对从站的功能模式随时进行改变,所导致的从站任务队列

执行需求的动态变化,在此处实施。

(3)调用通用化的Modbus读写执行模块

(4)整个任务队列执行时间在HMI上的动态显示。要求不高,基本上通信质量所导致的时

间延长或缩短可以在HMI上供操作者判断。

(5)

2、Modbus任务执行FB

下图是任务执行FB内部的结构,分为4个部分。

下面的图片是4个部分分别的细节展示。

(1)and(2):整数和二进制的执行是经过判断分开的。

(3)成功计数供HMI监控通信质量。写操作的记录是为了成功之后不再重复写,除非有变

化。

(4)错误计数和错误代码也是供HMI监控通信质量。同时支撑通信质量差的站点的淘汰策

这两个FB,以及调用站点FB的上层调度模块,都采用兼容存储模式。

上述模块是在下面图片所展示的调度环境下被运用的。

但是大家一定会看出,这种效果是与模

块中用到的几个UDT的结构设计密切相关的。

、通信数据。这个是为了通用化的Modbus任务执行FB而设计的。事实上这个不是必要

的。

2、通信任务。通信数据是做为通信任务的元素存在的,其实这个早期的做法增加了逻辑冗

余,使结构不够紧凑,只是在这里懒得改了。直接集成就可以。

值得一提的是通信任务中有一个执行的控制位。站点FB从通信队列中一个接一个派发通信

任务的时候,首先要检查这个控制位是否为真。如果为真就执行通信,否则进行下一个。这

个位的作用就是实现了,同一个站点在不同工作模式

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地宁夏
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档