300plc之间以太网通信.docx

上传人:b****1 文档编号:74254 上传时间:2023-04-28 格式:DOCX 页数:17 大小:1,017.91KB
下载 相关 举报
300plc之间以太网通信.docx_第1页
第1页 / 共17页
300plc之间以太网通信.docx_第2页
第2页 / 共17页
300plc之间以太网通信.docx_第3页
第3页 / 共17页
300plc之间以太网通信.docx_第4页
第4页 / 共17页
300plc之间以太网通信.docx_第5页
第5页 / 共17页
300plc之间以太网通信.docx_第6页
第6页 / 共17页
300plc之间以太网通信.docx_第7页
第7页 / 共17页
300plc之间以太网通信.docx_第8页
第8页 / 共17页
300plc之间以太网通信.docx_第9页
第9页 / 共17页
300plc之间以太网通信.docx_第10页
第10页 / 共17页
300plc之间以太网通信.docx_第11页
第11页 / 共17页
300plc之间以太网通信.docx_第12页
第12页 / 共17页
300plc之间以太网通信.docx_第13页
第13页 / 共17页
300plc之间以太网通信.docx_第14页
第14页 / 共17页
300plc之间以太网通信.docx_第15页
第15页 / 共17页
300plc之间以太网通信.docx_第16页
第16页 / 共17页
300plc之间以太网通信.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

300plc之间以太网通信.docx

《300plc之间以太网通信.docx》由会员分享,可在线阅读,更多相关《300plc之间以太网通信.docx(17页珍藏版)》请在冰点文库上搜索。

300plc之间以太网通信.docx

300plc之间以太网通信

S7-300和S7-400集成PN口的S7通信

欧阳光明(2021.03.07)

推荐文档:

西门子工程师推荐本文档!

∙文献

∙涉及产品

1.S7通信简介

S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7300/400PLC之间的通信。

SIMATICS7-PNCPU包含一个集成的PROFINET接口,该接口除了具有PROFINETI/O功能,还可以进行基于以太网的S7通信。

SIMATICS7-PNCPU支持无确认数据交换、确认数据交换和单边访问功能。

功能块的调用如图1、图2所示。

S7-400

S7-300

描述

简要描述

SFB8

FB8

用于发送

无确认的快速数据交换,发送数据后无对方接收确认。

SFB9

FB9

用于接收

SFB12

FB12

用于发送

确认数据交换,发送数据后有对方接收确认。

SFB13

FB13

用于接收

SFB14

FB14

读数据

单边编程读访问。

SFB15

FB15

写数据

单边编程写访问。

表1

图1

图2

要通过S7-PNCPU的集成PROFINET接口实现S7通信,需要在硬件组态中建立连接。

2.硬件及网络组态

CPU采用两个315-2PN/DP,使用以太网进行通信。

在STEP7中创建一个新项目,项目名称为PNS7。

插入两个S7-300站,在硬件组态中,分别插入CPU315-2PN/DP。

如图3所示。

图3

新建以太网,打开“NetPro”设置网络参数,选中CPU,在连接列表中建立新的连接。

如图4所示。

图4

然后双击该连接,设置连接属性。

在“General”属性中块参数ID=1,这个参数即是下面程序中的参数“ID”。

在SIMATIC315PN-1中激活“Establishanactiveconnection”,作为Client端,SIMATIC315PN-2作为Server端。

3.软件编程

3.1.无确认数据交换

SFB/FB8"USEND"向类型为“URCV”的远程伙伴SFB/FB发送数据。

执行发送过程而不需要和SFB/FB伙伴进行协调。

也就是说,在进行数据传送时不需要伙伴SFB/FB进行确认。

S7-300:

在REQ的上升沿处发送数据。

在REQ的每个上升沿处传送参数R_ID、

ID和SD_1。

在每个作业结束之后,可以给R_ID、ID和SD_1参数分配新数值。

S7-400:

在控制输入REQ的上升沿处发送数据。

通过参数SD_1到SD_4来指向要发送的数据,但并非都需要用到所有四个发送参数。

然而,必须确保参数SD_1到SD_4/SD_1和RD_1到RD_4/RD_1(在相应通讯伙伴SFB/FB"URCV"上)所定义的区域在以下几个方面保持一致:

• 编号

• 长度

• 数据类型参数R_ID必须在两个SFB中完全相同。

