S7协议是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议。
注意:
1.LOGO!从 0BA7版本才开始支持以太网的S7通信,0BA6及以前版本的LOGO!不支持以太网S7通讯。
2.本文仅介绍LOGO!0BA8与S7-1200 CPU之间的 S7通信。
编程环境:
软件版本: LOGO! Soft Comfort V8.2,STEP7 Portal V14 SP1
固件版本:LOGO! 0BA8 FS06,1215C DC/DC/DC V4.2
所完成的通信任务:
① S7-1200 将MB100开始的10 个字节发送到LOGO!OBA8的VB0-VB9 数据区。
② S7-1200 读取LOGO!0BA8的VB10-VB19数据区存储到S7-1200 的数据区MB200开始的10个字节。
1.使用LOGO!软件新建一个项目,选中电路图右键-以太网连接,如图1所示。
图.1
a.设置本地IP地址和子网掩码
b.右键单击以太网连接,添加服务器连接
c.添加S7连接
2.设置连接1的服务器参数,如图2所示。
图.2
a.设置本地的TSAP号
b.勾选接受所有连接请求,如果不勾选接受所有连接请求,也可以指令伙伴的IP地址
c.设置远程的TSAP号
1.新建项目,添加新设备,建立S7服务器连接,如图3所示。
图.3
2.设置S7连接,勾选接受所有连接请求,并设置TSAP号,如图4所示。
图.4
1. 使用TIA V14 软件新建一个项目,添加1个S7-1200站点并为其分配网络和IP地址,如图5所示。
图.5
2. TIA 软件的网络视图中为S7-1200 CPU 添加一个新S7连接,如图6所示。
图.6
a.选择网络视图
b.选择连接,下拉菜单中选择S7连接
c.鼠标右键点击CPU,添加新连接
在弹出"创建新连接"对话框中选择"未指定",然后点击"添加"按钮,添加新连接,如图7所示。
图.7
需要为新创建的连接指定连接伙伴方的IP地址和TSAP,设置方法如图8和图9所示。
图.8
a.选择“连接”
b.选择新创建的S7连接
c.在该连接的属性中选择常规
d.设置伙伴方的IP地址
图.9
a.在该连接的属性中选择地址详细信息
b. 设置S7-1200的TSAP号
c.设置伙伴的TSAP号
3.在OB1中调用PUT/GET指令,进行S7通信,如图10所示。
图.10
表1.PUT 指令参数说明
CALL “PUT” |
, %DB1 |
//调用 PUT,使用背景DB块:DB1 |
REQ |
:=%M0.0 |
//上升沿触发程序块的调用 |
ID |
:=W#16#0100 |
//连接号,要与连接配置中一致,创建连接时的连接ID号 |
DONE |
:=%M2.0 |
// 为1时,发送完成 |
ERROR |
:=%M2.1 |
// 为1时,有故障发生 |
STATUS |
:=%MW4 |
// 状态代码 |
ADDR_1 |
:=P#DB1.DBX0.0 BYTE 10 |
// 发送到通信伙伴数据区的地址,对应LOGO!0BA8的VB0-VB9 |
SD_1 |
:=P#M100.0 BYTE 10 |
// 本地发送数据区 |
表2.GET指令参数说明
CALL “GET” |
, %DB2 |
//调用 GET,使用背景DB块:DB2 |
REQ |
:=%M0.1 |
//系统时钟 2秒脉冲 |
ID |
:=W#16#0100 |
//连接号,要与连接配置中一致,创建连接时的连接号 |
NDR |
:=%M2.2 |
//为1时,接收到新数据 |
ERROR |
:=%M2.3 |
//为1时,有故障发生 |
STATUS |
:=%MW6 |
//状态代码 |
ADDR_1 |
:=P#DB1.DBX10.0 BYTE 10 |
//从通信伙伴数据区读取数据的地址,对应LOGO!0BA8的VB10-VB19 |
RD_1 |
:=P#M200.0 BYTE 10 |
//本地接收数据地址 |
综合以上步骤,已经完成了S7-1200 硬件和软件部分的编程,将程序下载到S7-1200 PLC 中。
S7连接成功的建立是调用PUT/GET指令的基础,S7连接成功建立后,方能正确执行PUT/GET指令。
在TIA 软件的网络视图中,将软件切换到在线模式,可以监控S7连接状态,如图11所示。
图.11
a.选择网络视图,转至在线
b. 如果S7连接图标为绿色,则表示连接建立成功;若图标为红色,则表示连接建立失败。
S7连接成功建立后,S7-1200 触发PUT/GET指令,通过TIA 软件监控表和 LOGO! Soft Comfort V8.2软件的数据表,可以监控数据通信是否正常,如图12所示。
图.12
注意:S7-1200侧的DB1对应于LOGO!0BA8的V区,即在PUT指令中使用的通信伙伴数据区ADDR_1=P#DB1.DBX0.0 BYTE 10在LOGO!中对应LOGO!0BA8里的VB0~VB9。