首页 理论教育 基于DP网络的单向S7通信实训优化策略

基于DP网络的单向S7通信实训优化策略

时间:2023-06-26 理论教育 版权反馈
【摘要】:双击连接表的第1行,在出现的“插入新连接”对话框中,默认的通信伙伴为同一项目中的CPU 313C-2DP,默认的连接类型为S7连接。它们分别用来作SFB GET和PUT的通信请求信号REQ。双击打开CPU 412-2DP的OB1,用“视图”菜单中的命令设置编程语言为STL(语句表)。CPU 313C-2DP的OB1中没有通信程序,OB35每100ms将DB1.DBW加2。

基于DP网络的单向S7通信实训优化策略

1.组态硬件

在STEP 7中创建一个名为“S7_DP”的项目(见随书光盘的同名例程),CPU为CPU 412-2DP。选中SIMATIC管理器左边窗口出现的“SIMATIC 400站点”,双击右边窗口中的“硬件”图标,打开硬件组态工具HW Config。可以看到自动生成的机架和4号槽中的CPU模块。将电源模块信号模块插入机架。

用鼠标双击机架中CPU 412-2DP下面“DP”所在的行,单击出现的DP属性对话框的“常规”选项卡中的“属性”按钮(见图6-5),在出现的“属性-PROFIBUS接口DP”对话框中,单击“新建”按钮,出现“属性–新建子网PROFIBUS”对话框,采用默认的传输速率1.5 Mbit/s,配置文件为“标准”(主从通信时配置文件为“DP”)。多次单击“确定”按钮,返回HW Config,可以看到生成的名为“PROFIBUS(1)”的网络。CPU集成的DP接口和MPI接口默认的地址均为2,默认的工作模式为DP主站。单击工具栏上的 978-7-111-53804-2-Chapter06-42.jpg 按钮,编译并保存组态信息。

在SIMATIC管理器中生成一个S7-300站。在HW Config中,将CPU 313C-2DP插入机架,在自动打开的“属性-PROFIBUS接口DP”对话框的“参数”选项卡中(见图6-5),设置站地址为3,选中“子网”列表中的“PROFIBUS(1)”,将CPU 313C-2DP连接到DP网络上,默认的工作方式为DP主站。在CPU属性对话框的“常规”选项卡中,设置MPI站地址为3。将电源模块和信号模块插入机架。单击工具栏上的 978-7-111-53804-2-Chapter06-43.jpg 按钮,编译并保存组态信息。

2.组态S7连接

单击SIMATIC管理器工具栏上的 978-7-111-53804-2-Chapter06-44.jpg 按钮,打开网络组态工具NetPro,可以看到两个站已经连接到DP网络上。选中CPU 412-2DP所在的小方框,在NetPro下面的窗口出现连接表(见图6-26)。双击连接表的第1行,在出现的“插入新连接”对话框中(见图6-27的左图),默认的通信伙伴为同一项目中的CPU 313C-2DP,默认的连接类型为S7连接。

978-7-111-53804-2-Chapter06-45.jpg

图6-26 网络与连接组态

单击“确定”按钮,确认默认的设置,出现S7连接属性对话框(见图6-27的右图),因为S7-300集成的DP接口不支持双向S7通信,“本地连接端点”区中的“在一端配置”复选框被自动选中,并且不能更改,因此默认的连接方式为“单向”。在调用S7通信的SFB时,将会使用“块参数”区的“本地ID”(本地标识符)的值。

因为是单向连接,连接表中没有通信伙伴的ID(见图6-26),选中CPU 313C-2DP所在的小方框,连接表中没有连接信息。

图6-27中的复选框“建立主动连接”被自动选中,连接表的“激活的连接伙伴”列显示“是”。在运行时,由本地站点SIMATIC 400建立连接。

组态好连接后,单击工具栏上的 978-7-111-53804-2-Chapter06-46.jpg 按钮,编译并保存网络组态信息。在单向S7连接中,仅需将网络组态信息下载到S7通信的客户机(CPU 412-2DP)。

978-7-111-53804-2-Chapter06-47.jpg

图6-27 插入新连接与S7连接属性对话框

3.生成数据块

选中SIMATIC管理器左边窗口中SIMATIC 400(1)站的“块”文件夹,用鼠标右键单击右边的窗口,执行出现的快捷菜单中的命令,生成数据块DB1。打开DB1,生成一个名为ARAY,有20个字节元素的数组(见图6-20)。用复制和修改名称的方法创建内部结构相同的数据块DB2。

4.S7通信编程

在S7单向连接中,CPU 412-2DP作为客户机,在它的OB1中调用单向通信功能块GET和PUT,读、写服务器的存储区。CPU 313C-2DP作为服务器,不需要调用通信功能块。

在通信请求信号REQ的上升沿时激活SFB GET、PUT的数据传输。为了实现周期性的数据传输,用时钟存储器位提供的时钟脉冲作REQ信号。

组态时双击HW Config的机架中的CPU 412-2DP,在出现的CPU属性对话框的“周期/时钟存储器”选项卡中,设置时钟存储器字节为MB8(见实训六和图3-15),MB8的第1 位M8.1的周期为200ms(0状态和1状态各100ms)。

OB1的程序段1中的两条指令使M10.0和M8.1的相位相反,它们的上升沿互差100ms。它们分别用来作SFB GET和PUT的通信请求信号REQ。

