[西门子] 工业以太网与PROFINET---S7-1500 OUC 通信示例 | 大话与PLC通讯的...

[复制链接]
查看164 | 回复0 | 2024-7-8 08:11:17 | 显示全部楼层 |阅读模式

上面有一讲讲到了OUC通信(第六讲),这次给大家带来具体的配置案例,本节已经是通讯系列的第八讲了,因此小编特意先将前面七讲放在一起,供感兴趣的小伙伴可以根据自己的爱好一次看完~
大话与PLC通讯的N种方式第一期-以西门子300为例

大话与PLC通讯的N种方式第二期-S1200通讯案例说明

MES与PLC握手的几种方式——大话与PLC通讯的N种方式第三期

西门子S7-1200的Modbus RTU通讯-大话与PLC通讯的N种方式第四期

大话PLC的N种通讯第五期-基于C#的TCP通讯与S7通讯

简析西门子开放式用户通信OUC和通信小结——大话与PLC通讯的N种方式第六期

罗克韦尔PLC生产者和消费者——大话与PLC通讯的N种方式第七期

S7-1500 OUC 通信示例
        OUC有四种连接方式,分别为ISO、ISO-on-TCP、TCP/IP和UDP。CPU集成接口、CP1543-1和CM1542-1都支持OUC的通信方式。与S7-300/400相比,无论使用哪一种接口和哪一种连接类型,建立连接的过程和调用的通信函数都相同,这样可以避免不必要的麻烦。TIA博途软件提供了多种建立连接的方式,非常灵活。在下面的示例中仅给出笔者认为最简单的一种方式。考虑到最常见的应用,示例将以在相同项目下和在不同项目下的方式分别介绍通信配置的过程。
        S7-1500 PLC在相同项目下进行通信配置
        1)  创建新项目,例如“OPEN IE 通信”,在项目树下点击“添加新设备”,分别选择CPU1513-1和 CPU1516-3,创建两个S7-1500 PLC站点。
         2)  在设备视图中,点击其中一个CPU的以太网接口,在“属性”标签栏中设定以太网接口的IP地址。例如  CPU1513-1的以太网IP地址为192.168.0.10,子网掩码为255.255.255.0,如图所示。

设定 CPU以太网的IP地址
         3)  以相同的方式设置CPU1516-3的IP地址和子网掩码。示例中设定的IP地址为192.168.0.20,子网掩码为255.255.255.0。
注意:
CPU以太网接口在缺省状态下IP地址相同,可以通过CPU的显示面板修改IP地址,也可以通过在线联机和下载的方式修改IP地址。
        4)  打开主程序块,直接调用通信函数(“指令”->“ 通信”->“开放式用户通信”)。例如将通信函数“TSEND_C”拖放到CPU1513-1的OB1中,如图所示。

调用通信函数“TSEND_C”
        5)鼠标点击主程序中的通信函数,选择“属性”->“组态”->“连接参数”,配置连接属性,如图所示

配置TSEND_C通信连接参数
首先选择通信伙伴,例如PLC_2 (CPU1516-3),指定通信伙伴后,可以选择下方的通信接口,CPU1516-3的两个以太网接口都支持OUC的通信方式。示例中选择接口X1,指定接口后,子网自动建立并显示所使用以太网接口的IP地址。在组态模式中可以选择“使用组态的连接”或“使用程序块”。如果选择“使用组态的连接”模式,两个PLC的通信连接将固定地占用一个连接资源(通过程序控制可以断开连接);如果选择“使用程序块”的模式,两个PLC的通信连接需要通过编程建立(程序在通信函数内部已经调用了建立通信连接的指令,并在用户接口中设置了一个位信号用于使能),这种连接可以释放,这样就可以分批次地实现与更多的设备通信。示例中选择“使用组态的连接”模式,因为S7-1500 CPU的通信资源非常多。组态模式指定后,可以选择连接类型。示例中选择“ISO-on-TCP”。在连接数据中选择“新建”后,两个PLC的通信连接就建立了。
        6)  在块参数栏中可以配置通信的数据区参数、输入和输入/输出参数,如下图所示。
