一般来说普遍认为S7通信负载配置不低于30%(默认:50%)。 指定“Minimum Plc Attributes (free)”的值并不准确,但是是基于经验值。.这个数字是有效的从事状况,无屏幕更改。因此,**小数量(“Minimum Plc Attributes (free)”)可能会暂时降低,当**小空闲连接数量趋于0时,低周期反复读取开始(小于5秒),这意味着S7通讯连接可能暂时减慢。该术语 "Plc Attributes (max)" 和 "Minimum Plc Attributes (free)" 是由"WinCC 通道诊断"工具定义的。(见图.01)。 "Plc Attributes (max)"是一个周期内可以读取的**变量数量。 "Plc Attributes"可以应用在一个或多个WinCC Runtime 项目。因此,同时登录到S7连接上的WinCC Runtime 项目变量数量将会增加。如何确定同时登录的变量数量见下面的描述“影响同时登录变量数量的重要因素”。
注意
为了确保通讯稳定性S7连接下变量数量不应该超过“同时登录到S7连接的变量数量”。
确定当前值
“WinCC 专业运行版系统连接数”指的是WinCC 专业运行版连接S7连接的**连接数。这个连接数实际上同时考虑到WinCC ES的S7连接数。需要利用“WinCC Channel Diagnosis”工具确定其他实际值。
例如
图. 01
对于“Plc Attributes (max)”和“Minimum Plc Attributes (free)”的值可以从“WinCC 通道诊断”下“CCS7PLUSCHANNEL”下对应的连接里看到。同时登录到S7连接的变量数量可以通过“Plc Tag Subscriptions”(循环服务)计数器:连接变量数量每个刷新周期都会显示。下面的例子变量数量是2003个(500 ms: 103 tags, 1 s: 400 tags, 2 s: 500 tags, 5 s: 1000 tags)。
图. 02
影响变量同时登录的重要因素
变量同时登录的数量根据下面表格确定。 在这里,小于或者等于5秒的刷新周期是有意义的。一般变量数跟S7连接有关。在“通道诊断”上面例子中,变量是属于“PLC1516”连接。
功能 | 同时登录变量数 |
归档 | 每个采集周期包含的所有变量。 |
HMI 消息 | 布尔量报警变量数+模拟量报警变量数+跟报警相关的变量数。 |
调度器 | 所有用于循环事件的变量数,只有SmartTags变量跟缓存有关。 用于触发的变量数。 |
脚本 | 这涉及到循环脚本跟函数利用缓存运行;说明利用缓存读取文档。例如: • HmiRuntime.Tags().Read 0 • SmartTags 利用缓存运行 所有涉及的变量都包括在内。 |
画面 | 直接连接到对象的属性的变量数量 用于直接控制循环周期的变量数量(范围控制,趋势显示,表格显示) 用于循环动画,C脚本,VBS脚本的变量数量 用于触发器的变量数量。 |
OPC server (DA / UA) |
循环周期登录的所有条目数 |
控制开发 | 循环周期读取的所有变量数量 |
表 03
与 S7-1500 CPU 连接的网关
SIMATIC S7-1500 拥有大量的、系统集成的诊断功能,一旦发生错误时可以迅速识别。
支持S7-1500CPU支持的网关,通过STEP 7 V13 SP1或更高版本来配置。 如果正在使用较早版本的STEP7,也可参照本FAQ中的注意事项。
V13版及以下使用S7-1500 CPU组态网关
STEP 7 V13版及以下版本,通过硬件目录部分的“网络组件”配置网关时不支持S7-1500。因此,图.01 中所示的与 S7-300 CPU 的组态不适用于 S7-1500。
图. 01
STEP 7 V13版及以下版本,当用SIMATIC S7-1500 组态网关时,编译后会出现如下的错误信息:
- 在 PROFIBUS 和 PROFINET 网络上, 已连接的 CPU 不支持更低级别的 AS 接口从站组态。
- 如果 DP 主站/ IO 控制器是 S7-1500 设备,那么 DP 从站/ IO 设备将不能正常运行。
补救
通过一个 GSD 文件来组态 AS-i links (如图. 02)或者在网络视图中(如图. 03)不组态AS-i 部分网段,这样可以组态一个1500做主站的配置。
这种架构可以包含网关,诊断数据集中从 AS-i links 给到 CPU ,从 CPU 角度来说就像集成了一个平台。
用户程序中的IO地址和 AS-i 从站的分配取决于 AS-i link 的类型,并且在不同情况下手册中都可以找到。
图. 02
图. 03
概述
通过不组态AS-i 部分或者GSD文件方式,可以将以下网关连接到 S7-1500,:
- IE/AS-i link PN IO (6GK1411-2AB10, 6GK1411-2AB20), GSD 文件可参考条目号:23742537。
- PB/AS-i link 20E (6GK1415-2AA10),GSD 文件可参考条目号: 113250。
- DP/AS-i link Advanced (6GK1415-2BA10, 6GK1415-2BA20),GSD 文件可参考条目号:113250。
- CM AS-I MASTER ST ET 200SP (3RK7137-6SA00-0BC)
直到并包含STEP 7 V13版都不可以将S7-1500作为IO控制器/DP主站来运行IE/PB link(6GK1411-5AB00)。
IWLAN/PB link (6GK1417-5AB00, 6GK1417-5AB01)产品已被终止(见条目104509170)。也不能连接作为IO控制器/DP主站的S7-1500运行。
条目 108839238描述了如何使用IE/PB link PN IO和IWLAN Client替代IWLAN/PB link PN IO。
在STEP 7 V13 SP1及更高版本的S7-1500上组态网关
图.04显示了在STEP 7 V13 SP1或更高版本中组态S7-1500 CPU。
图. 04
1 S7-1200/1500的错误处理组织块
1.1 S7-1200的错误处理组织块
图1-1
S7-1200不再支持同步错误中断组织块OB121,OB122 。
1.2 S7-1500的错误处理组织块
图1-2
S7-1200与S7-1500支持的错误处理组织块的块号与S7-300/400保持一致,不同的是S7-1500除时间错误中断组织块OB80的优先级22不能改变外,其它的错误处理组织块的优先级都可以修改。如诊断中断OB82:
图1-3
除了可以修改错误中断OB的优先级,S7-1500的事件中断(如硬件中断)的优先级也可以修改,这样用户通过修改优先级可避免重要的中断请求被其它中断请求延迟或中断。
2 CPU对会引起错误中断的响应
CPU对错误处理组织块的响应表:
错误处理OB |
故障类别 |
‘到达事件‘ 触发 |
‘离去事件‘ 触发 |
OB没有装载CPU停机 |
|||
S7-1200 |
S7-1500 |
S7-300/400 |
|||||
OB80 |
超出**循环时间* |
异步 |
是 |
否 |
是 |
是 |
是 |
时间错误** |
否*** |
否*** |
是 |
||||
OB82 |
异步 |
是 |
是 |
否*** |
否*** |
是 |
|
OB83 |
异步 |
是 |
是 |
- |
否*** |
是 |
|
OB86 |
异步 |
是 |
是 |
- |
否*** |
是 |
|
OB121 |
同步 |
是 |
否 |
- |
是 |
是 |
|
OB122 |
同步 |
是 |
否 |
- |
否*** |
是 |
表2-1
注:
-: 不支持。
*: 超出**循环时间请求OB80时而下载OB80并不会使CPU停机,但如果一个周期内超时两倍的循环监控时间 S7-1200/1500/300/400都会停机。
**: 由时间事件(如循环中断,延时中断,时间中断)触发的时间错误。
***:CPU不会停机,但会在诊断缓冲区产生诊断记录。
3 GET_ERROR,GET_ERR_ID对PLC错误处理的影响
GET_ERROR和GET_ERR_ID是“获取本地错误信息”指令,S7-1200/1500可通过编程用来查询程序块内出现的错误,这种程序执行中发生的错误就是所说的‘同步‘错误。
图3-1
“获取本地错误信息”指令支持块内进行本地错误处理。将“获取本地错误信息”插入块
的程序代码中时,如果发生错误,则将忽略所有预定义的系统响应。
GET_ERROR指令可以读到详细的错误信息,GET_ERR_ID只读到其中的错误编号。
具体用法可参考软件在线帮助或参考STEP7 Professional V12的手册,下面链接可下载:
/cs/document/68113685?caller=view&lc=en-CN&dl=zh
因为GET_ERROR和GET_ERR_ID对PLC的同步错误处理的影响相同,下面只对GET_ERROR指令进行说明。
3.1 GET_ERROR对S7-1200同步错误处理的影响
因为S7-1200不支持OB121,OB122,在发生‘同步‘错误时,只在CPU的诊断缓冲区产生错误记录:同时ERR LED闪烁
举例:IO访问错误
程序中访问了外设地址ID1000:P,对S7-1200来说,ID1000是默认分配给高速计数通道HSC1,但是在实际的组态中没有使能HSC1,那么就不存在这个外设。
图3-2
S7-1200每执行一次这条指令,在诊断缓冲区产生一条错误记录,同时ERR LED闪烁,直到”Tag_1”复位。
图3-3
在发生错误指令的下面执行GET_ERROR:
图3-4
错误仍然存在,但CPU不报错,诊断缓冲区也不会产生任何相关错误记录。
3.2 GET_ERROR对S7-1500同步错误处理的影响
与S7-1200比较,因为S7-1500支持两个同步错误处理组织块OB121,OB122,GET_ERROR对S7-1500的同步错误处理的影响还要考虑对OB121,OB122的影响。
本文的表2-1说明了S7-1500没有执行GET_ERROR的情况下CPU的响应,下面对同步错误发生时执行GET_ERROR后CPU的响应。
S7-1500在发生两种同步错误时在有无下载对应错误处理组织块(程序错误:OB121,IO访问错误:O122)的响应是不同的,但在发生这两种错误的程序块中执行GET_ERROR后,S7-1500将忽略所有预定义的对这个程序块中出现的错误的系统响应,因此会产生以下结果:
n CPU ERR LED不会闪烁
n 诊断缓冲区不会产生错误记录
n 不再触发OB121和OB122,发生程序错误时即使不下载OB121 CPU也不会停机