如果传送成功完成,则通过状态参数DONE来表示,此时其逻辑数值为1。

SFB/FB9"URCV"从类型为“USEND”的远程伙伴SFB/FB中异步接收数据,并把接收到的数据复制到组态的接收区域内。

当程序块准备好接收数据时,EN_R输入处的逻辑值为1。

可以通过EN_R=0来取消一个已激活的作业。

S7-300:

在EN_R的每个上升沿处应用参数R_ID、ID和RD_1。

在每个作业结束之后,可以给R_ID、ID和RD_1参数分配新数值。

S7-400:

通过参数RD_1到RD_4来指向接收数据区。

必须确保参数RD_i/RD_1和SD_i/SD_1(在相应通讯伙伴SFB/FB"USEND"上)所定义的区域在以下几个方面保持一致:

• 编号

• 长度

• 数据类型。

通过NDR状态参数逻辑数值为1来指示已经成功完成复制处理过程。

参数R_ID必须在两个SFB/FB上完全相同。

打开SIMATIC315PN-1的OB1,在OB1中依次调用FB8,FB9如图5、图6所示:

图5

程序中的参数说明见表2

参数

描述

数据类型

存储区

描述

REQ

INPUT

BOOL

 I、Q、M、D、L

上升沿触发工作

ID

INPUT

WORD

M、D、常数

连接ID

R_ID

INPUT

 DWORD

I、Q、M、D、L、常数

连接号,相同连接号的功能块互相对应发送/接收数据

DONE

OUTPUT

BOOL

 I、Q、M、D、L

为1时,发送完成

ERROR

OUTPUT

BOOL

I、Q、M、D、L

为1时,有故障发生

STATUS

OUTPUT

WORD

I、Q、M、D、L

状态代码

S7-300:

SD_1

S7-400:

SD_i

(1≤i≤4)

 IN_OUT

ANY

M、D、T、ZI、Q、M、D、T、C

发送数据区

 表2FB8参数说明

图6

程序中的参数说明见表3

参数

参数

数据类型

存储区

描述

EN_R

INPUT

BOOL

I、Q、M、D、L、常数

为1时,准备接收

ID

INPUT

WORD

M、D、常数

连接ID

R_ID

INPUT

DWORD

 I、Q、M、D、L、常数

连接号,相同连接号的功能块互相对应发送/接收数据

NDR

OUTPUT

BOOL

 I、Q、M、D、L

为1时,接收完成

ERROR

OUTPUT

BOOL

I、Q、M、D、L

为1时,有故障发生

STATUS

OUTPUT

WORD

I、Q、M、D、L

状态代码

S7-300:

RD_1

S7-400:

RD_i

(1≤i≤4)

IN_OUT

ANY

M、D、T、ZI、Q、M、D、T、Z

接收数据区

 表3FB9参数说明

同样,在SIMATIC315PN-2的OB1中,调用FB8/FB9。

通信双方的“R_ID”均设为0。

将SIMATIC315PN-1的MB100-MB109赋值B#16#02,在SIMATIC315PN-2中,将FB9的“EN_R”置1,然后在SIMATIC315PN-1中,将FB8中“REQ”设置上升沿信号,此时SIMATIC315PN-2的MB110-MB119接收到B#16#02。

如图7所示。

图7

同理,将SIMATIC315PN-2的MB100-MB109赋值为B#16#03,SIMATIC315PN-1的MB110-MB119接收到B#16#03。

如图8所示。

图8

3.2.确认数据交换

SFB/FB12"BSEND"向类型为“BRCV”的远程伙伴SFB/FB发送数据。

通过这种类型的数据传送,更多的数据可以在通讯伙伴之间传输,超过任何其它用于组态的

S7连接的通讯SFB/FB所能传输的数据量,通过集成PN口的S7-400和S7-300是65534字节。

要发送的数据区是分段的。

各个分段单独发送给通讯伙伴。

通讯伙伴在接收到最后一个分段时对此分段进行确认,该过程与相应SFB/FB"BRCV"的调用无关。

在调用块之后,当在控制输入REQ上有上升沿时,发送作业被激活。

发送用户存储区中的数据与处理用户程序是异步执行的。

由SD_1指定起始地址和要发送数据的最大长度。

可以通过LEN来确定数据域的作业指定长度。

在这种情况下,LEN替换SD_1的长度区域。

参数R_ID必须在相应的两个SFB/FB上完全相同。

