首页 理论教育 实现S7-1200/1500之间单向通信的方法

实现S7-1200/1500之间单向通信的方法

时间:2023-06-30 理论教育 版权反馈
【摘要】:S7-1200/1500所有的以太网接口都支持S7通信。S7-1200 CPU不支持双向连接的S7通信。它们的PN接口的IP地址分别为192.168.0.1和192.168.0.2,子网掩码为255.255.255.0。图6-28 网络视图中的连接选项卡使用固件版本为V4.0及以上的S7-1200 CPU作为S7通信的服务器,需要做下面的额外设置,才能保证S7通信正常。PUT指令每1s将本机的DB1中的100个整数写入PLC_2的DB4。

实现S7-1200/1500之间单向通信的方法

1.S7协议

S7协议是专门为西门子控制产品优化设计的通信协议,它主要用于S7 CPU之间的主-主通信、CPU与西门子人机界面和编程设备之间的通信。S7-1200/1500所有的以太网接口都支持S7通信。

S7通信协议是面向连接的协议,在进行数据交换之前,必须与通信伙伴建立连接。面向连接的协议具有较高的安全性。S7通信可以用于工业以太网和PROFIBUS-DP。这些网络的S7通信的组态和编程方法基本上相同。

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

S7连接属于需要用网络视图组态的静态连接。静态连接要占用参与通信的模块(CPU、通信处理器CP和通信模块CM)的连接资源,同时可以使用的连接的个数与它们的型号有关。

2.单向连接与双向连接

S7连接分为单向连接和双向连接,S7 PLC的CPU集成的以太网接口都支持S7单向连接。单向连接中的客户机(Client)是向服务器(Server)请求服务的设备,客户机是主动的,它调用GET/PUT指令来读、写服务器的存储区,通信服务经客户机要求而启动。服务器是通信中的被动方,用户不用编写服务器的S7通信程序,S7通信是由服务器的操作系统完成的。单向连接只需要客户机组态连接、下载组态信息和编写通信程序。

V2.0及以上版本的S7-1200 CPU的PROFINET通信口可以作S7通信的服务器或客户机。因为客户机可以读、写服务器的存储区,单向连接实际上可以双向传输数据。

双向连接(在两端组态的连接)的通信双方都需要下载连接组态,一方调用指令BSEND或USEBD来发送数据,另一方调用指令BRCV或URCV来接收数据。S7-1200 CPU不支持双向连接的S7通信。

BSEND指令可以将数据块安全地传输到通信伙伴,直到通信伙伴用BRCV指令接收完数据,数据传输才结束。BSEND/BRCV最多可以传输64KB的数据。

使用USEND/URCV的双向S7通信方式为异步方式。这种通信方式与接收方的指令URCV执行序列无关,无需确认。例如可以传送操作与维护消息,对方接收到的数据可能被新的数据覆盖。USEBD/URCV指令传输的数据量比BSEND/BRC少得多。

对于带有1~4个地址区的指令,S7通信可以确保的用户数据的最小字节数见表6-1。关于用户数据容量的详细信息参见相应CPU的技术数据。也可以在博途的在线帮助的“S7通信指令的常见参数”中查阅详细的信息。

6-1 S7通信可以确保的用户数据最小字节数

978-7-111-58719-4-Chapter06-38.jpg

博途有很强的防止组态错误的功能,它会禁止建立那些选用的硬件不支持的通信连接组态。S7-PLCSIM支持S7-1200/1500对S7单向连接通信的仿真。

3.创建S7连接

在名为“1200_1200IE_S7”的项目中(见随书光盘中的同名例程),PLC_1和PLC_2均为CPU 1215C。它们的PN接口的IP地址分别为192.168.0.1和192.168.0.2,子网掩码为255.255.255.0。组态时启用双方的MB0为时钟存储器字节。

双击项目树中的“设备和网络”,打开网络视图(见图6-26)。单击按下左上角的“连接”按钮,用选择框设置连接类型为S7连接。用“拖拽”的方法建立两个CPU的PN接口之间的名为“S7_连接_1”的连接。

978-7-111-58719-4-Chapter06-39.jpg

图6-26 组态S7连接的属性

在打开网络视图后,为了高亮(即用双轨道线)显示连接,应单击按下网络视图左上角的“连接”按钮,将光标放到网络线上,单击出现的小框中的“S7_连接_1”,连接变为高亮显示(见图6-26),出现“S7_连接_1”小方框。

选中“S7_连接_1”,再选中下面的巡视窗口的“属性>常规>常规”(见图6-26),可以看到S7连接的常规属性。选中左边窗口的“特殊连接属性”(见图6-27的上图),右边窗口可以看到未选中“单向组态”复选框(不能更改)。勾选复选框“主动建立连接”,由本地站点(PLC_1)主动建立连接。选中巡视窗口左边的“地址详细信息”(见图6-27的下图),可以看到通信双方默认的TSAP(传输服务访问点)。

