共享设备功能概述
信号模块可以被不同的IO控制器访问的IO设备被称为"共享设备",智能设备也可以作为共享设备。对"共享设备"模块的访问可在不同的IO控制器之间进行分配,"共享设备"的每个子模块以独占方式分配一个IO控制器。这样就可以把现场多个临近的IO模块组合到一个IO设备中,节约了项目成本。下图1是"共享设备"功能的示意图。
图1. 共享设备
优势
● 通过减少额外的 IO 设备和模块降低成本 ● 通过减少额外的 IO 设备和模块降低空间需求 ● 通过停止 CPU-CPU 通信减轻通信负担及编程工作量 ● 在多个 CPU 中实现实时捕获
使用要求
● STEP 7 V12 SP 1及以上版本 ● IO 设备支持共享设备功能,例如接口模块 IM 155-6 PN ST ● IO 控制器支持共享设备功能。如1500 CPU V1.1 及以上版本或 1200 CPU V4.1 及以上版本 ● 组态为智能设备的 CPU 可用作共享设备,需要在 STEP 7 中导出 GSD 文件,再将该 GSD 文件导入其它项目中并指定 IO 控制器。如1500 CPU V1.5 及以上版本或 1200 CPU V4.1 及以上版本。
组态规则
● 使用共享设备的 IO 控制器在不同的项目中创建。在每个项目中,必须注意应在每个站中对共享设备进行相同组态。只有一个 IO 控制器可以永远访问子模块。组态不一致会导致共享设备发生故障。 ● 如果相关 IO 控制器选择选项"使用路由器"(Use router),则所有这些 IO 控制器中需设置相同的路由器地址。 ● 仅当模块或子模块分配给同一项目中的 I/O 控制器时,才能编辑模块或子模块的 I/O 地址。 ● 共享设备在每个项目中必须具有相同的 IP 参数和相同的设备名称。 ● 对于有权访问共享设备的所有 IO 控制器,发送时钟必须相同。 ● 连接共享设备子网的 S7 子网 ID 在所有项目中必须相同。 ● 仅当共享设备的 PROFINET 接口分配给本地 IO 控制器时,以下功能才可用: – IRT 操作 – 优先化启动 – 端口属性的参数分配
共享设备实验环境和内容
在本应用实例中,通过以下产品进行共享设备功能组态,实现了组态子模块和模块内部的输入/输出共享(MSI/MSO)两种方式的设备共享。
软件: TIA V16 Professional 硬件: CPU 1511-1PN V2.8 CPU1217C DC/DC/DC V4.4 ET200SP(IM155-6 PN HF V4.2、DI 8x24VDC HF V2.0、DQ 4x24VDC/2A HF V2.0)
共享设备功能组态
下面描述了如何使用 TIA V16组态"共享设备", 该示例使用两个IO控制器访问同一个IO设备,创建了两个项目(共享设备 1和共享设备 2),每个项目都有一个IO控制器("PLC_1"和"PLC_2"),在两个项目中分别创建相同配置的IO设备。 注意:确保IO设备在所有项目中配置完全相同。
1、项目 1 组态
1.1、打开TIA 项目视图,在菜单项目下选择新建,在弹出的创建新项目窗口选择项目名称和存储路径,然后点击创建按钮,如下图2所示
图2. 创建项目 1.2、在项目树下双击“添加新设备”,输入设备名称,选择控制器,单击确定进入设备视图,如下图3所示
图3. 添加新设备 1.3、双击控制器以太网接口进入属性常规界面,为控制器添加子网及设置IP地址,如下图4所示。
图4. 分配以太网地址 1.4、添加IO设备ET200SP(IM155-6 PN HF V4.2、DI 8x24VDC HF V2.0、DQ 4x24VDC/2A HF V2.0),回到网络视图点击未分配选择IO控制器PLC1,如下图5所示。
图5. IO设备配置 1.5、为IO设备接口模块分配IP地址及设备名称,如下图6所示。
图6. IO以太网地址 1.6、配置对"共享设备"的访问,进入"属性>常规>模块参数>Share Device"界面,在这里可以确定哪个IO控制器可以访问哪些模块。除”DQ 4x24VDC/2A HF_1“模块外,所有模块分配给PLC1,没有分配的在访问列中选择“--”设置。
图7. 配置访问权限 1.7、为信号模块组态子模块及MSI/MSO(可选),图7中描述的只能把一个模块整体分配给某个IO控制器,如果想实现一个IO模块同时被不同IO控制器访问呢?可以通过子模块或MSI/MSO方式实现。 (1)MSI/MSO:通过模块内部共享输入 (MSI) 功能,输入模块可将其输入数据最多提供给 4 个 IO 控制器。每个控制器都具有对相同通道的读访问权。通过模块内部共享输出 (MSO) 功能,输出模块可将其输出数据最多提供给 4 个 IO 控制 器。IO 控制器具有输出模块的通道的写访问权。另外,还允许最多 3 个 IO 控制器具有这些通道的读访问权。
图8. MSI/MSO组态 (2)子模块:把模块细分为不同的子模块,再把子模块分配给对应的控制器。
图9. 子模块组态 (3)如1.6配置对"共享设备"的访问,本示例采用。
图10. 配置访问权
2、项目 2 组态
2.1、重复步骤1.1~1.3,加入IO控制器CPU1217C DC/DC/DC V4.4
图11. 以太网地址 2.2、添加IO设备ET200SP(IM155-6 PN HF V4.2、DI 8x24VDC HF V2.0、DQ 4x24VDC/2A HF V2.0),这里要确保和项目1的配置完全一致,建议复制项目1的IO设备到项目2。 2.3、配置对"共享设备"的访问,进入"属性>常规>模块参数>Share Device"界面,在这里可以确定哪个IO控制器可以访问哪些模块。注意:确保每个模块或子模块只能有一个控制器访问,出现冲突会导致无法访问。
图12. 配置访问权
3、调整实时设置
为了确保所有的IO控制器和"共享设备"在适当的发送时钟下运行,并且由于通信负担而正确计算更新时间,需要调整并检查以下设置。进行如下: 3.1、 在项目1 /项目2中,在网络视图中选中"共享设备"的接口模块,导航到 "属性">"高级选项">"实时设定">"IO周期",在"共享设备"区域,设置项目外部IO控制器具有此IO设备的访问的数量。如下图13所示。 注意:IO控制器的最大可能数量取决于IO设备接口模块,可在对应接口模块的技术参数手册中查看。
图13. 共享设备的访问权 3.2、对于每个可以访问"共享设备"模块的IO控制器,需要设置相同的发送时钟。 在项目1 /项目2中,在网络视图中选中IO控制器的接口,导航到 "属性">"高级选项">"实时设定">"IO通信",在IO控制器的"发送时钟"栏中,输入与IO设备共享的发送时钟,如下图14所示。
图14. 控制器发送时钟
4、分配设备名称
两个项目中的任一个下的设备视图中,右键单击接口模块,在弹出的菜单中选择"分配设备名称",为了将已经配置的设备名称分配给ET200SP。
图15. 分配设备名称
5、测试结果
保存并编译不同IO控制器的配置。在项目导航中选择每个控制器,并将项目加载到相应的模块中。 装载期间一致性检查 在进行一致性检查时,共享设备的组态限制计算中不会考虑未分配的模块或子模块。因此,用户必须自己判断子模块的最大数目或循环 IO 数据的最大数量不超出共享设备的限制。关于这些数量最大值,请参见所用设备的文档。 ● STEP 7 中不检测一个模块或子模块分配给多个 IO 控制器之类的组态错误。 说明 在组态加载到 IO 控制器中后,未分配的模块或子模块将保持其当前的参数设置状态,以确保与其它 IO 控制器的参数设置相互独立。
图16. 实验结果
常见问题
1、当访问共享设备的数据时报错,IO控制器的表现是什么?
如果一个PROFINET IO控制器出故障,正在运行的IO控制器可以继续访问共享的设备,但是只访问分配的子模块,故障IO控制器的子模块不能继续读或写。 使用"模块内部的输入/输出共享(MSI/MSO)"功能,在共享设备的一个子模块(输入模块或输出模块)上最多可以访问4个IO控制器。 如果IO控制器通过MSI故障,其他分配的IO控制器可以继续有读取输入模块的输入数据的权限。 如果对输出子模块有写权限的IO控制器通过MSO故障,那么输出模块不再能写。如果对输出子模块有读权限的IO控制器通过MSO故障,那么输出会继续通过可用的IO控制器写或读。 如果共享设备失败,那么每个共享的IO控制器都会收到站故障报错,其他诊断基于子模块的分配,共享设备的接口模块被分配给其中一个访问的IO控制器,接口模块分配给IO控制器并建立应用关系,只有这个IO控制器接收PROFINET的诊断。
2、IO设备最多由多少IO控制器访问?
访问数量是由IO设备的接口模块而定的,比如IM155-6 PN ST最多是2个,IM155-6 PN HF最多是4个,这需要查看具有模块的的技术参数。也可以通过配置来限定最多能有几个IO控制器访问,如下图所示,但不能超过接口模块本身最大访问数量。
图17. IO访问权
3、共享设备功能可以在一个项目内创建吗?
可以,和不同项目的创建方式是一样的,在同一个项目里分别创建IO控制器和IO设备即可。