工控人生

欢迎光临
我们一直在努力

西门子400CPU通过PUT与GET方式与1200/1500PLC进行通讯

西门子的1200/1500小型PLC在编程完成后,可以配置并生成GSD文件,将此GSD文件导入到400CPU的硬件组态中就可以进行通讯,这个方法是最简单的。

但如果没配置GSD文件,400CPU如何与1200/1500PLC进行通讯呢?此时就需要使用PUT和GET方法来进行处理了。下面记录下具体的实现过程。

1、在400CPU的网络组态中配置与1200/1500PLC通讯的S7连接,具体见下图:

(1)指定400CPU的访问接口,如410-5H有2个PN接口,根据实际情况,指定挂载1200/1500PLC的那个接口;

(2)指定1200/1500PLC的IP地址;

(3)命名这个“Partner”;

(4)LocalID保持默认1即可;

(5)完成配置后,将网络组态进行下载。

S7连接

2、在400CPU中编写程序,通过GET方式读取1200/1500PLC的数据:

(1)新建一个FC1501,使用梯形图进行编程;

(2)引入SFB14(GET),设置REQ的扫描周期,这里是0.5S;

(3)ID配置为上述步骤1中的LocalID,为W#16#1;

(4)ADDR_1到ADDR_4为1200/1500PLC中的地址,这里指定ADDR_1为1200/1500PLC中的DB3,开始于0.0,占用2个字节;ADDR_2为1200/1500PLC中的DB4,开始于152.0,占用4个字节;

(5)RD_1到RD_4为400CPU接收的数据存储地址,这里指定RD_1为DB401,开始于0.0,占用2个字节,RD_2为中间变量,开始于M1500.0,占用4个字节(即MD1500,在CFC中直接调用);

(6)指定SFB14的背景DB为DB414,这个DB不要重复,不存在的话会自动创建;

(7)RD_1的数据存储在DB401中,这个数据一般是是bool型的,显示运行状态,在进行上述操作前,我们要先建立一个DB401(可以命名一个符号名:如From1200),用它来存储从1200/1500PLC中读来的数据,配置16个bool型的数据,注意这个16个bool型的数据与ADDR_1的2个字节的每一位是一一对应的。

3、在400CPU中编写程序,通过PUT方式写入数据到1200/1500PLC:

(1)还是在上面的FC1501中,使用梯形图进行编程;

(2)引入SFB15(PUT),设置REQ的扫描周期,这里是0.5S;

(3)ID配置为上述步骤1中的LocalID,为W#16#1;

(4)ADDR_1到ADDR_4为1200/1500PLC中的地址,这里指定ADDR_1为1200/1500PLC中的DB7,开始于0.0,占用2个字节;

(5)SD_1到SD_4为对应400CPU中需要发送的地址,这里指定SD_1为DB402,开始于0.0,占用2个字节;

(6)指定SFB15的背景DB为DB415,这个DB不要重复,不存在的话会自动创建;

(7)SD_1的数据存储在DB402中,这个数据一般是是bool型的,用来控制启停,在进行上述操作前,我们要先建立一个DB402(可以命名一个符号名:如To1200),用它来发送数据到1200/1500PLC中,配置16个bool型的数据,注意这个16个bool型的数据与ADDR_1的2个字节的每一位是一一对应的。

在FC中调用PUT和GET编程的截图,有及用来存储在发送数据的DB401、DB402,详见下图:

PUT和GET

DB

完成上述操作后,在400CPU中新建一个CFC,调用FC1501,并下载到400CPU中去,这样就可以在CFC中编程调用1200/1500PLC中的数据了,如设备的备妥、运行、故障等状态信号从DB401(From1200)中读取到,如启动、停止、复位等控制信号能DB402(To1200)写下去,该例子还有个占用4个字节的模拟量,直接调用MD1500进行数据操作。

4、如果1200/1500PLC中还有很多其它数据仅仅需要显示,并不需要参与编程,可以在WinCC中加载S7-1200,S7-1500的驱动,来直接读取数据。在连接参数中需要配置1200/1500PLC的IP、访问点和产品类型,具体见下图;

WinCC的S7连接

5、连接成功后,可以使用AS Symbols中的Read from AS功能,将相关变量全部读出来,这样就可以直接在WinCC中显示了。

直接读取数据

未经允许不得转载:编程 » 西门子400CPU通过PUT与GET方式与1200/1500PLC进行通讯
分享到:

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址