如果在控制输入R处有上升沿,则当前数据传送将被取消。

如果传送成功完成,则通过将状态参数DONE的数值设置为1来进行指示。

如果状态参数DONE或ERROR的数值为1,则在前一个发送处理结束之前,不能处理新的发送作业。

SFB/FB13"BRCV"接收来自类型为“BSEND”的远程伙伴SFB/FB的数据。

在收到每个数据段后,向伙伴SFB/FB发送一个确认帧,同时更新LEN参数。

在块调用完毕,并且在控制输入EN_R数值为1之后,块准备接收数据。

可以通过EN_R=0来取消一个已激活的作业。

由RD_1指定起始地址和接收区的最大长度。

由LEN指示已接收数据域的长度。

从用户存储区中接收数据与处理用户程序是异步执行的。

参数R_ID必须在相应的两个SFB/FB上完全相同。

通过状态参数NDR的数值为1来指示所有数据段的无错接收。

接收到的数据保持不变,直到通过EN_R=1来重新调用SFB/FB13为止。

如果在数据的异步接收期间调用块,则将引发一个警告,该警告通过STATUS参数输出;如果当控制输入EN_R数值为0时进行调用,则接收将被终止,并且SFB/FB将返回到它的初始状态。

打开SIMATIC315PN-1的OB1,在OB1中依次调用FB12,FB13如图9、图10所示:

图9

程序中的参数说明见表4

参数

描述

数据类型

存储区

描述

REQ

INPUT

BOOL

 I、Q、M、D、L

上升沿触发工作

R

INPUT

BOOL

I、Q、M、D、L、常数

复位,终止数据交换

ID

INPUT

WORD

M、D、常数

连接ID

R_ID

INPUT

DWORD

I、Q、M、D、L、常数

连接号,相同连接号的功能块互相对应发送/接收数据

DONE

OUTPUT

BOOL

I、Q、M、D、L

为1时,发送完成

ERROR

OUTPUT

BOOL

I、Q、M、D、L

为1时,有故障发生

STATUS

OUTPUT

WORD

I、Q、M、D、L

状态代码

SD_1

IN_OUT

ANY

S7-300:

M、DS7-400:

I、Q、M、D、T、Z

发送数据区

LEN

 IN_OUT

WORD

I、Q、M、D、L

发送数据的长度

表4FB12参数说明

图10

程序中的参数说明见表5

参数

描述

数据类型

存储区

描述

EN_R

 INPUT

BOOL

I、Q、M、D、L、常数

为1时,准备接收

ID

INPUT

 WORD

M、D、常数

连接ID

R_ID

INPUT

DWORD

I、Q、M、D、L、常数

 连接号,相同连接号的功能块互相对应发送/接收数据

NDR

OUTPUT

 BOOL

I、Q、M、D、L

为1时,接收完成

ERROR

OUTPUT

BOOL

I、Q、M、D、L

为1时,有故障发生

STATUS

OUTPUT

WORD

 I、Q、M、D、L

状态代码

RD_1

IN_OUT

ANY

S7-300:

M、DS7-400:

I、Q、M、D、T、C

接收数据区

LEN

 IN_OUT

WORD

 I、Q、M、D、L

接收到的数据长度

表5FB13参数说明

同样,在SIMATIC315PN-2的OB1中,调用FB12/FB13。

通信双方的R_ID设为0,LEN设为10,将SIMATIC315PN-1的MB120-MB129赋值B#16#04,在SIMATIC315PN-2中,将FB13的“EN_R”置1,然后在SIMATIC315PN-1中,将FB12中“REQ”设置上升沿信号,此时SIMATIC315PN-2的MB130-MB139接收到B#16#04。

如图11所示。

图11

同理,将SIMATIC315PN-2的MB120-MB129赋值为B#16#05,SIMATIC315PN-1的MB130-MB139接收到B#16#05。

如图12所示。

图12

3.3.单边访问可以通过SFB/FB14"GET",从远程CPU中读取数据。

S7-300:

在REQ的上升沿处读取数据。

在REQ的每个上升沿处传送参数ID、ADDR_1和RD_1。

在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1参数。

S7-400:

在控制输入REQ的上升沿处启动SFB。

在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴CPU。

远程伙伴返回此数据。

在下一个SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。

必须要确保通过参数ADDR_i和RD_i定义的区域在长度和数据类型方面要相互匹配。

