首页 理论教育 S7通信示例 升级版:优化您的工业通讯方案

S7通信示例 升级版:优化您的工业通讯方案

时间:2023-07-01 理论教育 版权反馈
【摘要】:本文中示例部分将详细介绍S7单端组态和S7双端组态两种通信配置过程。CPU2作为S7通信的服务器,其不需要组态S7连接,也无需调用PUT/GET指令,只需在CPU属性的“防护与安全”设置中激活“允许来自远程对象的PUT/GET通信访问”。“MyS7”.RcvBuff用于存储“GET”指令从伙伴CPU2读取到的数据,“MyS7”.SendBuff为“PUT”指令发送到CPU2的数据区,如图7-12所示。

S7通信示例 升级版:优化您的工业通讯方案

S7-1200 CPU进行S7通信需要使用组态的S7连接进行数据交换,S7连接可在单端或双端组态。S7单端组态常用于不同项目中CPU之间相互通信,S7双端组态则常用于同一项目中CPU之间通信。本文中示例部分将详细介绍S7单端组态和S7双端组态两种通信配置过程。

1.不同项目中的S7通信

本示例中使用了两个S7-1200 CPU,CPU之间采用S7通信。CPU 1为CPU 1215C,其IP地址为192.168.0.215;CPU 2为CPU 1217C,其IP地址为192.168.0.217。通信任务是CPU 1作为S7通信客户端,调用PUT/GET指令读写CPU2的数据,其中“GET”指令用于读取CPU 2 IB100~IB199共100字节的输入数据,“PUT”指令用于将100字节的数据写入到CPU 2 QB100~QB199。CPU2作为S7通信的服务器,其不需要组态S7连接,也无需调用PUT/GET指令,只需在CPU属性的“防护与安全”设置中激活“允许来自远程对象的PUT/GET通信访问”。

(1)CPU 1编程组态

1)设备组态:使用TIA博途软件创建新项目,并将CPU1215C作为新设备添加到项目中。在设备视图的巡视窗口中,将CPU属性作如下修改:

•在“PROFINET接口”属性中,为CPU“添加新子网”,并设置IP地址(192.168.0.215)和子网掩码(255.255.255.0)。

•在“系统和时钟存储器”属性中,激活“启用时钟存储器字节”,并设置“时钟存储器字节的地址(MBx)”。

2)添加S7连接:在网络视图中为CPU添加未指定的S7连接,创建S7连接的操作如图7-7所示。

①单击“连接”按钮

②在下拉菜单中,选择“S7连接”。

③单击CPU图标,鼠标右键在菜单中选择“添加新连接”。

在弹出“创建新连接”对话框中,选择“未指定”,单击“添加”后,将会创建一条“未指定”的S7连接,如图7-8所示。

①选择“未指定”。

②单击“添加”按钮,创建S7连接。

③未指定的S7连接已添加。

创建的S7连接将显示在网络视图右侧“连接”表中。在巡视窗口中,需要在新创建的S7连接属性中设置伙伴CPU的IP地址,如图7-9所示。

①在“连接”选项卡中,选择S7连接。

978-7-111-58391-2-Chapter07-10.jpg

图7-7 选择S7连接

978-7-111-58391-2-Chapter07-11.jpg

图7-8 添加“未指定”S7连接

②在巡视窗口中,选择“属性”。

③选择“常规”。

④设置伙伴方CPUIP地址。

在S7连接属性“本地ID”中,可以查询到本地连接ID(十六进制数值),如图7-10所示。该ID用于标识网络连接,需要与PUT/GET指令中“ID”参数保持一致。

在S7连接属性“地址详细信息”属性中,需要配置伙伴方TSAP。伙伴TSAP设置值与伙伴CPU类型有关,伙伴CPU侧TSAP可能设置值如下:

•伙伴为S7-1200/1500系列CPU:03.00或03.01。

•伙伴为S7-300系列CPU:03.02。

•伙伴为S7-400系列CPU:03.XY,X和Y取决于CPU的机架和插槽号。

本示例中,伙伴CPU为CPU1217C,因此伙伴方TSAP可设置为03.00或03.01,设置如图7-11所示。

978-7-111-58391-2-Chapter07-12.jpg

图7-9 设置伙伴CPUIP地址

978-7-111-58391-2-Chapter07-13.jpg

图7-10 S7连接ID

978-7-111-58391-2-Chapter07-14.jpg

图7-11 设置伙伴TSAP

3)程序编程

步骤一:在程序块中,添加用于PUT/GET数据交换的数据块“MyS7”,并在数据块中定义了两个数据类型为Array[0..99]of Byte变量“RcvBuff”和“SendBuff”。“MyS7”.RcvBuff用于存储“GET”指令从伙伴CPU2读取到的数据,“MyS7”.SendBuff为“PUT”指令发送到CPU2的数据区,如图7-12所示。

