首页 理论教育 S7通信的组态与编程优化方案

S7通信的组态与编程优化方案

时间:2023-06-28 理论教育 版权反馈
【摘要】:S7通信协议是面向连接的协议,在进行数据交换之前,必须与通信伙伴建立连接。表6-9 用于S7通信的SFB/FB网络组态工具NetPro有很强的防止出错的功能,它会禁止建立那些选用的硬件不支持的通信连接组态。PLCSIM V5.4 SP3及更高的版本支持对S7通信的仿真。它们分别用作SFB GET和PUT的通信请求信号REQ的实参。

S7通信的组态与编程优化方案

1.S7通信

S7通信是专为SIMATIC S7优化设计的通信协议,它主要用于S7 CPU之间的主-主通信、CPU与西门子人机界面和组态软件WinCC之间的通信。S7通信可以用于工业以太网、PROFIBUS或MPI网络。这些网络的S7通信的组态和编程方法基本上相同。

S7通信协议是面向连接的协议,在进行数据交换之前,必须与通信伙伴建立连接。面向连接的协议具有较高的安全性。

连接是指两个通信伙伴之间为了执行通信服务建立的逻辑链路,而不是指两个站之间用物理媒体(例如电缆)实现的连接。连接相当于通信伙伴之间一条虚拟的“专线”,它们随时可以用这条“专线”进行通信。一条物理线路可以建立多个连接。

S7连接属于需要组态的静态连接,用STEP 7集成的网络组态工具NetPro组态连接。连接要占用参与通信的模块(CPU、CP、FM)的连接资源,同时可以使用的连接的个数与它们的型号有关。

2.客户机与服务器

S7连接分为单向连接和双向连接,在单向连接通信中客户机(Client)是主动的,需要调用通信块GET和PUT来读、写服务器的存储区。通信服务经客户机要求而启动。服务器(Server)是通信中的被动方,不需编写通信程序,通信功能由它的操作系统来执行。单向连接只需要客户机组态连接、下载组态信息和编写通信程序。

双向连接(在两端组态的连接)的通信双方都需要下载连接组态,一方调用发送块U_SEND或B_SEND来发送数据,另一方调用接收块U_RCV或B_RCV来接收数据。

用于S7通信的SFB/FB见表6-9。S7-400调用SFB进行S7通信,S7-300的CPU 31x-2PN/DP调用\Standard Library\Communication Blocks库里的FB进行S7通信。使用CP模块的CPU 31x调用\SIMATIC_NET_CP\CP 300库里的FB进行S7通信。

有S7-300集成的DP、MPI通信接口参与时,只能进行单向S7通信,S7-300集成的DP、MPI通信接口在通信中只能作服务器。S7-400 CPU集成的DP、MPI、以太网接口和S7-300 CPU集成的以太网接口在单向S7通信中既可以作服务器,也可以作客户机。它们之间还可以进行双向S7通信。

表6-9 用于S7通信的SFB/FB

978-7-111-53570-6-Chapter06-73.jpg

网络组态工具NetPro有很强的防止出错的功能,它会禁止建立那些选用的硬件不支持的通信连接组态。PLCSIM V5.4 SP3及更高的版本支持对S7通信的仿真。

3.组态硬件

在STEP 7中创建一个名为“S7_DP”的项目(见随书光盘的同名例程),CPU为CPU 412-2DP。打开硬件组态工具HW Config,将电源模块信号模块插入机架。

双击机架中CPU 412-2DP下面“DP”所在的行,打开DP属性对话框,新建一条PROFIBUS网络,传输速率为默认的1.5 Mbit/s,配置文件为“标准”(主从通信时配置文件为“DP”)。CPU集成的DP接口和MPI接口默认的地址均为2,默认的工作模式为DP主站。单击工具栏上的 978-7-111-53570-6-Chapter06-74.jpg 按钮,编译并保存组态信息。

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

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

