技术论坛

 【热门】S7 单边通讯数据刷新一次需要40分钟? - 滥用03资源号导致通信阻塞 ~

返回主题列表
作者 主题
宁超
至圣

经验值:11495
发帖数:1028
精华帖:39
楼主    2023-09-18 17:49:33
主题:【热门】S7 单边通讯数据刷新一次需要40分钟? - 滥用03资源号导致通信阻塞 ~

我的一个朋友在TIA Portal中组态了与PCS 7控制器AS 410的28个S7连接(13个S7-1200和一个1500与冗余CPU0和CPU1分别建立S7连接),并在S7-1200与1500程序里调用Get Put功能块对AS410进行读写,所有的S7连接显示与AS410已建立连接。


S7-1200与CPU 410-5H的网络简单示意如下:


另外还有若干TP1200精致面板都要与CPU 410进行通讯,显示和控制过程对象。TIA博途项目结构如下图


但他遇到了困难,S7-1200中刚好有设备运行计时变量通过Put写入了CPU 410中,通过观察S7-1200中的值与AS410的DB内显示时间差为40分钟。也就是说S7连接都正常的情况下数据刷新一次需要40分钟!


故障解除过程

首先,PCS 7容错系统通常不建议超过4个触摸屏的连接,但项目13个触摸屏已存在,不可能叫他摘掉其它的触摸屏不要,但可以将画面刷新周期修改到不小于2s降低通讯负荷。


但所有的触摸屏画面变量刷新修改到2s后,通讯并没有改善。



在检查S7连接组态时,发现了可能存在问题的地方,所有的S7连接在TSAP都是指定CPU 410-5H的03连接资源号。此时,虽没有十足的把握,但第六感这里就是问题所在。下图用于说明03资源号,非项目截图

连接资源号(connection res.)可能值

16#03

03为自由连接资源号,此连接资源可运行多个连接。只需在主动连接一端组态且带有未指定连接伙伴的连接!如果对连接资源0x03 寻址,则不必组态连接伙伴。

16#10 至16#DF

与03资源不同的是,这些连接资源每个可以运行一个(且只有一个)连接。并且需要在两端组态且带有未指定连接伙伴的连接!


由于西门子的指导文档,包括多途径可以找到的网上资料都在指导TSAP填写时,使用03资源号,导致很多人认为建立S7连接就要使用03资源号,且不需要在伙伴CPU组态S7连接也不需要编程,非常省事。这样就容易忽视其它连接资源号存在的意义。


项目中所有的S7连接都指定为03资源号,此时用于该连接的资源:



正是对03自由连接资源的滥用导致了通讯的阻塞,既然找到了问题方向就着手处理:

1. S7-1200重新分配TSAP,启用CPU16#10到16#DF范围内的专有连接资源号,并在S7-400和S7-1200/1500中两端组态S7连接

2. Get/Put数据交换长度减负,预留变量减少,数字量打包成DWORD,使用连续的DB内存等(仅作优化)


处理后,重新下载CPU410和S7-1200的S7连接,通讯过来的数值开始连续快速跳动!

做工程师就是忘不了这种爽的感觉。

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