步骤二:在主程序OB1中,调用“GET”指令,读取伙伴CPU从IB100开始100个字节数据并保存到“MyS7”.RcvBuff,如图7-13所示。

978-7-111-58391-2-Chapter07-15.jpg

图7-12 创建用于数据交换的数据块

978-7-111-58391-2-Chapter07-16.jpg(www.xing528.com)

图7-13 调用GET指令

步骤三:在主程序OB1中,调用“PUT”指令,将本地数据“MyS7”.SendBuff写入到伙伴CPU从QB100开始100个字节的区域,如图7-14所示。

注意:

•使用PUT/GET通信时,伙伴CPU待读写区域不支持优化访问的数据区域。

•PUT/GET指令中参数“ID”需要与S7连接属性中的“本地ID”(参考图7-10)一致。

4)下载组态和程序

CPU 1的组态配置与编程已经完成,只需将其下载到CPU即可。

(2)CPU 2编程组态

单端组态的S7连接通信中,S7通信服务器侧无需组态S7连接,也无需调用PUT/GET指令,固本例中CPU 2只需进行设备组态,而无需在主程序OB1中进行相关通信编程。

1)设备组态 使用TIA博途软件创建新项目,并将CPU1217C作为新设备添加到项目中。在设备视图的巡视窗口中,将CPU属性作如下修改:

978-7-111-58391-2-Chapter07-17.jpg

图7-14 调用PUT指令

•“PROFINET接口”属性中为CPU“添加新子网”,并设置IP地址(192.168.0.217)和子网掩码(255.255.255.0)。

•“防护与安全”属性中“连接机制”中激活“允许来自远程对象的PUT/GET通信访问”,参考图3-21。

2)下载组态 CPU2的组态配置已经完成,只需将其下载到CPU即可。

(3)通信状态测试

打开CPU1项目,在网络视图中,选择CPU,并“转至在线”模式,在“连接”选项卡中可以对S7通信连接进行诊断,如图7-15所示。

①选择CPU。

②单击“转至在线”按钮,切换到在线模式。

③在“连接”选项卡中选择本地连接,在“连接信息”中即可查询到连接的详细信息。

成功建立的S7连接,是PUT/GET指令数据访问成功的先决条件。连接建立后,就可以通过“GET”指令获取伙伴CPU数据,调用“PUT”指令发送数据给伙伴CPU。示例程序请参见随书光盘中的例程目录《S7_PUT_GET_One_Side》。

2.相同项目中S7通信

本示例在同一个TIA项目中使用了两个S7-1200 CPU,CPU之间通过双端组态方式创建S7连接。CPU 1为CPU 1215C,其IP地址为192.168.0.215;CPU 2为CPU 1217C,其IP地址为192.168.0.217。通信任务与上文“不同项目中S7通信”相同,不再累述。

(1)S7双端组态编程步骤

1)设备组态:使用TIA博途软件创建新项目,分别将CPU 1215C和CPU 1217C作为新设备添加到项目中。在设备视图中为CPU 1215C和CPU 1217C的以太网接口添加子网并设置IP地址和子网掩码。本例中需要将CPU 1215C和CPU 1217C设置在同一子网,其中CPU 1215CIP地址为192.168.0.215,CPU 1217CIP地址为192.168.0.217。CPU 1和CPU 2其他属性设置与上文“不同项目中S7通信”设置相同,不再累述。

978-7-111-58391-2-Chapter07-18.jpg

图7-15 监控S7连接状态

2)组态S7连接:网络视图中,单击“连接”按钮,按钮右侧的下拉选项中选择“S7连接”,选择CPU1图标,鼠标右键菜单中选择“添加新连接”,相关操作可参考图7-7。在弹出“创建新连接”对话框中,选择指定伙伴CPU(本例为CPU2),单击“添加”后,即可创建双端组态的S7连接,如图7-16所示。

978-7-111-58391-2-Chapter07-19.jpg

图7-16 创建双端组态的S7连接

①选择指定伙伴CPU。

②单击“添加”按钮,创建S7连接。

③双端组态的S7连接已添加。

注意:

单端组态的S7连接,只需要将连接的组态信息下载到S7客户端CPU即可,服务器端无需下载。双端组态的S7连接,则需要将组态的信息下载到通信双方CPU。

3)CPU1和CPU2程序编程:CPU1和CPU2程序编程与上文“不同项目中S7通信”相同,不再累述。

4)下载组态和程序:两个CPU的组态配置与编程都已经完成,分别将其下载到两个CPU站点即可。

(2)通信状态测试

在网络视图中,选择任一站点,并“转至在线”模式,在“连接”选项卡中可以对S7通信连接进行诊断,参考图7-15。

成功建立的S7连接,是PUT/GET指令数据访问成功的先决条件。连接建立后,就可以通过“GET”指令获取伙伴CPU数据,调用“PUT”指令发送数据给伙伴CPU。示例程序请参见随书光盘中的例程目录《S7_PUT_GET_Two_Side》。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