单击“确定”按钮,确认默认的设置,出现S7连接属性对话框。因为S7-300集成的DP接口不支持双向S7通信,“本地连接端点”区中的“在一端配置”复选框被自动选中,并且不能更改,因此默认的连接方式为单向连接。在调用通信SFB时,将会使用“块参数”区的“本地ID”(本地标识符)的值。因为是单向连接,连接表中没有通信伙伴的ID标识符),选中图6-46中CPU 313C-2DP所在的小方框,下面的连接表中没有连接信息。在单向S7连接中,仅需将网络组态信息下载到S7通信的客户机(CPU 412-2DP)。

978-7-111-53570-6-Chapter06-77.jpg

图6-46 网络与连接组态

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

978-7-111-53570-6-Chapter06-78.jpg

图6-47 “插入新连接”对话框与“属性-S7连接”对话框

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

5.S7通信编程(www.xing528.com)

为两台CPU生成数据块DB1和DB2,分别在数据块中创建一个有20个字节元素的数组ARAY。CPU 412-2DP作为客户机,在它的OB1中调用单向通信功能块GET和PUT,读、写服务器的存储区。CPU 313C-2DP作为服务器,不需要调用通信功能块。

在通信请求信号REQ的上升沿时激活SFB GET、PUT的数据传输。为了实现周期性的数据传输,用时钟存储器位提供的时钟脉冲作REQ信号。组态时双击HW Config的机架中的CPU 412-2DP,在出现的CPU属性对话框的“周期/时钟存储器”选项卡中,设置时钟存储器字节为MB8。MB8的第1位M8.1的周期为200ms(0状态和1状态各100ms)。下面是CPU 412-2DP的OB1中的程序,程序段1中的两条指令使M10.0和M8.1的相位相反,它们的上升沿互差100ms。它们分别用作SFB GET和PUT的通信请求信号REQ的实参。

SFB GET/PUT最多可以读、写4个数据区,本例程只读、写了两个数据区。

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

978-7-111-53570-6-Chapter06-80.jpg

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

978-7-111-53570-6-Chapter06-81.jpg

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

978-7-111-53570-6-Chapter06-82.jpg

978-7-111-53570-6-Chapter06-83.jpg

SFB的在线帮助给出了STATUS中的警告或错误代码的意义。在CPU 412-2DP的OB35中,每100ms将要发送的第一个字DB1.DBW0加1。在CPU 412-2DP的初始化程序OB100中调用SFC21,将数据发送区DB1和MB40~MB59中的各个字分别预置为16#4001和16#4002,将DB2和MB20~MB39中的数据接收区的各个字清零。

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

6.通信的仿真实验

图6-48是该项目组态和编程结束后的SIMATIC管理器。单击工具栏上的按钮,打开PLCSIM,出现名为S7-PLCSIM1的窗口(见图6-49的左图),可以将它视为一台仿真PLC。

978-7-111-53570-6-Chapter06-84.jpg

图6-48 SIMATIC管理器

978-7-111-53570-6-Chapter06-85.jpg

图6-49 用PLCSIM仿真两台PLC

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

单击PLCSIM工具栏上的 978-7-111-53570-6-Chapter06-87.jpg 按钮,生成一个名为S7-PLCSIM2的新的仿真PLC(见图6-49的右图)。选中SIMATIC管理器左边窗口CPU 313C-2DP的“块”,单击工具栏上的 978-7-111-53570-6-Chapter06-88.jpg 按钮,下载“块”文件夹中的系统数据和用户程序。下载后S7-PLCSIM2的标题栏出现了下载的PLC站点的名称SIMATIC 300(1)和CPU的型号CPU 313-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的值在不断增大。

为两个站点分别生成一个变量表(见图6-50),用它们监控接收到的两个数据区的第一个字和最后一个字。同时打开两个变量表,调节它们的位置和大小,保证能同时看到其中的全部变量。启动两个变量表进入监控状态,可以看到双方DB2中接收到的数据与对方DB1中的值相同。

978-7-111-53570-6-Chapter06-89.jpg

图6-50 两台CPU的变量表

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

我要反馈