当前位置:首页 > 最新通知 > 西门子S7-1200与S7通信,看完这篇也不觉得通信有多难了~

西门子S7-1200与S7通信,看完这篇也不觉得通信有多难了~

发布时间:2023-10-08 09:55      浏览数:80970



飞拓自动化

 开拓创新 | 放飞梦想 | 实现梦想 


西门子S7-1200与S7通信,看完这篇也不觉得通信有多难了~

S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态(如图1)连接和编程(如图2),而服务器端只准备好通信的数据就行。和图2所示


1.png

图1

2.png


图2


图片

指令介绍


01


PUT指令

S7-1200CPU的为S7通信提供了两条用于读写数据的指令“PUT”和“GET”,使用PUT个GET指令对伙伴CPU进行读写时,不管伙伴CPU是处于运行模式下还是停止模式下,S7通信依然可以正常进行。

3.png


REQ:触发PUT指令执行,每次上升沿时触发。

ID:S7通信连接ID,该连接ID在组态S7连接时生效。

ADDR_1:指向伙伴CPU的地址,写入数据的区域地址

SD_1︰指向本地CPU的的地址,写出数据的区域地址

DONE:数据被成功写入到伙伴CPU

ERROR:指令执行出错,错误代码存储在STATUS中


02


GET指令

4.png


REQ:触发GET指令执行,每次上升沿时触发。

ID: S7通信连接ID,该连接ID在组态S7连接时生效。

ADDR_1∶指向伙伴CPU的地址,待读取区域地址

RD_1∶指向本地CPU的的地址,读取回数据的存放地址

NDR︰伙伴CPU的数据被成功读取

ERROR:指令执行出错,错误代码存储在STATUS中


03


指令使用注意事项

(1)指令上使用的数据读写区域需要使用指针的方式进行给定,对应使用的数据块需要使用非优化访问的块。

(2)使用时需要确保参数ADDR与SD/RD定义的数据区域在数量、长度和数据类型方面都需要匹配。

(3)PUT/GET指令的最大可传送数据长度为212/222字节,通信数据区域数量的增加并不能增加通信数据长度,反之增大通信的数据区域量,通信最大的数据长度会减少。

5.png


图片

示例:两个1200PLC同一项目下S7通信

通信需求

①将客户端(Client)中DB1.DBX0.0开始的10个字节发送到服务器的DB1.DBX0.0开始的10个字节中。

②读取服务器(Serve)中的DB2.DBX0.0开始的10个字节到客户端DB1.DBX0.0开始的10个字节中。


01

创建一个PLC作为客户端,名称为“Client”,设定IP地址为:192.168.0.10,勾选允许远程访问

6.png

7.png


02

创建一个PLC作为服务器,名称为“Sever”,设定IP地址为:192.168.0.12 ,勾选允许远程访问

8.png


03

在中间栏的“连接”条目中,可以看到已经建立的“S7_连接_1”,如图所示。

9.png


04

点中上面的连接,在“S7_连接_1”的连接属性中查看各参数。在常规中,显示连接双方的设备,IP地址。

10.png


①在本地ID中:显示通讯连接的ID 号,这里ID=W#16#100(编程使用)。

②在特殊连接属性中:可以选择是否为主动连接,这里client 是主动建立连接。

③在地址详细信息中:定义通讯双方的 TSAP 号,这里不需要修改。

11.png

12.png

13.png


05


程序编写

①客户端侧建立DB1和DB2块,并建立Send和Recv名称的数组。用于发送数据和接收数据

14.png

15.png


②服务器端建立DB1和DB2块,并建立Send和Recv名称的数组。用于发送数据和接收数据

16.png

17.png


③客户端编写程序

18.png

19.png



免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!




工控速通 工控技术 快速精通

 工控速通 | 前车之鉴 | 后事之师 


每一滴汗水都折射太阳的光芒,每一份付出都照亮梦想的天空。尊重每一份职业,也感谢每一次坚守。

友情链接:

联系方式

电话:13702340568

邮箱:1191483119@qq.com

地址:广东省东莞市塘厦镇凤宝路8号6栋

手机版

VIP特权
微信客服
微信扫一扫咨询客服