当前位置:机电之家首页 >> PLC技术>> PLC手册 >> PLC操作手册 >> 以两个s7-1200plc数据传输为例介绍s7通信
以两个s7-1200plc数据传输为例介绍s7通信

s7-1200系列cpu本体上都集成以太网接口,其中cpu1211c、1212c和1214c都具有一个以太网rj45接口,而cpu 1215c、1217c提供了两个以太网r45接口。s7-1200系类plc可以通过以太网接口直接或者通过交换机与其他设备进行通信。当一台s7-1200plc需要其它plc或触摸屏或变频器通信时,这时只需要直接连接即可。当两台及以上的设备需要通信时,此时需要交换机进行网络连接。以太网通信可以分为多种通信方法,比如s7通信、ouc通信、modbus-tcp通信和frofient io通信等。其中,s7通信是众多通信方式中最简单、最常用的一种通信方法。s7-1200plc选择s7通信时,需要在博图软件本地(客服端)cpu调用put和get两个指令,put指令的作用是写入数据到伙伴(服务端)cpu中,get指令的作用是从伙伴(服务端)cpu中读取数据。

put和get指令在指令工具栏中—“通信”—“s7通信”中,两个指令具体含义如下:get从远程(伙伴、服务端)cpu读取数据,put向远程(伙伴、服务端)cpu写入数据。

1.jpg

使用get指令从远程cpu中读取数据,远程cpu可处于run或stop模式下。使用put指令将数据写入远程cpu,远程cpu可处于run或stop模式下。put和get指令各个引脚含义如下表所示。使用put指令时需要注意几个问题:id在进行s7通信连接时会自动生成,为十六进制数,比如w#16#100。指向服务端cpu写入区域的指针addr_x,如果写入区域为数据块,则该数据块必须为标准访问的数据块,不支持优化的块访问。sd_x指向客户端cpu上包含要发送数据的区域。通常情况下addr_x和sd_x均为指针形式。指针变量是用来存放内存地址的变量。在put/get指令中addr_x和sd_x写法,比如p#m50.0 byte 5,其含义为指向以地址m50.0开始,长度为5个byte的存储空间,即从mb50到mb54。比p#db1.dbx0.0 byte 10的含义为指向以数据块db1中dbx0.0开始,长度为10个byte的存储空间,即db1.dbb0到db1.dbb9。指向服务端cpu写入区域的指针addr_x,如果写入区域为数据块,则该数据块必须为标准访问的数据块,不支持优化的块访问。指向客户端cpu发送区域的指针sd_x,本地数据区域可支持优化访问或标准访问。通信伙伴cpu为s7-1200//1500cpu系列,需要在伙伴cpu属性的“防护与安全”—“连接机制”中激活“允许来自远程对象的put/get通信访问”。

使用get指令时需要注意几个问题:id在进行s7通信连接时会自动生成,为十六进制数,比如w#16#100。指向服务端cpu写入区域的指针addr_x,如果写入区域为数据块,则该数据块必须为标准访问的数据块,不支持优化的块访问。指向客户端cpu发送区域的指针rd_x,本地数据区域可支持优化访问或标准访问。服务端cpu为s7-1200/1500cpu系列,需要在伙伴cpu属性的“防护与安全”→“连接机制”中激活“允许来自远程对象的put/get通信访问。

2.jpg

下面以两个s7-1200 cpu1212c之间s7通信,传递数据为例,介绍s7通信的应用。

第一步,设备组态

在博图软件中新建项目,添加两个s7-1200 cpu1212c设备组态。修改其以太网地址,将plc_1以太网地址修改为192.168.0.1,将plc_2以太网地址修改为192.168.0.2。在plc_1启用时钟存储器字节。

第二步,s7组态连接。

3.jpg

打开网络视图,在网络视图中单击“连接”按钮,按钮右侧下拉选项中选择“s7连接”,将plc_1与plc_2连接起来。

第三步,编写程序

在plc_1主程序ob1中,调用“put”指令,并对其进行组态设置。在伙伴栏选择

“plc_2[cpu 1212c dc/dc/dc]”,下方端口、子网、子网名称、地址、连接id与连接名称等均会自动生成相关内容。因plc_1为客户端,应勾选“主动建立连接”。

4.jpg

put指令各个端口连接如下图所示。图中指令req选择m0.5,m0.5是1hz的时钟存储器字节,由于req是上升沿有效,则实现功能为每秒完成一次从plc_1到plc_2数据传输。id是自动生成的。addr_1和sd_1所连接指针都为p#m100.0 byte 1,p#m100.0 byte 1的含义为指向从m100.0开始,长度为1个byte的空间,即mb100。下面程序段实现的功能为每秒将客户端地址mb100中数据就传递到服务端地址mb100中。

5.jpg

在cpu 1的主程序ob1中,调用“get”指令,并对其进行组态设置。在伙伴栏选择“plc_2[cpu 1212c dc/dc/dc]”,下方端口、子网、子网名称、地址、连接id与连接名称等均会自动生成相关内容。因plc_1为客户端,应勾选“主动建立连接”。

6.jpg

get指令各个端口连接如下图所示。图中指令req选择m0.5,m0.5是1hz的时钟存储器字节,由于req是上升沿有效,则实现功能为每秒完成一次从plc_1到plc_2数据传输。id是自动生成的。addr_1和sd_1所连接指针都为p#m10.0 byte 1,p#m10.0 byte 1的含义为指向从m10.0开始,长度为1个byte的空间,即mb10。下面程序段实现的功能为每秒读取伙伴cpu地址mb10中数据存储在本地cpu地址mb10中。

7.jpg

下面程序段实现的功能为,将mb20中数据传递给mb100。

8.jpg

上面三段程序都是在plc_1主程序中编写,下面在plc_2主程序中编写下面程序。实现的功能为,将mb30中数据传递给mb10。

9.jpg

第四步,下载组态和程序

两个cpu的组态配置与编程均已完成,分别将其下载至对应的仿真plc中。将两个cpu转到在线模式并打开监控。在plc_1程序中将mb100设置为16#5,经过put指令,将plc_1中mb100存储数据传递到plc_2中mb100,从下图中可知,plc_2中mb100为16#5。

10.jpg

在plc_2程序中将mb10设置为,经过get指令,读取plc_2中mb10存储数据存储到plc_1中mb10,从下图中可知,plc_1中mb10为16#5。

11.jpg

通过上述分析可知,两个plc之间成功完成s7通信连接,是put/get指令数据访问成功的关键。建立s7连接成功后,就可以通过put指令发送数据给伙伴cpu,通过get指令获取伙伴cpu的数据。

作者:未知 点击:1698次 [打印] [关闭] [返回顶部]
本文标签:以两个s7-1200plc数据传输为例介绍s7通信
* 由于无法获得联系方式等原因,本网使用的文字及图片的作品报酬未能及时支付,在此深表歉意,请《以两个s7-1200plc数据传输为例介绍s7通信》相关权利人与机电之家网取得联系。
电子样本

中基斯顿摆线液压马达
:余翰林
:18857411608
:宁波中基斯顿液压机械有限公司
个人求购

 【求购】  五轴加工中...  2025-3-12
苏经理 【求购】  COB模块...  2025-3-10
 【求购】  光栅  2025-3-10
 【求购】  充电模块  2025-3-10
张生 【求购】  电销机器人  2025-3-10
兰经理 【求购】  万福乐比例...  2025-3-7
时均师 【求购】  断路器  2025-3-7
山西霍州经开区茹先生 【求购】  噪声扬尘主...  2025-3-6
VIP公司推荐