西门子 s7通信 协议解读

西门子 s7通信 协议解读

1. S7通讯特点
1) S7协议是西门子专有协议,广泛用于各种通讯服务,例如:PG通讯,OP通讯,S7通讯等;
2) S7协议独立于西门子各种通讯总线,可以在MPI,PROFIBUS,Ethernet上运行;
3) S7协议是由多种应用层协议组成,或者说S7协议是一个多种协议的集合;
4) S7通讯在以太网上的底层协议根据应用的不同使用ISO或ISO on TCP。

2.  S7 连接资源
软件:
1) PORTAL V10.5软件,只支持 S7 通信的服务器(Sever)端。 
2) TIA PORTAIL V11软件,支持 S7 通信的服务器与客户端。 
3) TIA PORTAIL V12软件,支持 S7 通信的服务器与客户端。 
硬件
1) 硬件版本 V1.0,3个用于 S7 通信的服务器端连接。
2) 硬件版本 V2.0或更高,支持3个用于 S7 通信的服务器端连接,8个用于S7 通信的客户端连接。 

3. 关于TSAP
       当建立了一个连接时,模块中专用于连接的资源会分配给该连接。 该分配要求连接资源可以被寻址。 TSAP(Transport Service Access Point,传输服务访问点 ) 是通过连接资源或(在使用固件版本为 V2.0 或更高的 S7-1200 CPU 的情况下)SIMATIC-ACC(SIMATIC Application Controlled Communication,SIMATIC 应用控制通信) 而形成的资源的地址。
       S7-1200 CPU的TSAP组态取决于相关固件和远程连接伙伴。当S7-1200 CPU与S7-200/300/400 CPU进行连接时,S7-1200 CPU也会使用一个包含连接资源的TSAP组态。

4. S7通信编程
1) 使用 STEP7 V11/V12,S7-1200的PROFINET 通信口仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
2) S7-1200 CPU的S7通信使用PUT, GET指令
3) S7-1200 CPU 不能访问远程 S7-1200 CPU 的优化 DB 中的DB 变量。
4) 必须确保PUT, GET指令的ADDR_x与RD_x或SD_x参数的长度和数据类型相匹配。

5. PUT/GET指令
1) 对于 GET: 从下次扫描开始,远程 CPU 会将请求的数据返回接收区 (RD_x)。 当读操作顺利完成时,NDR 参数设置为 1。只有在完成前一个操作后,才能开始新的操作。
2) 对于 PUT: 本地 CPU 开始将数据发送 (SD_x) 到远程 CPU 中的存储位置(ADDR_x)。 写操作顺利完成后,远程 CPU 返回执行确认。 然后,PUT 指令的DONE 参数设置为 1。只有在完成前一个操作后,才能开始新的写操作。
注意: 
1) 从以上可以看出S7通讯与TCP通信的不同, TCP通信如果接收方没有正常接收,发送方DONE位仍会置1,即发送方不知道通信是否真正成功,这也是为什么说S7通信比TCP通信安全的原因。
2) 为确保数据的一致性,应始终在访问数据或启动另一读/写操作前评估已经完成的操作(对于 GET 评估 NDR = 1;对于 PUT 评估 DONE = 1)。

留言