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

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

时间:2023-06-20 理论教育 版权反馈
【摘要】:双击连接表的第1行,在出现的“插入新连接”对话框中,系统默认的通信伙伴为同一项目中的CPU 313C-2DP,默认的连接类型为S7连接。图6-23 网络与连接的组态单击“确定”按钮,确认默认的设置,出现S7连接属性对话框,因为S7-300集成的DP接口不支持双向S7通信,“本地连接端点”区中的“单向”复选框被自动选中,并且不能更改,默认的连接方式为“单向”。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,配置文件为“标准”。多次单击“确定”按钮,返回HW Config,可以看到生成的名为“PROFIBUS(1)”的网络。CPU集成的DP接口和MPI接口默认的地址均为2,默认的工作模式为DP主站。单击工具栏上的978-7-111-31641-1-Chapter06-33.jpg按钮,编译并保存组态信息。

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

978-7-111-31641-1-Chapter06-35.jpg

图6-22 DP接口属性对话框

2.组态S7连接

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

978-7-111-31641-1-Chapter06-37.jpg

图6-23 网络与连接的组态

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

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

978-7-111-31641-1-Chapter06-38.jpg

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

组态好连接后,单击工具栏上的978-7-111-31641-1-Chapter06-39.jpg按钮,编译并保存网络组态信息。

在单向S7连接中,仅需将网络组态信息下载到S7通信的客户机(CPU 412-2DP)。

3.生成数据块

选中SIMATIC管理器左边窗口中SIMATIC 400(1)站的“块”文件夹,用鼠标右键单击右边的窗口,执行出现的快捷菜单中的命令,生成数据块DB1。打开DB1,生成一个名为ARAY,有20个字节元素的数组(见图6-20)。

用同样的方法生成数据块DB2,在数据块中创建一个名为ARAY,有20个字节元素的数组。也可以用复制和修改名称的方法来创建内部结构相同的数据块。

4.S7通信编程

在S7单向连接中,CPU 412-2DP和CPU 313C-2DP分别作为客户机和服务器,客户机在OB1中调用单向通信功能块GET和PUT,读、写服务器的存储区。服务器不需要调用通信功能块。本例程中的程序主要用来验证S7通信是否成功,没有什么工程意义。

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

时钟存储器的组态方法如下:打开HW Config,双击机架中CPU 412-2DP所在的行,在出现的CPU属性对话框的“周期/时钟存储器”选项卡中(见图3-15),单击复选框“时钟存储器”,设置用于时钟存储器的存储器字节为MB8。MB8的第1位M8.1的周期为200ms(ON 100ms,OFF 100ms)。

双击打开CPU 412-2DP的OB1,用“视图”菜单中的命令设置编程语言为STL(语句表)。执行菜单命令“视图”→“总揽”,打开程序编辑器左边的指令列表窗口。打开文件夹“\库\Standard Library\System Function Blocks”,将其中的SFB15“PUT”和SFB14“GET”指令拖放到程序区。

CPU 413-2DP的OB1的程序段1中的两条语句,使M10.0和M8.1的相位相反。它们分别作系统功能块GET和PUT的REQ(通信请求)信号,它们的上升沿互差100ms。下面是OB1中的程序:

978-7-111-31641-1-Chapter06-40.jpg

978-7-111-31641-1-Chapter06-41.jpg(www.xing528.com)

SFB的在线帮助给出了STATUS的警告或错误代码的意义。

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

978-7-111-31641-1-Chapter06-42.jpg

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

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

978-7-111-31641-1-Chapter06-43.jpg

978-7-111-31641-1-Chapter06-44.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-25是该项目组态和编程结束后的SIMATIC管理器。

978-7-111-31641-1-Chapter06-45.jpg

图6-25 SIMATIC管理器

单击工具栏上的978-7-111-31641-1-Chapter06-46.jpg按钮,打开PLCSIM,出现名为S7-PLCSIM1的窗口(见图6-26的左图),可以将它视为一台仿真PLC。

978-7-111-31641-1-Chapter06-47.jpg

图6-26 用PLCSIM仿真两台PLC

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

单击PLCSIM工具栏上的978-7-111-31641-1-Chapter06-49.jpg按钮,生成一个名为S7-PLCSIM2的新的仿真PLC(见图6-26的右图)。

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

在时钟脉冲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-31641-1-Chapter06-51.jpg按钮,选中的变量表进入监控状态,“状态值”列显示的是PLC中变量的值,标题栏出现浅蓝色的横条。单击另一个变量表,它被选中。单击工具栏上的978-7-111-31641-1-Chapter06-52.jpg按钮,使它也进入监控状态。

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

978-7-111-31641-1-Chapter06-53.jpg

图6-27 两块CPU的变量表

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

我要反馈