S7通信协议是西门子S7系列PLC内部集成的一种通信协议,适用于西门子S7系列PLC之间进行通信,如1200与1500系列等,它是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、PROFIBUS网络或者以太网。
下面以1500与1200通信为例,详细讲解S7协议以太网通信程序的编写方法。要实现如下表数据交换:
一、在博途软件中新建项目,添加一台CPU 1511-1PN作为本地CPU,再添加一台 CPU1215C作为伙伴CPU,并建立网络连接。如下图所示:
二、编写GET读取程序。指令>通信>S7通信>GET(读取)。
调用GET到编程区,弹出的调用选项中,选择多重实例,将背景数据块命名为GET_读取,如下图所示:
点击指令上的“开始组态”图标,进入组态页面。连接参数>选择已组态的伙伴CPU,如果本地CPU和伙伴CPU不在同一个项目中,可以选择“未指定”,此时必须手动填写伙伴CPU的IP地址。如下图所示:
连接名称通常会自动生成,如果未生成,可以点击…打开选择连接界面,点击新增来手动添加连接。如下图所示:
块参数>REQ:需要上升沿触发,常用系统时钟存储器>读取区域(ADDR_1)>存储区域(RD_1)。块参数可以进行组态也可以在指令中直接编写。
三、编写PUT写入程序。指令>通信>S7通信>PUT(写入)。
调用PUT到编程区,弹出的调用选项中,选择多重实例,将背景数据块命名为PUT_写入,如下图所示:
如果传输数据有多个区域可以点击指令下方小三角形图标展开指令,可以显示隐藏的功能,Zui多可以一次组态四个传输区域,ADDR_2与SD_2对应,其它区域同理。如下图所示:
以上就是S7以太网通信编程的步骤,伙伴机无需编写程序,只要提供对应的数据传输区域地址即可。