978-7-111-58719-4-Chapter06-40.jpg

图6-27 组态S7连接的属性(www.xing528.com)

单击网络视图右边竖条上向左的小三角形按钮978-7-111-58719-4-Chapter06-41.jpg,打开从右到左弹出的视图中的“连接”选项卡(见图6-28),可以看到生成的S7连接的详细信息,连接的ID为100。单击图6-28左边竖条上向右的小三角形按钮978-7-111-58719-4-Chapter06-42.jpg,关闭弹出的视图。

978-7-111-58719-4-Chapter06-43.jpg

图6-28 网络视图中的连接选项卡

使用固件版本为V4.0及以上的S7-1200 CPU作为S7通信的服务器,需要做下面的额外设置,才能保证S7通信正常。选中服务器(PLC_2)的设备视图中的CPU 1215C,再选中巡视窗口中的“属性>常规>保护”,在“连接机制”区勾选复选框“允许从远程伙伴(PLC、HMI、OPC、…)使用PUT/GET通信访问”。

4.编写程序

为PLC_1生成DB1和DB2,为PLC_2生成DB3和DB4,在这些数据块中生成由100个整数组成的数组。不要启用数据块属性中的“优化的块访问”功能。

在S7通信中,PLC_1作通信的客户机。打开它的OB1,将右边的指令列表的“通信”窗格的“S7通信”文件夹中的指令GET和PUT拖拽到梯形图中(见图6-29)。在时钟存储器位M0.5的上升沿,GET指令每1s读取PLC_2的DB3中的100个整数,用本机的DB2保存。PUT指令每1s将本机的DB1中的100个整数写入PLC_2的DB4。

978-7-111-58719-4-Chapter06-44.jpg

图6-29 GET/PUT指令

单击指令框下边沿的三角形符号978-7-111-58719-4-Chapter06-45.jpg978-7-111-58719-4-Chapter06-46.jpg,可以显示或隐藏图6-29的“ADDR_2”“RD_2”“SD_2”等灰色的输入参数。显示这些参数时,客户机最多可以分别读取和改写服务器的4个数据区。发送端和接收端使用的SD_i和RD_i参数的个数必须相互匹配,发送端和接收端彼此协同工作的参数SD_i和RD_i的数据类型和字节数也必须相互匹配。

选中PUT指令或GET指令,再选中巡视窗口中的“属性>组态>连接参数”,可以组态连接参数。选中巡视窗口中的“属性>组态>块参数”,可以在右边窗口设置指令的输入参数和输出参数。

PLC_2在S7通信中作服务器,不用编写调用指令GET和PUT的程序。

与项目“1200_1200_ISO_C”相同,双方均采用验证通信是否实现的典型程序结构。在双方的OB100中,将DB1和DB3中要发送的100个字分别预置为16#2151和16#2152,将保存接收到的数据的DB2和DB4中的100个字清零。在双方的OB1中,用周期为0.5s的时钟存储器位M0.3的上升沿,将要发送的第1个字加1。

5.通信实验

将通信双方的用户程序和组态信息分别下载到CPU,用电缆连接它们的以太网接口。它们进入运行模式后,从图6-30中双方的监控表可以看到双方接收到的第一个字DB2.DBW0和DB4.DBW0不断增大,DB2和DB4中的DBW2和DBW198是通信伙伴在首次扫描时预置的值。

978-7-111-58719-4-Chapter06-47.jpg

图6-30 PLC_1与PLC_2的监控表

6.仿真实验

选中项目树中的PLC_1,单击工具栏上的“开始仿真”按钮978-7-111-58719-4-Chapter06-48.jpg,出现仿真软件的精简视图。单击工具栏上的978-7-111-58719-4-Chapter06-49.jpg按钮,将程序和组态数据下载到仿真PLC,后者被切换到RUN模式。选中PLC_2,单击工具栏上的“开始仿真”按钮978-7-111-58719-4-Chapter06-50.jpg,出现仿真软件的精简视图。将程序和组态数据下载到仿真PLC,后者被切换到RUN模式。用两台PLC的监控表监控接收到的数据(见图6-30),操作方法和观察到的结果与硬件实验的相同。

7.S7-1500和S7-1200CPU之间的GET/PUT通信

随书光盘中的例程“1500_1500IE_S7”中的CPU为CPU 1511-1PN和CPU 1516-3PN/DP,例程“1500_1200IE_S7”的CPU为CPU 1516-3PN/DP和CPU 1215C。

这两个项目的S7连接的组态方法、程序和监控表与例程“1200_1200IE_S7”相同,调试的方法也完全相同。例程“1500_1500IE_S7”可以仿真。

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

我要反馈