在相同项目中配置I-Device
I-Device就是带有CPU的IO设备。S7-1500 PLC、S7-1200 PLC的所有CPU都可以作为I-Device和IO控制器。
下面通过I-Device功能实现电动机的控制实例演示
S7-1500 PLC的CPU1511-1 PN与S7-1200 PLC的CPU1214C AC/DC/RLY通过PROFINET通信,如图所示。图中,CPU1214C作为I-Device智能设备与CPU1511-1 PN进行通信。
(1)S7-1500 PLC:共有两台电动机,两个按钮,其中SB1为启动按钮,SB2为停止按钮,均为常开触点接线。当按下启动按钮后,电动机1立即启动,电动机2延时5s后启动。当按下停止按钮后,两台电动机均停止。将两台电动机的状态字节传送到S7-1200 PLC中,同时输出由S7-1200 PLC传送过来的选择开关位状态值。
(2)S7-1200 PLC:把S7-1500 PLC传送过来的一个字节在Q0.0~Q0.7上显示,将选择开关I0.0的位状态值送入S7-1500 PLC进行显示。
步骤与分析
(1)创建一个新项目,插入CPU1511-1 PN作为IO控制器,CPU1214C作为I-Device智能设备,如图所示。
确保两个CPU的以太网接口在同一个频段,单击PLC_2的属性,在“操作模式”选项中使能“IO设备”,并将其分配给IO控制器,如图所示,在“传输区域”选项中可以更改地址和传输区方向箭头。
指定IO控制器后,在“操作模式”选项中出现“智能设备通信”栏,单击可配置通信传输区,双击“新增”,可增加一个传输区,并在其中定义通信双方的通信地址区:使用Q区作为数据发送区;使用I区作为数据接收区,单击箭头可以更改数据传输的方向。图为创建的两个传输区,通信长度都是1字节。
(2)图为IO控制器的地址总览。将配置数据分别下载到两个CPU中,它们之间的PROFINET IO通信将自动建立。其中,IO控制器(CPU1511-1 PN)使用QB8发送数据到I-Device(CPU1214C)的IB2;I-Device使用QB2发送数据到IO控制器的IB32。本实例中,CPU1214C既作为上一级IO控制器的IO设备,同时又作为下一级IO设备的IO控制器,使用非常灵活和方便。
(3)对两个PLC分别编程,通信部分不用编程,这也是I-Device的优点。图是CPU1511-1 PN的主程序。程序段1和程序段2是电动机1的启动和停止。程序段3是电动机1开启后,延时定时器TON 5s后动作。程序段4是输出QB0字节值到I-Device。程序段5是从I-Device接收位信号。
图是CPU1214C的主程序。程序段1接收IO控制器的字节信号并输出到QB0。程序段2将选择开关I0.0送到IO控制器的Q2.0中。
在不同项目中配置I-Device
通过I-Device功能实现电动机的控制(PLC文件不在一个项目中)实例
在以上实例的基础上增加一个要求,即两个PLC的文件必须配置在不同项目中。
步骤与分析
(1)创建一个新项目,插入CPU1214C作为I-Device,单击以太网接口,在属性界面中的“操作模式”选项中使能“IO设备”,在“已分配的IO控制器”选项中选择“未分配”,在传输区中定义通信双方的通信地址区,如图所示。
与上一个实例一样,创建两个传输区后,在“智能设备通信”选项的最后部分可以查看“导出常规站描述文件(GSD)”栏,如图所示,单击“导出”按钮,生成一个GSD文件,文件中包含用于IO通信的配置信息,如图所示。
将“GSDML-V2.32-#Siemens-PreConf_PLC_2-20200303-060918.xml”GSD文件复制到配置IO控制器的计算机中,并导入项目。
(2)另外新建一个项目用于IO控制器,即插入CPU1511-1 PN,设置以太网接口的IP地址,使其与IO设备处在相同的网段,导入GSD文件,安装GSD文件的相关内容,如图所示。
打开如图所示的硬件目录,选择“其它现场设备”→“PROFINET IO”,将安装的I-Device站点PLC_2拖放到网络视图中,如图所示。该站点是GSD device_1,不是真实的PLC名称了。
当IO控制器与IO设备的端口相连后,在设备视图中可以看到I-Device的数据传输区,如图所示。由于I-Device的设备名称不能自动分配,所以配置的IO设备名称必须与(1)中创建项目时定义的设备名称相同。
(3)调试。将配置数据分别下载到对应的CPU,它们之间的PROFINET IO通信将自动建立。一旦有一个设备出现问题,则故障红色标注就会出现,如图所示,并在“诊断缓冲区”出现“硬件组件的用户数据错误”,如图所示。
好了这样就完成啦!