双击打开CPU 412-2DP的OB1,用“视图”菜单中的命令设置编程语言为STL(语句表)。执行菜单命令“视图”→“总览”,打开程序编辑器左边的指令列表窗口。打开文件夹“\库\Standard Library\System Function Blocks”,将其中的SFB14“GET”拖放到程序区,设置SFB14的背景数据块为DB14,按回车键出现询问是否生成背景数据块的对话框,按“是”按钮确认。下面是OB1中的程序。SFB GET/PUT最多可以读、写4个数据区,本例程只读、写了两个数据区。

程序段1:时钟脉冲信号反相

978-7-111-53804-2-Chapter06-48.jpg

程序段2:读取通信伙伴的数据

978-7-111-53804-2-Chapter06-49.jpg

程序段3:向通信伙伴的数据区写入数据

978-7-111-53804-2-Chapter06-50.jpg

SFB的在线帮助给出了STATUS的警告或错误代码的意义(www.xing528.com)

下面是CPU 412-2DP的OB35中的程序:

程序段1:每100ms将DB1.DBW0加1

978-7-111-53804-2-Chapter06-51.jpg

在CPU 412-2DP的初始化程序OB100中,调用SFC21,将数据发送区DB1和MB40~MB59中的各个字分别预置为16#4001和16#4002,将DB2和MB20~MB39中的数据接收区的各个字清零。程序中的LW20和LW22是OB100的局部变量字。

下面是CPU 412-2DP的OB100中的程序:

程序段1:初始化存放要发送的数据的地址区

978-7-111-53804-2-Chapter06-52.jpg

程序段2:初始化存放要发送的数据的地址区

978-7-111-53804-2-Chapter06-53.jpg

程序段3:将存放接收到的数据的地址区清零

978-7-111-53804-2-Chapter06-54.jpg

CPU 313C-2DP和CPU 412-2DP的OB100中的程序基本上相同,其区别在于前者将数据发送区DB1和MB40~MB59中的各个字分别预置为16#3001和16#3002。CPU 313C-2DP的OB1中没有通信程序,OB35每100ms将DB1.DBW加2。

5.通信的仿真实验

图6-28是该项目组态和编程结束后的SIMATIC管理器。单击工具栏上的 978-7-111-53804-2-Chapter06-55.jpg 按钮,打开PLCSIM,出现名为S7-PLCSIM1的窗口(见图6-29的左图),可以将它视为一台仿真PLC,用MPI接口下载程序。

选中SIMATIC管理器左边窗口CPU 412-2DP的“块”,单击工具栏上的 978-7-111-53804-2-Chapter06-56.jpg 按钮,下载“块”文件夹中的系统数据和程序块。下载后S7-PLCSIM1的标题栏出现了下载的PLC站点的名称SIMATIC 400(1)和CPU的型号CPU 412-2DP。生成一个视图对象,将它的地址改为DB2.DBW0。

单击PLCSIM工具栏上的 978-7-111-53804-2-Chapter06-57.jpg 按钮,生成一个名为S7-PLCSIM2的新的仿真PLC(见图6-29的右图)。选中SIMATIC管理器左边窗口CPU 313C-2DP的“块”,单击工具栏上的 978-7-111-53804-2-Chapter06-58.jpg 按钮,下载“块”文件夹中的系统数据和程序块。下载后S7-PLCSIM2的标题栏出现了下载的PLC站点的名称SIMATIC 300(1)和CPU的型号CPU313C-2DP。生成一个视图对象,将它的地址改为DB2.DBW0。

978-7-111-53804-2-Chapter06-59.jpg

图6-28 SIMATIC管理器

978-7-111-53804-2-Chapter06-60.jpg

图6-29 用PLCSIM仿真两台PLC

在时钟脉冲M8.1的上升沿,CPU 412-2DP每200ms读取一次CPU 313C-2DP的数据;在时钟脉冲M10.0的上升沿,每200ms将数据写入CPU 313C-2DP的数据区。

运行时通信双方的OB35使DB1.DBW0的值不断增大,然后发送给对方的DB2.DBW0。下载后将两台仿真PLC切换到RUN-P模式,可以看到双方接收到的第一个字DB2.DBW0的值在不断增大。

选中SIMATIC管理器中的SIMATIC 400(1)站,执行菜单命令“插入”→“S7块”→“变量表”,生成一个变量表。双击打开生成的变量表,在地址列输入两个接收地址区的第一个字和最后一个字。

用同样的方法生成SIMATIC 300(1)站的变量表,两个变量表中被监控的变量相同。

打开通信双方的变量表,执行“窗口”菜单中的“排列”→“垂直”命令,同时显示两个变量表。单击工具栏上的 978-7-111-53804-2-Chapter06-61.jpg 按钮,选中的变量表进入监控状态,“状态值”列显示的是PLC中变量的值,标题栏出现浅蓝色的横条。单击选中另一个变量表,单击工具栏上的 978-7-111-53804-2-Chapter06-62.jpg 按钮,使它也进入监控状态。

图6-30是在运行时复制的通信双方的变量表。在变量表中可以看到双方接收到的DB2.DBW0的值在不断地增大,此外可以看到各数据接收区接收到的数据与对方OB100中设置的值相同。

978-7-111-53804-2-Chapter06-63.jpg

图6-30 两块CPU的变量表

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

我要反馈