启动请求REQ:用于触发数据的发送,每一个上升沿发送一次。示例选择了CPU的时
钟存储器位(在CPU的属性中定义),发送频率为1Hz。
       连接状态CONT:  如果为0,断开通信连接,如果为1,建立连接并保持,缺省设置为1。此参数为隐藏参数,在通信函数中不显示。
       连接参数CONNECT:由系统自动建立的通信数据块,用于存储连接信息。
发送区域 DATA
               起始地址:发送数据区的开始地址。示例中为DB4.DBX0.0,表示从DB4的开始地址作为发送数据区的起始地址。
               长度:发送数据区的长度,示例中为100个字节。至此发送数据区定义完成,为DB4的前100个字节。
                注意:这里使用的是非优化DB块,如果使用优化DB块,不需要在长度参数中指定,
只需要在起始地址中使用符号名称方式定义即可,例如定义一个数组:“数据块_1.send”。
                发送长度 LEN:  设定实际的发送长度,示例中为60,表示将100个字节的发送数据区中前60个字节发送出去。这些参数可以是变量。
                重新启动块COM_RST:用于重新启动连接,可以不赋值。

TSEND_C 输入、输入/输出参数
输出参数用于指示通信的状态如下图所示。
DONE  :每次发送成功,产生一个上升沿。
BUSY  :为1时表示发送作业尚未完成,无法启动新发送作业。
ERROR :错误位。
STATUS:通信状态字。

TSEND_C 输出参数
块参数配置完成之后,本文第二幅图中调用通信函数TSEND_C的参数自动赋值。
        7)  在“组态的连接的总览”中可以查看建立的连接,也可以删除没有使用的连接,如图所示。这样一个站点的发送程序就完成了。

通信连接总览
        8)  在CPU1516-3站点上编写通信接收程序。例如将通信函数TRCV_C(“指令”->“ 通信”->“开放式用户通信”)拖放到CPU1516-3的OB1中。点击主程序中的通信函数,选择“属性”->“组态”->“连接参数”配置连接属性,如图所示。

配置TRCV_C通信参数
首先选择通信伙伴,例如PLC_1(CPU1513),然后在“连接数据”中直接选择已经
建立的通信连接,例如“ISOonTCP_连接_1”,这样连接参数配置完成。
        9)  在块参数栏配置数据接收区和实际接收到的字节长度,如下图所示。这里需要注意接收区域的长度必须大于等于发送区域(TCP连接除外)。在参数RCVD_LEN中可以读出实际接收数据的长度,其它参数与发送通信函数相同。

配置TRCV_C块参数
        10)  两个站配置完成之后,将程序分别下载到两个CPU中。点击任意一个通信函数上的诊断图标,可以进入诊断界面,如图所示。

诊断OUC的连接状态
在“连接信息”栏中点击“连接详细信息”可以查看连接的状态。连接状态与通信函数中的连接参数有关,如果连接未建立,应检查连接参数和网络物理连接。
        11)  在“扩展OUC诊断”项中可以查看数据收发信息,CPU1513-1发送的字节数如图所示。

  CPU1513-1 扩展OUC诊断信息
        12)  选择CPU1516-3的连接,点击“在线”,同样可以查看到已接收的字节数,如图所示。

CPU1516-3扩展OUC诊断信息
1)  这样通信任务就轻松完成了。



注意:1.示例中只演示一对发送接收函数的调用。使用一个通信连接时,CPU可以同时发送和接收数据。一个通信连接用于两个CPU之间的通信。如果一个CPU需要与多少个CPU进行通信,就需要相应地建立多个通信连接。
           2.示例中只演示的是在相同项目下的配置,在不同项目下的配置小编就不写了。


说明:1.能看到这里的应该都是本刊真爱粉啦,其实前几天关于TSN介绍的文章,小编觉得那个大家才应该好好了解的,无奈居然阅读量最低,因此在IIOT的大潮真的来临的时候,在面对Mendix,node-red, TSN这些新名词的时候,真的打算裸泳吗?小编想不通;

       2.任何技术的东西都存在理论基础的,如果对文中的诸如ISO ON TCP,UDP等还不是很懂的小伙伴,建议先把网络知识学习,毕竟所谓的工业以太网,还是需要先了解以太网,具体大家可以在后台回复HCNA下载,希望能帮到那些爱学习的小伙伴~



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则