1.概述
通过以太网可以实现S7-1200与S7-300连接通信。S7-300可以使用带集成口CPU或通信处理器(CP343-1)连接到工业以太网上,它们都提供S7 通信的功能,既可作为客户机,也可以作为服务器,所拥有的连接资源可参见相关产品手册;S7-1200 集成以太网接口,提供S7 通信的功能,只能作为服务器,可以同时建立3 个通信连接。
下面会用一个实例来描述S7-300 如何与S7-1200建立通信连接。
192.168.0.8 192.168.0.18
192.168.0.100
图1: 实例网络拓扑图
S7 1200 与 S7-300 通过 S7通信的基本原理如下图所示:
图2:S7-300与S7-1200 通信原理
2.硬件需求
• S7-1214C AC/DC/RLY
• CPU 319-3 PN/DP
• SCALANCE X204-2
• PG/PC
3.软件需求
• S7-1200编程软件 STEP 7 Basic V10.5
• S7-300 编程软件 STEP 7 V5.4 + SP4
4.组态
4. 1 S7-1200 配置
• 使用STEP 7 Basic 创建项目“comS7300”;
图3: 创建项目
• 添加S7-1200 设备 CPU1214C,设置IP 地址192.168.0.18;
图4: 添加S7-1200设备
4. 2 S7-1200 PLC 编程
• 在Program blocks 下,添加程序块(DB1,DB2,DB3),其中DB1和DB3为符号DB(选择 Symbolic access only),DB2为绝对地址DB(不选择 Symbolic access only) , S7 通信只支持绝对地址DB 寻址通信;
图5: 创建绝对地址DB2
• 打开全局DB2,输入2个数组类型数据,每个数组有16 个元素;
图6: 在DB2中添加数据
• 创建两个监视表格(监视表格_1, 监视表格_2) 用来观察DB2的实时状态;
• 将程序下载到PLC CPU1214C 中。
4. 3 S7-300 配置
使用STEP 7 创建 SIMATIC 300 Station。
• 在硬件组态中添加CPU 319-3 PN/DP,设置IP地址 192.168.0.8;
图7: 硬件组态
• 在网络组态中(NetPro)中创建S7连接,首先在打开的NetPro中点击 SIMATIC 300 (1) 机架的“CPU 319-3PN/DP”处;
图8: 在NetPro中选择相应的机架
• 创建连接一个与“Unspecified”的S7 连接,点击“OK”;
图9: 添加S7连接
• 在相应的输入通信伙伴的IP地址192.168.0.18,点击“Address Details…”;
图10:输入通信伙伴IP地址 ;
• 在Address Details 对话框中,将通信伙伴的槽号改为1,确认其TSAP 为03.01,点击“OK”,之后,可以将所建立硬件组态和网络连接编译并下载到PLC 中。
图11:设置通信伙伴机架和槽号 ;
4. 4 S7-300 PLC 编程
• 在STEP 7 Blocks 中创建写数据DB1 ( put data)和读数据DB3 (get data)数据块;
图12: DB1和DB2;
• 打开主程序OB1,分别在Network1和Network2中添加指令FB14 GET和 FB15 PUT,并为其添加背景数据块DB14和DB15 ;
图13: 选择单边通信指令;
注意:
在选择指令时,要根据使用的产品来确定。如果采用CPU集成的以太网接口建立S7 通信,要采用左侧的指令;如果采用CP 以太网卡建立S7通信,要采用右侧的指令。
图14:在OB1中调用FB14 ;
图15:在OB1中调用FB15 ;
• 创建变量表VAT_1监视写数据操作(PUT);
图16:变量表VAT_1 ;
• 创建变量表VAT_2监视读数据操作(GET);
图17:变量表VAT_2 ;
5.调试 S7-1200 与S7-300 PLC 通信
• 从S7-300 程序中可知,在M1.0 从0变为1时,读取S7-1200的数据DB2.DBB0~DB2.DBB15 到S7-300 DB3.DBB0~ DB3.DBB15中;
图18:S7-300调用GET函数读取S7-1200数据
• 从S7-300 程序中可知,在M5.0 从0变为1时,将S7-300的数据DB1.DBB0~ DB1.DBB15 写入S7-1200 的DB2.DBB16~DB2.DBB31中;
图19:S7-300调用PUT函数写入S7-1200数据
6.总结
在使用S7-300与S7-1200 建立S7 通信时,所能建立的最大连接数和通信任务是与S7-300产品的型号相关,如:CPU319-3 PN/DP ,最大可组态的连接数为16,可建立最大通信任务为32(也就是可调用的通信指令的背景数据的总数),每个作业的用户数据最大值与所使用的块类型和通信伙伴有关,PUT 为212 个字节,GET为222个字节。