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连接,通讯过来的数值开始连续快速跳动! 声明:此篇为郑州西昆电气科技有限公司原创文章,转载请标明出处链接:https://www.xikundianqi.com/sys-nd/21.html
|