通过状态参数NDR数值为1来指示此作业已完成。

只有在前一个作业已经完成之后,才能重新激活读作业。

远程CPU可以处于RUN或STOP工作状态。

如果正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。

通过使用SFB/FB15"PUT",可以将数据写入到远程CPU。

S7-300:

在REQ的上升沿处发送数据。

在REQ的每个上升沿处传送参数ID、ADDR_1和SD_1。

在每个作业结束之后,可以给ID、ADDR_1和SD_1参数分配新数值。

S7-400:

在控制输入REQ的上升沿处启动SFB。

在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴CPU。

远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。

必须要确保通过参数ADDR_i和SD_i定义的区域在编号、长度和数据类型方面相互匹配。

如果没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数DONE来指示,其数值为1。

只有在最后一个作业完成之后,才能再次激活写作业。

远程CPU可以处于RUN或STOP模式。

如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。

打开SIMATIC315PN-1的OB1,在OB1中依次调用FB14,FB15如图13、图14所示:

图13

参数

描述

数据类型

存储区

描述

REQ

 INPUT

BOOL

I、Q、M、D、L

上升沿触发调用功能块

ID

 INPUT

 WORD

M、D、常数

地址参数ID

ERROR

OUTPUT

BOOL

 I、Q、M、D、L

接收到新数据

STATUS

OUTPUT

WORD

I、Q、M、D、L

故障代码

S7-300:

ADDR_1

S7-400:

ADDR_i

(1≤i≤4)

IN_OUT

ANY

M、D 

I、Q、M、D、

T、C

从通信对方的数据地址中读取数据

S7-300:

RD_1

S7-400:

RD_i

(1≤i≤4)

IN_OUT

ANY

S7-300:

M、D

S7-400I、Q、

M、D、T、C

本站接收数据地址

表6FB14参数说明

图14

参数

描述

数据类型

存储区

描述

REQ

 INPUT

BOOL

 I、Q、M、D、L

上升沿触发调用功能块

ID

INPUT

WORD

M、D、常数

地址参数

DONE

OUTPUT

BOOL

 I、Q、M、D、L

为1时,发送完成

ERROR

OUTPUT

BOOL

I、Q、M、D、L

为1时,有故障发生

STATUS

OUTPUT

WORD

I、Q、M、D、L

故障代码

S7-300:

ADDR_1

S7-400:

ADDR_i

(1≤i≤4)

IN_OUT

ANY

M、D

I、Q、M、D、

T、C

通信对方的数据接收地址

S7-300:

SD_1

S7-400:

SD_i

(1≤i≤4)

IN_OUT

ANY

S7-300:

M、D

S7-400I、Q、

M、D、T、C

本站发送数据地址

表7FB15参数说明

同样,在SIMATIC315PN-2的OB1中,调用FB14/FB15。

将SIMATIC315PN-2的MB140-MB149赋值B#16#06,在SIMATIC315PN-1中,将FB14的“REQ”置上升沿信号,此时SIMATIC315PN-1的MB150-MB159接收到B#16#06。

如图15所示。

图15

将SIMATIC315PN-1的MB140-MB149赋值B#16#08,在SIMATIC315PN-2中,将FB14的“REQ”置上升沿信号,此时SIMATIC315PN-2的MB150-MB159接收到B#16#08。

如图16所示。

图16

将SIMATIC315PN-1的MB170-MB179赋值B#16#07,将FB15的“REQ”置上升沿信号,此时SIMATIC315PN-2的MB160-MB169接收到B#16#07。

如图17所示。

图17

将SIMATIC315PN-2的MB170-MB179赋值B#16#11,将FB15的“REQ”置上升沿信号,此时SIMATIC315PN-1的MB160-MB169接收到B#16#11。

如图18所示。

图18

4.常见问题

• 两个S7-300PNCPU之间建立S7连接可有哪些通信方式?

答:

可以有确认连接、非确认连接、单边通信• 使用FB8/9时,数据已发送,程序块没有错误显示,但是没收到任何数据?

答:

发送区与接收缓冲区长度不一致。

• 使用FB12/13时,发送区与接收缓冲区长度是否必须一致?

答:

发送区的大小只要不超过接收缓冲区就可以。

• FB12发送数据时,发送数据的长度由哪个参数决定?

答:

发送长度由LEN决定。

但发送数据的起始地址和最大长度由SD_1决定。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2